Loughborough University
Browse
main.pdf (169.04 kB)

Pure functions in C: A small keyword for automatic parallelization

Download (169.04 kB)
conference contribution
posted on 2018-02-06, 11:49 authored by Tim Suss, Lars NagelLars Nagel, Marc-Andre Vef, Andre Brinkmann, Dustin Feld, Thomas Soddemann
© 2017 IEEE. 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.

Funding

This work was supported by the German Ministry for Education and Research under grant 01|H13004A (FAST).

History

School

  • Science

Department

  • Computer Science

Published in

Proceedings - IEEE International Conference on Cluster Computing, ICCC

Volume

2017-September

Pages

552 - 556

Citation

SUSS, T. ...et al., 2017. Pure functions in C: A small keyword for automatic parallelization. Presented at the 2017 IEEE International Conference on Cluster Computing (CLUSTER), Honolulu, HI, USA, 5-8 Sept, pp. 552-556.

Publisher

© Institute of Electrical and Electronics Engineers (IEEE)

Version

  • AM (Accepted Manuscript)

Publisher statement

This work is made available according to the conditions of the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International (CC BY-NC-ND 4.0) licence. Full details of this licence are available at: https://creativecommons.org/licenses/by-nc-nd/4.0/

Publication date

2017

Notes

© 2017 IEEE. Personal use of this material is permitted. Permission from IEEE must be obtained for all other uses, in any current or future media, including reprinting/republishing this material for advertising or promotional purposes, creating new collective works, for resale or redistribution to servers or lists, or reuse of any copyrighted component of this work in other works.

ISBN

9781538623268

ISSN

1552-5244

Language

  • en

Usage metrics

    Loughborough Publications

    Exports

    RefWorks
    BibTeX
    Ref. manager
    Endnote
    DataCite
    NLM
    DC