Les bibliothèques de calcul scientifiques

40
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 الجمهورية التونسيةعلميلي والبحث اللعاتعليم ا وزارة ال جامعة تونس بتونـسقنيـاتـوم والتلعليـا لعل المدرسة ال

Transcript of Les bibliothèques de calcul scientifiques

Page 1: Les bibliothèques de calcul scientifiques

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

Plan

Motivations1

Introduction2

Classification3

Bibliothèques séquentielles4

Bibliothèques parallèles5

Conclusion6

Page 3: Les bibliothèques de calcul scientifiques

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

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

Plan

1 Motivation1

Classification3

Bibliothèques parallèles5

Conclusion6

Bibliothèques séquentielles4

Introduction2

Page 6: Les bibliothèques de calcul scientifiques

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

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

Plan

1 Motivation1

Introduction2

Bibliothèques parallèles5

Conclusion6

Classification3

Bibliothèques séquentielles4

Page 9: Les bibliothèques de calcul scientifiques

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

Classification

Il existe 2 types de bibliothèques :

Bibliothèques séquentielles

Bibliothèques parallèles

Page 11: Les bibliothèques de calcul scientifiques

Plan

1

Bibliothèques séquentielles4

Motivation1

Introduction2

Classification3

Bibliothèques parallèles5

Conclusion6

Page 12: Les bibliothèques de calcul scientifiques

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

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

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

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

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

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

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

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

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

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

Plan

1 Motivation1

Introduction2

Classification3

Conclusion6

Bibliothèques séquentielles4

Bibliothèques parallèles5

Page 23: Les bibliothèques de calcul scientifiques

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

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

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

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

SCALAPACK

Basée sur les bibliothèques PBLAS , BLACS et LAPACK

Page 28: Les bibliothèques de calcul scientifiques

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

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

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

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

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

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

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

Plan

1 Motivation1

Introduction2

Classification3

Bibliothèques séquentielles4

Conclusion6

Bibliothèques parallèles5

Page 36: Les bibliothèques de calcul scientifiques

KScaLAPACK

PBLAS

BLACS

MPI/PVM/…

BLAS

LAPACK

PETSC Scilib NAG //

IMSL

Conclusion

Page 37: Les bibliothèques de calcul scientifiques

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

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

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

Merci Pour Votre Attention