All subjects · Computer Science · WCP03 Advanced Principles of Computer Science
Parallel processing: multicore, MIMD, GPUs and SIMD
Edexcel IAL Computer Science · WCP03 Advanced Principles of Computer Science
Clock speeds stopped rising quickly because of heat, so performance now comes from doing many things at once. This lesson covers multicore processors, MIMD, GPUs and SIMD, and why parallel processing is needed.
Why parallel processing is needed
Raising the clock speed increases power use and heat sharply, so there is a practical limit. Instead, designers put more processing units on a chip so tasks or data can be processed simultaneously. Large workloads (graphics, video, simulations, machine learning, servers with many users) need this.
Multicore processors and MIMD
A multicore processor has two or more independent cores on one chip, each with its own control unit, ALU and registers (often with private level 1 cache and a shared larger cache).
This is MIMD: Multiple Instruction, Multiple Data. Each core runs its own instruction stream on its own data: one core plays music while another runs a spreadsheet, or several threads of one program work on different parts of a job. The operating system schedules threads onto cores.
GPUs and SIMD
A GPU (Graphics Processing Unit) has hundreds or thousands of simple cores. It uses SIMD: Single Instruction, Multiple Data: the same instruction is applied to many data items at once, for example 'brighten this pixel' applied to every pixel of an image.
SIMD suits data-parallel work: graphics, image and video processing, matrix maths for machine learning, scientific simulation. It is poor at tasks full of decisions where each item needs different instructions.
| Type | Instruction streams | Data streams | Example |
|---|---|---|---|
| SIMD | One | Many | GPU applying a filter to every pixel |
| MIMD | Many | Many | Multicore CPU running different threads |
Benefits and drawbacks
Benefits: more work per second; better multitasking; can handle huge data sets; more performance per watt than a faster single core.
Drawbacks: programs must be written (or rewritten) to split into parallel parts; some tasks are sequential and cannot be split; cores must coordinate and share data, which adds overhead and can cause errors (two threads updating the same value). So doubling cores rarely doubles speed. If a fraction p of a job can run in parallel on N cores, the speed-up is 1 / ((1 - p) + p / N) (Amdahl's law: a useful way to explain the limit).
Worked example
A job takes 100 s on one core. 80% of it can be split across 4 cores; the rest must run on one core. Estimate the new time.
- Sequential part: 20% of 100 s = 20 s
- Parallel part: 80 s / 4 = 20 s
- Total = 20 + 20 = 40 s
Answer: 40 s, a speed-up of 2.5, not 4.
Check yourself
- Which processing architecture does a GPU mainly use?
- MIMD
- SISD
- von Neumann bottleneck
- SIMD
Show answer
SIMD. A GPU applies the same instruction to many data items at once.
- What does MIMD mean in a multicore processor?
- Every core must run the same instruction at the same time
- Each core can run a different instruction stream on different data
- There is one core with many registers
- Instructions and data are stored in separate memories
Show answer
Each core can run a different instruction stream on different data. Multiple Instruction, Multiple Data: independent cores, independent work.
- Why has parallel processing become the main way to increase performance?
- Single cores cannot run operating systems
- Memory has become slower
- Programs have become shorter
- Raising clock speed further causes too much heat and power use
Show answer
Raising clock speed further causes too much heat and power use. Power and heat rise steeply with clock speed, so adding cores is more efficient.
- Which task is best suited to SIMD?
- Adjusting the brightness of every pixel in a photo
- Running a word processor and a browser together
- Handling an interrupt from the keyboard
- Searching a linked list one node at a time
Show answer
Adjusting the brightness of every pixel in a photo. The same operation is applied independently to a huge number of data items.
- A task takes 60 s on one core. Half of it can run in parallel across 6 cores; the other half cannot be split. How long does it take on 6 cores, in seconds?
Show answer
35 s. Sequential: 30 s. Parallel: 30 / 6 = 5 s. Total 35 s.
- Why does doubling the number of cores rarely halve the run time?
- Some parts of a program are sequential, and cores spend time coordinating and sharing data
- Each extra core slows the clock down by half
- The operating system only uses one core
- Extra cores reduce the size of main memory
Show answer
Some parts of a program are sequential, and cores spend time coordinating and sharing data. Sequential sections and overheads limit the gain.
- What does each core of a multicore processor have?
- Its own keyboard and screen
- Its own hard disk
- Its own control unit, ALU and registers
- Its own operating system
Show answer
Its own control unit, ALU and registers. A core is a complete processing unit.
Sources
- Pearson Edexcel International Advanced Subsidiary and Advanced Level in Computer Science specification (2026), Issue 1
- Pearson Edexcel IAL Computer Science sample assessment materials (Unit 3 paper, resource booklet and mark scheme)
Last updated 8 November 2026. Spotted a mistake? Tell us.