JCudaMP: OpenMP/Java on CUDA

Dotzler G, Veldema R, Klemm M (2010)


Publication Language: English

Publication Type: Conference contribution, Original article

Publication year: 2010

Journal

Publisher: IEEE

Edited Volumes: Proceedings - International Conference on Software Engineering

City/Town: Los Alamitos, CA, USA

Pages Range: 10-17

Conference Proceedings Title: Proceedings of the Third International Workshop on Multicore Software Engineering (IWMSE10)

Event location: Cape Town, South Africa ZA

ISBN: 978-1-60558-964-0

URI: http://www2.informatik.uni-erlangen.de/publication/download/DVK10.pdf

DOI: 10.1145/1808954.1808959

Abstract

We present an OpenMP framework for Java that can exploit an available graphics card as an application accelerator. Dynamic languages (Java, C#, etc.) pose a challenge here because of their write-once-run-everywhere approach. This renders it impossible to make compile-time assumptions on whether and which type of accelerator or graphics card might be available in the system at run-time. We present an execution model that dynamically analyzes the running environment to find out what hardware is attached. Based on the results it dynamically rewrites the bytecode and generates the necessary gpGPU code on-the-fly. Furthermore, we solve two extra problems caused by the combination of Java and CUDA. First, CUDA-capable hardware usually has little memory (compared to main memory). However, as Java is a pointer-free language, array data can be stored in main memory and buffered in GPU memory. Second, CUDA requires one to copy data to and from the graphics card's memory explicitly. As modern languages use many small objects, this would involve many copy operations when done naively. This is exacerbated because Java uses arrays-of-arrays to implement multi-dimensional arrays. A clever copying technique and two new array packages allow for more efficient use of CUDA. © 2010 ACM.

Authors with CRIS profile

How to cite

APA:

Dotzler, G., Veldema, R., & Klemm, M. (2010). JCudaMP: OpenMP/Java on CUDA. In Pankratius Victor; Philippsen Michael (Eds.), Proceedings of the Third International Workshop on Multicore Software Engineering (IWMSE10) (pp. 10-17). Cape Town, South Africa, ZA: Los Alamitos, CA, USA: IEEE.

MLA:

Dotzler, Georg, Ronald Veldema, and Michael Klemm. "JCudaMP: OpenMP/Java on CUDA." Proceedings of the Third International Workshop on Multicore Software Engineering (IWMSE 2010), Cape Town, South Africa Ed. Pankratius Victor; Philippsen Michael, Los Alamitos, CA, USA: IEEE, 2010. 10-17.

BibTeX: Download