Title
An empirical examination of the prevalence of inhibitors to the parallelizability of open source software systems
Abstract
An empirical study is presented that examines the potential to parallelize general-purpose software systems. The study is conducted on 13 open source systems comprising over 14 MLOC. Each for-loop is statically analyzed to determine if it can be parallelized or not. A for-loop that can be parallelized is termed a free-loop. Free-loops can be easily parallelized using tools such as OpenMP. For the loops that cannot be parallelized, the various inhibitors to parallelization are determined and tabulated. The data shows that the most prevalent inhibitor by far, is functions called within for-loops that have side effects. This single inhibitor poses the greatest challenge in adapting and re-engineering systems to better utilize modern multi-core architectures. This fact is somewhat contradictory to the literature, which is primarily focused on the removal of data dependencies within loops. Results of this paper also show that function calls via function pointers and virtual methods have very little impact on the for-loop parallelization process. Historical data over a 10-year period of inhibitor counts for the set of systems studied is also presented. It shows that there is little change in the potential for parallelization of loops over time.
Year
DOI
Venue
2016
10.1007/s10664-015-9385-5
Empirical Software Engineering
Keywords
Field
DocType
Parallelization inhibitors,Data dependency,Function calls,Function pointers,Virtual functions,Empirical study
Data dependency,Programming language,Function pointer,Computer science,Parallel computing,Software system,Virtual function,Open source software,Empirical research,Automatic parallelization
Journal
Volume
Issue
ISSN
21
3
1382-3256
Citations 
PageRank 
References 
0
0.34
26
Authors
3
Name
Order
Citations
PageRank
saleh m alnaeli163.30
Jonathan I. Maletic22329191.20
Michael L. Collard365337.26