Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1109/PDP.2010.49guideproceedingsArticle/Chapter ViewAbstractPublication PagesConference Proceedingsacm-pubtype
Article

A Light-weight API for Portable Multicore Programming

Published: 17 February 2010 Publication History

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.

Cited By

View all
  • (2013)A classification of scientific visualization algorithms for massive threadingProceedings of the 8th International Workshop on Ultrascale Visualization10.1145/2535571.2535591(1-10)Online publication date: 17-Nov-2013
  • (2012)Tpetra, and the use of generic programming in scientific computingScientific Programming10.1155/2012/69386120:2(115-128)Online publication date: 1-Apr-2012
  • (2010)Multi-Target vectorization with MTPS c++ generic libraryProceedings of the 10th international conference on Applied Parallel and Scientific Computing - Volume 210.1007/978-3-642-28145-7_33(336-346)Online publication date: 6-Jun-2010

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image Guide Proceedings
PDP '10: Proceedings of the 2010 18th Euromicro Conference on Parallel, Distributed and Network-based Processing
February 2010
622 pages
ISBN:9780769539393

Publisher

IEEE Computer Society

United States

Publication History

Published: 17 February 2010

Author Tags

  1. Parallel programming
  2. multicore architectures

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 19 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2013)A classification of scientific visualization algorithms for massive threadingProceedings of the 8th International Workshop on Ultrascale Visualization10.1145/2535571.2535591(1-10)Online publication date: 17-Nov-2013
  • (2012)Tpetra, and the use of generic programming in scientific computingScientific Programming10.1155/2012/69386120:2(115-128)Online publication date: 1-Apr-2012
  • (2010)Multi-Target vectorization with MTPS c++ generic libraryProceedings of the 10th international conference on Applied Parallel and Scientific Computing - Volume 210.1007/978-3-642-28145-7_33(336-346)Online publication date: 6-Jun-2010

View Options

View options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media