Analyse et mesure de performances du calcul distribué Mohsine Eleuldj Département Génie Informatique, EMI eleuldj@emi.ac.ma CruCID Workshop, EMI, Rabat, 5 au 7 juillet 1999
Motivation Types d applications : Ensemble immense de données : prévision météorologique, sismique, intelligence artificielle (traitement de l image, reconnaissance de forme, ) recherche médicale (réaction chimique), recherche militaire (simulation des armes), recherche spatiale Temps réel : réservation des billets d avion, pilotage automatique d un avion, gestion d une centrale nucléaire, Solution : traitement parallèle, concurrent, simultané, pipeline, réparti, distribué, 2
Plan Introduction Calcul distribué Mesures de performance Analyse des algorithmes Equilibre des charges Granularité Extensibilité Ordonnancement Sources d interblocage Conclusion 3
Niveaux de traitement parallèle Niveaux Travail ou programme (Job) : multitraitement Tâche ou procédure : décomposition du programme inter-instruction : analyse de la dépendance des données, vectorisation Intra-instruction : type de contrôle (micro-progammation ou câblage) Evolution : le matériel remplace le logiciel Coût du matériel diminue et logiciel augmente Augmentation de la vitesse (application temps réel) Tolérance aux pannes 4
Mécanismes de Traitement parallèle dans un monoprocesseur Multiplicité des unités fonctionnelles : additionneur, mutilpieur, virgule flottante Parallélisme et pipeline dans l UCT (processeur) Chevauchement des opérations de l UCT et des E/S : DMA, cannaux d E/S, E/S programmées Système de mémoire hiérarchique : mémoire virtuelle Equilibrage des tâches bornées par le calcul et celles bornées par les E/S Multiprogrammation (chevauchement entre le CPU et les E/S) et le temps partagé (efficace en interactif et application temps réel) 5
Classification architecturale Basée sur la multiplicité du flot d instructions et le flot de données (Flynn 1966) : SISD : Single Instruction Single Data stream (ordinateur conventionnel) SIMD : Single Instruction Mulitple Data stream (Cray 1:ordinateur vectoriel) MISD : Multiple Instruction Single Data stream MIMD : Multiple Instruction Multiple Data stream (Cray 2, MPP) Basée sur l utilisation de la mémoire Système à mémoire partagée (Cray 1) Système à mémoire distribuée (Cray 2) 6
Calcul distribué - Plate forme Réseau de communication P Cray J916 (6 processeurs) P P P P P P P Réseau local 1 Réseau local 2 P : est un poste de travail (PC, Station de travail, SIMD, MPP,...) sous un système d exploitation (Unix, Windows, SunOS, ) 7
Calcul distribué - Principe Décomposition du problème en plusieurs processus Répartition des processus sur les différents processeurs (selon le modèle maître/esclave, arborescent,...) Possibilité d échange de messages au cours du traitement Combinaison des résultats des processus afin de résoudre le problème de départ 8
Calcul distribué - Objectifs Objectifs : amélioration de la performance Performance P = 1/t où t est le temps d exécution Programme séquentiel + fonctions MPI? amélioration de la performance programme parallèle 9
Calcul distribué - Eléments de performance Taille de l exemplaire Algorithme (itératif, diviser-pour-régner, ) Equilibre des charges, Granularité, Extensibilité, Ordonnancement Paradigmes de parallélisation (maître/esclave, arborescent, ) Bibliothèques (MPI, PVM, ) Langage (Fortran, C, ), Compilateur (vectorisation, ) Système d exploitation (Linux, Windows NT, Windows 95/98, ) Protocole de communication (Ethernet, TCP/IP, ATM ) Architecture (mémoire partagée, distribuée) Processeurs (nombre, fréquence, ), Mémoire (temps d accès) 10
Mesures de performance - Accélération Accélération (Speed up) A = T(1,n)/T(m,n) où T(1,n) et T(m,n) sont les temps d exécution du programme avec 1 et m processeurs respectivement sur un exemplaire de taille n Efficacité E = A/m En général 1 A m et E 1 si A > m alors sur-accélération 11
Accélération - Exemple n n Supposons que T(1,n) = cn 2 où n : ordre de la matrice et c : constante En négligeant les temps de communication T(9,n) = T(1,n/3) = cn 2 /9 A = T(1,n)/T(9,n) = 9 et E = A/9 = 1 12
Mesures de performance - Parallélisme Degré de parallélisme D(t) = nombre de processeurs utilisés pendant l instant t avec m processeurs (D(t) m) Degré moyen de parallélisme 1 t 2 D = D( t) dt t 2 t1 t1 où t 1 et t 2 les temps de début et fin de l exécution D(t) est discrète D = t 2 t 2 1 t 1 t= t1 D( t) 13
Degré de parallélisme - Exemple processeurs 10 9 8 7 6 5 4 3 2 1 Degré de parallélisme 4 5 6 7 8 9 10 11 12 temps Exemple : D = (1 + 4 + 8 + 6 + 5 + 3 + 4 + 1) / 8 = 4 14
Analyse des algorithmes Notion d ordre O(f(n)) = {t:n > R*/ ( c R + )(n 0 N)( n> n 0 ) [t(n) < cf(n)]} t(n) est de l ordre de f(n) Soit t(n) le temps d exécution d un algorithme sur un exemplaire de taille n t(n) O(log n) algorithme est logarithmique t(n) O(n) linéaire t(n) O(n 2 ) quadratique t(n) O(p(n)), où p polynôme polynomial t(n) O(f(n)), où f exponentielle exponentiel Classes des problèmes : P, NP, NP-complet 15
Analyse des algorithmes - Exemple Calcul des sommes partielles S i (1 i n) n i= 1 j= 1 i Si = j n i= 1 j= 1 pour i=1 à n faire S(i) 0 pour j=1 à i faire S(i) S(i) + j Soient a et b les temps de la mise à zéro et de l addition t( n) = ( a + b) = t(n) O(n 2 ) i ( a + bi) = na + n( n + 1) b / 2 cn * n 16
Equilibre des charges - Exemple Calcul des sommes partielles S i (1 i 256) sur 8 processeurs pour i=1 à 256 faire S(i) 0 pour j=1 à i faire S(i) S(i) + j Si = j i j= 1 Supposons que le temps de communication est négligeable devant le calcul T(8) = Max(t(p1),t(p2),,t(p8)) 17
Equilibre des charges - Affectation 1 p 1 exécute les itérations i=1 à 32 p 2 i=33 à 64 p k i=(32k - 31) à 32k p 8 i=225 à 256 p1 p2 p3 p4 p5 p6 p7 p8 1 32 64 96 128 150 192 224 256 18
Equilibre des charges - Affectation 1 Par pour k=1 à 8 faire pour i=(32k - 31) à 32k faire S(i) 0 pour j=1 à i faire S(i) S(i) + j N(k) : nombre d additions effectuées par le processeur k N(k) = 16 x (64k 31) 19
Equilibre des charges - Affectation 1 8000 7000 6000 5000 4000 3000 2000 1000 0 p1 p2 p3 p4 p5 p6 p7 p8 Temps(Affectation 1) = t(p8) Affectation 1 20
Equilibre des charges - Affectation 2 p 1 exécute les itérations i=1 à 16 et i=241 à 256 p 2 i=17 à 32 et i=225 à 240 p k i=(16k-15) à 16k et i=(257-16k) à (272-16k) p 8 i=113 à 128 et i=129 à 144 p1 p2 p3 p4 p5 p6 p7 p8 p8 p7 p6 p5 p4 p3 p2 p1 1 16 32 48 64 80 96 112 128 144 160 176 192 208 224 240 256 21
Equilibre des charges - Affectation 2 Par pour k=1 à 8 faire pour i=(16k - 15) à 16k et i=(257-16k) à (272-16k) faire S(i) 0 pour j=1 à i faire S(i) S(i) + j N(k) = 8 x (32k 15) + 8 x (529 32k) = 8 x 514 = 4112 22
Equilibre des charges - Affectations 8000 7000 6000 5000 4000 3000 2000 1000 0 p1 p2 p3 p4 p5 p6 p7 p8 Affectation 1 Affectation 2 Temps(Affectation 2) = t(p1) =t(p2) =... = t(p8) 23
Equilibre de charges - Parallélisme processeurs 10 9 8 7 6 5 4 3 2 1 Affectation 1 Affectation 2 t0 t1 t2 t3 t4 t5 t6 t7 t8 temps D(Affectation 1) = 4 et D(Affectation 2) = 8 24
Granularité Granularité = taille de la tâche allouée à un processeur (ou processus) temps d exécution = temps de calcul + temps de communication temps de communiquer un message de taille n est a + bn Exemple : Produit matriciel C = AB où A et B deux matrices d ordre n. Version 1: pour i=1 à n faire C(i,j) 0 pour j=1 à n faire C(i,j) 0 pour k=1 à n faire C(i,j) C(i,j) + A(i,k) * B(k,j) 25
Granularité - Exemples version 2 : granularité grosse processus : vecteur x matrice Par pour i=1 à n faire pour j=1 à n faire C(i,j) 0 pour k=1 à n faire C(i,j) C(i,j) + A(i,k) * B(k,j) version 3 : granularité moyenne pour i=1 à n faire processus : vecteur x vecteur Par pour j=1 à n faire C(i,j) 0 pour k=1 à n faire C(i,j) C(i,j) + A(i,k) * B(k,j) version 4 : granularité fine processus : scalaire x scalaire pour i=1 à n faire pour j=1 à n faire C(i,j) 0 Par pour k=1 à n faire C(i,j) C(i,j) + A(i,k) * B(k,j) 26
Granularité - Exemples 30 25 20 15 10 Itérations Communication 5 0 Version 1 Version 2 Version 3 Version 4 Temps de calcul et de communication pour n=3 27
Ordonnancement Les processeurs alternent entre les phases de calcul et de communication congestion du réseau de communication réduit le débit ordonnancement des processus de telle sorte que lorsque certains calculent les autres communiquent p 1 p 2 Calcul Calcul Communication p 3 p 4 Communication Calcul Calcul 28
Extensibilité (scalability) 100 temps 80 60 40 20 0 1 2 3 4 5 6 7 8 processeurs Détermination du nombre optimal de processeurs 29
Sources d interblocage Envoi d un grand message du processus 0 au processus 1 communication bloquante «unsafe» (avec accusé de réception) p0 p1 Envoyer (1) Envoyer (0) Recevoir(1) Recevoir(0) Solution p0 p1 Envoyer (1) Recevoir(0) Recevoir(1) Envoyer (0) 30
Conclusion Contenu de l exposé Introduction au traitement parallèle Mesures de performances du calcul distribué Techniques générales de performance Objectifs Importance de la performance Prévoir la performance Améliorer la performance 31
Références Ivan Lavallée, «Algorithmique parallèle et distribuée» Traité des nouvelles technologies, Hermes, 1990. Kai Hwang, «Advanced computer architecture: Parallelism, Sqcalability, Programmability», McGraw Hill Series in Computer Science, 1993. http://www.unix.mcs.anl.gov/mpi/tutorial/perf/index.html http://www.unix.mcs.anl.gov/mpi «MPI : A message Passing Interface Standard», Message Passing Interface Forum, 1995 32