Les bibliothèques de calcul
scientifiques
Khaled Fayala
Haifa Ben Massoud
Yosra Mouraly
Réalisé par:
Mastère de recherche ...
Plan
Motivations1
Introduction2
Classification3
Bibliothèques séquentielles4
Bibliothèques parallèles5
Conclusion6
Motivation
 La performance de programmes, en termes de temps d‘exécution, et
utilisation des ressources est un problème q...
Motivation
Comment on peut améliorer la
performance de programmation?
Bibliothèques scientifiques
Comment on peut simplifi...
Plan
1 Motivation1
Classification3
Bibliothèques parallèles5
Conclusion6
Bibliothèques séquentielles4
Introduction2
Introduction
Les bibliothèques scientifiques sont des ensembles de sous-programmes
testés, validés, et optimisés.
Ces ense...
Intérêts
Réutilisation
→ Réduction du temps de développement
 Portabilité
→Indépendance vis-à-vis de l’implémentation (s...
Plan
1 Motivation1
Introduction2
Bibliothèques parallèles5
Conclusion6
Classification3
Bibliothèques séquentielles4
Classification
Bibliothèques portables
 Disponibles sur la plupart des plates-formes :
 Du domaine public : BLAS, LAPACK...
Classification
Il existe 2 types de bibliothèques :
Bibliothèques séquentielles
Bibliothèques parallèles
Plan
1
Bibliothèques séquentielles4
Motivation1
Introduction2
Classification3
Bibliothèques parallèles5
Conclusion6
 Basic Linear Algebra Subprograms
 Initialement écrite en Fortran77, et diffusé en 1979
 Fournit des opérations de bas ...
 Bibliothèque BLAS est divisé en 3 niveaux, selon la nature des opérations :
BLAS niveau 1 : opérations sur les vecteurs...
BLAS
BLAS niveau 1 : (Vecteur - Vecteur)
 Opérations de type z = αx + y (α scalaire, x, y, et z vecteurs)
 Traitement él...
BLAS
BLAS niveau 2 : (Matrice - Vecteur)
 Motivés par :
• Diminution du nombre d’accès au mémoire
• Augmentation du grain...
BLAS
BLAS niveau 3 : (Matrice - Matrice)
 Motivés par :
• Minimisation des mouvements de données entre les mémoires
• Mei...
BLAS
 Environnement du logiciel
• Cette librairie est intégrée dans la plupart des distributions Linux (Debian,
Ubuntu, M...
LAPACK
 Linear Algebra PACKage
 LAPACK est un ensemble de sous-programmes Fortran
 Son utilisation à partir d'autres la...
LAPACK
Résoudre des problèmes d'algèbre linéaire denses
* résolution des systèmes linéaires
* problèmes aux valeurs propr...
LAPACK
• Factorisation des matrices LU
-L : matrice triangulaire inférieure ayant des 1 sur la diagonale
-U : matrice tria...
LAPACK
 Manipulation efficace de matrices pleines ou bandes, mais ne contient
pas de méthodes adaptées aux opérations sur...
Plan
1 Motivation1
Introduction2
Classification3
Conclusion6
Bibliothèques séquentielles4
Bibliothèques parallèles5
PBLAS
 Parallel Basic Linear Algebra Subroutines
 Ce sont les BLAS parallèles
 Implantée au dessus des BLAS + BLACS ( B...
SCALAPACK
 Scalable Linear Algebra PACKage
 Projet de Jack DONGARRA , 1989
 Bibliothèque du domaine publique (gratuite)...
SCALAPACK
 Extensible
- garantit le bon équilibrage de la charge
. équilibre de charge pour des petits blocs
- garantit l...
SCALAPACK
 Portable
. Code source en Fortran 77 et C
 Evolution continue des bibliothèques de base
. Meilleurs algorithm...
SCALAPACK
 Basée sur les bibliothèques PBLAS , BLACS et LAPACK
 Aujourd’hui composé de plusieurs bibliothèques:
• PARPACK : recherche de certaines valeurs propres sur de très
grosses m...
PESSL
 Parallel Engineering and Scientific Subroutines Library
Crée par IBM
Contient de routines mathématiques
PBLAS n...
PESSL
 Calcul numérique haute performance sur les clusters d’IBM
 Supporte le modèle de programmation SPMD (Single Progr...
BLACS
 Basic Linear Algebra Communication Subroutines
 Bibliothèque standard de communication permettant sur une grille
...
BLACS
 Contient des sous-programmes de communication sur lesquels s’appuient
les bibliothèques (PBLAS, ScaLAPACK, NAG // ...
BLACS
Initialisation et terminaison
Consistent essentiellement en ces cinq appels:
 BLACS PINFO() : initialise l’environn...
BLACS
Primitives de communication
 Les primitives de communication sont soit de :
Type point à point
Type diffusion (br...
Plan
1 Motivation1
Introduction2
Classification3
Bibliothèques séquentielles4
Conclusion6
Bibliothèques parallèles5
K
ScaLAPACK
PBLAS
BLACS
MPI/PVM/…
BLAS
LAPACK
PETSC Scilib NAG //
IMSL
Conclusion
Conclusion
 Utiliser des librairies scientifiques permet de se consacrer uniquement aux
nouveaux développements et donc d...
Bilan
Mots clé : bibliothèques séquentielles , bibliothèques parallèles, BLAS ,
LAPACK, PBLAS, SCALAPACK , BLACS, PESSL
Co...
Références
• http://www.crihan.fr/calcul/tech/doc_ibm/BiblioScientif#
• http://www.phys.ens.fr/~hare/MP025/guidelapack-201...
Merci Pour Votre
Attention

Prochain SlideShare
Chargement dans…5
×

Les bibliothèques de calcul scientifiques

688 vues

Publié le

La performance de programmes, en termes de temps d‘exécution, et utilisation des ressources est un problème que rencontre tout programmeur.

Publié dans : Ingénierie
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
688
Sur SlideShare
0
Issues des intégrations
0
Intégrations
4
Actions
Partages
0
Téléchargements
13
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive
  • Difficultés : (1) on ‘a trouvé plusieurs documents sur internet, la difficulté est de comment faire un synthèse de ces documents en mettant l’accent sur les choses importants.
    (2) Plusieurs bibliothèques existent mais on choisi de mettre l’accent sur les bibliothèques les plus importants
  • Les bibliothèques de calcul scientifiques

    1. 1. 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 ‫التونسية‬ ‫الجمهورية‬ ‫العلمي‬ ‫والبحث‬ ‫العالي‬ ‫التعليم‬ ‫وزارة‬ ‫تونس‬ ‫جامعة‬ ‫بتونـس‬ ‫والتقنيـات‬ ‫للعلـوم‬ ‫العليـا‬ ‫المدرسة‬
    2. 2. Plan Motivations1 Introduction2 Classification3 Bibliothèques séquentielles4 Bibliothèques parallèles5 Conclusion6
    3. 3. 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
    4. 4. 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 ?
    5. 5. Plan 1 Motivation1 Classification3 Bibliothèques parallèles5 Conclusion6 Bibliothèques séquentielles4 Introduction2
    6. 6. 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.
    7. 7. 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
    8. 8. Plan 1 Motivation1 Introduction2 Bibliothèques parallèles5 Conclusion6 Classification3 Bibliothèques séquentielles4
    9. 9. 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
    10. 10. Classification Il existe 2 types de bibliothèques : Bibliothèques séquentielles Bibliothèques parallèles
    11. 11. Plan 1 Bibliothèques séquentielles4 Motivation1 Introduction2 Classification3 Bibliothèques parallèles5 Conclusion6
    12. 12.  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
    13. 13.  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
    14. 14. 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
    15. 15. 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
    16. 16. 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
    17. 17. 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).
    18. 18. 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
    19. 19. 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.
    20. 20. 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 : * …
    21. 21. 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
    22. 22. Plan 1 Motivation1 Introduction2 Classification3 Conclusion6 Bibliothèques séquentielles4 Bibliothèques parallèles5
    23. 23. 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
    24. 24. 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
    25. 25. 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
    26. 26. SCALAPACK  Portable . Code source en Fortran 77 et C  Evolution continue des bibliothèques de base . Meilleurs algorithmes . Optimisation pour la majorité des machines
    27. 27. SCALAPACK  Basée sur les bibliothèques PBLAS , BLACS et LAPACK
    28. 28.  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
    29. 29. 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
    30. 30. 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.
    31. 31. 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
    32. 32. 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
    33. 33. 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 .
    34. 34. 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.
    35. 35. Plan 1 Motivation1 Introduction2 Classification3 Bibliothèques séquentielles4 Conclusion6 Bibliothèques parallèles5
    36. 36. K ScaLAPACK PBLAS BLACS MPI/PVM/… BLAS LAPACK PETSC Scilib NAG // IMSL Conclusion
    37. 37. 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
    38. 38. 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
    39. 39. 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
    40. 40. Merci Pour Votre Attention 

    ×