|
It is difficult to reengineer programs to operate on multicore chips, and this activity will only become more difficult as the number of processors multiplies. Placing two or more processor cores on a single silicon chip represents an important advance in the computing industry. Multicore chips let users obtain the benefits of Moore's Law while avoiding the problems associated with making, powering, and cooling single microprocessors beyond a 4GHz chip. Chip multiprocessors (CMPs) provide the opportunity to enhance application performance, if applications are able to take advantage of them. These benefits of parallel processors do not come easy for programmer, however. Programmers, compilers, languages, and operating systems all must behave in a different manner when dealing with multiprocessors. Ken Kennedy, computer science professor at Rice University, worries whether software developers and writers of compilers will be able to keep up with advances in processing power. Many techniques used with sequential code do not work as well with parallel programs, says Jim Larus, manager of programming languages and tools at Microsoft Research. His group is working on tools that will allow more controlled testing so programmers will be able to check more effectively for errors in multiprocessor code. Microsoft Research is also working on a model known as KISS, or 'keep it strictly sequential.' KISS transforms concurrent programs into sequential ones that simulate the executive of the concurrent programs.
|