What are race conditions?: Some issues and formalizations
ACM Letters on Programming Languages and Systems (LOPLAS)
Dynamic software testing of MPI applications with umpire
Proceedings of the 2000 ACM/IEEE conference on Supercomputing
Automated, scalable debugging of MPI programs with Intel® Message Checker
Proceedings of the second international workshop on Software engineering for high performance computing system applications
Hi-index | 0.00 |
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.