Abstract
Nondeterminism in parallel programs can lead to different results in successive executions even if the same input is supplied. In order to allow debugging of such programs, some kind of replay technique is required. During an initial record phase a program’s execution is monitored and information about occurring events is stored in trace files. During subsequent replay steps the traces are used to reproduce an equivalent execution. The problem is that a trace describes one particular execution and therefore limits the user’s analysis abilities to this case. Other execution paths can only be analyzed if corresponding program runs can be monitored. This problem is addressed by the nondeterministic program evaluator NOPE, which extends traditional replay to automatically generate other possible execution paths. The idea is to perform combinatorial event manipulation of racing messages on an initial trace to enforce different event orders during replay. If each permutation is tested, different execution paths with previously unknown results and hidden errors may be revealed.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Damodaran-Kamal, S.K. and Francioni, J.M., ”Testing Races in Parallel Programs with an OtOt Strategy”, Proc.1994 Intl. Symp. on Software Testing and Analysis, Seattle, WA (1994).
Dekel, E., Nassimi, D. and Sahni, S., ”Parallel Matrix and Graph Algorithms”, Siam Journal on Computing, Vol. 10, No. 4, pp. 657–675 (Nov. 1981).
Gait, J., ”The Probe Effect in Concurrent Programs”, IEEE Software-Practise and Experience, Vol. 16(3), pp. 225–233 (March 1986).
Geist, A., Beguelin, A., Dongarra, J., Joang, W., Manchek, R. and Sunderam, V., ”PVM 3 User’s Guide and Reference Manual”, Techn. Rep. ORNL/TM-12187, Oak Ridge Natl. Lab., Oak Ridge, TN (May 1994).
Helmbold, D.P. and McDowell, C.E. ”Race Detection-Ten Years Later”, in: Simmons, M.L. et al (Eds.), ”Debugging and Performance Tuning for Parallel Computing Systems”, IEEE CS Press, Los Alamitos, CA, pp. 101–126 (1996).
Kranzlmüller, D., Grabner, S. and Volkert, J., ”Event Graph Visualization for Debugging Large Applications”, Proc. of SPDT’96, SIGMETRICS Symposium on Parallel and Distributed Tools, Philadelphia, PA, pp. 108–117 (May 1996).
Kranzlmüller, D., Grabner, S. and Volkert, J., ”Debugging with the MAD Environment”, Parallel Computing, Vol. 23, Nos. 1–2, pp. 199–217 (Apr. 1997).
Lamport, L., ”Time, Clocks, and the Ordering of Events in a Distributed System”, Comm. ACM, pp. 558–565 (July 1978).
LeBlanc, T.J. and Mellor-Crummey, J.M., ”Debugging Parallel Programs with Instant Replay”, IEEE Trans. Comp., Vol. C-36, No. 4, pp. 471–481 (Apr. 1987).
Leu, E., Schiper, A., and Zramdini, A., ”Execution Replay on Distributed Memory Architectures”, Proc. 2nd IEEE Symp. on Parallel & Distributed Processing, Dallas, TX, pp. 106–112 (Dec. 1990).
Malony, A.D. and Reed D.A., ”Models for Performance Perturbation Analysis”, Proc. ACM/ONR Workshop on Parallel and Distributed Debugging, ACM SIGPLAN Notices, Vol. 26, No. 12, pp. 15–25 (Dec. 1991).
Message Passing Interface Forum, ”MPI: A Message-Passing Interface Standard-Version 1.1”, http://www.mcs.anl.gov/mpi/ (June 1995).
nCUBE Corporation, ”nCUBE 2 Programmer’s Guide” (1992).
Netzer, R.H.B. and Miller, B.P., ”Optimal Tracing and Replay for Message-Passing Parallel Programs”, Supercomputing’ 92, Minneapolis, MN (Nov. 1992).
Ronsse, M.A. and Kranzlmüller, D., ”RoltMP-Replay of Lamport Timestamps for Message Passing Systems”, Proc. 6th EUROMICRO Workshop on Parallel and Distributed Processing, Madrid, Spain, pp. 87–93, (Jan. 21–23, 1998).
Snelling, D.F. and Hoffmann, G.-R., ”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).
Wasserman, H. and Blum, M., ”Program result-checking: a theory of testing meets a test of theory”, Proc. 35th IEEE Symp. Foundations of Computer Science, pp. 382–392 (1994).
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1999 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Kranzlmüller, D., Volkert, J. (1999). NOPE: A Nondeterministic Program Evaluator. In: Zinterhof, P., Vajteršic, M., Uhl, A. (eds) Parallel Computation. ACPC 1999. Lecture Notes in Computer Science, vol 1557. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-49164-3_47
Download citation
DOI: https://doi.org/10.1007/3-540-49164-3_47
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-65641-8
Online ISBN: 978-3-540-49164-4
eBook Packages: Springer Book Archive