p2p-mpi logo
SC08 P2P-MPI is presented at the 20th annual SC08 supercomputer conference, November 15-19, Austin, Texas. Come and see us at the INRIA booth (#2203).

P2P-MPI Entities

MPD is the controller of each computer running P2P-MPI. When someone asks for your computer to join a computation, your local MPD acts as a gatekeeper. If you accept the request, the local MPD sends to the requester some information about your local services ports, so that the remote executable may be downloaded.

A Program is a Java .class file transfered over the network to as many hosts as requested by the p2pmpirun command. Once transfered, all copies of the program are launched and synchronize on MPI.COMM_WORLD.Init().

Features

  • Offers a message-passing programming model to the programmer.
  • No need for per-OS binaries (execution of Java .class files).
  • Self-configuration of platforms for programs executions (discovery of other grid nodes is done in a Peer-to-Peer organized group).
  • Enables fault-tolerance for applications: the robustness of the execution platform (processes are transparently replicated as requested by users) is configurable by the user (ask for more or less replicas).

What is P2P-MPI ?

P2P-MPI is a middleware framework which enables to form groups of computing resources to run parallel applications. A user can request P2P-MPI to transparently find a given number of processors to run his application. The application must be developed in Java, using the P2P-MPI message passing library which conforms MPJ. P2P-MPI is oriented to desktop grids: it is runnable as a simple user (no root privilege needed) and provides a transparent mechanism for fault-tolerance through replication of processes.

Research Papers about P2P-MPI

What's New ?

Version 0.28.2 and 0.27.2 released.
0.28.2 is a bugfix releases of 0.28.0, and 0.27.2 is a backport to the single port version. From P2P-MPI 0.28.0, the communication layer has been completely rewritten to use the Java nio classes. The performances are far better but requires to be able to use a wider range of TCP ports. Hence, we call this implementation a multiple ports (MP) implementation. Previous versions required a single TCP port to better meet firewall policies requirements, and are called single port (SP) implementations. Next releases should offer both drivers in a single distribution.

Version 0.27.0 released.
P2P-MPI no longer needs JXTA. JXTA was not fully in adequation with our needs so we decided to have our own, much simpler, peer-to-peer infrastructure, which is based on the principle of SuperNode (like e.g. Gnutella). This was also an opportunity to embed network performance information about peers, and MPD now have a measure of network latency to reach each peer. In addition, a new service called the Reservation Service (RS) brings a better abstraction for host reservation.

Noticeable changes are induced by this replacement.

  • a SuperNode *must* be started first and peers must have this SuperNode configured at boot time.
  • some utilities change their names (e.g. runRDV becomes runSuperNode) and extra utilities appear (e.g. mpihost to list peers known locally). (see quick command guide : http://www.p2pmpi.org/documentation/quick.html)
  • the runVisu utility has been reworked to accomodate the new framework, and now has the extra ability to use a proxy host (which caches SuperNode information) to keep the intrusive effects of visualization very low.
  • Allocation strategy of p2pmpirun now makes use of network performance information: p2pmpirun selects peers with lowest latecy. Two variants of this strategy allow at runtime (see p2pmpirun -a) to concentrate processes on a reduced set of peers (multi-cores are targeted) or on the contrary to scatter processes on more peers (this may give more memory on the whole).
  • Last, some properties have changed in P2P-MPI.conf, so you should browse it rapidly to see if it fits your needs.

Visualization
Enhanced monitoring tool: runVisu. runVisu graph view This tool provides a view of participating peers, their respective states: are they currently available for a task, working on which task, or not responding. The tool may also be used to see how MPI processes have been mapped (which rank has been given to which computer). Last, computer icons may be clicked to get detailed caracteristics about the resource such as CPU freq, RAM available, system name, ... [This feature currently works for Linux, MacOSX and Solaris].

More information can be found here.
About P2P-MPI · Download · Documentation (Middleware) · Documentation (Programming) · Mailing list · Links · Contact · FAQ