Extending Automatic Parallelization to Optimize High-Level Abstractions for Multicore
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. C++ applications using high-level abstractions, such as STL containers and complex user-defined 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 automatically parallelize C++ applications using ROSE, a multiple-language source-to-source compiler infrastructure which preserves the high-level abstractions and gives us access to their semantics. Several representative parallelization candidate kernels are used to explore semantic-aware parallelization strategies for high-level abstractions, combined with extended compiler analyses. Those kernels include an array-base computation loop, a loop with task-level parallelism, and a domain-specific tree traversal. Our work extends the applicability of automatic parallelization to modern applications using high-level abstractions and exposes more opportunities to take advantage of multicore processors.
- Research Organization:
- Lawrence Livermore National Laboratory (LLNL), Livermore, CA (United States)
- Sponsoring Organization:
- USDOE
- DOE Contract Number:
- W-7405-ENG-48
- OSTI ID:
- 957178
- Report Number(s):
- LLNL-CONF-409406; TRN: US201007%%598
- Resource Relation:
- Journal Volume: 5568; Conference: Presented at: International Workshop on OpenMP, Dresden, Germany, Jun 03 - Jun 05, 2009
- Country of Publication:
- United States
- Language:
- English
Similar Records
Automatic Parallelization Using OpenMP Based on STL Semantics
Applying Loop Optimizations to Object-oriented Abstractions Through General Classification of Array Semantics