Abstract
The MPI standard allows the usage of multiple threads per process. The main idea was that an MPI call executed at one thread should not block other threads. In the MPI-2 standard this was refined by introducing the so called level of thread support which describes how threads may interact with MPI. The multi-threaded usage is restricted by several rules stated in the MPI standard. In this paper we describe the work on an MPI checker called MARMOT[1] to enhance its capabilities towards a verification that ensures that these rules are not violated. A first implementation is capable of detecting violations if they actually occur in a run made with MARMOT. As most of these violations occur due to missing thread synchronization it is likely that they don’t appear in every run of the application. To detect whether there is a run that violates one of the MPI restrictions it is necessary to analyze the OpenMP usage. Thus we introduced artificial data races that only occur if the application violates one of the MPI rules. By this design all tools capable of detecting data races can also detect violations to some of the MPI rules. To confirm this idea we used the Intel® Thread Checker.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Krammer, B., Bidmon, K., Müller, M.S., Resch, M.M.: MARMOT: An MPI Analysis and Checking Tool. In: Joubert, G.R., Nagel, W.E., Peters, F.J., Walter, W.V. (eds.) PARCO. Advances in Parallel Computing, vol. 13, pp. 493–500. Elsevier, Amsterdam (2003)
Message Passing Interface Forum: MPI-2: Extensions to the Message-Passing Interface (1997), http://www.mpi-forum.org/docs/mpi-20.ps
Message Passing Interface Forum: MPI: A Message-Passing Interface Standard (1995), http://www.mpi-forum.org/docs/mpi-10.ps
Vetter, J.S., de Supinski, B.R.: Dynamic software testing of MPI applications with umpire. In: Supercomputing 2000: Proceedings of the 2000 ACM/IEEE conference on Supercomputing (CDROM), Washington, DC, USA, p. 51. IEEE Computer Society, Los Alamitos (2000)
Luecke, G.R., Zou, Y., Coyle, J., Hoekstra, J., Kraeva, M.: Deadlock detection in MPI programs.. Concurrency and Computation: Practice and Experience 14(11), 911–932 (2002)
DeSouza, J., Kuhn, B., de Supinski, B.R., Samofalov, V., Zheltov, S., Bratanov, S.: Automated, scalable debugging of MPI programs with Intel® Message Checker. In: SE-HPCS 2005: Proceedings of the second international workshop on Software engineering for high performance computing system applications, pp. 78–82. ACM, New York (2005)
Netzer, R.H.B., Miller, B.P.: What are race conditions?: Some issues and formalizations. ACM Lett. Program. Lang. Syst. 1(1), 74–88 (1992)
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 2008 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Hilbrich, T., Müller, M.S., Krammer, B. (2008). Detection of Violations to the MPI Standard in Hybrid OpenMP/MPI Applications. In: Eigenmann, R., de Supinski, B.R. (eds) OpenMP in a New Era of Parallelism. IWOMP 2008. Lecture Notes in Computer Science, vol 5004. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-79561-2_3
Download citation
DOI: https://doi.org/10.1007/978-3-540-79561-2_3
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-79560-5
Online ISBN: 978-3-540-79561-2
eBook Packages: Computer ScienceComputer Science (R0)