17-21 octobre 2005 formation continue - cnrs laurence viry analyse et optimisation de code...
TRANSCRIPT
![Page 1: 17-21 Octobre 2005 Formation Continue - CNRS Laurence Viry Analyse et Optimisation de code Techniques doptimisation](https://reader030.vdocuments.fr/reader030/viewer/2022020803/551d9d8c497959293b8c18a8/html5/thumbnails/1.jpg)
17-21 Octobre 2005 Formation Continue - CNRS Laurence Viry
Analyse et Optimisation de code
Techniques d’optimisation
![Page 2: 17-21 Octobre 2005 Formation Continue - CNRS Laurence Viry Analyse et Optimisation de code Techniques doptimisation](https://reader030.vdocuments.fr/reader030/viewer/2022020803/551d9d8c497959293b8c18a8/html5/thumbnails/2.jpg)
17 – 21 Octobre 2005 Formation Continue - CNRS Laurence Viry
A faire
Vérifier: Multi-threading bib sun (F roch) Utilisation des caches L3
![Page 3: 17-21 Octobre 2005 Formation Continue - CNRS Laurence Viry Analyse et Optimisation de code Techniques doptimisation](https://reader030.vdocuments.fr/reader030/viewer/2022020803/551d9d8c497959293b8c18a8/html5/thumbnails/3.jpg)
17 – 21 Octobre 2005 Formation Continue - CNRS Laurence Viry
Optimisation séquentielle
Principes généraux
Architecture des processeurs, évolution les 30 dernières
années
Architecture de la mémoire
Quelques techniques d’optimisations
Méthodologie proposée
Optimisation du compilateur
Timing et profiling
Quelques méthodes d’optimisation “manuelle”
![Page 4: 17-21 Octobre 2005 Formation Continue - CNRS Laurence Viry Analyse et Optimisation de code Techniques doptimisation](https://reader030.vdocuments.fr/reader030/viewer/2022020803/551d9d8c497959293b8c18a8/html5/thumbnails/4.jpg)
17 – 21 Octobre 2005 Formation Continue - CNRS Laurence Viry
Méthodologie conseillée
Valider le programme à optimiser
Utiliser des codes déja optimisés ou s’y ramener
Utiliser des algorithmes performants
Analyser le code, et se concentrer sur les sections critiques
Utiliser les capacités d’optimiser du compilateur
Effectuer des modifications dans le code pour optimiser les sections critiques
![Page 5: 17-21 Octobre 2005 Formation Continue - CNRS Laurence Viry Analyse et Optimisation de code Techniques doptimisation](https://reader030.vdocuments.fr/reader030/viewer/2022020803/551d9d8c497959293b8c18a8/html5/thumbnails/5.jpg)
17 – 21 Octobre 2005 Formation Continue - CNRS Laurence Viry
Algorithmes Performants
Les Mflops est un mauvais indice de performance d’un code
Deux algorithmes de multiplications de matrices Même Mflops Temps CPU très différents
En priorité à l’optimisation d’un code, s’assurer de la performance des algorithmes utilisés
![Page 6: 17-21 Octobre 2005 Formation Continue - CNRS Laurence Viry Analyse et Optimisation de code Techniques doptimisation](https://reader030.vdocuments.fr/reader030/viewer/2022020803/551d9d8c497959293b8c18a8/html5/thumbnails/6.jpg)
17 – 21 Octobre 2005 Formation Continue - CNRS Laurence Viry
Techniques d’optimisation
Inlining Analyse interprocédurale Accès mémoire
Réutilisation du cache Stride minimum Copie …
Réduction des TLB misses Alignement des données
Optimisation de boucles
![Page 7: 17-21 Octobre 2005 Formation Continue - CNRS Laurence Viry Analyse et Optimisation de code Techniques doptimisation](https://reader030.vdocuments.fr/reader030/viewer/2022020803/551d9d8c497959293b8c18a8/html5/thumbnails/7.jpg)
17 – 21 Octobre 2005 Formation Continue - CNRS Laurence Viry
Compilateur: génération de code (rappel)
1ère phase: analyse syntaxique et logique Transformation en un code intermédiaire prêt
à l’optimisation 2ème phase: Optimisation Haut Niveau
(HLO: transformations de boucles, inlining,..) 3ème phase: Optimisations globales et
locales, allocation des registres… 4ème phase: Génération du code en tenant
compte des spécificités de l’architecture du(des) processeurs.
![Page 8: 17-21 Octobre 2005 Formation Continue - CNRS Laurence Viry Analyse et Optimisation de code Techniques doptimisation](https://reader030.vdocuments.fr/reader030/viewer/2022020803/551d9d8c497959293b8c18a8/html5/thumbnails/8.jpg)
17 – 21 Octobre 2005 Formation Continue - CNRS Laurence Viry
Software Pipelining
Le compilateur ne fait pas toujours du Software Pipelining par défaut
augmente le temps de compilation Performant sur les boucles vectorisables Moins performant sur les boucles:
de grande taille contenant des récurrences
N’est pas effectué sur les boucles: contenant des appels de fonction contenant des instructions goto
![Page 9: 17-21 Octobre 2005 Formation Continue - CNRS Laurence Viry Analyse et Optimisation de code Techniques doptimisation](https://reader030.vdocuments.fr/reader030/viewer/2022020803/551d9d8c497959293b8c18a8/html5/thumbnails/9.jpg)
17 – 21 Octobre 2005 Formation Continue - CNRS Laurence Viry
Inlining
Remplace l’appel d’une procédure par le code de cette procédure
Intérets:
élimine l’overhead dû à l’appel (sauvegarde des registres, appel, instructions de retour, …)
fournit un contexte plus large pour l’optimisation scalaire et de boucles.
![Page 10: 17-21 Octobre 2005 Formation Continue - CNRS Laurence Viry Analyse et Optimisation de code Techniques doptimisation](https://reader030.vdocuments.fr/reader030/viewer/2022020803/551d9d8c497959293b8c18a8/html5/thumbnails/10.jpg)
17 – 21 Octobre 2005 Formation Continue - CNRS Laurence Viry
Inlining
Inconvénients: Augmente le temps de compilation
Crée des problèmes d’allocation de registres plus complexes
augmente la taille du code
Critères d’Inlining: fréquence des appels
taille de la procédure appelée
![Page 11: 17-21 Octobre 2005 Formation Continue - CNRS Laurence Viry Analyse et Optimisation de code Techniques doptimisation](https://reader030.vdocuments.fr/reader030/viewer/2022020803/551d9d8c497959293b8c18a8/html5/thumbnails/11.jpg)
17 – 21 Octobre 2005 Formation Continue - CNRS Laurence Viry
Analyse Interprocédurale (IPA)
Par défaut: analyse du compilateur sur une seule procédure à la fois.
Inconvénients: manque d’information pour analyser les dépendances, pour mettre en évidence les constantes mettre en évidence les variables jamais
utilisées traitement des variables à la frontière des
procédures ...
OPTIMISATION CONSERVATIVE
![Page 12: 17-21 Octobre 2005 Formation Continue - CNRS Laurence Viry Analyse et Optimisation de code Techniques doptimisation](https://reader030.vdocuments.fr/reader030/viewer/2022020803/551d9d8c497959293b8c18a8/html5/thumbnails/12.jpg)
17 – 21 Octobre 2005 Formation Continue - CNRS Laurence Viry
IPA (suite)
Analyse plusieurs procédures simultanément
Renvoie la plupart des actions d’optimisation du compilateur juste avant l’édition de liens
Compilations en plusieurs phases Contrôle la façon dont les procédures et les fonctions
interagissent ente elles Principales actions:
Inlining automatique Désactive la récursivité ...
![Page 13: 17-21 Octobre 2005 Formation Continue - CNRS Laurence Viry Analyse et Optimisation de code Techniques doptimisation](https://reader030.vdocuments.fr/reader030/viewer/2022020803/551d9d8c497959293b8c18a8/html5/thumbnails/13.jpg)
17 – 21 Octobre 2005 Formation Continue - CNRS Laurence Viry
IPA (suite)
Intérets
permet des optimisations supplémentaires
Software Pipelining,
Optimisation des boucles imbriquées,
Inlining,
réduction des conflits de cache(padding,…),
élimination des fonctions jamais utilisées,
détection des noms globaux,
…
![Page 14: 17-21 Octobre 2005 Formation Continue - CNRS Laurence Viry Analyse et Optimisation de code Techniques doptimisation](https://reader030.vdocuments.fr/reader030/viewer/2022020803/551d9d8c497959293b8c18a8/html5/thumbnails/14.jpg)
17 – 21 Octobre 2005 Formation Continue - CNRS Laurence Viry
IPA (suite)
Inconvénients:
augmente le temps global compilation/édition de liens
augmente la taille de l’exécutable
peut modifier sensiblement les résultats
![Page 15: 17-21 Octobre 2005 Formation Continue - CNRS Laurence Viry Analyse et Optimisation de code Techniques doptimisation](https://reader030.vdocuments.fr/reader030/viewer/2022020803/551d9d8c497959293b8c18a8/html5/thumbnails/15.jpg)
17 – 21 Octobre 2005 Formation Continue - CNRS Laurence Viry
Optimisation des accès mémoire
Minimiser le stride
Fortran: stockage par colonneParcourt d’un tableau 2D par l’index le plus à gauche
C : stockage par ligneParcourt d’un tableau 2D par l’index le plus à droite
Regroupement de données
Optimisation par copie
Alignement « naturel » des données
Optimisation des boucles
![Page 16: 17-21 Octobre 2005 Formation Continue - CNRS Laurence Viry Analyse et Optimisation de code Techniques doptimisation](https://reader030.vdocuments.fr/reader030/viewer/2022020803/551d9d8c497959293b8c18a8/html5/thumbnails/16.jpg)
17 – 21 Octobre 2005 Formation Continue - CNRS Laurence Viry
Réutilisation du cache: stride
Stride égal à 1 (Fortran) do i=1,n
do j=1,n a(i,j)=b(i,j) enddo
enddo
do j=1,n do i=1,n
a(i,j)=b(i,j) enddo
enddo
sera modifié
![Page 17: 17-21 Octobre 2005 Formation Continue - CNRS Laurence Viry Analyse et Optimisation de code Techniques doptimisation](https://reader030.vdocuments.fr/reader030/viewer/2022020803/551d9d8c497959293b8c18a8/html5/thumbnails/17.jpg)
17 – 21 Octobre 2005 Formation Continue - CNRS Laurence Viry
Réutilisation du cache (suite)
Regrouper les données utiliséesdo i,1,n
j=index(i) d=d+sqrt(x(j)*x(j) + y(j)*y(j) + z(j)*z(j)
enddo
do i,1,n j=index(i)
d=d+sqrt(r(1,j)*r(1,j) + r(2,j)*r(2,j) + r(3,j)*r(3,j)
enddo
x,y et z seront regroupés dans un même tableau r
![Page 18: 17-21 Octobre 2005 Formation Continue - CNRS Laurence Viry Analyse et Optimisation de code Techniques doptimisation](https://reader030.vdocuments.fr/reader030/viewer/2022020803/551d9d8c497959293b8c18a8/html5/thumbnails/18.jpg)
17 – 21 Octobre 2005 Formation Continue - CNRS Laurence Viry
Optimisation du cache par copie
Copie d ’une partie des données dans un tableau temporaire taille du tableau < 64*taille_page suffisamment petit: réutilisation des données du cache ne peut être pris en charge par le compilateur
Performances: diminue les " TLB misses " " L1 et L2 misses " peuvent rester importants Overhead dû à la copie
Préférer le " Cache Blocking " lorsque c’est possible
![Page 19: 17-21 Octobre 2005 Formation Continue - CNRS Laurence Viry Analyse et Optimisation de code Techniques doptimisation](https://reader030.vdocuments.fr/reader030/viewer/2022020803/551d9d8c497959293b8c18a8/html5/thumbnails/19.jpg)
17 – 21 Octobre 2005 Formation Continue - CNRS Laurence Viry
Recouvrement des latences d’accès aux données
Par le système pour les faibles latences: Caches primaires
Caches secondaires
data prefetch Pas intégrée aux langages C et Fortran
Insérée automatiquement par le compilateur
Manuellement par le programmeur à l’aide d’une directive pour certains compilateurs
![Page 20: 17-21 Octobre 2005 Formation Continue - CNRS Laurence Viry Analyse et Optimisation de code Techniques doptimisation](https://reader030.vdocuments.fr/reader030/viewer/2022020803/551d9d8c497959293b8c18a8/html5/thumbnails/20.jpg)
17 – 21 Octobre 2005 Formation Continue - CNRS Laurence Viry
Alignement des données
Alignement « naturel »: lorsque l’adresse est un multiple de la taille de la donnée
Le compilateur effectue en général cet alignement.
Mauvais alignement dans le cas de l’instruction EQUiVALENCE et dans les COMMON en Fortran
Conseils:
Commencer par les données numériques de plus grande taille suivies par les non numériques
Utiliser les options d’alignement du compilateur …
![Page 21: 17-21 Octobre 2005 Formation Continue - CNRS Laurence Viry Analyse et Optimisation de code Techniques doptimisation](https://reader030.vdocuments.fr/reader030/viewer/2022020803/551d9d8c497959293b8c18a8/html5/thumbnails/21.jpg)
17 – 21 Octobre 2005 Formation Continue - CNRS Laurence Viry
Optimisationde boucles
Unrolling
Boucles imbriquées
Loop interchange
Références mémoire
Blocking
Out-OF-Score
![Page 22: 17-21 Octobre 2005 Formation Continue - CNRS Laurence Viry Analyse et Optimisation de code Techniques doptimisation](https://reader030.vdocuments.fr/reader030/viewer/2022020803/551d9d8c497959293b8c18a8/html5/thumbnails/22.jpg)
17 – 21 Octobre 2005 Formation Continue - CNRS Laurence Viry
Loop Unrolling
Diminue l’overhead dû à la gestion des boucles
Favorise le parallélisme du processeur (pipelining)
Mais nécessite une boucle de préconditionnement
![Page 23: 17-21 Octobre 2005 Formation Continue - CNRS Laurence Viry Analyse et Optimisation de code Techniques doptimisation](https://reader030.vdocuments.fr/reader030/viewer/2022020803/551d9d8c497959293b8c18a8/html5/thumbnails/23.jpg)
17 – 21 Octobre 2005 Formation Continue - CNRS Laurence Viry
Les boucles candidates à l’unrolling sont
Un nombre « raisonnable » d’instructions à chaque itération Petit: overhead de la boucle de
préconditionnement, sauf si le nombre d’itérations est constant
Nombre d’instructions par itération important augmente la taille du code et des accès mémoire
Pas d’appel de procédures Condition de branchement possible dans le cas
de processeur superscalaire (exécution conditionnel)
Boucle externe de boucles imbriquées dans certains cas
![Page 24: 17-21 Octobre 2005 Formation Continue - CNRS Laurence Viry Analyse et Optimisation de code Techniques doptimisation](https://reader030.vdocuments.fr/reader030/viewer/2022020803/551d9d8c497959293b8c18a8/html5/thumbnails/24.jpg)
17 – 21 Octobre 2005 Formation Continue - CNRS Laurence Viry
Boucles imbriquées
Unrolling : Boucle interne et/ou boucle externe ?
stride => favoriser la réutilisation des caches
Taille des boucles => favoriser les boucles à grand nombre d'itérations
Traitement des boucles non récursives => augmente le taux de parallélisme:
![Page 25: 17-21 Octobre 2005 Formation Continue - CNRS Laurence Viry Analyse et Optimisation de code Techniques doptimisation](https://reader030.vdocuments.fr/reader030/viewer/2022020803/551d9d8c497959293b8c18a8/html5/thumbnails/25.jpg)
17 – 21 Octobre 2005 Formation Continue - CNRS Laurence Viry
Loop Interchange Centrer l’activité sur les boucles les plus internes
Minimiser le stride
Nécessite une analyse de dépendance
Par l’utilisateur
Par le compilateur
Parallélisation automatique
Paralléliser sur la boucle externe
Unrolling sur la boucle interne
![Page 26: 17-21 Octobre 2005 Formation Continue - CNRS Laurence Viry Analyse et Optimisation de code Techniques doptimisation](https://reader030.vdocuments.fr/reader030/viewer/2022020803/551d9d8c497959293b8c18a8/html5/thumbnails/26.jpg)
17 – 21 Octobre 2005 Formation Continue - CNRS Laurence Viry
Loop Interchange?
DO I=1,NDO J=1,N
A(J,I)=B(I,J)ENDDO
ENDDO
DO J=1,NDO I=1,N
A(J,I)=B(I,J)ENDDO
ENDDO
L’inversion des boucles ne résoud pas les problèmes d’accès
![Page 27: 17-21 Octobre 2005 Formation Continue - CNRS Laurence Viry Analyse et Optimisation de code Techniques doptimisation](https://reader030.vdocuments.fr/reader030/viewer/2022020803/551d9d8c497959293b8c18a8/html5/thumbnails/27.jpg)
17 – 21 Octobre 2005 Formation Continue - CNRS Laurence Viry
Cache Blocking
Principes: minimiser les transferts utiliser entièrement la ligne de cache réutiliser au maximun les données dans le cache minimiser le nombre de références différentes à des
pages physiques (TLB misses)
Méthode découper les données en blocs tenant dans le cache ajouter des boucles extérieures qui contrôlent la taille des blocs
Cas de la multiplication de grandes matrices: 2 matrices découpées en blocs colonnes 1 matrice en bloc ligne
![Page 28: 17-21 Octobre 2005 Formation Continue - CNRS Laurence Viry Analyse et Optimisation de code Techniques doptimisation](https://reader030.vdocuments.fr/reader030/viewer/2022020803/551d9d8c497959293b8c18a8/html5/thumbnails/28.jpg)
17 – 21 Octobre 2005 Formation Continue - CNRS Laurence Viry
Algorithme de Gauss – DS20 / ES45Influence de la taille du cache
![Page 29: 17-21 Octobre 2005 Formation Continue - CNRS Laurence Viry Analyse et Optimisation de code Techniques doptimisation](https://reader030.vdocuments.fr/reader030/viewer/2022020803/551d9d8c497959293b8c18a8/html5/thumbnails/29.jpg)
17 – 21 Octobre 2005 Formation Continue - CNRS Laurence Viry
Cache Blocking
Exemple: multiplication de deux matricesdo j=1,n do i=1,m do k=1,p c(i,j)=c(i,j)+a(i,k)*b(k,j) enddo enddo enddo
m n p lda ldb ldc Scs MFLOPS----------------------------------------------------------------------------------------- 30 30 30 30 30 30 0.000162 333.9 200 200 200 200 200 200 0.056613 282.61000 1000 1000 1000 1000 1000 25.4311 78.6
![Page 30: 17-21 Octobre 2005 Formation Continue - CNRS Laurence Viry Analyse et Optimisation de code Techniques doptimisation](https://reader030.vdocuments.fr/reader030/viewer/2022020803/551d9d8c497959293b8c18a8/html5/thumbnails/30.jpg)
17 – 21 Octobre 2005 Formation Continue - CNRS Laurence Viry
Multiplication de matrices
=
Accès:Bloc C : 1foisBloc A : nb colonnes de CBloc B : nb lignes de A
C A
B
![Page 31: 17-21 Octobre 2005 Formation Continue - CNRS Laurence Viry Analyse et Optimisation de code Techniques doptimisation](https://reader030.vdocuments.fr/reader030/viewer/2022020803/551d9d8c497959293b8c18a8/html5/thumbnails/31.jpg)
17 – 21 Octobre 2005 Formation Continue - CNRS Laurence Viry
Fusionner les boucles
dimension a(n), b(n)do i=1,n a(i)=a(i)+alpha*b(i)enddodot=0.do i=1,n dot=dot+a(i)*a(i)enddo
dimension a(n), b(n)dot=0.do i=1,n a(i)=a(i)+alpha*b(i) dot=dot+a(i)*a(i)enddo
![Page 32: 17-21 Octobre 2005 Formation Continue - CNRS Laurence Viry Analyse et Optimisation de code Techniques doptimisation](https://reader030.vdocuments.fr/reader030/viewer/2022020803/551d9d8c497959293b8c18a8/html5/thumbnails/32.jpg)
17 – 21 Octobre 2005 Formation Continue - CNRS Laurence Viry
IEEE 754 binary floating point arithmetic
Transformation non conforme avec IEEE 754do i=1,n tmp=1/c
b(i)=a(i)/c par do i=1,nenddo b(i)=a(i)*tmp enddo
L’ordre des opérations peut provoquer des résultats numériques différents (arrondis, overflows…)
L’utilisation des resources hardware impose parfois de modifier l’ordre des opérations (pipelining…)
Suivre le standard IEEE 754
![Page 33: 17-21 Octobre 2005 Formation Continue - CNRS Laurence Viry Analyse et Optimisation de code Techniques doptimisation](https://reader030.vdocuments.fr/reader030/viewer/2022020803/551d9d8c497959293b8c18a8/html5/thumbnails/33.jpg)
17 – 21 Octobre 2005 Formation Continue - CNRS Laurence Viry
Optimisations Numériques
Précision Architecture 32bits: ~7 décimales Architecture 64bits: ~13 décimales
128bits – options du compilateur: ~30décimales diminution des performances (~50%)utilité de cette précisions ?
MADD instruction (ISA du processeur) Accélère les codes d’algèbre linéaire N’adhère pas totalement à la norme IEEE Perte de précision possible
![Page 34: 17-21 Octobre 2005 Formation Continue - CNRS Laurence Viry Analyse et Optimisation de code Techniques doptimisation](https://reader030.vdocuments.fr/reader030/viewer/2022020803/551d9d8c497959293b8c18a8/html5/thumbnails/34.jpg)
17 – 21 Octobre 2005 Formation Continue - CNRS Laurence Viry
Les pointeurs
Excellent outil pour construire et manipuler toute sorte de structure de données (listes, arbres,…)
MAIS
Inhibe certaines optimisations du compilateur par manque d’information.
==> Optimisation conservative
POURTANT
L’utilisation de structures de données appropriées peuvent améliorer les performances de certaines applications
![Page 35: 17-21 Octobre 2005 Formation Continue - CNRS Laurence Viry Analyse et Optimisation de code Techniques doptimisation](https://reader030.vdocuments.fr/reader030/viewer/2022020803/551d9d8c497959293b8c18a8/html5/thumbnails/35.jpg)
17 – 21 Octobre 2005 Formation Continue - CNRS Laurence Viry
Efficacité des Entrées/Sorties
Utiliser autant que possible des fichiers non
formattés
Écrire la globalité d’un tableau ou d’une chaîne
de caractères plutôt qu’élément par élément
Écrire le tableau dans son ordre naturel
Utiliser la technique de bufferisation pour
minimiser le nombre d’appels à des E/S
Pour MPI, utiliser MPI-IO
![Page 36: 17-21 Octobre 2005 Formation Continue - CNRS Laurence Viry Analyse et Optimisation de code Techniques doptimisation](https://reader030.vdocuments.fr/reader030/viewer/2022020803/551d9d8c497959293b8c18a8/html5/thumbnails/36.jpg)
17 – 21 Octobre 2005 Formation Continue - CNRS Laurence Viry
Méthodologie conseillée
Validité du programme à optimiser
Utiliser des codes déja optimisés ou s’y ramener
Utiliser des algorithmes performants
Analyser le code, et se concentrer sur les sections critiques
Utiliser les capacités d’optimiser du compilateur
Effectuer des modifications dans le code pour optimiser les sections critiques
![Page 37: 17-21 Octobre 2005 Formation Continue - CNRS Laurence Viry Analyse et Optimisation de code Techniques doptimisation](https://reader030.vdocuments.fr/reader030/viewer/2022020803/551d9d8c497959293b8c18a8/html5/thumbnails/37.jpg)
17 – 21 Octobre 2005 Formation Continue - CNRS Laurence Viry
Utiliser des codes déja optimisés Bibliothèques constructeur
HP/COMPAQ: CXML (DXML) IBM : ESSL SGI : SCSL SUN: Performance Library …
Bibliothèques domaine public – portable BLAS (1 2 3) LAPACK: algèbre linéaire FFTW : transformée de Fourier ATLAS PETSC GOTO (BLAS) …
Bibliothèques commerciales NAG IMSL
![Page 38: 17-21 Octobre 2005 Formation Continue - CNRS Laurence Viry Analyse et Optimisation de code Techniques doptimisation](https://reader030.vdocuments.fr/reader030/viewer/2022020803/551d9d8c497959293b8c18a8/html5/thumbnails/38.jpg)
17 – 21 Octobre 2005 Formation Continue - CNRS Laurence Viry
Utiliser des codes déjà optimisésServeur Alpha : ES45
CXML (Compaq Extended Math Library) et CXMLP (version parallèle SMP) versions optimisées des BLAS1, 2 et 3 (Basic Linear
Algebra) FFT 1,2 et 3-D lapack (système linéaire et valeurs propres) solveurs de systèmes creux
2 versions: Une version séquentielle : libcxml.a
Une version parallèle de type SMP : libcxmlp.a
![Page 39: 17-21 Octobre 2005 Formation Continue - CNRS Laurence Viry Analyse et Optimisation de code Techniques doptimisation](https://reader030.vdocuments.fr/reader030/viewer/2022020803/551d9d8c497959293b8c18a8/html5/thumbnails/39.jpg)
17 – 21 Octobre 2005 Formation Continue - CNRS Laurence Viry
Utiliser des codes déjà optimisésSGI: ALTIX 350
SCSL () et SCSLXXX (version parallèle SMP) versions optimisées des BLAS1, 2 et 3 (Basic
Linear Algebra) FFT 1,2 et 3-D lapack (système linéaire et valeurs propres) solveurs de systèmes creux ...
2 versions: séquentielle et parallèle séquentielle : -lscs , –lscs_i8 parallèle (multi-thread): -lscs_mp , –lscs-i8_mp
![Page 40: 17-21 Octobre 2005 Formation Continue - CNRS Laurence Viry Analyse et Optimisation de code Techniques doptimisation](https://reader030.vdocuments.fr/reader030/viewer/2022020803/551d9d8c497959293b8c18a8/html5/thumbnails/40.jpg)
17 – 21 Octobre 2005 Formation Continue - CNRS Laurence Viry
Utiliser des codes déjà optimisésSUN: cluster de V40Z (quadri-procs)
SUN Performance Library (version séquentielle) versions optimisées des BLAS1, 2 et 3 (Basic
Linear Algebra) FFT 1,2 et 3-D lapack (système linéaire et valeurs propres) solveurs de systèmes creux ...
Utilisation -xlic_lib=sunperf parallèle (multi-thread à verifier ):