optimisation de logiciels de modélisation sur centre de...

37
Optimisation de logiciels de mod ´ elisation sur centre de calcul erald Monard ole de Chimie Th´ eorique http://www.monard.info/

Upload: truongtu

Post on 16-Sep-2018

213 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Optimisation de logiciels de modélisation sur centre de …gerald.monard.free.fr/site/files/SoftOpt1.pdf · avec prise en compte des specificit´ e architecturales de ... toto.sobibliotheque

Optimisation de logiciels de modelisation surcentre de calcul

Gerald Monard

Pole de Chimie Theoriquehttp://www.monard.info/

Page 2: Optimisation de logiciels de modélisation sur centre de …gerald.monard.free.fr/site/files/SoftOpt1.pdf · avec prise en compte des specificit´ e architecturales de ... toto.sobibliotheque

IntroductionLes ordinateurs sont des appareils electroniques permettantd’effectuer des operations de base sur les entiers et les reels(flottants). Grosso-modo, ce sont de grosses calculatrices.

Ces calculatrices sont dorenavant partout dans notre monde:ordinateurs, mais aussi telephones, “Internet box”, cadres photos,voitures, fours, frigos, etc.

+ tout ce qui contient un CPU (Central Processing Unit)

En Chimie Theorique: on utilise principalement les qualites de calculsdes ordinateurs.

Le but: calculer des proprietes chimiques le plus rapidement possible.

Page 3: Optimisation de logiciels de modélisation sur centre de …gerald.monard.free.fr/site/files/SoftOpt1.pdf · avec prise en compte des specificit´ e architecturales de ... toto.sobibliotheque

Schema general d’un ordinateur: le modele de vonNeuman

Memoire

CPU

â Ordinateur = deux partiesCPU + memoire

â La memoire contient les donnees + lesprogrammes

â programme = liste d’instructions a executer enfonction des donnees

â instruction = donnee codee(calcul ou lecture/ecriture dans la memoire)

â CPU: obtient les instructions ou les donnees de lamemoire; decode les instructions et les executesequentiellement

Page 4: Optimisation de logiciels de modélisation sur centre de …gerald.monard.free.fr/site/files/SoftOpt1.pdf · avec prise en compte des specificit´ e architecturales de ... toto.sobibliotheque

Schema d’un ordinateur moderne

â Plusieurs CPU

â Memoires caches surle processeur (L1/L2)ou entre le processeuret la memoire centrale(L3)

â La carte graphiquepeut se transformer enCPU

â Donnees: en memoire,sur disqueinterne/externe, sur lereseau

Page 5: Optimisation de logiciels de modélisation sur centre de …gerald.monard.free.fr/site/files/SoftOpt1.pdf · avec prise en compte des specificit´ e architecturales de ... toto.sobibliotheque

Objectifs du cours

Mieux apprehender les architectures modernes des ordinateurssequentiels (1 CPU) ou paralleles (plusieurs CPU):

Plan (2 fois 3 heures de cours)

1. Programmation sequentielle

a) La compilation/installation de programmes(compilation, automatisation, adaptation)

b) Le “debuggage” de programmesc) Le “profiling” de programmesd) L’optimisation sequentielle de programmes

2. Programmation parallele

a) Qu’est-ce que le parallelisme ?b) Les modeles de machines parallelesc) Les modeles de programmation paralleled) Les lois fondamentales du parallelismee) Introduction a MPIf) Introduction a OpenMP

Page 6: Optimisation de logiciels de modélisation sur centre de …gerald.monard.free.fr/site/files/SoftOpt1.pdf · avec prise en compte des specificit´ e architecturales de ... toto.sobibliotheque

Bibliographie

â UNIX pour l’utilisateur - Commandes et Langages decommandesJean-Louis Nebut (Ed. Technip)

â Parallel Programming in C with MPI and OpenMPMichael J. Quinn (Ed. McGraw-Hill)

â High Performance ComputingKevin Dowd, Charles Severance (Ed. O’Reilly)

â Tutorials from Lawrence Livermore National Laboratoryhttp://www.llnl.gov/computing/tutorials/

â Tutorials from Ohio Supercomputer Centerhttp://www.osc.edu/hpc/training/

â Developping software with GNUhttp://www.amath.washington.edu/˜lf/tutorials/

autoconf/toolsmanual_toc.html

Page 7: Optimisation de logiciels de modélisation sur centre de …gerald.monard.free.fr/site/files/SoftOpt1.pdf · avec prise en compte des specificit´ e architecturales de ... toto.sobibliotheque

“Parler” a un ordinateurUn ordinateur ne reconnait que le langage binaire et les programmesbinaires.

L’homme a d’enormes difficultes a parler un langage binaire !

Les langages de programmation permettent d’effectuer le lien entrel’homme et l’ordinateur : un programme est ecrit dans un idiome(assez facilement) comprehensif par l’homme puis est traduit (parl’intermediaire d’un interpreteur ou d’un compilateur) en unesequence d’instructions (binaires) directement reconnaissables parl’ordinateur.

Page 8: Optimisation de logiciels de modélisation sur centre de …gerald.monard.free.fr/site/files/SoftOpt1.pdf · avec prise en compte des specificit´ e architecturales de ... toto.sobibliotheque

Compilation vs. Interpretation

Il existe deux sortes de langages : les langages interpretes et leslangages compiles (= traduits).

Les langages interpretes sont directement traduits et executes. Lesinstructions sont converties sequentiellement au format binaire par uninterpreteur puis executees immediatement.

Les langages compiles utilisent un compilateur qui traduit leprogramme en langage binaire. Une fois le langage compile, il estpossible de le stocker dans un fichier executable. Le compilateurn’intervient qu’au moment de la creation du code binaire. Leprogramme compile peut s’executer sans avoir recours aucompilateur.

On parle de code source pour designer les instructions duprogramme en format texte comprehensible, et de code executablepour designer les instructions du programme en langage binairedirectement executable par l’ordinateur. Tout fichier source mis a jourdoit etre a nouveau compile pour recreer le fichier executablecorrespondant.

Page 9: Optimisation de logiciels de modélisation sur centre de …gerald.monard.free.fr/site/files/SoftOpt1.pdf · avec prise en compte des specificit´ e architecturales de ... toto.sobibliotheque

Langages de programmation

Il existe de (tres) nombreux langages de programmation (= de faconde parler a un ordinateur).

Quelques langages existants ou ayant existes:

Ada B C C++ Python

Perl Ruby Fortran Cobol Java

Bash C-Shell OCaml Basic Lisp

Eiffel

Chaque langage a ses avantages et ses inconvenients. Il n’y a pas delangage de programmation parfait, mais des langages plus ou moinsadaptes a certains problemes (calculs, web, entree/sorties, etc.).

Page 10: Optimisation de logiciels de modélisation sur centre de …gerald.monard.free.fr/site/files/SoftOpt1.pdf · avec prise en compte des specificit´ e architecturales de ... toto.sobibliotheque

La compilation

L’etape de compilation permet de transformer un code source en uncode binaire (bytecode) qui va pouvoir etre charge en memoire par leCPU puis execute. Le resultat differera en fonction des donneespresentes au moment de l’execution.

Donnees CPU

Source BytecodeCompilation

(Assembleur)

Chargement

Chargement

Execution

Page 11: Optimisation de logiciels de modélisation sur centre de …gerald.monard.free.fr/site/files/SoftOpt1.pdf · avec prise en compte des specificit´ e architecturales de ... toto.sobibliotheque

Les differentes phases de la compilation

1. Phase de precompilation (preprocesseur): manipulation textuelsimple du programme(inclusion de fichiers, remplacement d’occurences, etc.)

2. Analyse lexicale: les instructions sont decomposes en morceauxelementaires (variables, commentaires, constantes, elements delangages, etc.)

3. Analyse grammaticale: la syntaxe est verifiee puis traduit en unlangage intermediaire (bytecode non optimise)

4. Optimisation du code intermediaire en une ou plusieurs passes

5. Traduction du code intermediaire optimise en code assembleuravec prise en compte des specificite architecturales del’ordinateur. +code objet

6. Edition de liens: transformation du code objet en un programmeexecutable.

Page 12: Optimisation de logiciels de modélisation sur centre de …gerald.monard.free.fr/site/files/SoftOpt1.pdf · avec prise en compte des specificit´ e architecturales de ... toto.sobibliotheque

Exemple: le compilateur gcc

â gcc: compilateur C GNU

â Un programme C simple:

1 # inc lude <s t d i o . h>2 i n t main ( ) {3 p r i n t f ( "Bonjour\n" ) ;4 r e t u r n ( 0 ) ;5 }

â La commande Unix: gcc -o hello hello.c-o hello: nomme le programme hello (a.out par defaut)

â Quatre phases: “preprocess, compile, assemble, link”

-E Preprocess only; do not compile, assemble or link

-S Compile only; do not assemble or link

-c Compile and assemble, but do not link

Page 13: Optimisation de logiciels de modélisation sur centre de …gerald.monard.free.fr/site/files/SoftOpt1.pdf · avec prise en compte des specificit´ e architecturales de ... toto.sobibliotheque

Bibliotheques (libraries)

â Une bibliotheque est une collection de routines qui peuvent etreutilisees dans des programmes.

â Les bibliotheques se distinguent des executables dans la mesureou elles ne representent pas une application. Elles ne sont pascompletes (pas de fonction “main”).

â L’etape d’editions de liens permet de construire des programmesa partir du code source et des bibliotheques deja definies.

â Terminologie sous UNIX:

toto.a bibliotheque statique: la bibliotheque est incluse(completement) dans le programme a l’edition deliens

toto.so bibliotheque dynamique: seule le lien vers labibliotheque est inclus dans le programme. Al’execution, les parties de codes de la bibliothequeseront executees a la demande.

Page 14: Optimisation de logiciels de modélisation sur centre de …gerald.monard.free.fr/site/files/SoftOpt1.pdf · avec prise en compte des specificit´ e architecturales de ... toto.sobibliotheque

Programme statique vs. programme dynamique

â Si un programme est lie a une bibliotheque dynamique, on parlede programme dynamique

â Sinon on parle de programme statique.

â Programme ldd: permet de lister les bibliotheques dynamiquesd’un programme.

â Variable d’environnement LD_LIBRARY_PATH: permet de definirles repertoires contenant les bibliotheques necessaires al’execution des programmes.

Page 15: Optimisation de logiciels de modélisation sur centre de …gerald.monard.free.fr/site/files/SoftOpt1.pdf · avec prise en compte des specificit´ e architecturales de ... toto.sobibliotheque

Compilation par morceaux

â Le code source d’un programme peut etre tres important

Gaussian G03.B05 = 1,193,237 lignes de fortran (au moins)

Amber9 = 1,032318 lignes de code (2/3 Fortran, 1/3 C)

â Generalement, le code source va etre divisee en morceaux(souvent 1 fichier par routine ou par bloc de routines)

â Compilation par morceaux

1 # comp i la t i on en une f o i s2 gcc −o add i t i on1 add i t i on1 . c random in i t . c z e r o i n i t . c temps . c3 # comp i la t i on en p l u s i eu r s morceaux4 gcc −c add i t i on1 . c5 gcc −c random in i t . c6 gcc −c z e r o i n i t . c7 gcc −c temps . c8 gcc −o add i t i on1 add i t i on1 . o random in i t . o z e r o i n i t . o temps . o

+ Avantage: apres une modification, on ne recompile que lesmorceaux qui ont change

Page 16: Optimisation de logiciels de modélisation sur centre de …gerald.monard.free.fr/site/files/SoftOpt1.pdf · avec prise en compte des specificit´ e architecturales de ... toto.sobibliotheque

Automatisation de la compilation

â Il est possible d’inclure l’ensemble des commandes decompilation dans un script

/ A chaque modification, tout le programme est recompile, memece qui n’a pas change

+ la commande Unix make permet d’automatiser la compilation enne compilant que ce qui est necessaire.

â Le fichier Makefile contient les regles de compilation(= un arbre de dependance)

Page 17: Optimisation de logiciels de modélisation sur centre de …gerald.monard.free.fr/site/files/SoftOpt1.pdf · avec prise en compte des specificit´ e architecturales de ... toto.sobibliotheque

Exemple de fichier Makefile

1 # les commentaires commencent par #23 # dependance du programme4 add i t i on1 : add i t i on1 . o random in i t . o z e r o i n i t . o temps . o5 gcc −o add i t i on1 add i t i on1 . o random in i t . o z e r o i n i t . o temps . o67 # ATTENTION: les reg les de comp i la t i on commencent8 # par une TABULATION9 add i t i on1 . o : add i t i on1 . c

10 gcc −c add i t i on1 . c1112 random in i t . o : random in i t . c13 gcc −c random in i t . c1415 z e r o i n i t . o : z e r o i n i t . c16 gcc −c z e r o i n i t . c1718 temps . o : temps . c19 gcc −c temps . c

Page 18: Optimisation de logiciels de modélisation sur centre de …gerald.monard.free.fr/site/files/SoftOpt1.pdf · avec prise en compte des specificit´ e architecturales de ... toto.sobibliotheque

Utilisation de variables predefinies

1 CC=gcc2 OBJ=random in i t . o z e r o i n i t . o temps . o34 prog : add i t i on156 # v a r i ab l e s p r e d e f i n i e s :7 # $@ : l a c i b l e8 # $< : l a dependance qu i a change9 # $ ˆ : tou tes les dependances

10 #11 add i t i on1 : add i t i on1 . o $ (OBJ)12 $ (CC) −o $@ $ ˆ1314 # reg le generale :15 . c . o :16 $ (CC) −c −o $@ $<

Page 19: Optimisation de logiciels de modélisation sur centre de …gerald.monard.free.fr/site/files/SoftOpt1.pdf · avec prise en compte des specificit´ e architecturales de ... toto.sobibliotheque

Makefile: choses diverses (et variees)

â Modification des variables: make CC=icc

â Inclusion de fichiers: include fichier

â Ne pas afficher l’execution des regles: @ avant la regle

â Makefile recursif: make -C directory dans une regleou cd directory; make

â .PHONY: cible “virtuelle” (pas de fichier cree)

â echo texte: affichage de texte

Il existe d’autres logiciels que make

SCons (python), Ant (java), cook (C), etc.

Page 20: Optimisation de logiciels de modélisation sur centre de …gerald.monard.free.fr/site/files/SoftOpt1.pdf · avec prise en compte des specificit´ e architecturales de ... toto.sobibliotheque

Adaptation de la compilation a l’architecture

â Chaque ordinateur est particulier de par sa configuration(processeur, RAM, disque, compilateur, bibliotheques, etc.)

â Il faut adapter le Makefile au systeme+ modification dynamique du Makefile

â Parmi les logiciels qui permettent de faire cela + autotools

â autotools est une collection de logiciels permettantl’automatisation de la generation de Makefile a partir de reglessimples.

â autotools comprend autoconf, automake, et libtools

Page 21: Optimisation de logiciels de modélisation sur centre de …gerald.monard.free.fr/site/files/SoftOpt1.pdf · avec prise en compte des specificit´ e architecturales de ... toto.sobibliotheque

autoconfautoconf permet de creer le script de

configuration: configure

automake permet a partir d’un fichier deregles simplifiees (Makefile.am)de creer un fichier Makefilesimplifie (Makefile.in) utilise parconfigure pour creer le Makefilefinal

configure est le script execute en premier parl’utilisateur. Il genere le Makefileadequat pour l’architecturecourante.

1 # commande a executer2 # par l ’ u t i l i s a t e u r3 sh . / conf igure4 make5 # eventuel lement6 make i n s t a l l

Page 22: Optimisation de logiciels de modélisation sur centre de …gerald.monard.free.fr/site/files/SoftOpt1.pdf · avec prise en compte des specificit´ e architecturales de ... toto.sobibliotheque

Exemple d’utilisation d’autoconf

1. Creation d’un fichier Makefile.am

2. Creation d’un fichier configure.ac

3. aclocal

4. autoconf

5. automake -a

Makefile.am

1 # l i s t e des programmes2 bin PROGRAMS=addit ion13 # l i s t e des sources n e c e s s a i r e s par programme4 addition1 SOURCES=addit ion1 . c z e r o i n i t . c random init . c temps . c

Page 23: Optimisation de logiciels de modélisation sur centre de …gerald.monard.free.fr/site/files/SoftOpt1.pdf · avec prise en compte des specificit´ e architecturales de ... toto.sobibliotheque

configure.ac

1 # i n i t i a l i s a t i o n2 AC INIT ( addi t ion1 . c )34 # c r e a t i o n du Makefi le . in a p a r t i r de Makefi le .am5 # v a r i a b l e : nom du package , numero de vers ion6 AM INIT AUTOMAKE( addit ion1 , 1 . 0 )78 # v e r i f i e l a presence du compilateur C9 AC PROG CC

1011 # peut−on i n s t a l l e r des programmes ?12 AC PROG INSTALL1314 # f i n : c r e a t i o n du Makefi le15 AC OUTPUT( Makefi le )

Utilisation

1 . / conf igure2 make

Page 24: Optimisation de logiciels de modélisation sur centre de …gerald.monard.free.fr/site/files/SoftOpt1.pdf · avec prise en compte des specificit´ e architecturales de ... toto.sobibliotheque

Avantages de l’utilisation de autotools

Pour le programmeur:

â Generation automatique des Makefiles

â Gestion de la recursivite (dans Makefile.am)

â Gestion des packages (make dist)

Pour l’utilisateur:

â Simple a utiliser

1 . / con f igu re CC= i f c −−b i n d i r = / usr / l o c a l2 make3 make check4 make i n s t a l l

â et une aide existe ,:

1 . / con f igu re −−help

Page 25: Optimisation de logiciels de modélisation sur centre de …gerald.monard.free.fr/site/files/SoftOpt1.pdf · avec prise en compte des specificit´ e architecturales de ... toto.sobibliotheque

A la chasse aux bugs !

â Associes aux compilateurs, il existe des outils d’aide audeveloppement qui permet d’ausculter le comportement d’unprogramme

â gdb: GNU debugger (autre nom: idb, pgdb, etc.)

â Principe:

compilation utilisation de l’option -g qui rajoute du codespecifique au debuggage

debuggage soit post-mortem (lecture d’un fichier core),soit en temps reel + utilisation de gdb

Page 26: Optimisation de logiciels de modélisation sur centre de …gerald.monard.free.fr/site/files/SoftOpt1.pdf · avec prise en compte des specificit´ e architecturales de ... toto.sobibliotheque

Exemple d’utilation de gdb

1 sh . / con f igu re CC="gcc" CFLAGS="-g"2 make clean3 make4 gdb add i t i on15 ( gdb ) run6 ( gdb0 q u i t

Interfaces graphiques

â kdbg

â Netbeans

â eclipse

â kdevelop

â etc.

Page 27: Optimisation de logiciels de modélisation sur centre de …gerald.monard.free.fr/site/files/SoftOpt1.pdf · avec prise en compte des specificit´ e architecturales de ... toto.sobibliotheque

Temps d’execution d’un programme

Commande UNIX time+ 3 nombres

â temps utilisateur (User Time)

â temps systeme (System Time)

â temps reel (Elapsed Time ou Wall Clock Time)

1 $ time . / addit ion12 r e a l 0m0. 0 0 2 s3 user 0m0. 0 0 0 s4 sys 0m0. 0 0 0 s

Page 28: Optimisation de logiciels de modélisation sur centre de …gerald.monard.free.fr/site/files/SoftOpt1.pdf · avec prise en compte des specificit´ e architecturales de ... toto.sobibliotheque

Profil d’une œuvre

â Le “profiling” permet d’obtenir une idee precise du temps qui estecoule dans chaque routine d’un programme

â Compilation: utilisation de l’option de compilation -p (ou -pg)

â Execution: normal (!)

â Post-traitement: utilisation de prof (ou gprof)

1 sh . / con f igu re CFLAGS="-pg"2 make clean3 make4 . / add i t i on15 gpro f add i t i on1 > add i t i on1 . gpro f

Page 29: Optimisation de logiciels de modélisation sur centre de …gerald.monard.free.fr/site/files/SoftOpt1.pdf · avec prise en compte des specificit´ e architecturales de ... toto.sobibliotheque

Acceleration d’un programme

Il existe differentes manieres (complementaires) d’accelerer unprogramme:

â Utiliser de bonnes options de compilation

+ de -O0 jusque -O3 et au-delaAttention -O = conservatif / -O3 = non conservatif

â Utiliser un compilateur rapide (gcc vs. icc vs. pgcc)

â Utiliser les specificites architecturales de la machines(SSE1/2/3/4, etc.)

+ voir les options specifiques du compilateur

â Bien ecrire son code = eviter les branchements (if) dans lesboucles; choisir le bon ordre des boucles(voir exemple sur multiplication de matrices)

â Utiliser des bibliotheques numeriques

+ BLAS, LAPACK (http://www.netlib.org)

Page 30: Optimisation de logiciels de modélisation sur centre de …gerald.monard.free.fr/site/files/SoftOpt1.pdf · avec prise en compte des specificit´ e architecturales de ... toto.sobibliotheque

Representation matricielles

exemple:

A =

1. 2. 3.

4. 5. 6.

7. 8. 9.

10. 11. 12.

traduction en C:

1 double A [ 4 ] [ 3 ] ;234 A [ 0 ] [ 0 ] = 1.0d0 ;5 A [ 0 ] [ 1 ] = 2.0d0 ;6 A [ 0 ] [ 2 ] = 3.0d0 ;7 A [ 1 ] [ 0 ] = 4.0d0 ;8 A [ 1 ] [ 1 ] = 5.0d0 ;9 . . .

10 A [ 3 ] [ 0 ] = 10.0d0 ;11 A [ 3 ] [ 1 ] = 11.0d0 ;12 A [ 3 ] [ 2 ] = 12.0d0 ;

traduction en Fortran:

1 double p r e c i s i o n A2 dimension A(4 ,3 )34 A(1 ,1 ) = 1.0d05 A(1 ,2 ) = 2.0d06 A(1 ,3 ) = 3.0d07 A(2 ,1 ) = 4.0d08 A(2 ,2 ) = 5.0d09 . . .

10 A(4 ,1 ) = 10.0d011 A(4 ,2 ) = 11.0d012 A(4 ,3 ) = 12.0d0

Page 31: Optimisation de logiciels de modélisation sur centre de …gerald.monard.free.fr/site/files/SoftOpt1.pdf · avec prise en compte des specificit´ e architecturales de ... toto.sobibliotheque

en memoire (C):

1.

2. ligne 1

3.

4.

5. ligne 2

6.

7.

8. ligne 3

9.

10.

11. ligne 4

12.

en memoire (Fortran):

1.

4.

7.colonne 1

10.

2.

5.

8.colonne 2

11.

3.

9.

6.colonne 3

12.

Page 32: Optimisation de logiciels de modélisation sur centre de …gerald.monard.free.fr/site/files/SoftOpt1.pdf · avec prise en compte des specificit´ e architecturales de ... toto.sobibliotheque

Multiplication de deux matrices

Attention a la memoire cache !

Version C:

1 double A [ n ] [ p ] , B [ p ] [m] , C[ n ] [m] ;2 i n t i , j , k ;34 f o r ( i = 0 ; i < n ; i ++)5 {

6 f o r ( k = 0 ; k < p ; k++)7 {

8 f o r ( j = 0 ; j < m; j ++)9 C[ i ] [ j ] = C[ i ] [ j ] + A [ i ] [ k ] ∗ B[ k ] [ j ] ;

10 }

11 }

Page 33: Optimisation de logiciels de modélisation sur centre de …gerald.monard.free.fr/site/files/SoftOpt1.pdf · avec prise en compte des specificit´ e architecturales de ... toto.sobibliotheque

Multiplication de deux matrices

Version Fortran

1 double p r e c i s i o n A, B, C2 dimension A( n , p ) , B( p ,m) , C( n ,m)3 i n t e g e r i , j , k45 do j = 1 , m6 do k = 1 , p7 do i = 1 , n8 C( i , j ) = C( i , j ) + A( i , k ) ∗ B( k , j )9 end do

10 end do11 end do

Page 34: Optimisation de logiciels de modélisation sur centre de …gerald.monard.free.fr/site/files/SoftOpt1.pdf · avec prise en compte des specificit´ e architecturales de ... toto.sobibliotheque

Bibliotheques numeriques

â http://www.netlib.org

â BLAS: Basic Linear Algebra Subprograms

â Ce sont des routines pour effectuer des operations de bases surles vecteurs et les matrices (Fortran 77).

â BLAS niveau 1 : operations vecteurs-vecteurs

â BLAS niveau 2 : operations matrices-vecteurs

â BLAS niveau 3 : operations matrices-matrices

â Avantage de BLAS : efficace, portable, facilement accessible.+ ∃ des versions machine-specifique −→ tres efficace car utiliseau mieux les possibilites des machines.

â ATLAS : BLAS qui s’optimise pour une architecture donnee.

Page 35: Optimisation de logiciels de modélisation sur centre de …gerald.monard.free.fr/site/files/SoftOpt1.pdf · avec prise en compte des specificit´ e architecturales de ... toto.sobibliotheque

BLAS est Limite aux operations elementaires.

exemple avec BLAS-3 :

C ← αAB + βCC ← αATB + βCC ← αABT + βCC ← αATBT + βC

Si T est triangulaire

B ← αTBB ← αTTBB ← αBTB ← αBTT

. . .

Page 36: Optimisation de logiciels de modélisation sur centre de …gerald.monard.free.fr/site/files/SoftOpt1.pdf · avec prise en compte des specificit´ e architecturales de ... toto.sobibliotheque

Convention d’appel :

Caractere 1 : type donnee dans la matrice

S : REAL, D : DOUBLE PRECISION, C : COMPLEX, Z :COMPLEX*16 ou DOUBLE COMPLEX

Caractere 2 et 3 : type de matrice

GE : matrice rectangulaire (general), HE : l’une des matrices esthermitienne (A = AT∗), SY : l’une des matrices est symetrique, TR :l’une des matrices est triangulaire

Caractere 4 et 5 : type d’operations

MM : produit de matrices, SM : resolution d’une systemesd’equations lineaires, . . .

Exemple: GEMM

Page 37: Optimisation de logiciels de modélisation sur centre de …gerald.monard.free.fr/site/files/SoftOpt1.pdf · avec prise en compte des specificit´ e architecturales de ... toto.sobibliotheque

LAPACK

â Bibliotheques de routines portables (Fortran 77) permettant deresoudre la plupart des problemes numeriques en algebrelineaire.

â Ex.: systemes d’equations lineaires, valeurs propres,decomposition en valeurs singulieres, (LU, Cholesky, SVD, QR,. . . )

â Haute performance, notamment sur les architectures paralleles,vectorielles, a memoires partagees, . . .

â LAPACK fait appel a BLAS −→ tres efficace et portable.

â Version Parallele : PBLAS et ScaLAPACK.