static process groups, contexts, virtual topologies, point-to-point communication, collective communication, data types, parallel libraries, large-scale software, portability, Zipcode, MPI
Zipcode is a message-passing and process-management system that was designed for multicomputers and homogeneous networks of computers in order to support libraries and large-scale multicomputer software. The system has evolved significantly over the last five years, based on our experiences and identified needs. Features of Zipcode that were originally unique to it, were its simultaneous support of static process groups, communication contexts, and virtual topologies, forming the "mailer" data structure. Point-to-point and collective operations reference the underlying group, and use contexts to avoid mixing up messages. Recently, we have added "gather-send" and "receive-scatter" semantics, based on persistent Zipcode "invoices," both as a means to simplify message passing, and as a means to reveal more potential runtime optimizations.
Skjellum, Anthony; Smith, Steven G.; Doss, Nathan E.; and Leung, Alvin, "The Design and Evolution of Zipcode" (1994). Northeast Parallel Architecture Center. Paper 26.