Abstract
An important aspect of understanding the behavior of applications with respect to their performance, overhead, and scalability characteristics is knowledge of their execution control flow. High level knowledge of which functions or constructs were executed after which other constructs allows reasoning about temporal application characteristics such as cache reuse. This paper describes an approach to capture and visualize the execution control flow of OpenMP applications in a compact way. Our approach does not require a full trace of program execution events but is instead based on a straightforward extension to the summary data already collected by an existing profiling tool. In multithreaded applications each thread may define its own independent flow of control, complicating both the recording as well as the visualization of the execution dynamics. Our approach allows for the full flexibility with respect to independent threads. However, the most common usage models of OpenMP have threads operate in a largely uniform way, synchronizing frequently at sequence points and diverging only to operate on different data items in worksharing constructs. Our approach accounts for this by offering a simplified representation of the execution control flow for threads with similar behavior.
Article PDF
Similar content being viewed by others
Avoid common mistakes on your manuscript.
References
Nagel W.E., Arnold A., Weber M., Hoppe H.-C., Solchenbach K.: VAMPIR: visualization and analysis of MPI resources. Supercomputer 12(1), 69–90 (1996)
Intel Trace Analyzer, http://www.intel.com/software/products/cluster/tanalyzer/
Pillet, V., Labarta, J., Cortes, T., Girona, S.: PARAVER: a tool to visualise and analyze parallel code. In: Proceedings of WoTUG-18: Transputer and Occam Developments, vol. 44, pp. 17–31. IOS Press, Amsterdam (1995)
Levon, J.: OProfile, A system-wide profiler for Linux systems. Homepage: http://oprofile.sourceforge.net
Itzkowitz, M., Mazurov, O., Copty, N., Lin, Y.: An OpenMP runtime API for profiling. Accepted by the OpenMP ARB as an official ARB White Paper available online at http://www.compunity.org/futures/omp-api.html
Browne S., Dongarra J., Garner N., Ho G., Mucci P.J.: A portable programming interface for performance evaluation on modern processors. Int. J. High Perform. Comput. Appl. 14(3), 189–204 (2000)
Mohr, B., Malony, A.D., Shende, S.S., Wolf, F.: Towards a performance tool interface for OpenMP: an approach based on directive rewriting. In: Proceedings of the Third Workshop on OpenMP (EWOMP’01), September 2001
Weidendorfer, J., Kowarschik, M., Trinitis, C.: A tool suite for simulation based analysis of memory access behavior. In: ICCS 2004: 4th International Conference on Computational Science, vol. 3038 of LNCS, pp. 440–447. Springer (2004)
The graph::easy web page: http://search.cpan.org/~tels/Graph-Easy/
Jin, H., Frumkin, M., Yan, J.: The OpenMP implementation of NAS parallel benchmarks and its performance. Technical Report NAS-99-011 (1999)
Hernandez, O., Liao, C., Chapman, B.: Dragon: a static and dynamic tool for OpenMP. In: Proceedings of the Workshop on OpenMP Applications and Tools (WOMPAT 2004), pp. 53–66 (2004)
Acknowledgements
This work was partially supported by US DOE SCIDAC grant #DE-FC02-06ER25761 (PERI) and NSF grant #07075433 (SDCI-POINT).
Open Access
This article is distributed under the terms of the Creative Commons Attribution Noncommercial License which permits any noncommercial use, distribution, and reproduction in any medium, provided the original author(s) and source are credited.
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
Open Access This is an open access article distributed under the terms of the Creative Commons Attribution Noncommercial License (https://creativecommons.org/licenses/by-nc/2.0), which permits any noncommercial use, distribution, and reproduction in any medium, provided the original author(s) and source are credited.
About this article
Cite this article
Fürlinger, K., Moore, S. Capturing and Analyzing the Execution Control Flow of OpenMP Applications. Int J Parallel Prog 37, 266–276 (2009). https://doi.org/10.1007/s10766-009-0100-2
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10766-009-0100-2