Upload
lottie-moreau
View
106
Download
0
Embed Size (px)
Citation preview
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
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
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
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
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)
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
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
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
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
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
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
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
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
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
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
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
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
…
STRUCTURE DE ScaLAPACK
KScaLAPACK
PBLAS
BLACS
MPI/PVM/…BLAS
LAPACK
Global
Local
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/
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
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
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
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
KScaLAPACK
PBLAS
BLACS
MPI/PVM/…
BLAS
LAPACK
PETSC Scilib NAG //
IMSL