Les bibliothèques de calcul scientifiques
-
Upload
khaled-fayala -
Category
Engineering
-
view
200 -
download
4
Transcript of Les bibliothèques de calcul scientifiques
![Page 1: Les bibliothèques de calcul scientifiques](https://reader030.fdocument.pub/reader030/viewer/2022013108/55ad6f141a28abc14b8b4894/html5/thumbnails/1.jpg)
Les bibliothèques de calcul scientifiques
Khaled Fayala
Haifa Ben Massoud
Yosra Mouraly
Réalisé par:
Mastère de recherche en informatique
Ecole Supérieur des Sciences
et Techniques de Tunis
الجمهورية التونسية
وزارة التعليم العالي والبحث العلمي
جامعة تونس
المدرسة العليـا للعلـوم والتقنيـات بتونـس
![Page 2: Les bibliothèques de calcul scientifiques](https://reader030.fdocument.pub/reader030/viewer/2022013108/55ad6f141a28abc14b8b4894/html5/thumbnails/2.jpg)
Plan
Motivations1
Introduction2
Classification3
Bibliothèques séquentielles4
Bibliothèques parallèles5
Conclusion6
![Page 3: Les bibliothèques de calcul scientifiques](https://reader030.fdocument.pub/reader030/viewer/2022013108/55ad6f141a28abc14b8b4894/html5/thumbnails/3.jpg)
Motivation
La performance de programmes, en termes de temps d‘exécution, et
utilisation des ressources est un problème que rencontre tout programmeur.
Ce problème prend une ampleur particulière en :
→ Calcul scientifique – calcul numérique:
•Algèbre linéaire
•Résolution linéaire
•Transformée de Fourier
![Page 4: Les bibliothèques de calcul scientifiques](https://reader030.fdocument.pub/reader030/viewer/2022013108/55ad6f141a28abc14b8b4894/html5/thumbnails/4.jpg)
Motivation
Comment on peut améliorer la
performance de programmation?
Bibliothèques scientifiques
Comment on peut simplifier
la tâche de programmation?
Comment on peut réutiliser les
programmes déjà crées ?
![Page 5: Les bibliothèques de calcul scientifiques](https://reader030.fdocument.pub/reader030/viewer/2022013108/55ad6f141a28abc14b8b4894/html5/thumbnails/5.jpg)
Plan
1 Motivation1
Classification3
Bibliothèques parallèles5
Conclusion6
Bibliothèques séquentielles4
Introduction2
![Page 6: Les bibliothèques de calcul scientifiques](https://reader030.fdocument.pub/reader030/viewer/2022013108/55ad6f141a28abc14b8b4894/html5/thumbnails/6.jpg)
Introduction
Les bibliothèques scientifiques sont des ensembles de sous-programmes
testés, validés, et optimisés.
Ces ensembles, sont regroupées par domaine et mises à disposition
afin de pouvoir être utilisées sans avoir les réécrire.
![Page 7: Les bibliothèques de calcul scientifiques](https://reader030.fdocument.pub/reader030/viewer/2022013108/55ad6f141a28abc14b8b4894/html5/thumbnails/7.jpg)
Intérêts
Réutilisation
→ Réduction du temps de développement
Portabilité
→Indépendance vis-à-vis de l’implémentation (séquentielle, ou parallèle)
→ Indépendance vis-à-vis du type des données
Efficacité
→Choix du meilleur algorithme
![Page 8: Les bibliothèques de calcul scientifiques](https://reader030.fdocument.pub/reader030/viewer/2022013108/55ad6f141a28abc14b8b4894/html5/thumbnails/8.jpg)
Plan
1 Motivation1
Introduction2
Bibliothèques parallèles5
Conclusion6
Classification3
Bibliothèques séquentielles4
![Page 9: Les bibliothèques de calcul scientifiques](https://reader030.fdocument.pub/reader030/viewer/2022013108/55ad6f141a28abc14b8b4894/html5/thumbnails/9.jpg)
Classification
Bibliothèques portables
Disponibles sur la plupart des plates-formes :
Du domaine public : BLAS, LAPACK, ScaLAPACK , etc.
Commerciales : IMSL et NAG
Les bibliothèques propres aux constructeurs
Tous les constructeurs de calculateurs scientifiques ont développé leurs propres
bibliothèques :
ESSL et PESSL chez IBM, SSL2VP(P) chez Fujitsu
ASL et MathKeisan chez NEC , SciLib chez Cray, etc.
Elles ne sont pas portables
![Page 10: Les bibliothèques de calcul scientifiques](https://reader030.fdocument.pub/reader030/viewer/2022013108/55ad6f141a28abc14b8b4894/html5/thumbnails/10.jpg)
Classification
Il existe 2 types de bibliothèques :
Bibliothèques séquentielles
Bibliothèques parallèles
![Page 11: Les bibliothèques de calcul scientifiques](https://reader030.fdocument.pub/reader030/viewer/2022013108/55ad6f141a28abc14b8b4894/html5/thumbnails/11.jpg)
Plan
1
Bibliothèques séquentielles4
Motivation1
Introduction2
Classification3
Bibliothèques parallèles5
Conclusion6
![Page 12: Les bibliothèques de calcul scientifiques](https://reader030.fdocument.pub/reader030/viewer/2022013108/55ad6f141a28abc14b8b4894/html5/thumbnails/12.jpg)
Basic Linear Algebra Subprograms
Initialement écrite en Fortran77, et diffusé en 1979
Fournit des opérations de bas niveau pour la manipulation des
vecteurs, des matrices et des scalaires.
Base de très nombreuses bibliothèques.
Largement utilisées pour le calcul haute performance.
BLAS
![Page 13: Les bibliothèques de calcul scientifiques](https://reader030.fdocument.pub/reader030/viewer/2022013108/55ad6f141a28abc14b8b4894/html5/thumbnails/13.jpg)
Bibliothèque BLAS est divisé en 3 niveaux, selon la nature des opérations :
BLAS niveau 1 : opérations sur les vecteurs
BLAS niveau 2 : opérations sur matrice-vecteur
BLAS niveau 3 : opérations sur matrice-matrice
BLAS
![Page 14: Les bibliothèques de calcul scientifiques](https://reader030.fdocument.pub/reader030/viewer/2022013108/55ad6f141a28abc14b8b4894/html5/thumbnails/14.jpg)
BLAS
BLAS niveau 1 : (Vecteur - Vecteur)
Opérations de type z = αx + y (α scalaire, x, y, et z vecteurs)
Traitement élément par élément des éléments de vecteurs
Grand succès
O(n) opérations sur O(n) éléments
![Page 15: Les bibliothèques de calcul scientifiques](https://reader030.fdocument.pub/reader030/viewer/2022013108/55ad6f141a28abc14b8b4894/html5/thumbnails/15.jpg)
BLAS
BLAS niveau 2 : (Matrice - Vecteur)
Motivés par :
• Diminution du nombre d’accès au mémoire
•Augmentation du grain de calcul
Opérations de type Z = ßy + αAx (A une matrice)
O(n²) opérations pour O(n²) éléments
![Page 16: Les bibliothèques de calcul scientifiques](https://reader030.fdocument.pub/reader030/viewer/2022013108/55ad6f141a28abc14b8b4894/html5/thumbnails/16.jpg)
BLAS
BLAS niveau 3 : (Matrice - Matrice)
Motivés par :
• Minimisation des mouvements de données entre les mémoires
• Meilleure utilisation des caches
Opérations de type Z = ßC + αAB (A,B,C matrices)
O(n³) opérations pour O(n²) éléments
![Page 17: Les bibliothèques de calcul scientifiques](https://reader030.fdocument.pub/reader030/viewer/2022013108/55ad6f141a28abc14b8b4894/html5/thumbnails/17.jpg)
BLAS
Environnement du logiciel
• Cette librairie est intégrée dans la plupart des distributions Linux (Debian,
Ubuntu, Mandriva,...).
Plates-formes
• BLAS est portée sur les plates-formes unix suivantes : ALPHA, SUN4, etc.
et windows (via cygwin).
![Page 18: Les bibliothèques de calcul scientifiques](https://reader030.fdocument.pub/reader030/viewer/2022013108/55ad6f141a28abc14b8b4894/html5/thumbnails/18.jpg)
LAPACK
Linear Algebra PACKage
LAPACK est un ensemble de sous-programmes Fortran
Son utilisation à partir d'autres langages compilés (C,C++) ne représente
pas de difficultés particulières. Une version CLAPACK, traduite en C existe.
Fondée en grande partie sur les procédures de Blas 3
![Page 19: Les bibliothèques de calcul scientifiques](https://reader030.fdocument.pub/reader030/viewer/2022013108/55ad6f141a28abc14b8b4894/html5/thumbnails/19.jpg)
LAPACK
Résoudre des problèmes d'algèbre linéaire denses
* résolution des systèmes linéaires
* problèmes aux valeurs propres : trouver un vecteur v de
dimension n vérifiant Av = λBv avec A et B deux matrices carrées de
dimension n×n.
![Page 20: Les bibliothèques de calcul scientifiques](https://reader030.fdocument.pub/reader030/viewer/2022013108/55ad6f141a28abc14b8b4894/html5/thumbnails/20.jpg)
LAPACK
• Factorisation des matrices LU
-L : matrice triangulaire inférieure ayant des 1 sur la diagonale
-U : matrice triangulaire supérieure
• Factorisation des matrices QR
-Q : matrice orthogonale (transposée (Q)*Q=In)
-R : matrice triangulaire supérieure
• Factorisation cholesky A=L*transposée(L)
- A : matrice symétrique définie positive (transposée(A)=A
- L : matrice triangulaire inférieure
• …
* factorisation de matrices :
* …
![Page 21: Les bibliothèques de calcul scientifiques](https://reader030.fdocument.pub/reader030/viewer/2022013108/55ad6f141a28abc14b8b4894/html5/thumbnails/21.jpg)
LAPACK
Manipulation efficace de matrices pleines ou bandes, mais ne contient
pas de méthodes adaptées aux opérations sur les matrices creuses.
Conçue pour les machines vectorielles puis étendue aux machines
parallèles à mémoire partagée
Utilise des algorithmes par blocs de façon à exploiter les performances
des opérations BLAS3, et pour utiliser au mieux la hiérarchie mémoire
![Page 22: Les bibliothèques de calcul scientifiques](https://reader030.fdocument.pub/reader030/viewer/2022013108/55ad6f141a28abc14b8b4894/html5/thumbnails/22.jpg)
Plan
1 Motivation1
Introduction2
Classification3
Conclusion6
Bibliothèques séquentielles4
Bibliothèques parallèles5
![Page 23: Les bibliothèques de calcul scientifiques](https://reader030.fdocument.pub/reader030/viewer/2022013108/55ad6f141a28abc14b8b4894/html5/thumbnails/23.jpg)
PBLAS
Parallel Basic Linear Algebra Subroutines
Ce sont les BLAS parallèles
Implantée au dessus des BLAS + BLACS ( Basic Linear Algebra
Communication Subroutines)
BLAS : calculs locaux
BLACS : Communication
Considérée comme un noyau pour d’autres bibliothèques numérique
parallèles
![Page 24: Les bibliothèques de calcul scientifiques](https://reader030.fdocument.pub/reader030/viewer/2022013108/55ad6f141a28abc14b8b4894/html5/thumbnails/24.jpg)
SCALAPACK
Scalable Linear Algebra PACKage
Projet de Jack DONGARRA , 1989
Bibliothèque du domaine publique (gratuite)
Bibliothèque composée d'un ensemble de sous-programmes
Fortran
Résoudre en parallèle des problèmes d'algèbre linéaire
Conçue pour les machines parallèles MIMD à mémoires
distribuées
![Page 25: Les bibliothèques de calcul scientifiques](https://reader030.fdocument.pub/reader030/viewer/2022013108/55ad6f141a28abc14b8b4894/html5/thumbnails/25.jpg)
SCALAPACK
Extensible
- garantit le bon équilibrage de la charge
. équilibre de charge pour des petits blocs
- garantit les performances quand le nombre de processeurs
augmente
. faible coût de communication pour des gros blocs
(diminution du nombre de messages)
taille de blocs qui soit le bon compromis entre équilibre de la
charge et latence de communication
![Page 26: Les bibliothèques de calcul scientifiques](https://reader030.fdocument.pub/reader030/viewer/2022013108/55ad6f141a28abc14b8b4894/html5/thumbnails/26.jpg)
SCALAPACK
Portable
. Code source en Fortran 77 et C
Evolution continue des bibliothèques de base
. Meilleurs algorithmes
. Optimisation pour la majorité des machines
![Page 27: Les bibliothèques de calcul scientifiques](https://reader030.fdocument.pub/reader030/viewer/2022013108/55ad6f141a28abc14b8b4894/html5/thumbnails/27.jpg)
SCALAPACK
Basée sur les bibliothèques PBLAS , BLACS et LAPACK
![Page 28: Les bibliothèques de calcul scientifiques](https://reader030.fdocument.pub/reader030/viewer/2022013108/55ad6f141a28abc14b8b4894/html5/thumbnails/28.jpg)
Aujourd’hui composé de plusieurs bibliothèques:
• PARPACK : recherche de certaines valeurs propres sur de très
grosses matrices
• CAPSS : résolution des systèmes linéaires sur matrices creuses
définies positives symétriques
• PARPRE : pour le traitement de matrices creuses quelconques
SCALAPACK
![Page 29: Les bibliothèques de calcul scientifiques](https://reader030.fdocument.pub/reader030/viewer/2022013108/55ad6f141a28abc14b8b4894/html5/thumbnails/29.jpg)
PESSL
Parallel Engineering and Scientific Subroutines Library
Crée par IBM
Contient de routines mathématiques
PBLAS niveaux 2 et 3
Résolution de système linéaires :
Sous-ensemble de routines ScaLAPACK
Transformées de Fourier en 2D et 3D
Génération de nombres aléatoires
![Page 30: Les bibliothèques de calcul scientifiques](https://reader030.fdocument.pub/reader030/viewer/2022013108/55ad6f141a28abc14b8b4894/html5/thumbnails/30.jpg)
PESSL
Calcul numérique haute performance sur les clusters d’IBM
Supporte le modèle de programmation SPMD (Single Program,
Multiple Data)
Utilise la bibliothèque Blacs (Basic Linear Algebra Communication Subroutines) version
MPI pour la communication
Utilisé par des applications écrits en Fortran, C et C + + s’exécutant
sous Linux et AIX
Fonctionne en environnement 32 bits et 64 bits.
![Page 31: Les bibliothèques de calcul scientifiques](https://reader030.fdocument.pub/reader030/viewer/2022013108/55ad6f141a28abc14b8b4894/html5/thumbnails/31.jpg)
BLACS
Basic Linear Algebra Communication Subroutines
Bibliothèque standard de communication permettant sur une grille
prédéfinie de processus :
D’échanger facilement des blocs de matrices
De les diffuser globalement et calculer des réductions sur eux
Écrit en C
Plusieurs implémentations (MPI , PVM3.3)
Syntaxe standard sur tous les systèmes
![Page 32: Les bibliothèques de calcul scientifiques](https://reader030.fdocument.pub/reader030/viewer/2022013108/55ad6f141a28abc14b8b4894/html5/thumbnails/32.jpg)
BLACS
Contient des sous-programmes de communication sur lesquels s’appuient
les bibliothèques (PBLAS, ScaLAPACK, NAG // et autres) .
Composée de deux sortes de sous-programmes pour :
L’initialisation et la terminaison de l’environnement BLACS
L´échange de données entre les processus à l’aide de primitives de
communication
![Page 33: Les bibliothèques de calcul scientifiques](https://reader030.fdocument.pub/reader030/viewer/2022013108/55ad6f141a28abc14b8b4894/html5/thumbnails/33.jpg)
BLACS
Initialisation et terminaison
Consistent essentiellement en ces cinq appels:
BLACS PINFO() : initialise l’environnement BLACS ;
BLACS GET() : définit un contexte unique de communication ;
BLACS GRIDINIT() : initialise une grille logique 2D de processus ;
BLACS GRIDEXIT() : libère la grille logique de processus ;
BLACS EXIT() : libère toutes les grilles de processus préalablement
définies
.
![Page 34: Les bibliothèques de calcul scientifiques](https://reader030.fdocument.pub/reader030/viewer/2022013108/55ad6f141a28abc14b8b4894/html5/thumbnails/34.jpg)
BLACS
Primitives de communication
Les primitives de communication sont soit de :
Type point à point
Type diffusion (broadcast)
Un message envoyé est bufférisé jusqu’à réception.
Un seul buffer d’émission à la fois.
![Page 35: Les bibliothèques de calcul scientifiques](https://reader030.fdocument.pub/reader030/viewer/2022013108/55ad6f141a28abc14b8b4894/html5/thumbnails/35.jpg)
Plan
1 Motivation1
Introduction2
Classification3
Bibliothèques séquentielles4
Conclusion6
Bibliothèques parallèles5
![Page 36: Les bibliothèques de calcul scientifiques](https://reader030.fdocument.pub/reader030/viewer/2022013108/55ad6f141a28abc14b8b4894/html5/thumbnails/36.jpg)
KScaLAPACK
PBLAS
BLACS
MPI/PVM/…
BLAS
LAPACK
PETSC Scilib NAG //
IMSL
Conclusion
![Page 37: Les bibliothèques de calcul scientifiques](https://reader030.fdocument.pub/reader030/viewer/2022013108/55ad6f141a28abc14b8b4894/html5/thumbnails/37.jpg)
Conclusion
Utiliser des librairies scientifiques permet de se consacrer uniquement aux
nouveaux développements et donc de ne pas devoir réinventer la roue à
chaque fois.
Elles peuvent résoudre des problèmes de performance optimisation
portabilité etc …
Elles sont nombreuses mais on a mis l’accent sur BLAS , LAPACK,
PBLAS, SCALAPAC , BLACS, PESSL parce qu’elles sont les plus connues
et utilisées
![Page 38: Les bibliothèques de calcul scientifiques](https://reader030.fdocument.pub/reader030/viewer/2022013108/55ad6f141a28abc14b8b4894/html5/thumbnails/38.jpg)
Bilan
Mots clé : bibliothèques séquentielles , bibliothèques parallèles, BLAS ,
LAPACK, PBLAS, SCALAPACK , BLACS, PESSL
Constations :
Séquentielle Parallèle
Portable Blas, LAPACK PBLAS,BLACS,SCALAPACK
Propres aux constructeurs ESSL PESSL
Difficultés :
Synthèse des plusieurs documents trouvés
Choix des bibliothèques
![Page 39: Les bibliothèques de calcul scientifiques](https://reader030.fdocument.pub/reader030/viewer/2022013108/55ad6f141a28abc14b8b4894/html5/thumbnails/39.jpg)
Références
• http://www.crihan.fr/calcul/tech/doc_ibm/BiblioScientif#
• http://www.phys.ens.fr/~hare/MP025/guidelapack-2012-03-06.pdf
• http://www.lifl.fr/west/courses/cshp/bibsp.pdf
• https://www.projet-plume.org/fiche/blas-basic-linear-algebra-subprograms
• https://ciment.ujf-grenoble.fr/docs/introduction-au-calcul-reparti-
1/bibliotheques.ppt
![Page 40: Les bibliothèques de calcul scientifiques](https://reader030.fdocument.pub/reader030/viewer/2022013108/55ad6f141a28abc14b8b4894/html5/thumbnails/40.jpg)
Merci Pour Votre Attention