Loughborough University
Browse

Enabling automatic OpenACC program parallelization using pure functions

Download (433.74 kB)
conference contribution
posted on 2025-03-03, 11:19 authored by Fabian 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)

Version

  • AM (Accepted Manuscript)

Acceptance date

2021-02-18

Publication date

2021-03-27

Notes

Conference website no longer available.

Language

  • en

Location

Online

Event dates

22nd March 2021 - 27th March 2021

Depositor

Dr Lars Nagel. Deposit date: 27 July 2021

Usage metrics

    Loughborough Publications

    Categories

    No categories selected

    Exports

    RefWorks
    BibTeX
    Ref. manager
    Endnote
    DataCite
    NLM
    DC