Groupe pédagogique - TB2-CHP
Contexte et objectifs
Un ingénieur est souvent impliqué dans le développement de programmes informatiques permettant de réaliser des calculs importants mais complexes et donc coûteux. Or, de tels calculs se heurtent fréquemment aux limitations physiques des ordinateurs (temps de calcul ou ressources mémoire exorbitants) qui peuvent rendre le calcul impossible. De plus, ces programmes sont encore le plus souvent développés dans une optique séquentielle, c’est-à-dire mono-processeur. Cette approche ne permet pas de tirer profit de toute la puissance le calcul des architectures actuelles qui sont multi-processeurs et/ou multi-coeurs, et encore moins d’utiliser les infrastructures disponibles (ordinateurs ou clusters ou grilles de calcul) capables d’offrir plus d’une unité de calcul. Seule une optique calcul parallèle (multi-processeurs) peut permettre d’accéder au calcul haute performance.
Dans la toolobx Calcul Haute Performance (CHP) les élèves acquerront les techniques de conception d’algorithme et de programmes parallèles ainsi que la connaissance et l'usage des outils qui aident à la réalisation de ces programmes selon différentes approches : utilisation des processeurs graphiques (GPU), des processeurs multicoeurs, des processeurs de calcul distants.
Les objectifs
pédagogiques sont :·
Cette toolbox se compose de trois UP (unités pédagogiques). La première UP est constituée d'un ensemble de 15h de cours et TP correspondant, d’une part à la partie "théorique" de la toolbox (introduction, architecture et algorithmique parallèles) et d’autre part à une application, la programmation multi-cœurs avec OpenMP. Les deux UP restantes, de 12h chacune, alternent cours et TP et permettent la mise en pratique (programmation) des principes du calcul haute performance en utilisant, respectivement, la programmation avec MPI, et sur GPU.
UP1 : Introduction au calcul parallèle et distribué
· Introduction : classification de Flynn - notions de base
· Architecture des machines parallèles
· Algorithmique parallèle (modèle PRAM), paradigmes, performances
· Programmation parallèle par threads
UP2 : Programmation parallèle avec MPI
· Programmation parallèle par envoi/réception de messages, multi-cœur et multi-noeud
UP3 : Programmation parallèle sur GPU
· Programmation des processeurs graphiques (GPU)
Le calcul haute performance permet de résoudre numériquement des problèmes qui ne pourraient être abordés par le calcul séquentiel, à cause d'un temps de calcul et/ou de ressources en mémoire prohibitifs. Ces problèmes sont par exemple des problèmes d'optimisation en génie industriel, de traitement d'image (médecine, sciences des matériaux), de résolution d'équations aux dérivées partielles en physique et mécanique (méthodes des éléments finis, dynamique moléculaire), ... La toolbox "CHP" est donc susceptible d'être combinée à tout autre GP scientifique faisant appel au calcul numérique.