School / Prep
ENSEIRB-MATMECA
Internal code
EI8IT224
Description
How can we take advantage of the computing power of today's computers? This course is an introduction to algorithmic, software and hardware techniques for programming machines with multiple cores and/or gas pedals such as graphics processing units (GPUs). In other words, the aim is to understand how to exploit the parallel processing capabilities offered by hardware.
Outline
interests and basic notions of parallelism, computation granularity and load balancing
general architecture of multicore computers and graphics cards
general algorithmic techniques for parallelization
essential languages and libraries for programming multicore architectures
impact of architecture and compilation on programming: towards performance portability
programming heterogeneous machines equipped with specialized processors (e.g. GPUs)
Teaching hours
- CIIntegrated courses26h
- TIIndividual work18h
Mandatory prerequisites
Programming in C language
Syllabus
This course covers the following topics:
- interest in and basic concepts of parallelism, computational granularity and load balancing
- general architecture of multicore computers and graphics cards
- general algorithmic techniques for parallelization
- essential languages and libraries for programming multicore architectures
- impact of architecture and compilation on programming: towards performance portability
- programming heterogeneous machines equipped with specialized processors (e.g. GPUs).g. GPUs).
Assessment of knowledge
Initial assessment / Main session - Tests
Type of assessment | Type of test | Duration (in minutes) | Number of tests | Test coefficient | Eliminatory mark in the test | Remarks |
---|---|---|---|---|---|---|
Project | Report | 1 |