This course aims to study the execution of applications on computing architectures from the points of view of functionality, performance and energy efficiency. In this context, parallel hardware architectures (multi-core processors, SIMD machines and GPUs), hardware communications resources (bus and network) as well as the efficient deployment of applications on these hardware resources will be discussed: task placement, hardware / software partitioning and matching algorithm requirements to architecture resources. Techniques for estimating energy consumption will be presented and will make it possible to estimate the cost of memory access, calculations and communications.
Energy consumption in digital electronic systems, Low power design techniques, Parallel computing architectures, Application deployment, matching algorithm requirements to architecture resources
Principles of hardware/software partitioning and processor sizing Multi-core architectures and programming Strategies for deploying tasks and reducing consumption Energy cost of inter-core communication or distributed computing Multi-level abstraction energy estimation of software execution
Personal work and study class: analysis of energy-efficient supercomputers (green500.org) Practical work (2 4-hour sessions): programming an image filter on an embedded GPU, optimization of performance/energy consumption
- Understand the issues and origins of energy consumption in computing architectures
- Be able to evaluate energy consumption in processors
- Be able to optimize the programming of algorithms on processors to minimize energy consumption
2 hour written test without documents (50%) Personal work and study class (25%) Practical work (25%)