Aspects quantitatifs de la conception Professeur: Nilo Stolte Chargé de Cours: Mohammed ELKANOUNI Département de génie logiciel et des TI
Sommaire Introduction Métriques de performance Modèle de performance Analyse d’extensibilité
Introduction Intérêt de l’étude de performance: Comparer les différents algorithmes Savoir où optimiser Évaluer la dimensionabilité Évaluer l’effet des topologies des réseaux de communication Estimer le coût de la mise en œuvre
Métriques de performance Temps d’exécution Besoin en mémoire Facilité de transfert entre les tâches et processeurs Facilité d’entretien Facilité d’entrée-sortie Coût de la mise en œuvre
Métriques de performance Le choix des métriques dépend de l’application Durant ce cours on va traiter le temps d’exécution, l’efficacité et l’accélération
Accélération (speed-up) Temps d’exécution: tp: temps d’exécution sur p processeurs t1: temps d’exécution séquentielle Accélération (speed-up) S = t1 / tp Étude de l’accélération S p Code séquentiel : S = 1 Code « purement » parallèle : S = p
Efficacité Rapport des temps d’exécution séquentiel et le temps d’exécution moyen parallèle par le nombre de processeurs Traduit le comportement de S en fonction de P
La loi d’Amdahl Accélération: G.M. Amdahl (1967): identifier la partie parallélisable du code charge de travail fixe W (par exemple en Mflop) distribution de cette charge sur P processeurs décomposition de la charge: W = W + (1- ) W (partie séquentielle, partie parallélisable) Accélération: S = W / ( W + (1-) W/p) = p / (1+(p-1) ) 1/
La loi d’Amdahl pourcentage de code séquentiel Illustration: P 50% 10% 1% 10 1.82 5.26 9.17 100 1.98 50.25 1000 1.99 9.91 90.99 10000 99.02
La loi d’Amdahl Accélération limitée par la partie séquentielle Limite indépendante du nombre de processeurs Les facteurs qui empêchent S de dépasser 1/ Tâches en attente des résultats des autres Temps de communication P 50% 10% 1% ∞ 2 10 100
Exemple d’accélération Algorithme: S = 10.8 sur 12 processeurs (N=100) Exécution séquentielle: Tseq = N + N2 ? (N: taille du problème) Exécution parallèle: (p: nombre du processeur) (1) Tpara = N + N2 / p (2) Tpara = ( N + N2 ) / p + 100 (3) Tpara = ( N + N2 ) / p + 0.6p2 O(N2) algorithme O(N) chaque p
Exemple d’accélération S = 10.8 pour P = 12 et N = 100 D’après IAN FOSTER «DBPP»
Exemple d’accélération S = 10.8 pour P = 12 et N = 1000 D’après IAN FOSTER «DBPP»
Modèle de performance Temps d’exécution: T = f (N, P, U, …) N: dimension du problème P: nombre de processus U: nombre des tâches T = (Tjcomp + Tjcomm + Tjidle)
Modèle de performance D’après IAN FOSTER «DBPP»
Temps de calcul Temps de calcul dépend de: Complexité et dimension du problème Nombre de tâches dans les processus Grosseur des tâches Type de processeur (vitesse, nombre de bits ….) Type d’architecture Système d’exploitation ……………… ……………… ……………… ………………
Temps de communication Dépend de: L’architecture parallèle Taille des données Tmsg = ts + twL ts: temps de préparation tw: temps de transfert d’un mot L: nombre de mots dans le message
Temps de communication Odinateur ts(µs) tw (µs) IBM SP2 40 0.11 Intel Paragon 121 0.07 Meiko CS-2 87 0.08 Sparc/Ethernet 1500 5.0 Sparc/FDDI 1150 1.1
Temps de communication D’après IAN FOSTER «DBPP»
Temps d’attente Difficile à évaluer Dépend de: Ordre d’exécution des opérations Complexité et dimension N du problème Nombre de tâches dans les processeurs Grosseur des tâches Type de processeur
Temps d’attente Peut être amélioré par: Balançant les charges des processeurs créer plusieurs tâches dans un processeur profiter du temps d’attente des processeurs D’après IAN FOSTER «DBPP»
Exemple: différence finie de 9 pts Chaque processeur communique avec ses 2 voisins Temps de calcul: Tcomp = tc N2 Z (tc: temps de calcul de chaque cellule) Temps de communication: Tcomm = 2 P (ts + 2 tw N Z) Temps d’attente = 0 Z N N
Exemple: différence finie de 9 pts Temps d’exécution moyen: Tmoy = (Tcomp + Tcomm) / P = N2 Z tc / P + 2ts + 4 tw NZ Accéleration (Speed-up): S = Tseq / Tmoy= tc N2 Z / ( N2 Z tc / P + 2ts + 4 tw NZ ) Efficacité: E = S / P = T1 / (Tcomp + Tiddle + Tcomm)
Analyse d’extensibilité Extensibilité: facilité de s’adapter avec la dimension du problème et le nombre de processeurs Exemple précédent: E = tc N2 Z / ( N2 Z tc + 2tsP + 4 tw NZP ) Tmoy = N2 Z tc / P + 2ts + 4 tw NZ E diminue avec P, ts et tw E augmente avec N, Z et tc Tmoy diminue avec P mais limité par 2ts + 4 tw NZ Tmoy augmente avec N, Z, tc, ts et tw
Questions concernant l’extensibilité L’algorithme répond-t-il aux exigences (temps d’exécution, mémoire requise, ...)? Peut-il s’adapter avec la dimension du problème ? Peut-il s’adapter avec le nombre de processeurs P ? D’autres algorithmes peuvent faire mieux le travail ? Combien ça coûte ?
Extensibilité avec dimension fixe N et Z sont fixe, P est variable TMoy et E diminue avec P tc = 1 µsec, ts = 100 µsec, tw = 0.4 µsec, Z = 10 D’après IAN FOSTER «DBPP»
Profil du temps d’exécution Tracer et observer différents temps en fonction du nombre de processeurs Reconsidérer certaines conceptions au besoin Si Tcomm est trop grand: dupliquer certains calculs au lieu de communiquer. refaire la répartition pour diminuer la communication augmenter la granularité pour diminuer la communication si Tcomp est trop grand: changer l’algorithme augmenter P
Profil du temps d’exécution D’après IAN FOSTER «DBPP» Différence finie 1D N=512, Z= 1, tc = 1 µsec, ts = 100 µsec, tw = 0.8 µsec
Évaluation pratique La performance théorique ne reflète pas la réalité L’analyse théorique sert comme guide dans la conception Nécessité de mesures expérimentales pour évaluer la performance réelle
Mesures pratiques Ajouter les appels dans le code pour la lecture de l’horloge. Certains outils de “profiling” peuvent aider à mesurer les paramètres de temps Répéter les expériences pour avoir une bonne moyenne Faire de grandes boucles du même calcul pour avoir une meilleure estimation de Tcomp Transmettre de longs messages pour avoir une meilleure estimation de tw
Mesures pratiques Difficultés inévitables horloge non précise (pas assez de chiffres significatifs) interférences des autres usagers (système multi-usager) achalandage dans la communication (ex: réseau Ethernet) algorithme non déterministe: l’exécution dépend des conditions
Lissage des paramètres Exemple: on veut déterminer les paramètres ts et tw dans: Tmsg = ts + tw L Effectuer plusieurs mesures avec différents L Faire le lissage pour obtenir les paramètres
Autres paramètres des performance Effet de l’architecture Cross-bar Bus Structure maillé Entrée/Sortie: Disque Numérique-analogique (applications temps réels) Écran
Conclusion Définition et formulation de la performance en terme de: temps d’exécution Texec efficacité E Valider les formules de performance avec les mesures expérimentales: mesures lissage
Exemple de calcul On désire comparer les deux types d’agglomération de la simulation de l’équation de la chaleur dans une plaque métallique : agglomération en réduisant la dimension agglomération en augmentant la granularité Pour simplifier en suppose que le nombre de subdivision en ligne égale le nombre de subdivision en colonne et que le nombre de processeurs p est un carré (càd p=q2) Calculer Tcomp et Tcomm (le temps de calcul et le temps de communication) pour chaque cas si tc est le temps de calcul d’une seule case, ts est le temps de préparation d’un message et tw le temps de transfert d’une seule donnée. Calculer l’efficacité et l’accélération pour chaque cas si Tiddle=0. D’après vous quelle est la meilleure l’agglomération (tc = 0.5ms, ts = 40µs, tw = 0.11µs), justifier votre réponse.