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.

Practise this in the app: instant marking and a fix for every mistake. Free, no email needed to start.

Practise this lesson

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.

TypeInstruction streamsData streamsExample
SIMDOneManyGPU applying a filter to every pixel
MIMDManyManyMulticore 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.

  1. Sequential part: 20% of 100 s = 20 s
  2. Parallel part: 80 s / 4 = 20 s
  3. Total = 20 + 20 = 40 s

Answer: 40 s, a speed-up of 2.5, not 4.

Key idea: Multicore CPU = MIMD (many instruction streams on many data). GPU = SIMD (one instruction on many data at once). Parallelism beats the heat limit, but sequential parts and coordination cap the speed-up.

Check yourself

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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.

  7. 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.

Practise with instant feedback

Sources

Last updated 8 November 2026. Spotted a mistake? Tell us.