Parallel Computing — Overview

Why the same computation can be 100× faster

Emmanuel Pilliat — ENSAI 3A

Course outline

Running example: Monte-Carlo π — loop → threads → GPU.

Julia = test bench, Python = comparison.

How we work

  • Slides frame; scripts and notebooks demo: predict, then run.
  • Each module: a Julia script + Pluto notebook; modules 1–5: a Python notebook (Colab).
  • Short activities in class (5–10 min, Python or Julia).
  • We compare the numbers across languages.

Note

Python track = common; Julia track = deep dive.

Start here

Synthesis

Four ideas

  1. Compile and specialize (1): no cost paid per operation.
  2. Concrete types (2): generic and fast.
  3. Share as little as possible (3): or the result is wrong.
  4. Feed the hardware (4–5): cache, batching, busy GPU.

Not a magic language: understand what the machine does. Type known at compile time = fast.

⬅ 5 — GPU · Course page