The great challenge for the era of multicore lies in ensuring a proliferation of code that will be able to take advantage of parallel computing. So far, this has been a stumbling block for many developers, but a new language could be the key to simplifying parallel programming complexity.
While dividing up tasks for each code to crunch in parallel is difficult enough on its own, extraordinary precision is required to ensure that there are no errors that will change the way each core on the chip taps into shared memory.
Tucker Taft, CTO and chair of the Boston software company SofCheck has designed a new language for multicore environments called Parallel Specification Implementation Language (ParaSail) that addresses the most problematic elements of programming in parallel.
As Technology Review stated, the code looks like a modified form of C or C++ with the key difference being that it is able to automatically tease apart a programs into thousands of smaller tasks that can be doled out among the cores, something called pico-threading. In essence, pico-threading maximizes the number of tasks running in parallel, no matter how many cores are present.
In addition to automatically breaking the program into thousands of pieces to distribute for parallel operations, it automatically handles debugging and uses other methods to optimize paralleizing code, including drawing on some old supercomputing languages.
For a relatively small company, Introducing a new language is no simple task, especially when your efforts are being pushed alongside multimillion dollar investments from technology giants like Microsoft and Intel into the same solutions.
Taft will be presenting more information about the language in the coming month with the first version of the compiler that will work with Windows, Mac and Linux systems.