Skip to main content

MPIRace-Check: Detection of Message Races in MPI Programs

  • Conference paper
Advances in Grid and Pervasive Computing (GPC 2007)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 4459))

Included in the following conference series:

Abstract

Message races, which can cause nondeterministic executions of a parallel program, should be detected for debugging because nondeterminism makes debugging parallel programs a difficult task. Even though there are some tools to detect message races in MPI programs, they do not provide practical information to locate and debug message races in MPI programs. In this paper, we present an on-the-fly detection tool, which is MPIRace-Check, for debugging MPI programs written in C language. MPIRace-Check detects and reports all race conditions in all processes by checking the concurrency of the communication between processes. Also it reports the message races with some practical information such as the line number of a source code, the processes number, and the channel information which are involved in the races. By providing those information, it lets programmers distinguish of unintended races among the reported races, and lets the programmers know directly where the races occur in a huge source code. In the experiment we will show that MPIRace-Check detects the races using some testing programs as well as the tool is efficient.

This work was supported in part by Research Intern Program of the Korea Science and Engineering Foundation and in part by the 2th BK21.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Similar content being viewed by others

References

  1. Cypher, R., Leu, E.: The Semantics of Blocking and Nonblocking Send and Receive Primitives. In: 8th Intl. Parallel Processing Symp., April 1994, pp. 729–735. IEEE Computer Society Press, Los Alamitos (1994)

    Chapter  Google Scholar 

  2. Cláudio, A.P., Cunha, J.D., Carmo, M.B.: MPVisualizer: A General Tool to Debug Message Passing Parallel Applications. In: Sloot, P.M.A., et al. (eds.) HPCN-Europe 1999. LNCS, vol. 1593, pp. 1199–1202. Springer, Heidelberg (1999)

    Chapter  Google Scholar 

  3. Cláudio, A.P., Cunha, J.D., Carmo, M.B.: Monitoring and Debugging Message Passing Applications with MPVisualizer. In: 8th Euromicro Workshop on Parallel and Distributed Processing, Jan. 2000, pp. 376–382. IEEE Computer Society Press, Los Alamitos (2000)

    Google Scholar 

  4. Fidge, C.J.: Partial Orders for Parallel Debugging. In: SIGPLAN/SIGOPS Workshop on Parallel and Distributed Debugging, May 1988, pp. 183–194. ACM Press, New York (1988)

    Chapter  Google Scholar 

  5. Krammer, B., Bidmon, K.: MARMOT: An MPI Analysis and Checking Tool. In: Proceedings of PARCO’03, Sep. 2003. Advances in Parallel Computing, vol. 13, pp. 493–500. Elsevier, Amsterdam (2003)

    Google Scholar 

  6. Krammer, B., Müller, M.S., Resch, M.M.: MPI Application Development Using the Analysis Tool MARMOT. In: Bubak, M., et al. (eds.) ICCS 2004. LNCS, vol. 3038, pp. 464–471. Springer, Heidelberg (2004)

    Google Scholar 

  7. Kranzlmüller, D., Schulz, M.: Notes on Nondeterminism in Message Passing Programs. In: Kranzlmüller, D., et al. (eds.) PVM/MPI 2002. LNCS, vol. 2474, pp. 357–367. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  8. Kranzlmüller, D., Schaubschläger, C., Volkert, J.: A Brief Overview of the MAD Debugging Activities. In: 4th International Workshop on Automated Debugging (AADEBUG 2000) (Aug. 2000)

    Google Scholar 

  9. Lamport, L.: Time, Clocks, and the Ordering of Events in a Distributed System. Communications of the ACM 21(7), 558–565 (1978)

    Article  MATH  Google Scholar 

  10. Lei, Y., Tai, K.: Efficient Reachability Testing of Asynchronous Message-Passing Programs. In: 8th Int’l Conf. on Engineering of Complex Computer Systems, Dec. 2002, pp. 35–44. IEEE Computer Society Press, Los Alamitos (2002)

    Google Scholar 

  11. Mittal, N., Garg, V.K.: Debugging Distributed Programs using Controlled Re-execution. In: 19th Annual Symp. on Principles of Distributed Computing, Portland, Oregon, pp. 239–248. ACM Press, New York (2000)

    Google Scholar 

  12. Netzer, R.H.B., Brennan, T.W., Damodaran-Kamal, S.K.: Debugging Race Conditions in Message-Passing Programs. In: SIGMETRICS Symp. on Parallel and Distributed Tools, May 1996, pp. 31–40. ACM Press, New York (1996)

    Chapter  Google Scholar 

  13. Park, M., Jun, Y.: Detecting Unaffected Race Conditions in Message-Passing Programs. In: Kranzlmüller, D., Kacsuk, P., Dongarra, J. (eds.) EuroPVM/MPI 2004. LNCS, vol. 3241, pp. 268–276. Springer, Heidelberg (2004)

    Google Scholar 

  14. Snir, M., et al.: MPI: The Complete Reference. MIT Press, Cambridge (1996)

    Google Scholar 

  15. HPC Group: MPI Run Time Error Detection Test Suites. Iowa State University, USA (2006), http://rted.public.iastate.edu/MPI/

Download references

Author information

Authors and Affiliations

Authors

Editor information

Christophe Cérin Kuan-Ching Li

Rights and permissions

Reprints and permissions

Copyright information

© 2007 Springer Berlin Heidelberg

About this paper

Cite this paper

Park, MY., Shim, S.J., Jun, YK., Park, HR. (2007). MPIRace-Check: Detection of Message Races in MPI Programs. In: Cérin, C., Li, KC. (eds) Advances in Grid and Pervasive Computing. GPC 2007. Lecture Notes in Computer Science, vol 4459. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-72360-8_28

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-72360-8_28

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-72359-2

  • Online ISBN: 978-3-540-72360-8

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics