The conference started on Saturday with an invited talk by Don Ferguson of IBM on performance issues for Enterprise Java applications. Tom Haupt presented the first regular paper, about the Gateway system for Web-based access to HPCC resources. This was followed by a paper on Wide Area computing and a paper about mobile agents. The following session focussed on general performance issues for Java.
After lunch there was a talk from Cornell University about interfacing Java to VIA, then two talks on MPI (or "MPI-like systems", properly speaking) for Java. Glenn Judd gave a talk on general design issues in high-performance message-passing systems for Java, based largely on the Brigham Young experiences with the DOGMA system. I gave my talk about using the Object serialization paradigm to communicate objects and multidimensional arrays in Java MPI bindings.
There was a session on benchmarking including a talk by Ken Hawick (formerly of NPAC, now with the University of Adelaide) and a talk by Martin Westhead of Edinburgh University. This was followed by a poster session. My favourite poster was John Brophy's work on complex numbers (Visual Numerics).
At the conference dinner in Chinatown, Matt Welsh gave an important and inscrutable talk called "Play Safe, Go Fast: Using Java to Improve Performance".
On Sunday morning Bill Pugh talked about the Java memory model. He claims that the model for handling memory references in the presence of multithreading (Chapter 17 of the Java spec) is too complex, possibly actually broken, and will make some important compiler optimizations impossible. Pugh is well-known in the compiler world and presumably knows what he's talking about. His arguments were hard to follow, even looking at the paper afterwards. Chapter 17 is certainly strangely complicated (not quite as complicated as Chapter 3 from the original High Performance Fortran specification, though).
There was a case study about performance debugging Java programs, then a talk by Peng Wu of Illinois, who has been working with the people from IBM T.J. Watson Center on ``semantic expansion'' in Java compilers. This technique is likely to be important to make some of the Java Grande API specifications usefully efficient. The talk focussed on complex numbers. The second session on Sunday morning was about optimizing Java compilers, including one on the Jalapeno system from IBM.
After lunch a student of Michael Philippsen gave a talk about the Karlsruhe optimized RMI. This is claimed to be (almost) 100% compatible with the Sun RMI, but at least 5 times faster. It includes optimized versions of the object serialization classes. (The serialization code ought to be useful for MPI as well as RMI, although their emphasis has been different from ours. Perhaps we can combine features of our approaches.)
There was a talk about communicating distributed objects, then a talk about Javelin++. One of the distinctive features of the original Javelin was that charitable users donated their computational resources just by pointing their Web browser at a suitable URL, whereby a cycle-stealing applet was downloaded. In Javalin++, the developers have come round to the belief that applets are too limited; donors must download and run a specialized daemon that installs applications.
Bill Joy of Sun gave an invited talk in which he was very supportive of the goals of Java Grande. (Bill Joy has undoubtedly contributed more to my own productivity than any other living programmer---he wrote vi.)
Joy's talk was followed by the Java Grande panel.
In the evening I attended the benchmarking working group (BOF?) meeting, led by people from Edinburgh Parallel Computer Center. They seem to have a growing number of (mainly scientific) codes.
On Monday morning after an abortive attempt at registering early for JavaOne so we could set up demos (the booth wasn't yet built), then an attempt to prepare some Powerpoint slides (thwarted by the discovery that my laptop had died), I caught the end of the Numerics working group meeting. In the afternoon we held the first meeting of the Message-Passing working group.
The message-passing meeting started with a lecture by Marc Snir on procedures of the MPI forum. That pretty much confirmed a body of opinion that we aren't in a strong position to persuade MPIF to reconvene to ratify any API we produce. Instead we should rename our effort to (say) MPJ and proceed as a Java Grande standard. Procedures aside, there was general consensus that an early goal is be an agreed API with essentially the functionality of MPI 1.1. Many details were discussed and we agreed to meet again, probably in October, probably in Syracuse. There were about 10 attendees at this first meeting. Minutes will be posted on the java-mpi mailing list.