Hier finden Sie wissenschaftliche Publikationen aus den Fraunhofer-Instituten.

Pure functions in C: A small keyword for automatic parallelization

: Süß, Tim; Nagel, Lars; Vef, Marc-Andre; Brinkmann, Andre; Feld, Dustin; Soddemann, Thomas


Institute of Electrical and Electronics Engineers -IEEE-; Association for Computing Machinery -ACM-; IEEE Computer Society:
IEEE International Conference on Cluster Computing, CLUSTER 2017. Proceedings : 5-8 September 2017, Honolulu, Hawaii
Piscataway, NJ: IEEE, 2017
ISBN: 978-1-5386-2326-8
ISBN: 978-1-5386-2327-5
International Conference on Cluster Computing (CLUSTER) <2017, Honolulu/Hawaii>
Bundesministerium für Bildung und Forschung BMBF
01; FAST
Conference Paper
Fraunhofer SCAI ()

The need for parallel task execution has been steadily growing in recent years since manufacturers mainly improve processor performance by scaling the number of installed cores instead of the frequency of processors. To make use of this potential, an essential technique to increase the parallelism of a program is to parallelize loops. However, a main restriction of available tools for automatic loop parallelization is that the loops often have to be 'polyhedral' and that it is, e.g., not allowed to call functions from within the loops. In this paper, we present a seemingly simple extension to the C programming language which marks functions without side-effects. These functions can then basically be ignored when checking the parallelization opportunities for polyhedral loops. We extended the GCC compiler toolchain accordingly and evaluated several real-world applications showing that our extension helps to identify additional parallelization chances and, thus, to significantly enhance the performance of applications.