Topologies' - computational messaging for multicomputers

The programming of a large-scale multicomputer that exhibits an interconnection structure known to the applications programmer (e.g. a hypercube or mesh) requires the explicit construction and use of complex communication structures for connecting the application's parallel tasks. Such structures are used for a wide variety of functions, including the exchange of data or control information relevant to the tasks' computations and/or communications required for task synchronization, message forwarding/filtering under program control, and others. Topologies is an operating system construct with which programmers may efficiently implement arbitrary communication graphs linking multiple tasks of a parallel program. In addition, with each topology may be associated user-defined services, which may perform computations for communications traversing the topology. For example, application-dependent services may compute global sums or minima for values being communicated among the tasks linked by a topology, and the operating system or programmer may use a topology's concatenation service in the implementation of monitoring, file storage, or virtual terminal services. Communication topologies are currently implemented as an extension of the Intel iPSC hypercube's operating system kernel and are used with several applications programs, including a large finite element analysis program used for metalforming applications (termed ALPID). Future extensions concern the restructuring of the operating system kernel to support services of different 'weights' and hardware support for the efficient execution of selected services in conjunction with message routing.

[1]  Peter M. Schwarz,et al.  Experience Using Multiprocessor Systems—A Status Report , 1980, CSUR.

[2]  Udi Manber,et al.  DIB—a distributed implementation of backtracking , 1987, TOPL.

[3]  Miron Livny,et al.  Distributed computation via active messages , 1985, IEEE Transactions on Computers.

[4]  Karsten Schwan,et al.  Flexible software development for multiple computer systems , 1986, IEEE Transactions on Software Engineering.

[5]  Thomas J. LeBlanc,et al.  Hierarchical Process Composition in Distributed Operating Systems , 1985, ICDCS.

[6]  Andrew A. Chien,et al.  Architecture of a message-driven processor , 1987, ISCA '87.

[7]  Dennis Gannon,et al.  The characteristics of parallel algorithms , 1987 .

[8]  Jack B. Dennis,et al.  Data Flow Supercomputers , 1980, Computer.

[9]  P. Hudak Exploring parafunctional programming: separating the what from the how , 1988, IEEE Software.

[10]  Jenq-Neng Hwang,et al.  Wavefront Array Processors-Concept to Implementation , 1987, Computer.

[11]  Larry Rudolph,et al.  A parallel scan conversion algorithm with anti-aliasing for a general-purpose ultracomputer , 1983, SIGGRAPH.

[12]  Karsten Schwan,et al.  High-performance operating system primitives for robotics and real-time control systems , 1987, TOCS.

[13]  Robert H. Thomas,et al.  Performance Measurements on a 128-Node Butterfly Parallel Processor , 1985, ICPP.

[14]  Karsten Schwan,et al.  StarOS, a multiprocessor operating system for the support of task forces , 1979, SOSP '79.

[15]  Edward F. Gehringer,et al.  The Cm* Multiprocessor Project: A Research Review , 1980 .

[16]  G. C. Fox,et al.  Solving Problems on Concurrent Processors , 1988 .

[17]  Charles L. Seitz,et al.  The cosmic cube , 1985, CACM.

[18]  Nicholas Carriero,et al.  The S/Net's Linda kernel , 1986, TOCS.

[19]  FournierAlain,et al.  A parallel scan conversion algorithm with anti-aliasing for a general-purpose ultracomputer , 1983 .

[20]  Richard T. Snodgrass,et al.  Monitoring distributed systems: a relational approach , 1982 .

[21]  Zary Segall,et al.  Workshop on performance efficient parallel programming , 1986 .

[22]  P. Sadayappan,et al.  Nearest-Neighbor Mapping of Finite Element Graphs onto Processor Meshes , 1987, IEEE Transactions on Computers.

[23]  Karsten Schwan,et al.  CHAOS-Kernel Support for Objects in the Real-Time Domain , 1987, IEEE Transactions on Computers.

[24]  K. Schwan,et al.  Process and workload migration for a parallel branch-and-bound algorithm on a hypercube multicomputer , 1989, C3P.

[25]  Karsten Schwan,et al.  A Language and System for the Construction and Tuning of Parallel Programs , 1988, IEEE Trans. Software Eng..