Abstract
The paper presents a source-to-source compiler, TRACO, for automatic extraction of both coarse- and fine-grained parallelism available in C/C++ loops. Parallelization techniques implemented in TRACO are based on the transitive closure of a relation describing all the dependences in a loop. Coarse- and fine-grained parallelism is represented with synchronization-free slices (space partitions) and a legal loop statement instance schedule (time partitions), respectively. TRACO enables also applying scalar and array variable privatization as well as parallel reduction. On its output, TRACO produces compilable parallel OpenMP C/C++ and/or OpenACC C/C++ code. The effectiveness of TRACO, efficiency of parallel code produced by TRACO, and the time of parallel code production are evaluated by means of the NAS Parallel Benchmark and Polyhedral Benchmark suites. These features of TRACO are compared with closely related compilers such as ICC, Pluto, Par4All, and Cetus. Feature work is outlined.
Keywords
- Source-to-source parallelizing compiler
- loop parallelization
- iteration space slicing
- fine- and coarse-grained parallelism
- free scheduling
- transitive closure
MSC
68N20, 65Y05, 52Bxx, 97E60, 05-XX
Cite this article
@article{cai-2315,
author = {Marek Palkowski and Wlodzimierz Bielecki},
title = {TRACO: Source-to-Source Parallelizing Compiler},
journal = {Computing and Informatics},
volume = {35},
number = {6},
pages = {1277--1306},
year = {2016},
issn = {1335-9150},
url = {https://cai.type.sk/content/2016/6/traco-source-to-source-parallelizing-compiler/}
}
TY - JOUR AU - Marek Palkowski AU - Wlodzimierz Bielecki TI - TRACO: Source-to-Source Parallelizing Compiler JO - Computing and Informatics VL - 35 IS - 6 SP - 1277 EP - 1306 PY - 2016 SN - 1335-9150 UR - https://cai.type.sk/content/2016/6/traco-source-to-source-parallelizing-compiler/ KW - Source-to-source parallelizing compiler KW - loop parallelization KW - iteration space slicing KW - fine- and coarse-grained parallelism KW - free scheduling KW - transitive closure ER -
Palkowski, M., & Bielecki, W. (2016). TRACO: Source-to-Source Parallelizing Compiler. Computing and Informatics, 35(6), 1277–1306. https://cai.type.sk/content/2016/6/traco-source-to-source-parallelizing-compiler/