CORE
🇺🇦
make metadata, not war
Services
Services overview
Explore all CORE services
Access to raw data
API
Dataset
FastSync
Content discovery
Recommender
Discovery
OAI identifiers
OAI Resolver
Managing content
Dashboard
Bespoke contracts
Consultancy services
Support us
Support us
Membership
Sponsorship
Community governance
Advisory Board
Board of supporters
Research network
About
About us
Our mission
Team
Blog
FAQs
Contact us
Pure functions in C: A small keyword for automatic parallelization
Authors
Andre Brinkmann (7168145)
Dustin Feld (7169492)
+4 more
Lars Nagel (4482649)
Marc-Andre Vef (7169489)
Thomas Soddemann (64086)
Tim Suss (7168136)
Publication date
1 January 2017
Publisher
Abstract
© 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
Similar works
Full text
Open in the Core reader
Download PDF
Available Versions
Loughborough University Institutional Repository
See this paper in CORE
Go to the repository landing page
Download from data provider
oai:figshare.com:article/94045...
Last time updated on 26/03/2020