TY - GEN
T1 - Fast and Highly Optimizing Separate Compilation for Automatic Parallelization
AU - Kawasumi, Tohma
AU - Tamura, Ryota
AU - Asada, Yuya
AU - Han, Jixin
AU - Mikami, Hiroki
AU - Kimura, Keiji
AU - Kasahara, Hironori
N1 - Publisher Copyright:
© 2019 IEEE.
PY - 2019/7
Y1 - 2019/7
N2 - Automatic parallelization by a compiler is a promising approach for fully utilizing a multicore processor. Without compiler support, a programmer must simultaneously take into account parallelism in a program and memory hierarchy utilization. However, the possibility of parallelization and optimization across multiple compilation units is limited due to the lack of interprocedural analysis information at the compile time. This is a serious challenge surrounding parallelizing practical programs because they usually consist of multiple compilation units and employ separate compilation to ensure program maintainability and reduce the recompilation time. In this paper, for automatic parallelization by a compiler, we propose a separate compilation method that enables parallelization across multiple compilation units and minimizes recompilation time by providing information about the analysis along with an object file for each compilation unit at the compile time. We also propose an automatically parallelizing compilation flow with analysis information. The experimental evaluation using large size real control system programs from industry shows the proposed technique can obtain 29% better performance than the separate compilation without the proposed method, and reduce compilation time by up to 90% with only 1% of performance loss, compared with the compilation for the fully unified source code into a single compilation unit.
AB - Automatic parallelization by a compiler is a promising approach for fully utilizing a multicore processor. Without compiler support, a programmer must simultaneously take into account parallelism in a program and memory hierarchy utilization. However, the possibility of parallelization and optimization across multiple compilation units is limited due to the lack of interprocedural analysis information at the compile time. This is a serious challenge surrounding parallelizing practical programs because they usually consist of multiple compilation units and employ separate compilation to ensure program maintainability and reduce the recompilation time. In this paper, for automatic parallelization by a compiler, we propose a separate compilation method that enables parallelization across multiple compilation units and minimizes recompilation time by providing information about the analysis along with an object file for each compilation unit at the compile time. We also propose an automatically parallelizing compilation flow with analysis information. The experimental evaluation using large size real control system programs from industry shows the proposed technique can obtain 29% better performance than the separate compilation without the proposed method, and reduce compilation time by up to 90% with only 1% of performance loss, compared with the compilation for the fully unified source code into a single compilation unit.
KW - link time optimization
KW - parallelizing compiler
KW - program analysis
UR - http://www.scopus.com/inward/record.url?scp=85092044525&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85092044525&partnerID=8YFLogxK
U2 - 10.1109/HPCS48598.2019.9188148
DO - 10.1109/HPCS48598.2019.9188148
M3 - Conference contribution
AN - SCOPUS:85092044525
T3 - 2019 International Conference on High Performance Computing and Simulation, HPCS 2019
SP - 478
EP - 485
BT - 2019 International Conference on High Performance Computing and Simulation, HPCS 2019
PB - Institute of Electrical and Electronics Engineers Inc.
T2 - 2019 International Conference on High Performance Computing and Simulation, HPCS 2019
Y2 - 15 July 2019 through 19 July 2019
ER -