Capturing and analyzing the execution control flow of OpenMP applications

  • Authors:
  • Karl Fürlinger;Shirley Moore

  • Affiliations:
  • Computer Science Division, EECS Department, University of California at Berkeley, Berkeley, CA;Innovative Computing Laboratory, EECS Department, University of Tennessee, Knoxville, Knoxville, TN

  • Venue:
  • International Journal of Parallel Programming
  • Year:
  • 2009

Quantified Score

Hi-index 0.00

Visualization

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.