The transformation of serial C-programs for their parallelization

Authors

N.A. Kataev, A.S. Kolganov, YU.G. Zykov

Annotation

The parallelization often requires a significant transformation of  program, including at the source code level, and the need for conversion is determined by the capabilities of the selected parallel programming technology. One of the important transformations is the substitution of procedures in C programs, namely, replacing a procedure call by its code with all substituted arguments. This transformation allows to reduce the overhead associated with the procedure call when running the program, and at the stage of static analysis and compilation makes it possible to apply various optimizations, including parallelizing ones, without real interprocedural analysis. The use of this optimization at the source code level will allow the SAPFOR system to determine more effecient schemes of the user program parallelization. The corresponding module for the SAPFOR system was implemented in C++ using the LLVM and Clang infrastructure and tested on tests from the NAS Parallel Benchmarks.

The work was funded by the Russian Foundation for Basic Research, projects 16-07-01067, 17-01-00820 and 18-01-00851.

Key words

SAPFOR, parallelization of programs, transformation of programs.

Language

Russian

Reference

N.A. Kataev, A.S. Kolganov, YU.G. Zykov. The transformation of serial C-programs for their parallelization // Parallel computing technologies - XII international conference, Pavt ' 2018, Rostov-on-don, 2-6 April 2018 Short articles and poster descriptions., Chelyabinsk: Publishing center SUSU, 2018, P. 408-408