10. Parallel Processing¶
For the history of modern computing, advances in engineering have provided amazing increases in computing power. Personal computers today are millions of times more powerful than those available at the start of the PC era. A modern smartphone has more computing power than a multi-million dollar supercomputer from the 1980s.
Much of this growth in power has come through processors that simply run faster and can do more complex operations in one step. From a programmer’s perspective, these processors don’t look that different - they just run faster. Unfortunately, future gains in computing power require new ways of thinking about problems. One of the key ways modern computers are making advances is by becoming parallel - sharing work between multiple processing cores.
However, not every problem can easily be solved with multiple workers. One of the important challenges for the current generation of computer scientists is to develop tools and techniques to make parallel problem solving easier to apply to a wide variety of problems.