DocumentCode :
2441937
Title :
Object-oriented stream programming using aspects
Author :
Wang, Mingliang ; Parashar, Manish
Author_Institution :
NSF Center for Autonomic Comput., Rutgers Univ., Piscataway, NJ, USA
fYear :
2010
fDate :
19-23 April 2010
Firstpage :
1
Lastpage :
11
Abstract :
High-performance parallel programs that efficiently utilize heterogeneous CPU+GPU accelerator systems require tuned coordination among multiple program units. However, using current programming frameworks such as CUDA leads to tangled source code that combines code for the core computation with that for device and computational kernel management, data transfers between memory spaces, and various optimizations. In this paper, we propose a programming system based on the principles of Aspect-Oriented Programming, to un-clutter the code and to improve programmability of these heterogeneous parallel systems. Specifically, we use standard C++ to describe the core computations and aspects to encapsulate all other support parts. An aspect-weaving compiler is then used to combine these two pieces of code to generate a final program. The system modularizes concerns that are hard to manage using conventional programming frameworks such as CUDA, has a small impact on existing program structure as well as performance, and as a result, simplifies the programming of accelerator-based heterogeneous parallel systems. We also present an options pricing and an n-body simulation example program to demonstrate that programs written using this system can be successfully translated to CUDA programs for NVIDIA GPU hardware and to OpenCL programs for multicore CPUs with comparable performance. For both examples, the performance of the translated code achieved ~80% of the hand-coded CUDA programs.
Keywords :
computer graphic equipment; computer graphics; object-oriented programming; parallel programming; program compilers; C++; CUDA programs; GPU accelerator systems; NVIDIA GPU hardware; OpenCL programs; accelerator-based heterogeneous parallel systems; aspect-oriented programming; aspect-weaving compiler; code generation; computational kernel management; data transfers; hand-coded CUDA programs; heterogeneous CPU accelerator systems; high-performance parallel programming; multiple program units; object-oriented stream programming; source code; Acceleration; Hardware; Kernel; Memory management; Multicore processing; Object oriented modeling; Object oriented programming; Parallel programming; Pricing; Program processors;
fLanguage :
English
Publisher :
ieee
Conference_Titel :
Parallel & Distributed Processing (IPDPS), 2010 IEEE International Symposium on
Conference_Location :
Atlanta, GA
ISSN :
1530-2075
Print_ISBN :
978-1-4244-6442-5
Type :
conf
DOI :
10.1109/IPDPS.2010.5470472
Filename :
5470472
Link To Document :
بازگشت