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 monoprocesseur BLAS 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 monoprocesseur 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 Adaptée à d’autres architectures 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 … 17-21 Octobre 2005 Formation Continue - CNRS Laurence Viry
STRUCTURE DE ScaLAPACK PBLAS Global Local LAPACK BLACS BLAS MPI/PVM/…
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 Version 3 Plus de 180 sous-programmes Version 2 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) NEC : ASL et MATHKEISAN PARBLAS (BLAS en mode mémoire partagée) 17-21 Octobre 2005 Formation Continue - CNRS Laurence Viry
NAG // Scilib PETSC IMSL K ScaLAPACK PBLAS LAPACK BLAS BLACS MPI/PVM/…