Large-Scale Parallel Programming: Experience with the BBN Butterfly Parallel Processor

For three years, members of the Computer Science Department at the University of Rochester have used a collection of BBN Butterfly™ Parallel Processors to conduct research in parallel systems and applications. For most of that time, Rochester's 128-node machine has had the distinction of being the largest shared-memory multiprocessor in the world. In the course of our work with the Butterfly we have ported three compilers, developed five major and several minor library packages, built two different operating systems, and implemented dozens of applications. Our experience clearly demonstrates the practicality of large-scale shared-memory multiprocessors, with non-uniform memory access times. It also demonstrates that the problems inherent in programming such machines are far from adequately solved. Both locality and Amdahl's law become increasingly important with a very large number of nodes. The availability of multiple programming models is also a concern; truly general-purpose parallel computing will require the development of environments that allow programs written under different models to coexist and interact. Most important, there is a continuing need for high-quality programming tools; widespread acceptance of parallel machines will require the development of programming environments comparable to those available on sequential computers.

[1]  Mark A. Fanty,et al.  Computing with structured connectionist networks , 1988, CACM.

[2]  Konrad Slind,et al.  Monitoring distributed systems , 1987, TOCS.

[3]  Nicholas Carriero,et al.  Linda and Friends , 1986, Computer.

[4]  Robert J. Fowler,et al.  An integrated approach to parallel program debugging and performance analysis onlarge-scale multiprocessors , 1988, PADD '88.

[5]  Robert J. Fowler,et al.  DARPA Parallel Architecture Benchmark Study , 1986 .

[6]  Barton P. Miller,et al.  IPS: An Interactive and Automatic Performance Measurement Tool for Parallel and Distributed Programs , 1987, ICDCS.

[7]  William J. Bolosky,et al.  Mach: A New Kernel Foundation for UNIX Development , 1986, USENIX Summer.

[8]  T.J. LeBlanc,et al.  Structured message passing on a shared-memory multiprocessor , 1988, [1988] Proceedings of the Twenty-First Annual Hawaii International Conference on System Sciences. Volume II: Software track.

[9]  Mark A. Fanty A Connectionist Simulator for the BBN Butterfly Multiprocessor. , 1986 .

[10]  Thomas J. LeBlanc,et al.  SMP: A Message-Based Programming Environment for the BBN Butterfly , 1986 .

[11]  Michael L. Scott,et al.  Ant Farm: A Lightweight Process Programming Environment , 1988 .

[12]  L.A. Crowl Shared memory multiprocessors and sequential programming languages: a case study , 1988, [1988] Proceedings of the Twenty-First Annual Hawaii International Conference on System Sciences. Volume II: Software track.

[13]  Michael L. Scott The Interface Between Distributed Operating System and High-Level Programming Language , 1986, ICPP.

[14]  Lawrence A. Crowl,et al.  Elmwood -An Object-Oriented Multiprocessor Operating System , 1987 .

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

[16]  Lawrence A. Crowl An Interface between Object-Oriented Systems. , 1987 .

[17]  Sanjay Jain,et al.  Crowd Control: Coordinating Processes in Parallel , 1987, ICPP.

[18]  Carla Schlatter Ellis,et al.  Bridge: a high performance file system for parallel processors , 1988, [1988] Proceedings. The 8th International Conference on Distributed.

[19]  John Mellor-Crummey Concurrent Queues: Practical Fetch-and-Phi Algorithms. , 1987 .

[20]  Carla Schlatter Ellis,et al.  Parallel First Fit Memory Allocation , 1987, ICPP.

[21]  Michael L. Scott,et al.  Language Support for Loosely Coupled Distributed Programs , 1987, IEEE Transactions on Software Engineering.

[22]  Neal M. Gafter Algorithms and Data Structures for Parallel Incremental Parsing , 1987, ICPP.

[23]  Carla Schlatter Ellis,et al.  Extendible hashing for concurrent operations and distributed data , 1983, PODS '83.

[24]  Thomas J. LeBlanc,et al.  Debugging Parallel Programs with Instant Replay , 1987, IEEE Transactions on Computers.

[25]  Michael L. Scott,et al.  Design Rationale for Psyche a General-Purpose Multiprocessor Operating System , 1988, ICPP.

[26]  Alan L. Cox,et al.  An Empirical Study of Message-Passing Overhead , 1986 .

[27]  Lawrence A. Crowl,et al.  Subgraph Isomorphism on the BBN Butterfly Multiprocessor , 1986 .

[28]  Thomas J. LeBlanc,et al.  Problem Decomposition and Communication Tradeoffs in a Shared-Memory Multiprocessor , 1988 .

[29]  Terrence W. Pratt,et al.  Pisces: An Environment for Parallel Scientific Computation , 1985, IEEE Software.

[30]  Larry Rudolph,et al.  PIE: A Programming and Instrumentation Environment for Parallel Processing , 1985, IEEE Software.

[31]  Randall Rettberg,et al.  Contention is no obstacle to shared-memory multiprocessing , 1986, CACM.

[32]  Barton P. Miller,et al.  A distributed programs monitor for berkeley UNIX , 1985, Softw. Pract. Exp..

[33]  Lawrence Snyder,et al.  Poker on the Cosmic Cube: The First Retargetable Parallel Programming Language and Environment , 1986, ICPP.

[34]  Thomas J. LeBlanc Shared Memory Versus Message-Passing in a Tightly-Coupled Multiprocessor: A Case Study , 1986, ICPP.