A multicore processor is a single chip composed of two or more independent processing units.
A CMP with two cores is commonly referred to as a dual-core processor. A CMP with four cores is commonly referred to as a quad-core processor
Each core has an internal cache, but also a shared cache with inter-core communication.
Note: Double the cores does not necessarily mean double the function/performance. There is (a) overheads involved with inter-core communication and (b) some programs can’t make maximum use of all cores.
Parallel Processing
Parallel processing is the processing of program instructions by dividing them between multiple processors/processor cores.
In theory, multicore processors should use parallel processing for maximum efficiency.
Comparison: Parallel vs. Concurrent
| Parallel Systems | Concurrent Processing | |
|---|---|---|
| Definition | When more than one processor is executing separate instructions at the same time. | When more than one process is running from a program at once. |
| Benefits | Several tasks being performed simultaneously. Huge performance increase for graphics processing. | Increase program throughput. Saves processing time. |
| Trade-offs | Overheads associated with using more than processor/core. | Potential slowdown if many users request a similar action. |
Example: Concurrency is like a cashier serving multiple people in quick succession. Parallelism is like multiple cashiers serving multiple people.Concurrency vs Parallelism Diagram
Limitations
- Software must be designed and written to make use of parallel processing.