Efficient Communication for Parallel Programs on MPPs and NOWs David E. Culler Computer Science Division University of California, Berkeley In this talk, I will describe aspects of two major research efforts at Berkeley aimed at developing the components of a serious, cost-effective parallel computing infrastructure. The first, called Castle, is a broad effort to build high-performance, vendor-independent parallel software tools. Castle is built as a collection of well engineered layers, each forming a complete programming system utilizing the layers below. At the bottom is an efficient and versatile communication layer, called Active Messages, carefully tuned to the communication hardware. On the CM-5, the communication overhead for an active messages is 3.3us combined for sender and receiver. The next layer includes a parallel extension to C, called Split-C, provides a structured, global memory programming model on this substrate. Higher layers provide dynamic scheduling, sophisticated distributed objects, powerful numeric support, and higher level languages. The second project, called NOW, is a focused effort to make networks of workstations as effective at parallel computing as current MPPs, while retaining the cost advantages and growth rates of the workstation market. The major thrusts are hardware support for active messages in the network interface and development of a coherent global operating systems layer, which operates by manipulating essentially off-the-shelf local systems. The intended scale is a few hundred machines distributed across a single building.