Ian Foster, Moderator
Report by Bernd Mohr
This is the report of the fifth meeting of the PORTS group. The first meeting took place at a round table (literally) at Supercomputing 93. The second meeting was held in Boulder Colorado and was hosted by Dirk Grunwald. The third and fourth meeting was hosted by Ian Foster of Argonne and he also presided as moderator. The fifth meeting took place at Supercomputing 94; again as a roundtable (the table was much smaller this time, in contrast the number of people attending was much larger). Because the meeting happened during Supercomputing, the meeting time was limited to 90 minutes instead of the "normal" full day meetings.
In attendance were Ian Foster, Steve Tuecke, Brian Toonen, David Kohr, Ming Xu (Argonne), Carl Kesselman (Caltech), Dennis Gannon, Pete Beckman, Shelby Yang (Indiana University), Bernd Mohr (University of Oregon), Matthew Haines, Piyush Mehrotra (ICASE), Nikos Chrisochoides, Rakesh Krishnaiyer (Syracuse University), Marc Snir, Kevin Gildea (IBM), Paul Havlak (University of Maryland), Greg Wilson (University of Toronto), Craig Lee (Aerospace Corp.), Rich Wolski, Scott Kohn, Scott Baden (UCSD), and Bruce Irvin (University of Wisconsin).
Carl Kesselman gave a brief report on the CC++ / Nexus project. A prototype system of CC++ is now available. The Nexus runtime system was updated and includes now a ATM communication module using AA5 and a SGI and HP-UX DCE (pthreads) threads module. The IBM SP communication module was updated to use the MPL. Ian Foster added that his group started to work on performance measurements for Nexus.
Pete Beckman reported on changes in the pC++ project. The pC++ runtime system is currently being re-implemented. Its basic communication features include remote store and get and remote procedure calls. A Cray T3D port was added to the list of already supported machines.
Nikos Chrisochoides reported that they are investigating load-balancing algorithms. They are currently using ICASE's Chant software, but want to use PORTS modules as early as possible.
Dennis Gannon gave a report on the PCRC (Parallel Compiler Runtime Consortium) activities. The PCRC discusses runtime system issues related to data-parallel compilers. It looks like the PCRC wants to use the PORTS thread and communication layers and will add a new layer on top of it for describing distributed data structures. The basic execution model is SPMD using a single thread per node. Current PCRC activities concentrate on defining distributed data descriptors. As Dennis is member of both consortiums, he will act as a contact person here.
Steve Tuecke reported that they prepared a first prototype of the PORTS0 thread interface as promised last time. It is based on the Nexus thread modules and available to everyone who wants to try it out. The PORTS0 thread module consists of a subset of pthreads functions plus a library of "basic" re-entrent C library functions. The prototype has thread implementations for IBM, HP, Solaris thread as well as each system which supports pthreads, QuickThreads, or Cthreads. Pete Beckman added that Neel Sundaresan from Indiana also has a Paragon and SGI implementation which is almost PORTS0 compatible. Everyone agreed that the PORTS0 thread interface prototype is an important accomplishment of the PORTS consortium. A document describing PORTS0 is available.
Next, the discussions concentrated on communication abstractions which would be provided by PORTS. Referring to the last meetings, Carl Kesselman stated that the issue here is not what communication mechanism is used for multi-threaded programming but what abstraction is provided by the programming model. He then came forward with an new set of abstractions which originate from internal discussions of the Nexus group. He proposed the following three abstractions:
The basic idea is that based on these abstractions, all possible communication mechanisms (like RSR, point-to-point, get/put, ...) could be implemented on top of that and therefore would be an ideal base for the implementation of the PORTS communication module. He noted that the process of defining these abstractions are still in an early stage.
In the following discussion the attendees tried to clarify the definitions of the abstractions. Issues discussed included the relationship between communication endpoints and global pointers, whether communication endpoints should be opaque or not and how they would be used to implement get/put operations. It soon become clear that without a precise definition of these abstractions it was hard to discuss the issues and we also ran out of time. It was decided that Argonne/Caltech would produce a white paper about the communication abstractions based on the input raised so far. Further discussion was post-poned until the paper is available and would then first be done using e-mail and continued in the next meeting.
Greg Wilson proposed to send the paper out for comments on selected groups/persons to get input / comments from a even larger group. Most of the attendees liked the idea but thought that it was too early to do that and that we should wait until a more or less complete PORTS interface definition is available.
There were two action items discussed.
The next meeting of the Ports group will probably held before or after Frontiers 95, Feb 6-9, 1995.