Detection of violations to the MPI standard in hybrid OpenMP/MPI applications

  • Authors:
  • Tobias Hilbrich;Matthias S. Müller;Bettina Krammer

  • Affiliations:
  • TU Dresden, Center for Information Services and High Performance Computing, Dresden, Germany;TU Dresden, Center for Information Services and High Performance Computing, Dresden, Germany;High Performance Computing Center, Universität Stuttgart, Stuttgart, Germany

  • Venue:
  • IWOMP'08 Proceedings of the 4th international conference on OpenMP in a new era of parallelism
  • Year:
  • 2008

Quantified Score

Hi-index 0.00

Visualization

Abstract

The MPI standard allows the usage of multiple threads perprocess. The main idea was that an MPI call executed at one threadshould not block other threads. In the MPI-2 standard this was refinedby introducing the so called level of thread support which describes howthreads may interact with MPI. The multi-threaded usage is restrictedby several rules stated in the MPI standard. In this paper we describethe work on an MPI checker called MARMOT[1] to enhance its capabilitiestowards a verification that ensures that these rules are not violated.A first implementation is capable of detecting violations if they actuallyoccur in a run made with MARMOT. As most of these violationsoccur due to missing thread synchronization it is likely that they don'tappear in every run of the application. To detect whether there is a runthat violates one of the MPI restrictions it is necessary to analyze theOpenMP usage. Thus we introduced artificial data races that only occurif the application violates one of the MPI rules. By this design all toolscapable of detecting data races can also detect violations to some of theMPI rules. To confirm this idea we used the Intel® Thread Checker.