From shared to distributed memory systems for applications
Shared-memory computing applications have never taken particularly well to operating on distributed-memory systems, at least until now. A possible solution has emerged, of interest to NASA and IBM, and is being tested on their distributed computing systems.
Funded under the European Commission’s IST programme, the POP project focused on generating an environment to allow applications designed using the OpenMP Application Program Interface (API) to operate on distributed-memory systems.
Developed by a consortium of computer vendors to enable the easy creation of portable, high-level shared-memory applications under the Fortran, C and C++ languages, OpenMP would be the perfect companion for distributed computing.
“However, it has not been a good companion to date,” says Jesús Labarta, the coordinator of the POP project at the Technical University of Catalonia.
The problem with OpenMP applications is that because they are designed for use in shared-memory systems, where memory is stored in a block and accessed by different processors, they do not function efficiently on distributed-memory machines where memory is accessed from different computers across a network. To make them run programmers have traditionally had to spend large amounts of time fiddling with code, often using a Message Passing Interface (MPI).
“What we have done is adapt OpenMP by extending and modifying protocols and runtime mechanisms to make it more flexible so programs can run on shared or distributed-memory systems without having to be retuned in each individual case,” Labarta explains. “The end goal is to allow OpenMP applications to run anywhere, reducing the time and costs of reprogramming.”
That is important for the future uses of OpenMP - principally for powerful numerical and simulation applications - given the increased use of distributed computing systems. Hence the interest of NASA and IBM.
In its cooperation with the project, NASA’s Ames research centre explored the possibility of employing POP’s OpenMP environment to overcome compatibility problems in parallelising their machines. The POP technique is also being tested on IBM’s MareNostrum supercomputer in Barcelona, the most powerful supercomputer in Europe to date, built entirely from commercially available components and using a Linux operating environment. On MareNostrum OpenMP applications are being run over various processor nodes in a distributed environment. “Without the work of POP, OpenMP wouldn’t run on MareNostrum,” the project coordinator notes.
Though the IST project ended in February this year, the researchers are continuing their work with a view to putting their OpenMP environment into widespread use. “The research is ongoing, although I think within three years our environment could be widely used and will have a substantial impact in the programming world,” Labarta says.
Source: IST Results