Putting computer power into overdrive
Multicore technology, which combines two or more processor cores on a single silicon chip, allows computers handle separate tasks at the same time, thereby increasing their performance. To take full advantage of this increased computing power, software must be written that is adapted to the multicore technology.
With EUR 4 million in funding from the European Commission, the VELOX ('An integrated approach to transactional memory on multi-core computers') project aims to develop such software. The project partners believe will that their software might help transform ordinary laptops into supercomputers.
Computers are part of our everyday lives. To keep up with the demand for speed, computer manufacturers the world over are looking for ways to make their devices more performant. One development is the multicore processor, which uses several processors to carry out tasks simultaneously. In layman's terms, it is like adding more pistons to an engine, transforming it from a two-cylinder to a four-cylinder vehicle.
But putting a faster engine in your computer does not necessarily equal faster results. An increase in power output will only occur if the new cylinders are put into action. While a computer should have increased power with the addition of more cores, the system still operates thinking that it only has for example two cores, leaving the other cores unused. To take advantage of the extra processing power, programmers need to give instructions to each core that works in parallel with one another.
In single core systems, software code basically runs sequentially, with each task occurring one after the other. In multi-core systems, however, the tasks are split up among the cores. When different tasks need to access the same piece of memory to access data, they can sometimes fail to properly synchronise. This results in data becoming corrupted and causing the system to crash.
A coordinated and orderly way of accessing shared data is therefore needed to ensure parallel programming can run smoothly. Up until now, a 'fine-grained locking' scheme that protects small amounts of code or data has been the preferred coordination method of multicore programmers, because of its ability to deal with concurrent tasks. However, it is thought that these locks also make code more complicated and difficult to maintain and debug.
As an alternative, the VELOX project aims to develop a transactional memory (TM) software programming system. This system, which combines sequences of concurrent operations into atomic transactions, promises to greatly reduce the complexity of both programming and verification, by making parts of the code appear to be sequential without the need to programme fine-grained locks. Transactions remove from the programmer the burden of figuring out the interaction among concurrent operations that happen to conflict when accessing the same locations in memory.
'Thanks to the complementary skills of its partners, [the project] will pave the way for key European researchers to make significant contributions to the ongoing revolution to make parallel programming easier for the masses,' says Osman Unsal of Barcelona Supercomputing Center (BSC) and leader of the VELOX project.
'The VELOX project is crucial to enable the supercomputing applications of today to run on the laptops of the near future,' believes Mateo Valero, Director of BSC.
The project is coordinated by the BSC and gathers nine different partners that include top research and system integration organisations. These include the academic institutions of the University of Neuchâtel, Dresden University of Technology, the Swiss Federal Institute of Technology in Lausanne, Tel Aviv University, Chalmers University of Technology, as well as leading integrators from the IT industry such as AMD, Red Hat and VirtualLogix SAS.