Parallel Computing — Exam
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
- Present the project briefly, and how the code runs overall.
- Find where the time goes, and pick the blocks worth optimizing.
- Optimize them: parallelize, change the code, or both. The course’s tools apply here: types, allocations, threads, memory, and the GPU.
- 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.