Message-passing code generally needs more software overhead than parallel shared-memory code.
In shared memory approach, more focus is on the control parallelism in its place of data parallelism. In this model, many processes run independently on different processors, but they share a common address space accessible to all as shown in Figure.
The processors communicate with one another by one processor reading data into a location in memory and another processor writing the data. Any modification in a memory location effected by one processor is visible to all other processors. As shared data can be accessed by more than one process at the similar time, some control mechanism such as semaphores / locks should be devised to make sure mutual exclusion. This model is often referred to as SMP (Symmetric Multi Processors), named so because a common symmetric implementation is used for several processors of the similar type to access the same shared memory. A number of multi-processor systems executes a shared-memory programming model; examples includes: SGI Power Onyx/ Origin 2000; NEC SX-5, Hewlett-Packard V2600/HyperPlex; SUN HPC 10000 400 MHz; DELL PowerEdge8450.