Abstract
Existing approaches to automatic parallelization produce good results in specific domains. Yet, it is unclear how to integrate their individual strengths to match the demands and opportunities of complex software. This lack of integration has both practical reasons, as integrating those largely differing approaches into one compiler would impose an engineering hell, as well as theoretical reasons, as no joint cost model exists that would drive the choice between parallelization methods. By reducing the problem of generating parallel code from a program dependence graph to integer linear programming, generalized task parallelization integrates central aspects of existing parallelization approaches intoa single unified framework. Implemented ontop of LLVM, the framework seamlessly integrates enabling technologies such as speculation, privatization, and the realization of reductions. Evaluating our implementation on various C programs from different domains, we demonstrate the effectiveness and generality of generalized task parallelization. On a quad-core machine with hyperthreading we achieve speedups of up to 4.6×.
Author supplied keywords
Cite
CITATION STYLE
Streit, K., Doerfert, J., Hammacher, C., Zeller, A., & Hack, S. (2015). Generalized task parallelism. ACM Transactions on Architecture and Code Optimization, 12(1). https://doi.org/10.1145/2723164
Register to see more suggestions
Mendeley helps you to discover research relevant for your work.