Shared Memory Shared memory is a model for interactions between processors within a parallel system. Systems like the multi-processor Pentium machines running Linux physically share a single memory among their processors, so that a value written to shared memory by one processor can be directly accessed by any processor. Either implementation of shared memory is generally considered easier to use than message passing. The simplest such action is a barrier synchronization , in which each individual processor waits until every processor in the group has arrived at the barrier. By having each processor output a datum as a side-effect of reaching a barrier, it is possible to have the communication hardware return a value to each processor which is an arbitrary function of the values collected from all processors.
Latency can be very low, but bandwidth per processor also tends to be low.
Traditionally, this model is used primarily to control parallel execution rather than to distribute data values. Typically, SMP implies the combination of MIMD and shared memory. Attached Processors Attached processors are essentially special-purpose computers that are connected to a host system to accelerate specific types of computation. There is also a wide range of attached array processors , so called because they are designed to accelerate arithmetic operations on arrays. In fact, many commercial supercomputers are really attached processors with workstation hosts.