Message Passing Interface Developer's and User's Conference (MPIDC '99)

Atlanta, Georgia, March 9-12, 1999. Trip report by Bryan Carpenter.

The third in a series of conferences centering on design, implementation, and realization of cluster parallel and dedicated parallel message passing systems, centering originally on the standards of the MPI Forum.

There were about 20 formal papers, plus 3 panels. NPAC had two papers about Java and MPI---one presented by our collaborator Vladimir Getov from Westminster and one presented by me. We also participated in the final panel on Java MPI issues. Attendance was good for a workshop of this kind---between 40 and 50 participants.

Java and MPI

On Friday Vladimir Getov gave a talk about the Java Grande efforts to standarize a Java binding for MPI, then I gave a talk on some of the detailed issues about describing message buffers in Java bindings---in particular about using object serialization to marshal data. After lunch, the workshop closed with an informal ``panel'' on MPI for Java.

There seemed to be a good amount of interest or curiosity concerning this area---most of the attendees stayed on for the Friday afternoon session, which was a good sign. However, the most vocal people were negative about whether it made sense to start an ``official'' MPI standard for Java yet. The impression seemed to be that this is still a research area. (Unfortunately my talk in the morning concentrated on the areas where the best solutions aren't completely obvious. In future maybe I'll emphasize more that most of MPI fits easily into Java!)

I don't believe there was any objection to the idea that Java Grande should continue its efforts with MPI, including defining its own standard. Several individuals expressed interest in Java. We agreed with Tony Skjellum and George Crawford that we should continue our efforts to agree a common API, which would be separately implemented at Syracuse and at MPI Software Technology (who sponsored the workshop).

Other talks

Wednesday morning was about ``performance and interoperability''.

J.B. White III gave a talk about overlapping communications, which he divided into synchronization overlap---often needed for correctness---and data operlap, in which data is physically sent in parallel with computation---desirable for performance. Conclusion was that in typical current implementations of MPI, synchronization overlap is implemented with varying degrees of efficiency, but true data overlapping usually isn't implemented. Overlap is unlikely to improve performance, even though it may be necessary for correctness.

John Hagedorn of NIST gave a talk about the Interoperable MPI protocol (IMPI). This was one of the popular topics of the workshop. It is a protocol to allow compute domains running MPI implementations from different vendors to interact more or less transparently. Vendors must add support for IMPI to their MPI products. The programmer sees a global COMM_WORLD spanning all connected parallel computers. A lot of the work in IMPI seems to go into supporting MPI collective operations on these heterogenous systems.

There was a talk by Rossen Dimitrov about implementing MPI on top of the Virtual Interace (VI) network architecture supported by various vendors (Compaq, Intel, Microsoft). The OS is supposed to be removed from the critical path. There is support for noncontiguous data transfers (so presumably it should be a good target for implementing MPI derived datatypes).

Bill Gropp gave a talk about improving the performance of derived datatypes. Benchmarks show that current performance is often very bad---it's often better for the user to explicitly copy noncontiguous data to a contiguous buffer. A scheme was proposed which at least bought the derived datatypes performance into line with manual packing. Of course derived datatypes are supposed to be better than that. In some vendors implementations they are, but this isn't the typical situation, apparently.

There were two talks about particular MPI implementations, then two talks about implementing MPI with optimized algorithms for metacomputing, one by Edgar Gabriel from Stuttgart and one by Thilo Kielmann from Amsterdam. Again there was a lot of emphasis on implementing MPI collective operations efficiently in clustered systems.

Thursday started with a panel about IMPI.

Two interesting talks were ``sociological'' in one way or another...

Rolf Rabenseifner of Stuttgart High Performance Computing Center had developed a lightweight profiling wrapper to MPI which was used by essentially all their users for six months. He had statistics on how many times each MPI function had been called over that period, and how much total time had been spent in each function. Unfortunately we don't have the proceedings including the detailed tables yet. From the slides it appeared that collective operations were called at least as often as point-to-point communications, and they accounted for more of the CPU time.

Elspeth Minty from Edinburgh gave a talk about the ``Social Science Benchmark''. This fits a simple model to large datasets describing peoples patterns of travel between towns and countries. The Edinburgh contribution was to convert an original point-to-point based implementation to use collective communication, resulting in shorter code and better performance. (I think this would be a good example for HPJava.)

There was a panel about the DARPA Data Reorganization Standard effort. Apparently this is concerned with optimizing simple distributed data redistributions for embedded applications like image processing (collective communications showing up again).

William George of NIST talked about dynamic load balancing in his distributed array library, DParLib. This has various similarities to our PCRC libraries, although it is more directly application oriented.

Friday started with a talk by Ken Thomas of Southampton about an MPI binding for Ada-95. Many of the issues he encountered are similar to issues in mpiJava. He had more some good examples of algorithms using collective communications (which I intend to look into for HPJava). There was a talk about a COM interface to MPI by Yoginder Dandas of Mississippi State.