Compactly representing parallel program executions

  • Authors:
  • Ankit Goel;Abhik Roychoudhury;Tulika Mitra

  • Affiliations:
  • National University of Singapore, Republic of Singapore;National University of Singapore, Republic of Singapore;National University of Singapore, Republic of Singapore

  • Venue:
  • Proceedings of the ninth ACM SIGPLAN symposium on Principles and practice of parallel programming
  • Year:
  • 2003

Quantified Score

Hi-index 0.00

Visualization

Abstract

Collecting a program's execution profile is important for many reasons: code optimization, memory layout, program debugging and program comprehension. Path based execution profiles are more detailed than count based execution profiles, since they present the order of execution of the various blocks in a program: modules, procedures, basic blocks etc. Recently, online string compression techniques have been employed for collecting compact representations of sequential program executions. In this paper, we show how a similar approach can be taken for shared memory parallel programs. Our compaction scheme yields one to two orders of magnitude compression compared to the uncompressed parallel program trace on some of the SPLASH benchmarks. Our compressed execution traces contain detailed information about synchronization and control/data flow which can be exploited for post-mortem analysis. In particular, information in our compact execution traces are useful for accurate data race detection (detecting unsynchronized shared variable accesses that occurred in the execution).