Les architectures parallèles sont devenues la caractéristique dominante de tous les ordinateurs depuis les années 2000 jusqu'au poste de travail individuel, les processeurs sont multi-coeurs, traitant plusieurs instructions simultanément au sein d'un même composant.
Depuis une dizaine d'années, le calcul parallèle est devenu un élément essentiel dans les laboratoires qui font de la simulation numérique, il permet de traiter des problèmes de plus en plus complexes, de plus en plus gros (millions de runs) dans des temps de plus en plus rapides associés à des volumes de données de plus en plus importants.
Ce module est destiné aux scientifiques souhaitant s'approprier les premières bases pour parallèliser un code numérique et pour ceux qui veulent avoir une première approche du calcul parallèle. Il sera aussi la possibilité d'avoir une vision plus large sur ce qu'est le calcul parallèle, du parallélisme contenu dans les processeurs multi-coeurs, dans les clusters allant de centaines de coeurs à des milliers de coeurs et permettra un choix plus objectif du modèle d'architecture et de programmation adapté au problème traité.
Afin de mettre en pratique les notions et outils présentés, nous avons choisi une application qui nous servira de fil conducteur, la résolution et la parallèlisation des équations de
Laplace très voisine de la résolution et la parallèlisation d'une grande variété de problèmes physiques et mathématiques. Ce problème sera étudié sur différentes architectures et différents modèles de programmation parallèle.
Il sera présenté et implèmenté, dans un premier temps via un code séquentiel fourni aux étudiants ; les compilateurs, makefile, outil de profiling, etc. seront utilisés pour une première prise en main. Nous étudierons ensuite les architectures multiprocesseurs/multicoeurs à mémoire partagée et l'environnement OpenMP. La parallèlisation du problème avec OpenMP sera traitée en travaux pratiques. La même démarche sera suivie pour les architectures à mémoire distribuée et la parallèlisation avec MPI ; puis nous aborderons la programmation hybride de type MPI-OpenMP.
Les solutions de calcul en pleine émergence, les architecture hybrides couplant des processeurs traditionnels à des processeurs graphiques (GPU) seront présentées dans un module "Introduction au calcul sur accélérateurs" proposé par le collège doctoral ainsi que le calcul sur grille "Calcul sur grille et applications".
La dernière partie de cette formation concernera le déploiement sur les grilles de calcul en général et sur la grille CIGRI du mésocentre CIMENT.