Dynamic Detection of Inefficient Data Mapping Patterns in Heterogeneous OpenMP Applications
Luke Marzen, Junhyung Shim, Ali Jannesari
TL;DR
This work addresses data movement bottlenecks in heterogeneous OpenMP applications by introducing OMPDataPerf, a dynamic, hardware- and compiler-agnostic profiler that leverages the OMPT EMI interface to detect inefficient data mappings with minimal overhead ($5\%$ on average). It defines four concrete data-mapping patterns—duplicate transfers, round-trips, repeated allocations, and unused mappings—and synchronizes detection with precise source-location attribution. The evaluation across ten benchmarks shows low runtime overhead, small space overhead, and accurate estimation of optimization potential (average relative error $14\%$), with speedups up to $2.1\times$ in real applications and notable improvements over baseline runs. By automating detection and providing actionable feedback, OMPDataPerf accelerates optimization of heterogeneous OpenMP codes and complements existing correctness-focused tools like Arbalest-Vec.
Abstract
With the growing prevalence of heterogeneous computing, CPUs are increasingly being paired with accelerators to achieve new levels of performance and energy efficiency. However, data movement between devices remains a significant bottleneck, complicating application development. Existing performance tools require considerable programmer intervention to diagnose and locate data transfer inefficiencies. To address this, we propose dynamic analysis techniques to detect and profile inefficient data transfer and allocation patterns in heterogeneous applications. We implemented these techniques into OMPDataPerf, which provides detailed traces of problematic data mappings, source code attribution, and assessments of optimization potential in heterogeneous OpenMP applications. OMPDataPerf uses the OpenMP Tools Interface (OMPT) and incurs only a 5 % geometric-mean runtime overhead.
