ABSTRACT

This chapter aim is to answer the question of what hardware support is needed in order to guarantee the correctness of executing shared memory parallel programs on a multiprocessor system. It highlights that there are three main types of support needed: a cache coherence protocol, which ensures a coherent view of cached values as seen by multiple processors, a memory consistency model, which ensures consistent view of the ordering of memory operations, and hardware synchronization support, which enables a simple, correct, and efficient primitive that enable programmers to orchestrate their parallel programs. The chapter discusses at a high level that any shared memory multiprocessors need the three types of support and presents how they are related to one another. Providing shared memory abstraction requires hardware support that may be expensive depending on the platforms. Shared memory multiprocessors may be prohibitively expensive to support for very large systems consisting of thousands of nodes.