Ce cours vise à étudier l'exécution d'applications sur les architectures de calcul des points de vue de la fonctionnalité, des performances et de l'efficacité énergétique. Dans ce contexte seront abordés les architectures matérielles parallèles (processeurs multi-cœur, machines SIMD et GPU), les ressources matérielles de communications (bus et réseau) ainsi que le déploiement efficace d’applications sur ces ressources matérielles : placement des tâches, partitionnement matériel/ logiciel et adéquation algorithme architecture. Les techniques d’estimation de la consommation énergétique seront présentées et permettront d’estimer le coût des accès mémoires, des calculs et des communications.
Principes du partitionnement matériel / logiciel et du dimensionnement des processeurs Architectures multi-cœur et programmation Stratégies de déploiement de tâches et de réduction de la consommation Coût énergétique de la communication inter-cœur ou du calcul distribué Estimation énergétique multi-niveau d'abstraction de l'exécution logicielle
Autonomie et BE : analyse des supercalculateurs économes en énergie (green500.org) TP (2 séances de 4h) : programmation d'un filtre d'image sur GPU embarqué, optimisation des performances/consommation énergétique