The International Conference for High Performance Computing, Networking, Storage and Analysis
The Parallel Java 2 Library: Parallel Programming in 100% Java.
Authors: Alan R. Kaminsky (Rochester Institute of Technology)
Abstract: The Parallel Java 2 Library (PJ2) is an API and middleware for parallel programming in 100% Java on multicore parallel computers, cluster parallel computers, and hybrid multicore cluster parallel computers. In addition, PJ2 supports programming GPU accelerated parallel computers, with main programs written in Java and GPU kernels written using Nvidia’s CUDA. PJ2 also includes a lightweight map-reduce framework for big data parallel programming. PJ2 has its own job scheduling middleware that coordinates usage of a node’s or cluster’s computational resources by multiple users. Encompassing four major categories of parallel programming—multicore, cluster, GPU, and map-reduce—in a single unified Java-based API, PJ2 is suitable for teaching and learning parallel programming and for real world parallel program development.