Title
Optimizing Task Parallelism with Library-Semantics-Aware Compilation
Abstract
With the spread of parallel architectures throughout all areas of computing, task-based parallelism is an increasingly commonly employed programming paradigm, due to its ease of use and potential scalability. Since C++ 11, the ISO C++ language standard library includes support for task parallelism. However, existing research and implementation work in task parallelism relies almost exclusively on runtime systems for achieving performance and scalability. We propose a combined compiler and runtime system approach that is aware of the parallel semantics of the C++ 11 standard library functions, and therefore capable of statically analyzing and optimizing their implementation, as well as automatically providing scheduling hints to the runtime system. We have implemented this approach in an existing compiler and demonstrate its effectiveness by carrying out an empirical study across 9 task-parallel benchmarks. On a 32-core system, our method is, on average, 11.7 times faster than the best result for Clang and GCC C++ 11 library implementations, and 4.1 times faster than an OpenMP baseline.
Year
DOI
Venue
2015
10.1007/978-3-662-48096-0_19
Lecture Notes in Computer Science
Field
DocType
Volume
Instruction-level parallelism,Computer architecture,Parallel language,Implicit parallelism,Computer science,Task parallelism,Compiler,Data parallelism,Runtime library,Distributed computing,Runtime system
Conference
9233
ISSN
Citations 
PageRank 
0302-9743
3
0.41
References 
Authors
14
3
Name
Order
Citations
PageRank
Peter Thoman17913.20
Stefan Moosbrugger230.41
Thomas Fahringer32847254.09