8. Java MPI

Neben PVM (Parallel Virtual Machines), das wir in der ersten Auflage noch besprochen haben, erfreut sich in den letzten Jahren der Message Passing Interface (MPI)-Standard einer steigenden Beliebtheit im High Performance Computing. MPI ist zunächst nur eine Spezifikation eines Kommunikationsmodells, es ist keine Computersprache und kein Produkt [MPI94,MPI97]. Allerdings bieten praktisch alle HPC-Computerhersteller eigene Implementierungen von MPI an und es existieren zwei `freie' Implementierungen [ACG$^+$00,SMML00]. MPI kann nach der Spezifikation zusammen mit FORTRAN und C/C++ eingesetzt werden. Das Java Grande Forum bemüht sich seit 1998 um die Einbeziehung von Java in die MPI-Spezifikation [CGJ$^+$98].

MPI definiert Funktionen

Bei der Kommunikationshardware wird insbesondere TCP/IP neben speziellen Highspeed-Netzwerken unterstützt. MPI 1.0 enthält keine Definitionen, wie MPI-Programme gestartet und verwaltet werden sollen, hierfür ist man auf die Unterstützung der jeweiligen Anbieter angewiesen.

MPI 2.0

Bei der Kombination von MPI und Java werden zwei Wege beschritten:

Der erste Weg hätte den Vorteil, dass viele Java-Techniken wie RMI, JMS und Jini für MPI nutzbar wären [BC99]; es gab aber bis 2007 keine (die MPI und Java Gemeinde) zufrieden stellende Implementierung.

Der zweite Weg hat den Vorteil, dass man auf eine ausgereifte und angepasste MPI-Implementierung zurückgreifen kann, aber aus Sicht von Java hat man immer mit einer zweistufigen Implementierung zu kämpfen.

Bis 2005 wurde das frei verfügbare auf TCP/IP basierende MPICH [ACG$^+$00] und als Java-Anbindung javaMPI [KLL$^+$99] eingesetzt. (Neben MPI 1.2 wurde die Verwendung von Java-Objekt-Serialisierung für die Kommunikation unterstützt.)

Seit 2007 wird javaMPI nicht mehr weiter entwickelt und es gibt jetzt eine reine Java Implementierung von MPI in Java MPJ Express.

Ab 2004 wird an der Konvergenz von MPICH und LAM/MPI gearbeitet. Die neue Software OpenMPI wird von der HPC Community in der ganzen Welt weiterentwickelt. Es findet eine enge Abstimmung mit der MPI Standardisierung über das MPI Forum statt.


Heinz Kredel
2017-05-07