Semantic-Aware Automatic Parallelization of Modern Applications Using High-Level Abstractions
Automatic introduction of OpenMP for sequential applications has attracted significant attention recently because of the proliferation of multicore processors and the simplicity of using OpenMP to express parallelism for shared-memory systems. However, most previous research has only focused on C and Fortran applications operating on primitive data types. Modern applications using high-level abstractions, such as C++ STL containers and complex user-defined class types, are largely ignored due to the lack of research compilers that are readily able to recognize high-level object-oriented abstractions and leverage their associated semantics. In this paper, we use a source-to-source compiler infrastructure, ROSE, to explore compiler techniques to recognize high-level abstractions and to exploit their semantics for automatic parallelization. Several representative parallelization candidate kernels are used to study semantic-aware parallelization strategies for high-level abstractions, combined with extended compiler analyses. Preliminary results have shown that semantics of abstractions can help extend the applicability of automatic parallelization to modern applications and expose more opportunities to take advantage of multicore processors.
- Research Organization:
- Lawrence Livermore National Laboratory (LLNL), Livermore, CA
- Sponsoring Organization:
- USDOE
- DOE Contract Number:
- W-7405-ENG-48
- OSTI ID:
- 989343
- Report Number(s):
- LLNL-JRNL-421803
- Journal Information:
- the International Journal of Parallel Programming, vol. 38, no. 5, August 23, 2010, pp. 361, Journal Name: the International Journal of Parallel Programming, vol. 38, no. 5, August 23, 2010, pp. 361 Journal Issue: 5 Vol. 38
- Country of Publication:
- United States
- Language:
- English
Similar Records
Extending Automatic Parallelization to Optimize High-Level Abstractions for Multicore
Semantic-driven Parallelization of Loops Operating on User-defined Containers