CCJ is a communication library that adds MPI-like message passing and collective operations to Java. Rather than trying to adhere to the precise MPI syntax, CCJ aims at a clean integration of communication into Java's object-oriented framework. For example, CCJ uses thread groups to support Java's multithreading model and it allows any data structure (not just arrays) to be communicated. CCJ is implemented entirely in Java, on top of RMI, so it can be used with any Java virtual machine.
In the paper entitled CCJ: Object-based Message Passing and Collective Communication in Java, we describe CCJ in more detail, including the API and performance measurements.(An earlier version of this paper appeared in Proc. Joint ACM Java Grande - ISCOPE 2001 Conference, Stanford University, CA, June 2-4, 2001).