As semiconductor firms get around the limitations of making individual processors faster by putting more cores onto a single chip, the mindset of today’s software developers and engineers mindset needs to adapt. For to really take advantage of multiple cores, a programmer needs to look at ways to make her code parallel, splitting jobs into different parts rather than the step-by step instructions delivered to single-core machines. There are also energy and communications issues that can constrain how far multicore can grow. Below are a list of startups that have the potential to stretch multicore processors to their very limit.
Tilera: Tilera, based in San Jose Calif., doesn’t make a software compiler, but rather a 64-core chip that can scale to thousands. It all comes down to the way the chip is designed, according to founder and CTO Anant Agarwal. Instead of the cores “talking” to one another through an on-chip bus interconnect, they’re in a mesh network where information travels faster. Agarwal has said he thinks there will be a Moore’s Law for cores that will lead to the number of cores on a chip doubling every 18 months and a data center in a desktop — a bold, energy-intensive prediction.
Interactive Supercomputing: Like Agarwal, Interactive Supercomputing of Waltham, Mass., is betting on multicore swimming into the mainstream fairly soon. The company’s development platform allows programmers to write in Python or Matlab and then paralellizes the code for them. Its vision is of 40-core or 60-core machines sitting on people’s desktops for intensive computing. If you had 60 cores and the right software on your home machine, your home videos would be much, much cooler.
Replay Solutions: This Redwood City, Calif.-based startup makes debugging software that, while not specific to a multicore environment, allows a programmer to replay exactly what happened the moment before a software crash so he can see what the problem is and fix it. The company calls it “TiVo for Software.” It’s useful because, let’s face it, it’s hard enough to follow and debug a single thread of instructions to a chip. Imagine splitting that code and following it across multiple cores. Or if the cores were in a cloud environment where the location of the software running on virtualized hardware varied. This is really just a neat startup all around.
Cilk Arts: Cilk Arts is essentially focused on extending one programming language into the multicore environment. In this case it’s C++. IBM, Intel, Nvidia and even Apple are all focused on varying ways to easily develop for multicore chips, but there is plenty of room for a small company with good tools to excel. Cilk, which is based in Burlington, Mass., uses a compiler to parallelize the code in a short amount of time without restructuring it. The first release, for x86 cores, is due out later this year.
RapidMind: This startup is also creating a platform to allow C++ programmers to make their code parallel but focuses on taking task-oriented code such as Monte Carlo stimulations and graphics rendering and parallelizes it. Waterloo, Ontario-based RapidMind works on x86 chips as well as graphics processors and IBM’s Cell processor.
image of the Cell Broadband Engine courtesy of IBM