- Person
- Harry Markowitz
- Lived
- 1927–2023
- Field
- Financial economics
- From
- American
The story
In the early 1960s Harry Markowitz returned to the RAND Corporation to build SIMSCRIPT, a programming language that let people describe a system to be simulated instead of spelling out every action the computer must take. Simulation programs of this kind constantly create and discard data as the modelled system changes, so they need an efficient way to hand out pieces of computer memory and take them back.
Markowitz's answer was the buddy system. In this method memory is divided into blocks whose sizes are powers of two. When a program needs space and no block of the right size is free, a larger block is split into two equal halves, and the two halves become each other's "buddy". The splitting continues until a block of suitable size is available. When a block is released and its buddy is also free, the two are merged back into the larger block they came from, so memory does not stay broken into small pieces.
According to the computer scientist Donald Knuth, the buddy system was invented in 1963 by Harry Markowitz, and it was first described in print by Kenneth C. Knowlton in 1965. It was included in the first version of SIMSCRIPT. Knuth later described a version of the algorithm in detail in the first volume of his classic work, The Art of Computer Programming.
The method has lasted because it is relatively easy to implement and keeps the overhead of tracking memory low. Compared with simpler techniques it causes little external fragmentation, the scattering of free memory into unusable gaps. Its main weakness, wasted space inside blocks that are larger than needed, can be reduced by layering a finer-grained allocator on top of it. The Linux kernel uses a modified buddy system to manage memory today.
It was another example of Markowitz's habit of turning a practical obstacle into a general technique. The Operations Research Society of America and the Institute of Management Sciences recognised this breadth in 1989, when they awarded him the John von Neumann Theory Prize for his work on portfolio theory, sparse matrix techniques and SIMSCRIPT.
Why it matters
A memory technique Markowitz devised for his simulation language in 1963 is still at work inside modern operating systems, including Linux.
About Harry Markowitz
Chicago grocer’s son whose 1952 paper ‘Portfolio Selection’ founded modern portfolio theory, the mathematics of diversification behind how the world invests. Nobel 1990.
More about Harry Markowitz
- Harry Markowitz showed how to compute efficient portfoliosHarry Markowitz developed the critical line algorithm, published in 1956, to compute the efficient frontier, the set of portfolios giving the best return for each level of risk.
- Harry Markowitz created the SIMSCRIPT simulation languageIn the early 1960s Harry Markowitz returned to RAND to develop SIMSCRIPT, a programming language that made computer simulations much faster to build.
- Harry Markowitz pioneered sparse matrix computingAt RAND in the 1950s Harry Markowitz saw that big economic models were mostly zeros, and devised sparse matrix techniques now standard for solving huge systems of equations.
- Harry Markowitz wrote the book on efficient diversificationHarry Markowitz’s 1959 book Portfolio Selection: Efficient Diversification of Investments, written at Yale’s Cowles Foundation, set out his theory in full.
- Harry Markowitz turned diversification into a scienceIn his 1952 paper “Portfolio Selection”, Harry Markowitz showed mathematically how investors can reduce risk through diversification, founding modern portfolio theory.
Sources
- Harry Markowitz Wikipedia
- Harry M. Markowitz: Biographical NobelPrize.org
- Buddy memory allocation Wikipedia
Another act of tikkun olam. This is part of tikkun olam, the Jewish idea of repairing the world, and every one of us can add to it.