Parallel programs can be characterized by task graphs encoding instructions, memory accesses, and the parallel work's dependencies, while representing any threading library and architecture. This article presents Contech, a high performance framework for generating dynamic task graphs from arbitrary parallel programs, and a novel representation enabling programmers and compiler optimizations to understand and exploit program aspects. The Contech framework supports a variety of languages (including C, C++, and Fortran), parallelization libraries, and ISAs (including ×86 and ARM). Running natively for collection speed and minimizing program perturbation, the instrumentation shows 4× improvement over a Pin-based implementation on PARSEC and NAS benchmarks.
ACM Reference Format:Brian P. Railing, Eric R. Hein, and Thomas M. Conte. 2015. Contech: Efficiently generating dynamic task graphs for arbitrary parallel programs. ACM Trans.