Shared Memory Parallelism (SMP)

Shared memory parallelism is a parallel computing model in which multiple processing units, such as threads or processes, access a common pool of memory. This type of parallelism is typically used in multi-core or multi-processor systems, where multiple processing units can operate on a single shared memory space, allowing them to exchange data and synchronize their actions.

In this model, each processing unit has its own program counter and registers, but they all share the same memory space. This means that any changes made by one processing unit to a shared variable can be seen by all the other processing units that access that variable. This allows for efficient communication and coordination between processing units, as they can communicate through shared memory rather than through more costly message passing mechanisms.