Forschungs- & Entwicklungsinformationsdienst der Gemeinschaft - CORDIS

MARMOT - MPI analysis and checking tool

The Message Passing Interface (MPI) is a widely used standard to write parallel programs using message passing. However, developers of such MPI applications do not only have to face all the problems that occur in serial programming. In addition, parallel applications get more and more complex and thus also more error prone.

Moreover, MPI programs do not always behave deterministically. Deadlocks or race conditions may appear, depending on the platform environment or on the MPI implementation.

What is worse, they may only appear sometimes. Thus, it may take the user or developer quite a long time until he even realises that the program gives wrong results, but only sometimes.

Another issue is the fact that the MPI standard leaves many decisions to the implementation, which may cause problems when porting an application from one platform to another, for example, when porting an application from a local platform to the CrossGrid testbed. Tracking down bugs in a distributed program can be a long and painful task, therefore there is a clear need for tools that support the MPI application developer during the development process.

MARMOT is such an MPI application development tool that checks automatically at run-time whether an application conforms to the MPI-standard and uses e.g. MPI resources such as communicators, groups or data types in a correct way. It also verifies if the application contains non-portable constructs and thus ensures that the application runs seamlessly on any platform in the Grid. The tool can also detect problems such as deadlocks and race conditions. Any CrossGrid application can be run with MARMOT. Using the Migrating Desktop, the application can be launched and the results of MARMOT can be monitored.

Currently there are only two tools similar to MARMOT: MPI-CHECK from University of Iowa, which is restricted to Fortran code, and Umpire from Lawrence Livermore National Laboratory, which is not publicly available. MARMOT supports the MPI-1.2 standard (C and Fortran language binding) and is freely available. Extending its functionality, e.g. to MPI-2 or hybrid applications, is an ongoing effort.

Reported by

Universität Stuttgart, HLRS
Allmandring 30
70550 Stuttgart
See on map
Folgen Sie uns auf: RSS Facebook Twitter YouTube Verwaltet vom Amt für Veröffentlichungen der EU Nach oben