C02: Conception parallèle C02: Conception parallèle • méthodologie de conception en quatre étapes • virtualisation • applications structurées et non structurées • aspect analytique: S, E • Accélération Amdahl • Accélération Gustafson • Surcharge de parallélisation Département de génie électrique et de génie informatique GIF-3003 Systèmes parallèles et temps réel C02: Conception parallèle Conception d’un SPTR Méthodologie en quatre étapes. 1. Décomposition fonctionnelle Une application 2. Partitionnement est divisée en TÂCHES 3. Allocation formées de PROCESSUS concourants et temps réel partageant des RESSOURCES 4. Mise à l’échelle et qui sont placés sur des PROCESSEURS reliés par un RÉSEAU D’INTERCONNEXION pour échanger des données. Département de génie électrique et de génie informatique GIF-3003 Systèmes parallèles et temps réel C02: Conception parallèle Décomposition fonctionnelle Exigences du problème: • tâches à accomplir (besoins); • modules (sous-tâches) et fichiers (données); • relations entre modules (e.g. flot des données); • ressources disponibles; • contraintes temporelles pour sous-tâches. Étape de spécification (UML, CSP). Département de génie électrique et de génie informatique GIF-3003 Systèmes parallèles et temps réel C02: Conception parallèle Décomposition fonctionnelle Objectifs: • cibler les exigences importantes du problème; • identifier sa structure de base; • limiter sa complexité. Département de génie électrique et de génie informatique GIF-3003 Systèmes parallèles et temps réel C02: Conception parallèle Partitionnement Solution par traitement concourant: • classes et objets (OOD); • processus et relations: communications (IPC) et synchronisations (IPC); • contraintes temporelles des processus; • données utilisées par chaque processus; • entrées-sorties. Étape de conception. Département de génie électrique et de génie informatique GIF-3003 Systèmes parallèles et temps réel C02: Conception parallèle Partitionnement Objectifs: • maximiser la performance du traitement; • minimiser les communications entre processus; • limiter la complexité de la solution concourante. Département de génie électrique et de génie informatique GIF-3003 Systèmes parallèles et temps réel C02: Conception parallèle Virtualisation Segmentation et assignation des données aux processus: • étape du partitionnement; • plus simple pour une application structurée; • méthode choisie dépend des données et traitements. Département de génie électrique et de génie informatique GIF-3003 Systèmes parallèles et temps réel C02: Conception parallèle Virtualisation hiérarchique Un bloc de données par processus: 4 blocs de données. Département de génie électrique et de génie informatique GIF-3003 Systèmes parallèles et temps réel C02: Conception parallèle Virtualisation couper-et-empiler Une donnée par processus dans chaque bloc: blocs de 4 données. Département de génie électrique et de génie informatique GIF-3003 Systèmes parallèles et temps réel C02: Conception parallèle Allocation Application de la solution au traitement parallèle: • assignation des processus et données à un ou plusieurs processeurs et mémoires; • topologie pour le réseau d’interconnexion; • ordonnancement temps réel pour une application non structurée (plusieurs processus par processeur); • choix statiques ou dynamiques. Département de génie électrique et de génie informatique GIF-3003 Systèmes parallèles et temps réel C02: Conception parallèle Allocation Objectifs: • maximiser la performance du traitement (parallélisme maximal?, charge équilibrée?); • minimiser les communications entre processeurs; • assurer la réalisabilité de l’ordonnancement; • limiter la complexité de la solution parallèle. Département de génie électrique et de génie informatique GIF-3003 Systèmes parallèles et temps réel C02: Conception parallèle Mise à l’échelle Dimensionnement de l’architecture matérielle: • détermination du nombre optimal de processeurs; • inclusion de redondance pour la tolérance aux fautes. Département de génie électrique et de génie informatique GIF-3003 Systèmes parallèles et temps réel C02: Conception parallèle Mise à l’échelle Objectifs: • maximiser le ratio performance/coût; • assurer la réalisabilité de l’ordonnancement; • maximiser la fiabilité. Département de génie électrique et de génie informatique GIF-3003 Systèmes parallèles et temps réel C02: Conception parallèle Applications structurées Traitements (calculs et communications): • faits selon des patrons globaux fixes et prédéterminés; • identiques pour tous les processus; • fonction du format et de la quantité de données. Département de génie électrique et de génie informatique GIF-3003 Systèmes parallèles et temps réel C02: Conception parallèle Applications non structurées Traitements: • incluent des interactions variées et imprévisibles; • différents d’un processus à l’autre; • fonction du contenu des données. Département de génie électrique et de génie informatique GIF-3003 Systèmes parallèles et temps réel C02: Conception parallèle Aspect analytique du traitement parallèle Performance d’un algorithme séquentiel: • mesurée par le taux de croissance du temps et de la quantité de mémoire requise pour réaliser des traitements de dimension de plus en plus grande. Performance d’un algorithme parallèle: • mesurée par rapport au meilleur algorithme séquentiel. Département de génie électrique et de génie informatique GIF-3003 Systèmes parallèles et temps réel C02: Conception parallèle Complexité du traitement séquentiel Mesure de la performance potentielle: on compare l’ordre de grandeur des complexités. Dimension d’un traitement: n Complexité temporelle d’un algorithme: T(n) Complexité spatiale: M(n) Borne supérieure à la complexité: O(n) Borne inférieure à la complexité: Ω(n) Équivalence en complexité: Θ(n) Département de génie électrique et de génie informatique GIF-3003 Systèmes parallèles et temps réel C02: Conception parallèle Complexité temporelle du traitement parallèle Complexité dépend de n (la quantité de données) et de P (le nombre de processeurs utilisés). Complexité temporelle d’un algorithme: T(n,P) T(n,P)=T1(n,P)+T2(n,P) Typiquement: T1(n,P) = n/P T2(n,P) = log P Département de génie électrique et de génie informatique GIF-3003 Systèmes parallèles et temps réel C02: Conception parallèle Mesures de performance Mesure de base: accélération. T (n,1) S (n, P) T (n, P) Département de génie électrique et de génie informatique GIF-3003 Systèmes parallèles et temps réel C02: Conception parallèle Mesures de performance Mesure dérivée: efficacité. S (n , P ) E (n , P ) P Département de génie électrique et de génie informatique GIF-3003 Systèmes parallèles et temps réel C02: Conception parallèle Loi générale Gain de performance S d’un système obtenu par l’amélioration d’un module ayant une influence partielle. S 1 influence (1 influence) amélioration Département de génie électrique et de génie informatique GIF-3003 Systèmes parallèles et temps réel C02: Conception parallèle Exemple Amélioration = 10. Influence = 0.25. S = 1.29 Smax = 1/(1-influence) = 1.3 pour une amélioration infinie. Département de génie électrique et de génie informatique GIF-3003 Systèmes parallèles et temps réel C02: Conception parallèle Accélération de Amdahl P S (n , P ) (1 s (P 1)) s: proportion non-parallélisable des traitements. p: proportion parallélisable des traitements (influence). s+p=1 P: nombre de processeurs (amélioration). Département de génie électrique et de génie informatique GIF-3003 Systèmes parallèles et temps réel C02: Conception parallèle Hypothèses d’application Les deux algorithmes (séquentiel et parallèle) effectuent exactement les mêmes traitements. Il n’y a pas de surcharge pour la version parallèle. La proportion non-parallélisable n’est pas accélérée. La proportion parallélisable est accélérée proportionnellement au nombre de processeurs. Département de génie électrique et de génie informatique GIF-3003 Systèmes parallèles et temps réel C02: Conception parallèle Illustration a: p=1 b: p=0.95 S c: p=0.9 d: p=0.8 e: p=0.6 P Département de génie électrique et de génie informatique GIF-3003 Systèmes parallèles et temps réel C02: Conception parallèle Exemple avec des durées Avant parallélisation: • durée du traitement non-parallélisable: 10 u.t. • durée du traitement parallélisable: 30 u.t. • durée totale du traitement: 40 u.t. (s = 10/40 = 0.25 et p = 30/40 = 0.75) Après parallélisation: • durée du traitement séquentiel: 10 u.t. • durée du traitement parallèle (P=3): 10 u.t. • durée totale du traitement: 20 u.t. Accélération: • S = T1/Tn = 40/20 = 2 • S = 1/(s+(p/P)) = 1/(0.25+(0.75/3)) = 1/0.5 = 2 • S = P/(1+s(P-1)) = 3/(1+0.25(2)) = 3/1.5 = 2 Département de génie électrique et de génie informatique GIF-3003 Systèmes parallèles et temps réel C02: Conception parallèle Exemple 1 Soit l’algorithme suivant ayant s > 0. non-parallélisable parallélisable for (1…n) { for (1…n) { opération 1; opération 2; } } for (1…n) { opération 3; opération 4; } Département de génie électrique et de génie informatique GIF-3003 Systèmes parallèles et temps réel C02: Conception parallèle Exemple 1 1. Calculez l’accélération obtenue par la parallélisation du fragment de code précédent pour quatre processeurs et avec n = 100. 2. Trouvez la proportion non-parallélisable (séquentielle) s et la proportion parallélisable p des traitements. 3. Trouvez Smax(100,P). 1. S = 1.0075 2. s = 0.99 3. Smax = 1.01 Département de génie électrique et de génie informatique GIF-3003 Systèmes parallèles et temps réel C02: Conception parallèle Exemple 2 Soient les résultats expérimentaux suivants: Algorithme Nombre de processeurs Temps Séquentiel optimal 1 75 s Parallèle1 2 40 s Parallèle2 3 35 s Parallèle3 18 5s Département de génie électrique et de génie informatique GIF-3003 Systèmes parallèles et temps réel C02: Conception parallèle Exemple 2 1. Calculez l’accélération pour chaque algorithme parallèle. 2. Identifiez l’algorithme parallèle le plus efficace. 3. Calculez la proportion non-parallélisable (séquentielle) s et la proportion parallélisable p de l’algorithme séquentiel à partir des résultats obtenus pour l’algorithme Parallèle3. 1. S1=1.875 S2=2.143 S3=15 2. E1=0.9375 E2=0.714 E3=0.833 3. s = 0.01176 p=1-s Département de génie électrique et de génie informatique GIF-3003 Systèmes parallèles et temps réel C02: Conception parallèle Proportion de l’accélération maximale Nombre de processeurs pour avoir S = 90% de (Smax = 1/s) ? S 90 s = 0.05 18 P 171 Smax = 20 891 = pS/(1-sS) Département de génie électrique et de génie informatique GIF-3003 Systèmes parallèles et temps réel C02: Conception parallèle Exemple 3 Soit un algorithme avec proportion parallélisable p = 0.4. 1. Calculez l’accélération pour 24 processeurs. 2. Calculez le nombre de processeurs à utiliser pour obtenir 75% de l’accélération maximale. 1. S = 1.62 2. P = 2 Département de génie électrique et de génie informatique GIF-3003 Systèmes parallèles et temps réel C02: Conception parallèle Accélération de Gustafson On compare l’implantation sérialisée (ralentie) par rapport à l’implantation parallèle, au lieu de l’inverse comme pour la loi de Amdahl. S ' (n , P ) P s (P 1) s: proportion non-parallélisée des traitements. p: proportion parallélisée des traitements. s+p=1 P: nombre de processeurs. Département de génie électrique et de génie informatique GIF-3003 Systèmes parallèles et temps réel C02: Conception parallèle Exemple avec des durées Avant sérialisation: • durée du traitement séquentiel: 10 u.t. • durée du traitement parallèle: 10 u.t. • durée totale du traitement: 20 u.t. (s = 10/20 = 0.5 et p = 10/20 = 0.5) Après sérialisation: • durée du traitement non-parallélisable: 10 u.t. • durée du traitement parallélisable (P=3): 30 u.t. • durée totale du traitement: 40 u.t. Accélération: • S = T1/Tn = 40/20 = 2 • S = s+pP = 0.5+3(0.5) = 0.5+1.5 = 2 • S = P-s(P-1) = 3-0.5(2) = 3-1 = 2 Département de génie électrique et de génie informatique GIF-3003 Systèmes parallèles et temps réel C02: Conception parallèle Exemple 4 Soit un algorithme avec une proportion parallélisable p = 0.5. 1. Calculez l’accélération obtenue en parallélisant cet algorithme sur 10 processeurs. 2. Calculez la proportion séquentielle et la proportion parallèle du programme ainsi parallélisé. 3. Vérifiez votre réponse en calculant l’accélération de Gustafson à partir de ces proportions. 1. S = 1.818 2. sG=0.909 pG=0.0909 3. SG = 1.818 Département de génie électrique et de génie informatique GIF-3003 Systèmes parallèles et temps réel C02: Conception parallèle Accélération Amdahl avec surcharge (1 c) P S (n, P) (1 s ((1 c) P 1)) s: proportion non-parallélisable des traitements. p: proportion parallélisable des traitements. s+p=1 px: proportion parallélisée des traitements. c: proportion de la surcharge des traitements parallélisables. p = (1 – c) px P: nombre de processeurs. Département de génie électrique et de génie informatique GIF-3003 Systèmes parallèles et temps réel C02: Conception parallèle Exemple avec des durées Avant parallélisation: • durée du traitement non-parallélisable: 10 u.t. • durée du traitement parallélisable: 30 u.t. • durée totale du traitement: 40 u.t. (s = 10/40 = 0.25 et p = 30/40 = 0.75) Après parallélisation: • durée du traitement séquentiel (i.e. non-parallélisé): 10 u.t. • durée du traitement parallèle (P=3; c =0.2): 10/0.8 = 1.25(10) = 12.5 u.t. • durée totale du traitement: 22.5 u.t. Accélération: • S = T1/Tn = 40/22.5 = 1.7 • S = 1/(s+(px/P)) = 1/(s+(p/(1-c)P)) = 1/(0.25+(0.75/3(0.8)) = 1/0.5625 = 1.7 • S = (1-c)P/(1+s((1-c)P-1)) = 2.4/(1+0.25(1.4)) = 2.4/1.35 = 1.7 Département de génie électrique et de génie informatique GIF-3003 Systèmes parallèles et temps réel C02: Conception parallèle Accélération Gustafson avec surcharge S ' (n , P ) (1 c )P s ((1 c )P 1) s: proportion non-parallélisée des traitements. px: proportion parallélisée des traitements. s + px = 1 p: proportion parallélisable des traitements. c: proportion de la surcharge des traitements parallélisés. p = (1 – c) px P: nombre de processeurs. Département de génie électrique et de génie informatique GIF-3003 Systèmes parallèles et temps réel C02: Conception parallèle Exemple avec des durées Avant sérialisation: • durée du traitement séquentiel (i.e. non-parallélisé): 10 u.t. • durée du traitement parallèle (i.e. parallélisé): 12.5 u.t. • durée totale du traitement: 22.5 u.t. (s = 10/22.5=0.4 et px = 12.5/22.5=0.5) Après sérialisation: • durée du traitement non-parallélisable: 10 u.t. • durée du traitement parallélisable (P=3; c=0.2): 3(12.5(0.8)) = 30 u.t. • durée totale du traitement: 40 u.t. Accélération: • S = T1/Tn = 40/22.5 = 1.7 • S = s+px(1-c)P = 0.4+ (0.5)(0.8)3 = 0.4+1.3 = 1.7 • S = (1-c)P-s((1-c)P-1) = (0.8)3-0.4(((0.8)3)-1) = 2.4-0.62 = 1.7 Département de génie électrique et de génie informatique GIF-3003 Systèmes parallèles et temps réel