Rootbeer is an open source project that automatically parallelizes Java programming code.
Syracuse University Ph.D. candidate Philip C. Pratt-Szeliga, supported by faculty advisors James W. Fawcett and Roy D. Welch, have introduced GPU-parallel programming to the Java ecosphere. The new Rootbeer compiler allows programmers who have wanted to exploit the processing power of SIMD GPUs but lacked specific skills with CUDA, DirectCompute OpenCL, or C++AMP access to the technology.
For researchers, scientists, and engineers who are not familiar with the complications of parallel programming, being able to use a high-level language like Java could open the door to a variety of new projects. Rootbeer, the developers say, supports multi-dimensional arrays, composite objects, static fields, and dynamic memory allocation, as well as synchronized methods, while automatically parallelizing the program code and launching the GPU kernel.
“When converting a serial program to a parallel program that can run on a graphics processing unit, the developer must choose what functions will run on the GPU,” explains Pratt-Szeliga. “For each function the developer chooses, he or she needs to manually write code to serialize state to GPU memory, define the kernel code that the GPU will execute, control the kernel launch, and deserialize state back to CPU memory.”
Rootbeer is open source software licensed under the GNU General Public License. With it developers can write programs in Java, without having to worry about the underlying hardware. In its initial implementation, Rootbeer converts Java Bytecode to CUDA.
More information: http://chirrup.org/