posted on 2025-03-03, 11:19authored byFabian Kreppel, Lars NagelLars Nagel, Tim Süß
The parallel execution of program parts is becoming more and more important because of the change in computer architectures. Since the clock rate of processors cannot be pushed much further for economical and physical reasons, the number of cores per processor is increased. A powerful method of parallelization is the parallel execution of polyhedral for-loops. Tools for automatic parallelization target such loops, but cannot parallelize them if functions are called in them. Since side-effect-free functions can be called without risk, a recent extension of the C programming language makes it possible to mark and verify such pure functions so that they can be ignored in the parallelization process. In this work we present a newly developed compiler that checks functions for side-effect freeness, determines parallelizable for-loops and hides the use of side-effect-free functions within those loops from the parallelization tool. OpenACC is a standard aiding parallel programming for CPUs, GPUs and other accelerators. Our evaluation shows that speedups of up to 16.82 can be achieved by automatic parallelization with pure and OpenACC.
History
School
Science
Department
Computer Science
Published in
2020 International Conference on High Performance Computing & Simulation (HPCS 2020)
Publisher
2020 International Conference on High Performance Computing & Simulation (HPCS 2020)