LEARNING OUTCOMES
After this course, you will know how to write computationally intensive C or C++ code that makes an efficient use of dozens of CPU cores. You will learn how to partition large-scale computations between multiple processor cores, and how to choose the best memory layout for your data structures. You will also get hands-on experience of offloading computations from CPUs to GPUs. You will learn new kinds of algorithm design techniques that are relevant in the context of parallel computers, and you will also learn which of these techniques actually work in practice on modern multicore CPUs and GPUs.
Credits: 5
Schedule: 14.04.2025 - 30.05.2025
Teacher in charge (valid for whole curriculum period):
Teacher in charge (applies in this implementation): Jukka Suomela
Contact information for the course (applies in this implementation):
CEFR level (valid for whole curriculum period):
Language of instruction and studies (applies in this implementation):
Teaching language: English. Languages of study attainment: English
CONTENT, ASSESSMENT AND WORKLOAD
Content
valid for whole curriculum period:
This is a practical hands-on course on algorithm engineering for modern parallel computers. The students will learn how to design programs that make the best possible use of the computing power of multicore CPUs and GPUs. The course projects will cover both numerical and combinatorial problems; the sole objective is to solve the task at hand in the shortest possible time. We will learn a whole range of techniques for speeding up computations, from bit manipulation hacks and special CPU instructions to high-level techniques such as choosing the right memory layout that makes the best possible use of the cache hierarchy.
Assessment Methods and Criteria
valid for whole curriculum period:
Programming exercises.
Workload
valid for whole curriculum period:
Lectures, self-study material (videos and lecture notes), exercises, and exercise sessions.
DETAILS
Study Material
valid for whole curriculum period:
Freely available online.
Substitutes for Courses
valid for whole curriculum period:
Prerequisites
valid for whole curriculum period:
FURTHER INFORMATION
Further Information
valid for whole curriculum period:
Teaching Language: English
Teaching Period: 2024-2025 Spring V
2025-2026 Spring V