2020
DOI: 10.1007/s10766-020-00660-4
|View full text |Cite
|
Sign up to set email alerts
|

Pure Functions in C: A Small Keyword for Automatic Parallelization

Abstract: The need for parallel task execution has been steadily growing in recent years since manufacturers mainly improve processor performance by increasing the number of installed cores instead of scaling the processor's frequency. To make use of this potential, an essential technique to increase the parallelism of a program is to parallelize loops. Several automatic loop nest parallelizers have been developed in the past such as PluTo. The main restriction of these tools is that the loops must be statically analyza… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1

Citation Types

0
2
0

Year Published

2022
2022
2024
2024

Publication Types

Select...
2
1

Relationship

0
3

Authors

Journals

citations
Cited by 3 publications
(2 citation statements)
references
References 30 publications
0
2
0
Order By: Relevance
“…Purity analysis [3,20] identifies side-effect free functions, and is imperative for parallelization of otherwise dependencefree loops consisting of calls to functions that may be impure. Süß et al propose a C extension [22] that marks pure function calls to support parallelization of polyhedral loops. AutoTornado implements a stand-alone purity analysis component (which works for recent versions of Java, unlike prior implementations in Soot), and hence naturally supports programs containing function calls inside Java for loops.…”
Section: Related Workmentioning
confidence: 99%
“…Purity analysis [3,20] identifies side-effect free functions, and is imperative for parallelization of otherwise dependencefree loops consisting of calls to functions that may be impure. Süß et al propose a C extension [22] that marks pure function calls to support parallelization of polyhedral loops. AutoTornado implements a stand-alone purity analysis component (which works for recent versions of Java, unlike prior implementations in Soot), and hence naturally supports programs containing function calls inside Java for loops.…”
Section: Related Workmentioning
confidence: 99%
“…Fully automated parallelization of sequential program is challenging because it requires complex program analysis, and the best solution may be reliant on parameter values unknown at the time of compilation. Automatic parallelization had been explored and applied in various fields, such as Machine Learning for computation graphs, 29 to develop a source-to-source compiler for JavaScript code, 30 distributed virtual machine, 31 additional parallelization of existing MPI programs, 32 in stream processing applications, 33 in ubiquitous machine learning accelerator, 34 for creating C extension which helps to identify additional parallelization opportunities, 35 and so forth. When the system cannot discover dependencies at build time, speculative parallelization [36][37][38] is used to automatically parallelize loops.…”
Section: Introductionmentioning
confidence: 99%