In both the commercial and the open-source markets, other new languages and tools either tap the power of multicore processing or mask its complexity. Among these are Google’s MapReduce framework, which makes it easier to run parallel computations over clusters of computers, and Hadoop, an open-source implementation of MapReduce that can distribute applications across thousands of nodes. New programming languages like Clojure and Erlang were designed from the ground up for parallel computing. The popular Facebook chat application was written partly in Erlang.
Meanwhile, MIT spinoff Cilk Arts can break programs written in the established language C++ into “threads” that can be executed in parallel on multiple cores. And St. Louis-based Appistry claims that its Enterprise Application Fabric automatically distributes applications for Microsoft’s .Net programming framework across thousands of servers without requiring programmers to change a single line of their original code.
The Limits of Multicore Computing
Just as Intel’s dream of 10- and 30-gigahertz chips gave way to the pursuit of multicore computing, however, multicore itself might be around for a matter of years rather than decades. The efficiency of parallel systems declines with each added processor, as cores vie for the same data; there will come a point at which adding an additional core to a chip will actually slow it down. That may well set a practical limit on the multicore strategy long before we start buying hundred-core PCs.
Does it matter, though? While there may be applications that demand the power of many cores, most people aren’t using those applications. Other than hard-core gamers, few people are complaining that their PCs are too slow. In fact, Microsoft has emphasized that Windows 7, the successor to the troubled Windows Vista, will use less processing power and memory than Vista–a move made necessary by the popularity of lower-power mobile computing platforms and the expected migration of PC applications to Internet-based servers. A cynic might say that the quest for ever-increasing processing power is strictly commercial–that semiconductor and computer companies, software vendors, and makers of mobile phones need us to buy new gizmos.
So what’s the downside if multicore computing fails? What is the likely impact on our culture if we take a technical zig that should have been a zag and suddenly aren’t capable of using all 64 processor cores in our future notebook computers?
“I can’t wait!” says Steve Wozniak, the inventor of the Apple II. “The repeal of Moore’s Law would create a renaissance for software development,” he claims. “Only then will we finally be able to create software that will run on a stable and enduring platform.”
“In schools,” says Woz, “the life span of a desk is 25 years, a textbook is 10 years, and a computer is three years, tops. Which of these devices costs the most to buy and operate? Why, the PC, of course. Which has residual value when its useful life is over? Not the PC–it costs money to dispose of. At least books can be burned for heat. Until technology slows down enough for computing platforms to last long enough to be economically viable, they won’t be truly intrinsic to education. So the end of Moore’s Law, while it may look bad, would actually be very good.”
Robert X. Cringely has written about technology for 30 years. He is the author of Accidental Empires: How the Boys of Silicon Valley Make Their Millions, Battle Foreign Competition, and Still Can’t Get a Date.