Active Messages: a fast, universal communication mechanism David E. Culler Computer Science Division --- EECS University of California, Berkeley, CA 94720 culler@cs.berkeley.edu Multiprocessor architectures are traditionally divided into three categories based on their intended programming model: shared memory, message passing, and ``novel''. The last is a euphemism for dataflow, reduction, and the like. However, careful study reveals that the implementations of these apparently diverse architectures are surprisingly similar. Active Messages is a simple communication primitive that captures this common element. The implementation of Active Messages on current message passing machines (CM-5 and nCUBE/2) is an order of magnitude faster than the send/receive model for which the machines were designed. The universality of the mechanism has been demonstrated by realizations of shared memory, message passing, and dataflow models on the same machine. In addition, a variety of hybrid models have been developed, including a split-phase global memory extension to C, called Split-C. The goal of this work is to define better architectural primitives for communication, rather than to build new abstractions on top of existing inefficient primitives. In this talk, I will describe Active Messages, the implementation on the CM-5 and nCUBE, and some of the programming models built on top.