arrow
Return

The Parallel-Semantics Program Dependence Graph for Parallel Optimization

delete2026-01-01
delete0
PRE
AI
Y
Yian Su *
B
Brian Homerding
H
Haocheng Gao
F
Federico Sossai
Y
Yebin Chon
D
David I. August
S
Simone Campanoni
DOI:10.1109/CGO68049.2026.11395217delete
deleteOriginal
deleteOriginal request for help
deleteShare
deleteSave
Abstract

Abstract

En 中文
Modern shared-memory parallel programming models, such as OpenMP and Cilk, enable developers to encode a parallel execution plan within their code. Existing compilers, including Clang and GCC, directly lower or add additional compatible parallelism on top of the developers' plan. However, when better parallel execution plans exist that are incompatible with the original plan, compilers lack the capability of disregarding it and replacing it with a better one. To address this problem, this paper introduces the parallel-semantics program dependence graph (PS-PDG), an extension of the program dependence graph (PDG) abstraction that can simultaneously represent parallel semantics derived from both the developer's original plan and the compiler's own analysis. To demonstrate the power of PSPDG, this paper also introduces GINO, an LLVM-based compiler capable of optimizing parallel execution plans using PS-PDG. Through exploring, reasoning, and implementing better parallel execution plans unlocked by PS-PDG, GINO outperforms the developer's original parallel execution plan by 46.6% at most, and by 15% on average over 56 cores across 8 benchmarks from the NAS benchmark suite.
Keywords:
IMPLEMENTATION

Journal

2
2026 IEEE/ACM INTERNATIONAL SYMPOSIUM ON CODE GENERATION AND OPTIMIZATION, CGO
IF:
0
Papers:
48
Citations:
0

Organization

P
princeton university
Scholars:
2.9K
Papers: 1.5K
Citations: 0
N
Northwestern University
Scholars:
6.1W
Papers: 5.3W
Citations: 3.9K