Table des matières
Introduction aux librairies ScaLAPACK et MAGMA
Responsables :
- Karim Hasnaoui (ScaLAPACK)
- Simplice Donfack (MAGMA)
Introduction
Dans la première partie de ce cours, nous présentons ScaLAPACK, une bibliothèque d'algèbre linéaire dense à haute performance basée sur des routines de passage de messages pour machines à mémoire distribuée. ScaLAPACK est principalement basée sur un sous-ensemble de routines LAPACK (Linear Algebra PACKage) et BLAS (Basic Linear Algebra Subprograms) repensées pour les ordinateurs parallèles MIMD à mémoire distribuée. Dans ScaLAPACK, toutes les communications MPI sont gérées par des routines fournies par la bibliothèque BLACS (Basic Linear Algebra Communication Subprograms).
La formation sera principalement basée sur l'utilisation des bibliothèques PBLAS (Parallel BLAS) et ScaLAPACK pour les problèmes d'algèbre linéaire en HPC.
Dans la deuxième partie du cours, nous présentons MAGMA, une bibliothèque d'algèbre linéaire dense similaire à LAPACK mais pour les architectures hybrides/hétérogènes CPU/GPU. Nous commençons par présenter les concepts de base des architectures GPU ainsi qu’un aperçu des schémas de communication entre CPU et GPU. Ensuite, nous présentons brièvement les modèles de programmation hybride CPU/GPU. Enfin, nous présentons MAGMA et la manière dont la bibliothèque peut être utilisée pour accélérer facilement et efficacement les codes scientifiques, notamment ceux qui utilisent déjà BLAS et LAPACK.
Objectif :
ScaLAPACK
- Paralléliser les codes d’algèbres linéaires sur les ordinateurs parallèles MIMD à mémoire distribuée via la libraire ScaLAPACK
MAGMA
- Apprendre les concepts de base de la programmation hybride CPU/GPU.
- Paralléliser les codes d’algèbres linéaires en utilisant MAGMA en mono-GPU et multi-GPU
- Déboguer, profiler et analyser les performances d’un code GPU en utilisant les outils NVIDIA
Public concerné :
Toute personne souhaitant débuter dans l'utilisation des bibliothèques ScaLAPACK ou MAGMA.
Pré-requis :
- Connaissance et utilisation des langages Fortran ou C.
- Les notions de base d'algèbre linéaire et de programmation MPI seraient un plus.
Durée :
2 jours.
Assistance
maximale : 20 personnes, minimale : 8 personnes.
Programme
Jour 1 : Introduction à ScaLAPACK
- Introduction générale sur les bibliothèques PBLAS et ScaLAPACK.
- Idées principales sur la façon de décomposer les problèmes d'algèbre linéaire en programmation parallèle
- Exemples d'opérations de base avec PBLAS : opérations vecteur-vecteur, vecteur-matrice et matrice-matrice.
- Exemples d'opérations de base avec ScaLAPACK : inversion et diagonalisation.
- Problème principal basé sur le calcul d'une exponentiation d'une matrice
Travaux pratiques : environ 50% du temps
Jour 2 : Introduction à MAGMA
- Présentation des concepts de base de la programmation hybride CPU/GPU.
- Introduction générale de la bibliothèque MAGMA
- Présentation des APIs MAGMA pour mono-GPU :
- Gestion de la mémoire, des queues, des communications, des événements.
- Introduction aux outils de profilage et débogage NVIDIA
- Présentation des APIs MAGMA pour multi-GPU :
- Gestion des communications, Distribution des données.
Travaux pratiques : environ 50% du temps
Équipement :
Supercalculateur de l'IDRIS