Parallel Computing — Exam

← Parallel Computing

Make real code faster, and prove it. In groups of 2–3, take code from a real project (ENSAI, personal, or open source), speed up one or several of its building blocks, and measure precisely what you gained.

In a nutshell
  • Groups of 2–3, on an ENSAI, personal, or open-source project.
  • Deliverables: a report (~8 pages) and a 30-minute presentation.
  • Before you start: a short proposal with a first timing.

The task

  1. Present the project briefly, and how the code runs overall.
  2. Find where the time goes, and pick the blocks worth optimizing.
  3. Optimize them: parallelize, change the code, or both. The course’s tools apply here: types, allocations, threads, memory, and the GPU.
  4. Measure the speedup, on the block and on the whole program.

Choose code that runs long enough to measure and gives a result you can check. Before you start, send a short proposal: the project, the block you target, and a first timing.

Deliverables

  • A report of about 8 pages.
  • A 30-minute presentation, questions included, in which every member speaks.

Rules

  • Any language: Julia, Python, or another one.
  • Optimized libraries are allowed, as long as you explain why they are faster.
  • AI assistants are allowed, if you say what you used them for.
  • Confidential projects: run the block on synthetic data of the same size.

Dates are announced in class.