Multicore Systems
• Multiple cores allow for parallel execution of instructions
• Significantly improves performance in tasks designed for parallelism
• Beneficial in large projects that can divide work across cores
• Software must be optimised to fully utilise all available cores
• Not all tasks can be parallelised (some are inherently sequential)
Parallel Processing
| Advantages | Disadvantages |
|---|---|
| Faster execution of suitable tasks | Not all tasks can be parallelised |
| Better multitasking performance | Software must be specially written |
| Improved throughput for parallel workloads | Increased complexity and debugging difficulty |
| Power efficiency (multiple slower cores vs one fast core) | Diminishing returns as cores increase |
• Sequential tasks (must wait for previous step)
• Poorly written software (not optimised for multiple cores)
• Tasks with heavy data dependencies
• Overhead from coordinating multiple cores exceeds benefits
A photo editing application needs to apply a filter to a 4000x3000 pixel image.
Single Core:
• Processes pixels one by one
• Time = 12 million operations sequentially
Quad Core:
• Divides image into 4 sections (1000x3000 each)
• Each core processes 3 million pixels simultaneously
• Theoretical time = 1/4 of single core (ignoring overhead)
GPU with 1000 cores:
• Processes 1000 pixels simultaneously
• Massive parallelism suits this task perfectly
• Much faster than even multicore CPU for this specific task
Key Point: The right processor depends on the task. GPUs excel at parallel data processing, multicore CPUs handle multitasking, and single-core performance still matters for sequential tasks.
• Gaming/Graphics → GPU for rendering, CPU for game logic
• Video editing → GPU for effects, multicore CPU for encoding
• Scientific simulations → Depends on parallelisability
• Everyday tasks → Balanced multicore CPU sufficient
Classifying Parallel Systems
A computer system can be classified by how many streams of instructions and how many streams of data it processes at the same time.
| Type | Stands for | How it works | Example |
|---|---|---|---|
| SISD | Single Instruction, Single Data | One processor carries out one instruction on one item of data at a time, with no parallelism | A single-core Von Neumann computer |
| SIMD | Single Instruction, Multiple Data | The same instruction is applied to many items of data at the same time | A GPU performing one operation on every pixel of an image |
| MISD | Multiple Instruction, Single Data | Several processors each carry out a different instruction on the same data. It is rare in practice | Fault-tolerant systems that compare the results to detect errors |
| MIMD | Multiple Instruction, Multiple Data | Several processors or cores carry out different instructions on different data at the same time | A multicore processor or a supercomputer |