25
17-21 Octobre 2005 Formation Continue CNRS Laurence Viry Bibliothèques Scientifiques Constructeurs – Domaine public

17-21 Octobre 2005 Formation Continue CNRS Laurence Viry Bibliothèques Scientifiques Constructeurs – Domaine public

Embed Size (px)

Citation preview

Page 1: 17-21 Octobre 2005 Formation Continue CNRS Laurence Viry Bibliothèques Scientifiques Constructeurs – Domaine public

17-21 Octobre 2005 Formation Continue CNRS Laurence Viry

Bibliothèques Scientifiques

Constructeurs – Domaine public

Page 2: 17-21 Octobre 2005 Formation Continue CNRS Laurence Viry Bibliothèques Scientifiques Constructeurs – Domaine public

17-21 Octobre 2005 Formation Continue - CNRS Laurence Viry

Sommaire

Objectifs Présentation des bibliothèques

Bibliothèques monoprocesseur (publique et constructeurs)

Bibliothèques en Fortran90 Bibliothèques //

Principe d’une bibliothèque // Mise en œuvre pratique

BLACS SCALAPACK NAG// PETSC

Performances Scalapack FFT3d de la LIBSCI

Page 3: 17-21 Octobre 2005 Formation Continue CNRS Laurence Viry Bibliothèques Scientifiques Constructeurs – Domaine public

17-21 Octobre 2005 Formation Continue - CNRS Laurence Viry

Intérêt de l’utilisation des bibliothèques

Apporte portabilite et performances Ne pas refaire ce qui a été fait, testé, optimisé Prise en compte de facteurs qui ne sont pas

contrôlable par un non-spécialiste Indépendance vis-à-vis du type des données

(simple ou double précision…) Indépendance vis-à-vis de la représentation

des données (matrices symétriques, creuses, ….) Choix du meilleur algorithme Stabilité numérique de l’algorithme Optimisation en fonction de l’architecture Optimisation en fonction du cas à traiter

Page 4: 17-21 Octobre 2005 Formation Continue CNRS Laurence Viry Bibliothèques Scientifiques Constructeurs – Domaine public

17-21 Octobre 2005 Formation Continue - CNRS Laurence Viry

Classification des bibliothèques disponibles

Bibliothèques portables Disponibles sur la plupart des plates-formes Du domaine public: BLAS,

LAPACK,ARPACK,SCALAPACK, FFTW, PETSC,… Commerciales: IMSL et NAG

Bibliothèques fournies par les constructeurs Chaque constructeur de calculateur scientifique a

développé sa propre bibliothèque(ESSL-IBM, CXML-HP/COMPAQ, SCILIB-SGI…)

Elles sont optimisées (en principe) pour les machines concernées

Elles ne sont pas portables

Page 5: 17-21 Octobre 2005 Formation Continue CNRS Laurence Viry Bibliothèques Scientifiques Constructeurs – Domaine public

17-21 Octobre 2005 Formation Continue - CNRS Laurence Viry

Bibliothèques monoprocesseurBLAS

BLAS: bibliothèque qui fournit des opérations algébriques de bas niveau Versions:

en Fortran domaine public (www.netlib.org/blas) constructeur optimisée à l’architecture des machines

Trois sections BLAS1 : opérations vecteur/vecteur

y=alpha*x + y BLAS2 : opérations matrice/vecteur

y=alpha*A*x + y BLAS3 : opérations matrice/matrice

C=alpha*AB+C

Page 6: 17-21 Octobre 2005 Formation Continue CNRS Laurence Viry Bibliothèques Scientifiques Constructeurs – Domaine public

17-21 Octobre 2005 Formation Continue - CNRS Laurence Viry

Bibliothèques monoprocesseurBLAS

BLAS Généricité du stockage Diversification vers:

d’autres langages (ADA, C) d’autres architectures (version MPI, version

OpenMP)

Page 7: 17-21 Octobre 2005 Formation Continue CNRS Laurence Viry Bibliothèques Scientifiques Constructeurs – Domaine public

17-21 Octobre 2005 Formation Continue - CNRS Laurence Viry

LAPACK (Linear Algebra Package)

LAPACK est un ensemble de sous-programmes qui permet de résoudre: Systèmes d’équations linéaires Problèmes aux valeurs propres Factorisation: LU, Cholesky, QR, Schur, Schur

généralisé… Les matrices considérées sont

pleines ou bandes (matrice creuses non traitées) de nombres réels ou complexes en simple ou double précision

Page 8: 17-21 Octobre 2005 Formation Continue CNRS Laurence Viry Bibliothèques Scientifiques Constructeurs – Domaine public

17-21 Octobre 2005 Formation Continue - CNRS Laurence Viry

NAG (Numerical Algorithms Group)Bibliothèque mathématique

Versions: Fortran 77

version 19 1155 sous programmes

Fortran 90 Version 4 Plus de 250 sous-programmes avec des

interfaces génériques C

Version 6 Plus de 450 sous-programmes

Page 9: 17-21 Octobre 2005 Formation Continue CNRS Laurence Viry Bibliothèques Scientifiques Constructeurs – Domaine public

17-21 Octobre 2005 Formation Continue - CNRS Laurence Viry

NAG

Vise à optimiser 5 critères Utilité Robustesse Stabilité numérique Précision Performance

Adaptée à d’autres architectures Version mémoire distribuée avec MPI Version mémoire partagée avec OpenMP

En constante évolution

Page 10: 17-21 Octobre 2005 Formation Continue CNRS Laurence Viry Bibliothèques Scientifiques Constructeurs – Domaine public

17-21 Octobre 2005 Formation Continue - CNRS Laurence Viry

IMSL

Partie statistique sans équivalent dans les autres bibliothèques

Versions Fortran77 / Fortran 90 / Parallèle – MPI C Java

Page 11: 17-21 Octobre 2005 Formation Continue CNRS Laurence Viry Bibliothèques Scientifiques Constructeurs – Domaine public

17-21 Octobre 2005 Formation Continue - CNRS Laurence Viry

Bibliothèques Constructeurs

NEC ASL (Advanced Scientific Library), Mathkeisan Versions séquentielle et parallèle

IBM ESSL (Engineering and Scientific Subroutine Library) Version séquentielle et parallèle

SGI et Cray Scilib (Scientific Library)

HP/COMPAQ CDSL

SUN SUN Performance Library

Page 12: 17-21 Octobre 2005 Formation Continue CNRS Laurence Viry Bibliothèques Scientifiques Constructeurs – Domaine public

17-21 Octobre 2005 Formation Continue - CNRS Laurence Viry

Bibliothéques mathématiques Fortran90

NAG fl90 (version 4) Plus de 250 sous-programmes génériques Couvre presqe tous les domaines

IMSL F90 MP (version 4) Plus de 60 sous-programmes génériques Couvre l’algèbre linéaire, fft, la génération de

nombres aléatoires Version 95 de LAPACK

Page 13: 17-21 Octobre 2005 Formation Continue CNRS Laurence Viry Bibliothèques Scientifiques Constructeurs – Domaine public

17-21 Octobre 2005 Formation Continue - CNRS Laurence Viry

Intel MKL (Math Kernel Librairies)

Bibliothèque mathématique optimisée sur Processeur Intel Pentium 3,4… Itanium :64-bit

Compilateur Intel Fortran version 5.0 et plus CVF Fortran version 6.0 et plus Intel C++ version 5.0 et plus Microsoft Visual C version 6.0 et plus

Contenu (Interface C et Fortran) BLAS et “extended BLAS“ (matrice creuse) LAPACK Transformées de Fourier rapide

Page 14: 17-21 Octobre 2005 Formation Continue CNRS Laurence Viry Bibliothèques Scientifiques Constructeurs – Domaine public

17-21 Octobre 2005 Formation Continue - CNRS Laurence Viry

Bibliothèques Parallèles

Domaine public PBLAS, SCALAPACK,FFTW,PLAPACK,PETSC…

Constructeur PESSL ,IBM ASL et MATHKEISAN – NEC Scilib chez SGI et Cray …

Bibliothèques commerciales NAG Parallel NAG SMP IMSL MP

Page 15: 17-21 Octobre 2005 Formation Continue CNRS Laurence Viry Bibliothèques Scientifiques Constructeurs – Domaine public

17-21 Octobre 2005 Formation Continue - CNRS Laurence Viry

BLACS

Bibliothèque standard de communication permettant sur une grille prédéfinie de processus : D’échanger des blocs de matrices

De les diffuser globalement

D’effectuer des réductions

Écrit en C

Plusieurs implémentations: MPI

PVM3.3

Syntaxe standard sur tous les systèmes

Page 16: 17-21 Octobre 2005 Formation Continue CNRS Laurence Viry Bibliothèques Scientifiques Constructeurs – Domaine public

17-21 Octobre 2005 Formation Continue - CNRS Laurence Viry

PBLAS (Parallel BLAS)

Défini et réalisé dans le cadre de la réalisation de SCALAPACK

L’équivalent des BLAS1,2 et 3 pour les machines à mémoire distribuée

Interface aussi proche que possible de celle des BLAS

Utilise les BLACS pour les communications

Page 17: 17-21 Octobre 2005 Formation Continue CNRS Laurence Viry Bibliothèques Scientifiques Constructeurs – Domaine public

17-21 Octobre 2005 Formation Continue - CNRS Laurence Viry

ScaLAPACK (Scalable LAPACK)

Le projet ScaLAPACK est divisé en quatre composants La bibliothèque ScaLAPACK: algèbre linéaire pour

les matrices denses La bibliothèque PARPACK (Parallel ARPACK):

recherche de valeurs propres dans de très grosses matrices

La bibliothèque CAPSS (Cartesian Parallel Sparse Solver) et MFACT (matrice creuse définie positive)

La bibliothèque PARPRE ( Parallel PREconditioners): préconditionneurs pour les matrices creuses quelconques.

www.netlib.org/scalapack/scalapack_home.html

Page 18: 17-21 Octobre 2005 Formation Continue CNRS Laurence Viry Bibliothèques Scientifiques Constructeurs – Domaine public

17-21 Octobre 2005 Formation Continue - CNRS Laurence Viry

Bibliothèque ScaLAPACK

Portable sur tout système

Deux implémentations basées sur PVM ou MPI

Version actuelle 1.7 (Aout 2001)

Basée sur les bibliothèques PBLAS et BLACS

Les domaines traités sont:

Résolution de système linéaires et factorisation

Inversion de matrice

Systèmes de valeurs propres

Page 19: 17-21 Octobre 2005 Formation Continue CNRS Laurence Viry Bibliothèques Scientifiques Constructeurs – Domaine public

STRUCTURE DE ScaLAPACK

KScaLAPACK

PBLAS

BLACS

MPI/PVM/…BLAS

LAPACK

Global

Local

Page 20: 17-21 Octobre 2005 Formation Continue CNRS Laurence Viry Bibliothèques Scientifiques Constructeurs – Domaine public

17-21 Octobre 2005 Formation Continue - CNRS Laurence Viry

PETSC

(Portable Extensive Toolkit for Scientific Computation)

Résolution des gros systèmes d’équations linéaires

Utilisable en version mono et multi processeurs

Programmation utilisant les concepts objets Version actuelle 2.1.6 (Août 2003) Utilisée dans de nombreuses applications

scientifiques (biologie, CFD, Nano-simulation,optimisation,…)

www-unix.mcs.anl.gov/petsc/petsc-2/

Page 21: 17-21 Octobre 2005 Formation Continue CNRS Laurence Viry Bibliothèques Scientifiques Constructeurs – Domaine public

17-21 Octobre 2005 Formation Continue - CNRS Laurence Viry

FFTW

Transformées de Fourier : Mono et multi-dimensionnelles Complexes ou réelles

Utilisable en version mono et multiprocesseurs Implémentation performante (benchmarck sur la

rapidité et la précision sur le site de FFTW) Écrit en C avec une interface pour le langage

Fortran Version actuelle 3.1 Site FFTW: www.fftw.org

Page 22: 17-21 Octobre 2005 Formation Continue CNRS Laurence Viry Bibliothèques Scientifiques Constructeurs – Domaine public

17-21 Octobre 2005 Formation Continue - CNRS Laurence Viry

NAG Parallel

Deux versions:

Pour machines à mémoire répartie

Version 3

Plus de 180 sous-programmes

Pour machines à mémoire partagée (NAG SMP)

Version 2

Plus de 230 sous-programmes

Voir site: www.nag.co.uk/numeric/numerical_librairies.asp

Page 23: 17-21 Octobre 2005 Formation Continue CNRS Laurence Viry Bibliothèques Scientifiques Constructeurs – Domaine public

17-21 Octobre 2005 Formation Continue - CNRS Laurence Viry

IMSL Parallel

Se prête à la répétition d’un calcul sur des jeux de données différents

Partie intégrante de la bibliothèque Fortran (Fortran 90 MP)

La mise en œuvre de la parallélisation est cachèe

Page 24: 17-21 Octobre 2005 Formation Continue CNRS Laurence Viry Bibliothèques Scientifiques Constructeurs – Domaine public

17-21 Octobre 2005 Formation Continue - CNRS Laurence Viry

Bibliothèques parallèles constructeurs

IBM : ESSL PBLAS et ScaLAPACK Transformées de Fourier 2D et 3D Génération de nombres aléatoires

SGI et CRAY : Scilib (Scientific Library) PBLAS et ScaLAPACK Transformées de Fourier 2D et 3D

NEC : ASL et MATHKEISAN PARBLAS (BLAS en mode mémoire partagée) PBLAS et ScaLAPACK Transformées de Fourier 2D et 3D Génération de nombres aléatoires

Page 25: 17-21 Octobre 2005 Formation Continue CNRS Laurence Viry Bibliothèques Scientifiques Constructeurs – Domaine public

KScaLAPACK

PBLAS

BLACS

MPI/PVM/…

BLAS

LAPACK

PETSC Scilib NAG //

IMSL