P2P-MPI
P2P-MPI is a middleware aimed to execute parallel programs, in particular in a grid computing environment.
P2P-MPI design adheres to the peer-to-peer paradigm: when a peer requests the execution of a parallel computation, the middleware will search for peers to form a group of volunteering computers to perform the computation. This dynamic selection of hosts before runtime is well suited to volatile environment such as grids. Similarly to peer-to-peer file sharing systems, a P2P-MPI user must accept to share its CPU before being able to request other peer CPUs. P2P-MPI currently uses JXTA to manage its peer to peer functionalities.
P2P-MPI enables the development of message-passing parallels programs: the system provides a communication library in Java following the MPJ specification, which is basically MPI for Java. In that respect, P2P-MPI is comparable to MPJ implementations such as MPJ/Ibis and MPJ Express.
P2P-MPI also integrates a fault-tolerance mechanism based on process replication, aimed at increasing the "robustness" of executions.