A new programming language has been designed to get the most out of the latest multicore computer processors. If it finds favor among coders, it could provide more powerful software for many computers.
Over the last few years, as they’ve run up against the physical limits of miniaturization, microchip makers have shifted from increasing the power of processor cores—the part of a chip that handles data and instructions—to adding more cores to a single chip. For example, Intel’s i3 and i7 processors have two and four cores, respectively.
This presents a challenge for programmers. Since most programming languages were designed for single-core chips, it can be tricky to divide tasks up and send them to each core in parallel. If a coder isn’t careful, this can cause errors in the way that each core in the chip accesses the shared sections of memory.
Tucker Taft, the chief technology officer and chairman of the Boston-based software company SofCheck, designed the new language—called Parallel Specification and Implementation Language (ParaSail)—specifically for writing software for multicore processors. The language is intended to avoid the pitfalls that typically happen when working with multicore chips.
To a programmer, ParaSail looks like a modified form of Java or C#, two leading languages. The difference is that it automatically splits a program into thousands of smaller tasks that can then be spread across cores—a trick called pico-threading, which maximizes the number of tasks being carried out in parallel, regardless of the number of cores. ParaSail also does the debugging automatically, which makes code safer. “Everything is done in parallel by default, unless you tell it otherwise,” Taft says.
Over the next decade, the number of cores on computer chips is expected to increase even further. “There are some machines out there with dozens or hundreds of cores now,” says Taft.
ParaSail uses a number of other tricks, some that draw on languages developed in the late 1980s and early 1990s for supercomputers—machines running many individual computer chips networked together. “The design of the language itself is essentially complete,” says Taft, who presented details of the language on Wednesday at the O’Reilly Open Source Convention. “The first version of the compiler will be released in the next month or so.” The language will work on Windows, Mac, and Linux computers.
Microsoft and Intel are putting $20 million into adapting existing languages for multicore processors, so it’s difficult to say if ParaSail will become widely adopted. “There are a lot of people chipping away at the problem, taking existing languages and trying to make them better at handling parallel processing,” says Taft.
Taft already has a proven track record in the world of computer language development, says Denis Nicole of the Dependable Systems and Software Engineering Group at Southampton University. But he adds that “it usually takes companies the size of Sun to push new languages on the community.”
When designing an embedded system choosing which tools to use often comes down to building a custom solution or buying off-the-shelf tools.