Communication mechanisms in shared memory multiprocessors
Gregory T. Byrd, Bruce Delagi, Michael J. Flynn · 1998
Message passing is a producer-initiated means of communication, since the producer of a message determines when it is sent to its consumer. Shared memory, on the other hand, is inherently consumer-initiated; the consumer decides when (or if) to retrieve the data from shared memory for the next piece of computation. Traditionally, multiprocessor architectures were designed to support one of these communication models, but not the other. Recently, however, there has been a push toward convergent architectures, with support for both. This study evaluates several producer-initiated communication mechanisms, using execution -driven simulations, in order to determine which mechanism offers the best performance over a range of application and system characteristics. One producer-initiated mechanism is StreamLine, a cache-based message passing mechanism developed as part of this research. Other mechanisms include data forwarding (both deliver and forwarding write), update-based cache coherenc...