Détection du meilleur format de compression pour une matrice creuse dans un environnement parallèle hétérogène Olfa HAMDI-LARBI
Objectif Améliorer les performances de l’exécution en parallèle des méthodes itératives de résolution de systèmes linéaires et/ou de calcul de valeurs propres où la matrice est creuse et l’environnement parallèle est hétérogène
Quelques définitions Matrice creuse Matrice de très grande taille contenant beaucoup d’éléments nuls et peu d’éléments non nuls Applications : mécanique des fluides, traitement d’image satellite, télé médecine, …
Quelques définitions Compression de la matrice : gain en espace mémoire + en temps de traitement Plusieurs formats de compression pour matrice creuse : CSR, COO, BND, …
Quelques définitions Exemple : Format COO 6. 11. 14. 25. 5. 10. 13. 12. 22. 4. 8. 27. 3. 23. 7. 15. 2. 9. 16. 21. 1. Exemple : Format COO A IA JA 1. 2. 4. 5. 8. 27. 3. 6. 25. 21. 16. 15. 13. 7. 9. 10. 11. 12. 14. 22. 23. 1 2 4 5 3 6 1 2 4 5 3 6 10 Rmq : A une matrice donnée on peut associer un ensemble de formats de compression
Environnement parallèle hétérogène Réseau de machines ayant des caractéristiques matérielles et logicielles différentes et reliées par des liens hétérogènes.
Méthode itérative de résolution de système linéaire Déf : A * x = b Exple : Méthode de Jacobi, Gauss-Jordan, Gradient Conjugué, … des itérations de Produit Matrice-Vecteur
Problématique Étude des performances du PMVC dans un milieu hétérogène La distribution de la matrice en blocs L’exécution en « séquentiel » du PMVC sur chaque bloc Cas parallèle Cas séquentiel
Étude du PMVC : Cas séquentiel Performances d’un Algorithme Séquentiel Creux Machine(caractéristiques matérielles & logicielles) Matrice(densité, structure,…) Format de compression Détecter le meilleur format de compression pour une matrice creuse et une machine données
Étude du PMVC : Cas séquentiel Tester le PMVC pour : Un ensemble de formats : CSR, COO, DNS, BND Une structure particulière de matrice : Bande Un ensemble de machines : PC Intel, un processeur d’une machine SP2, une station HP9000, …
Étude du PMVC : Cas séquentiel Générer aléatoirement des matrices creuses bande Stocker une matrice donnée dans chacun des formats de compression (COO, CSR, …) différentes versions du PMVC Exécuter le PMVC pour chaque format Comparer les performances pour les différents formats déterminer le format qui a donné les meilleures performances
Étude du PMVC : Cas séquentiel Optimisation du PMVC séquentiel pour chaque format de compression Optimisations manuelles (par le programmeur) Optimisations automatiques (par le compilateur) Remplacement scalaire, Sortir les invariants d’une boucle, Technique de unrolling, … Options de compilation : funroll, O1, O2, …,
Optimisation du PMVC CSR Sur le PC et le mainframe HP9000 : Toutes les options du compilateur fournissent les mêmes performances Les optimisations du compilateur donnent des performances meilleures que celles données par les optimisations manuelles Sur un processeur de la machine SP2 : Pour certaines matrices (ayant un nombre de NNZ inférieur à un certain seuil), il faut combiner les optimisations manuelles et automatiques pour avoir les meilleurs performances Poursuivre les tests pour les formats COO, BND et DNS
Étude du PMVC : Cas parallèle Étude des performances du calcul du polynôme de degré 2 : A(A*x+x)+x pour différents formats de compression dans un système pair-à-pair Réseau dans lequel toutes les stations de travail possèdent des capacités ainsi que des responsabilités équivalentes
Étude du PMVC : Cas parallèle Fragmentation des données Envoi des fragments compressés de A vers les pairs Calcul en parallèle du produit fragment-vecteur Communication des fragments de Y + réduction du vecteur Y à partir de ses fragments Diffusion du vecteur aux pairs
Fragmentation des données Approches différentes Fragments contenant le même nbre de lignes (FMNL) Fragments contenant le même nbre de NNZ (FMNENN) lignes contiguës lignes non contiguës
Fragmentation des données FMNL Approche facile peut engendrer un déséquilibre des charges prohibitif pour les pairs FMNENN Problème d’affectation de N tâches indépendantes de coûts c1, c2, …, cN à p processeurs homogènes, avec une contrainte sur la charge maximale par processeur Expérimentations sur le système ExtremWeb
Conclusion et Perspectives Cas séquentiel Optimisation du PMVC pour les formats CSR, COO, DNS et BND Comparaison des formats du PMVC pour chaque format Cas parallèle Étude de la parallélisation du PMVC pour chaque format de compression Pour un format donné, proposer plusieurs version parallèles à comparer Déterminer le format qui donne la meilleure version parallèle du PMVC