Abstract
Nondeterministic program behavior can lead to different results in subsequent program runs based on the same input data. This kind of problem can be seen in any program, but is even magnified in a parallel execution context due to the existence of several independent but communicating tasks. Even though this kind of nondeterminism is commonplace and in many cases even useful for the implementation of applications, it often leads to sporadically occurring errors. These bugs are difficult to reproduce and represent a heavy challenge during testing and debugging. The biggest problem, however, may be the unawareness of users about the existence of nondeterministic choices and their consequences. In order to raise the awareness and to provoke discussions about this serious problem, this paper provides an exemplary overview of nondeterministic behavior in message passing programs. With simple examples, it is demonstrated how nondeterminism can vigorously affect the behavior and the final results of software and how the behavior can change between different architectures.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
R. Buyya (Ed.). High Performance Cluster Computing-Architectures and Systems, Vol. 1, and High Performance Cluster Computing-Programming and Applications, Vol. 2, Prentice-Hall PTR, New Jersey, USA (1999).
R. H. Carver and K.C. Tai. Replay and Testing for Concurrent Programs. IEEE Software, Vol. 8, No. 2. pp. 66–74 (March 1991).
A. Geist, A. Beguelin, J. Dongarra, W. Jiang, R. Manchek, and V. Sunderam. PVM: Parallel Virtual Machine — A User’s Guide and Tutorial for Networked Parallel Computing. Scientific and Engineering Computation. MIT Press, 1994.
D.P. Helmbold and Ch.E. McDowell. Race Detection-Ten Years Later. in: M. L. Simmons, A. H. Hyes, J.S. Brown and D.A. Reed Debugging and Performance Tuning for Parallel Computing Systems. IEEE Computer Society Press, Los Alamitos, CA, USA, pp. 101–126 (1996).
P. Kacsuk. Systematic Macrostep Debugging of Message Passing Parallel Programs. Proc. DAPSYS 98, Future Generation Computer Systems, North-Holland, Vol. 16, No. 6, pp. 597–607 (April 2000).
R. Kobler, D. Kranzlmüller, J. Volkert. Debugging OpenMP Programs Using Event Manipulation. Proc. WOMPAT 2001, Intl. Workshop on OpenMP Applications and Tools, West Lafayette, Indiana, USA, pp. 81–89 (July 2001).
D. Kranzlmüller, S. Grabner, and J. Volkert. Debugging with the MAD Environment. Journal of Parallel Computing, Elsevier, Vol. 23, No. 1–2, pp. 199–217 (April1997).
D. Kranzlmüller. Event Graph Analysis for Debugging Massively Parallel Programs. Ph.D. thesis, GUP Linz, Johannes Kepler University Linz, Austria (September 2000) http://www.gup.uni-linz.ac.at/~dk/thesis.
D. Kranzlmüller, Ch. Schaubschläger, and J. Volkert. An Integrated Record&Replay Mechanism for Nondeterministic Message Passing Programs. Proc. EuroPVMMPI 2001, Springer, LNCS, Vol. 2131, pp. 192–200 (2001).
D. Kranzlmüller and J. Volkert. NOPE: A Nondeterministic Program Evaluator. Proc. of ACPC’ 99, 4th Intl. ACPC Conference, Springer, LNCS, Vol. 1557, Salzburg, pp. 490–499 (Feb. 1999).
T. J. LeBlanc and J.M Mellor-Crummey. Debugging Parallel Programs with Instant Replay. IEEE Transactions on Computers, Vol. C-36, No. 4, pp. 471–481 (April1987).
Ch.E. McDowell and D. P. Helmbold. Debugging Concurrent Programs. ACM Computing Surveys, Vol. 21, No. 4, pp. 593–622 (December 1989).
Message Passing Interface Forum (MPIF). MPI: A Message-Passing Interface Standard. Technical Report, University of Tennessee, Knoxville, June 1995. http://www.mpi-forum.org/.
R.H. B. Netzer, T.W. Brennan, and S.K. Damodaran-Kamal. Debugging Race Conditions in Message-Passing Programs. Proc. SPDT 96, ACM SIGMETRICS Symposium on Parallel and Distribution Tools, Philadelphia, PA, USA pp. 31–50 (May 1996).
R.H.B. Netzer and B.P. Miller. Optimal Tracing and Replay for Debugging Message-Passing Parallel Program. Proc. Supercomputing 92, Minneapolis, MN, USA, pp. 502–511 (November 1992).
M. Oberhuber. Elimination of Nondeterminacy for Testing and Debugging Parallel Programs. Proc. AADEBUG’ 95, 2nd International Workshop on Automated and Algorithmic Debugging, Saint Malo, France, pp. 315–316 (May 1995).
M. Ronsse, K. DeBosschere. RecPlay: A Fully Integrated Pratical Record/Replay System. ACM Transactions on Computer Systems, Vol. 17, No. 2, pp. 133–152 (May 1999).
M. A. Ronsse, K. De Bosschere, and J. Chassin de Kergommeaux. Execution Replay and Debugging. Proc. AADEBUG 2000, 4th Intl. Workshop on Automated Debugging, Munich, Germany, pp. 5–18 (August 2000).
D. F. Snelling and G.-R. Hoffmann. A Comparative Study of Libraries for Parallel Processing. Proc. Intl. Conf. on Vector and Parallel Processors, Computational Science III, Parallel Computing, Vol. 8(1–3), pp. 255–266 (1988).
K.C. Tai, R. H. Carver, and E. E. Obaid. Debugging Concurrent Ada Programs by Deterministic Execution. IEEE Transactions on Software Engineering, Vol. 17, No. 1, pp. 45–63 (January 1991).
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2002 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Kranzlmüller, D., Schulz, M. (2002). Notes on Nondeterminism in Message Passing Programs. In: Kranzlmüller, D., Volkert, J., Kacsuk, P., Dongarra, J. (eds) Recent Advances in Parallel Virtual Machine and Message Passing Interface. EuroPVM/MPI 2002. Lecture Notes in Computer Science, vol 2474. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45825-5_53
Download citation
DOI: https://doi.org/10.1007/3-540-45825-5_53
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-44296-7
Online ISBN: 978-3-540-45825-8
eBook Packages: Springer Book Archive