Table of Contents
Fetching ...

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.

Dynamic Detection of Inefficient Data Mapping Patterns in Heterogeneous OpenMP Applications

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 ( 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 ), with speedups up to 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.
Paper Structure (65 sections, 5 figures, 6 tables, 5 algorithms)

This paper contains 65 sections, 5 figures, 6 tables, 5 algorithms.

Figures (5)

  • Figure 1: Runtime interactions of OMPDataPerf with a program linked to LLVM's libomp OpenMP runtime offloading to an NVIDIA GPU.
  • Figure 2: Runtime overhead when analyzing with OMPDataPerf for different input sizes. (lower is better)
  • Figure 3: Peak space overhead in Bytes allocated when analyzing with OMPDataPerf for different input sizes. (lower is better)
  • Figure 4: Predicted Speedup vs Actual Speedup. Color intensity indicates input size (light=Small, dark=Large). Points close to the dashed line indicate that OMPDataPerf accurately predicted the optimization potential of the program.
  • Figure 5: Average sequential throughput vs data size. (higher is better)

Theorems & Definitions (4)

  • definition 1
  • definition 2
  • definition 3
  • definition 4