Stefanus Du Toit, 25
Programming for parallel processors
PROBLEM: As the ever-shrinking computer chip begins to run into fundamental physical limits, designers have begun building multiple processor "cores" onto each chip to improve performance. But writing software that can run in parallel on multiple cores is complicated and time consuming, and few programmers have the expertise to do it. As a result, most of the capacity on a multicore chip goes to waste.
Solution: Stefanus Du Toit has created software that makes it easier to translate traditional serial programs into parallel programs. He began its development as a graduate student at the University of Waterloo, in Ontario; in 2004 he cofounded RapidMind, in Waterloo, to commercialize it. The company has raised $10 million and partners with Advanced Micro Devices, Hewlett-Packard, IBM, and others.
With RapidMind's technology, programmers write software in C++ as usual; then they use a special interface to specify which parts of the program should be parallelized. The platform automatically parcels out those tasks among the cores. It builds code into the final program that manages workload, ensuring that each core is fully utilized and preventing errors such as one task's stalling while it waits for another to finish. Finally, the platform optimizes the program to run on a particular chip--say, an eight-core chip from Intel. The finished program runs more efficiently; in one example, an image-processing application rewritten with the RapidMind platform ran 10 times as quickly on eight cores as on a single processor. --Neil Savage