DocumentCode :
2173650
Title :
A Light-weight API for Portable Multicore Programming
Author :
Baker, C.G. ; Heroux, M.A. ; Edwards, H.C. ; Williams, A.B.
Author_Institution :
Comp. Eng. & Energy Sci., Oak Ridge Nat. Lab., Oak Ridge, TN, USA
fYear :
2010
fDate :
17-19 Feb. 2010
Firstpage :
601
Lastpage :
606
Abstract :
Multicore nodes have become ubiquitous in just a few years. At the same time, writing portable parallel software for multicore nodes is extremely challenging. Widely available programming models such as OpenMP and Pthreads are not useful for devices such as graphics cards, and more flexible programming models such as RapidMind are only available commercially. OpenCL represents the first truly portable standard, but its availability is limited. In the presence of such transition, we have developed a minimal application programming interface (API) for multicore nodes that allows us to write portable parallel linear algebra software that can use any of the aforementioned programming models and any future standard models. We utilize C++ template meta-programming to enable users to write parallel kernels that can be executed on a variety of node types, including Cell, GPUs and multicore CPUs. The support for a parallel node is provided by implementing a Node object, according to the requirements specified by the API. This ability to provide custom support for particular node types gives developers a level of control not allowed by the current slate of proprietary parallel programming APIs. We demonstrate implementations of the API for a simple vector dot-product on sequential CPU, multicore CPU and GPU nodes.
Keywords :
C++ language; application program interfaces; linear algebra; mathematics computing; metacomputing; multiprocessing systems; parallel programming; C++ template meta-programming; GPU node; application programming interface; multicore CPU; multicore nodes; node object; parallel kernels; parallel programming; portable multicore programming; portable parallel linear algebra software; programming model; sequential CPU; vector dot-product; Application software; Graphics; Kernel; Linear algebra; Linear programming; Multicore processing; Parallel programming; Software standards; Standards development; Writing; Parallel programming; multicore architectures;
fLanguage :
English
Publisher :
ieee
Conference_Titel :
Parallel, Distributed and Network-Based Processing (PDP), 2010 18th Euromicro International Conference on
Conference_Location :
Pisa
ISSN :
1066-6192
Print_ISBN :
978-1-4244-5672-7
Type :
conf
DOI :
10.1109/PDP.2010.49
Filename :
5452412
Link To Document :
بازگشت