Dotzler G, Veldema R, Klemm M (2010)
Publication Language: English
Publication Type: Conference contribution, Original article
Publication year: 2010
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
ISBN: 978-1-60558-964-0
URI: http://www2.informatik.uni-erlangen.de/publication/download/DVK10.pdf
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.
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