Formation à la programmation parallèle
Pour ce faire, un ensemble de méthodes peuvent être mises en oeuvre, selon le type de calculateur parallèle et selon les problématiques étudiées.
Module de Formation à la Programmation Parallèle
Première journée : La théorie
Les machines parallèles
SIMD
MIMD
Introduction
Algorithmes parallèles
Synchronisation des processus
Protection des données : lock
Synchronisation des processus : semaphore / barrier
Partage des données
Mémoire partagée
Scatter / Gather
Débits de données sur un cluster
Parallélisation
Etude de cas : multiplication de matrices
Méthode de Strassen
Processeur vectoriel : un SIMD sous le capot
MMX / SSE / 3DNow / AltiVec
Principes et Algorithmes
Algèbre binaire
Utilisation
ATLAS : Automatically Tuned Linear Algebra Software
openMosix : un simulateur MIMD
Présentation
Utilisation
"fork() sub-problems"
MPI : Message Passing Interface
Présentation
Utilisation
MPIch
Bibliothèques d'algèbre linéaire parallèles
BLACS : Basic Linear Algebra Subroutines
scaLAPACK : Scalable Linear Algebra Package
Programmation parallèle
Conclusion
2ème journée : La pratique avec openMosix
Présentation
Matériel
Linux-openMosix
praKsys/Debian
Accès shell
ssh / fish, mosrun
Compilateurs
gcc, g77, ifort
Monitoring
ganglia, mtop, mps
Utilisation d'un cluster
SIMD
Addition de vecteurs
Addition de vecteurs avec ATLAS2
openMosix
Multiplication de matrices
MPI
Multiplication de matrices avec MPIch
Multiplication de matrices avec BLACS
Multiplication de matrices avec scaLAPACK
Programmation parallèle
Calculs parallèles : mythes et réalités
Perspectives
Conclusion
Tous les exemples sont basés sur des programmes en C ou FORTRAN, sous licence GPL. Les codes sources seront donc fournis et réutilisables.
Certains exemples sont spécifiques au cluster openMosix.
Si vous avez des questions, contactez-nous par mail.