Aspects théoriques et algorithmiques du calcul réparti L agglomération Patrick CIARLET Enseignant-Chercheur UMA patrick.ciarlet@ensta-paristech.fr Françoise LAMOUR franc.lamour@gmail.com Aspects théoriques et algorithmiques du calcul réparti 1 Références Load balancing for unstructured mesh applications. Y. F. Hu et R. J. Blake. Progress in Computer Research, 2001, Vol. 2, pages 117-148. Communication balancing in parallel sparse matrix-vector multiplication. R. H. Bisseling et W. Meesen. ETNA, 2005, Vol. 21, pages 47-65. Partitioning for complex objectives. A. Pinar et B. Hendrickson. Actes de la Conférence IRREGULAR'01, 2001. Calcul scientifique parallèle. F. Magoulès, F.-X. Roux, 2013, Dunod. Aspects théoriques et algorithmiques du calcul réparti 2
Plan du cours Contexte Motivation Principe Regroupement des tâches Équilibrage des tâches Regroupement des communications Effet surface / volume Duplication des calculs Check-list Aspects théoriques et algorithmiques du calcul réparti 3 Contexte Les calculs et les données sont découpés en un certain nombre de tâches. Les communications nécessaires pour échanger les données entre les tâches sont identifiées. Les paramètres de la machine cible ne sont pas encore pris en compte. Hypothèse implicite : un processeur par nœud. Analyse de performance en fonction du nombre de processeurs P : Accélération [Speed-up, Strong scaling] : évolution du rapport T 1 / T P, à taille globale fixée (cf. Cours «Communications»). Efficacité [Weak scaling] : évolution de T P, à taille fixée par processeur. Aspects théoriques et algorithmiques du calcul réparti 4
Motivation On souhaite prendre en compte l environnement d exécution du programme parallèle en intégrant les caractéristiques de cet environnement dans l algorithme. Ceci peut remettre en cause le partitionnement initial. Il peut s agir d une étape qui précède l exécution de l algorithme ou d une étape dynamique, c est-à-dire en cours d exécution du programme. Aspects théoriques et algorithmiques du calcul réparti 5 Principe Deux actions peuvent être menées : la remise en cause du partitionnement par regroupement des tâches entre elles ou par équilibrage de leur taille. Buts : réduire le nombre d opérations de communication ainsi que le volume total de communications ; équilibrer les temps de calculs entre processeurs. la remise en cause du schéma de communication par regroupement des communications ou bien par réplication des calculs ou des données. Buts : envoyer moins de données ; envoyer moins de messages pour la même quantité de données. Aspects théoriques et algorithmiques du calcul réparti 6
Regroupement des tâches (1/5) Il s agit de regrouper plusieurs tâches entre elles de sorte que : le nombre total de tâches résultantes est inférieur au nombre initial de tâches, les tailles des nouvelles tâches sont très proches entre elles et supérieures à la taille initiale des tâches. On dit que l on augmente la granularité de la partition. Aspects théoriques et algorithmiques du calcul réparti 7 Regroupement des tâches (2/5) (Pré-)partitionnement Regroupement 384 tâches 24 tâches 4 2 3 11 tâches 5 tâches Aspects théoriques et algorithmiques du calcul réparti 8
Regroupement des tâches (3/5) Rappels : Le temps d exécution se définit habituellement comme : T = max j [ (T cal ) j + (T attente ) j ] +! j (T comm ) j. Le temps de communication dans une architecture idéalisée dépend de la taille du message mais aussi d un coût fixe dû à l initialisation de la communication : T comm = S(T init + T mot L) On suppose ici que les communications sont toutes séquentielles (il n y a donc pas de «gestion des communications», cf. Cours «Communications») : Comment faire décroître! j (T comm ) j, sachant que le but final est que T décroisse? Aspects théoriques et algorithmiques du calcul réparti 9 Regroupement des tâches (4/5) Pour un calcul 2D type schéma à 5 points : Cas particulier : P = N calculs en // 4 communications par processeur T = T cal + 4 (P- "P) [ T init + T mot ] N = 12 X 12 ; P = N Cas général : P calculs en // 4 communications par processeur T = T cal N / P + 4( P- "P) [ T init + T mot (N/P) 1/2 ] N = 12 X 12 ; P = 9 Aspects théoriques et algorithmiques du calcul réparti 10
Regroupement des tâches (5/5) P = 144 T cal + 4 (P-!P) [ T init + T mot ] P = 9 T cal N / P + 4(P-!P) [ T init + T mot (N/P) 1/2 ] T cal = 1 T init = 10 T mot = 0,1 1 + 4 * 132 * [ 10 + 0,1] = 5333,8 1*16 + 4*6 * [ 10 + 0,1 * 4 ] = 265,6 T cal = 100 T init = 1 T mot = 0,1 100 + 4 * 132 * [ 1 + 0,1] = 680,8 100 * 16 + 4*6 * [ 1 + 0,1 * 4 ]=1633,6 N = 144 Aspects théoriques et algorithmiques du calcul réparti 11 Équilibrage des tâches (1/2) Propagation d une onde avec raffinement/dé-raffinement de mailles adaptatif : 16 mailles 16 mailles 16 mailles Aspects théoriques et algorithmiques du calcul réparti 12
Équilibrage des tâches (2/2) 2 tâches sur 2 processeurs [dynamic load balancing] : Aspects théoriques et algorithmiques du calcul réparti 13 Regroupement des communications (1/3) Les performances d un algorithme parallèle dépendent des communications mises en œuvre. Sur la plupart des machines parallèles il faut que les calculs s arrêtent pour pouvoir envoyer ou recevoir des messages. Pour améliorer les performances il est intéressant de diminuer le temps passé à communiquer en : envoyant moins de données, envoyant moins de messages pour la même quantité de données. Aspects théoriques et algorithmiques du calcul réparti 14
Regroupement des communications (2/3) grille 2D Schéma à 9 points d o o o d n n s s n s d e e e d 4 x 4 sous-domaine étendu, avec mailles fantôme [ghost layer] Aspects théoriques et algorithmiques du calcul réparti 15 Regroupement des communications (3/3) Les mailles fantôme permettent de conserver des communications parallèles : Aspects théoriques et algorithmiques du calcul réparti 16
Duplication des calculs (1/3) Une autre solution pour diminuer le temps d exécution total d un programme parallèle consiste à dupliquer les calculs en vue de supprimer des communications, qu elles soient séquentielles ou parallèles. Aspects théoriques et algorithmiques du calcul réparti 17 Duplication des calculs (2/3) Rappel : Produit scalaire S =! 1! i! 32 x i y i en 2 (log 2 p) communications parallèles : S 1,32 1 S 1,32 1 S 1 1,16 S 17,32 5 S 1 1,32 S 1,32 5 S 1 1,8 S 3 9,16 S 17,24 5 S 25,32 7 S 1 1,32 S 3 1,32 S 1,32 5 S 1,32 7 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 S 1,4 S 5,8 S 9,12 S 13,16 S 17,20 S 21,24 S 25,28 S 29,32 S 1,32 S 1,32 S 1, 32 S 1,32 S 1,32 S 1,32 S 1,32 S 1,32 Aspects théoriques et algorithmiques du calcul réparti 18
Duplication des calculs (3/3) En log 2 p communications parallèles : le schéma «papillon» S 1,32 S 1,32 S 1,32 S 1,32 S 1,32 S 1,32 S 1,32 S 1,32 S 1,16 S 1,16 S 1,16 S 1,16 S 17,32 S 17,32 S 17,32 S 17,32 S 1,8 S 1,8 S 9,16 S 9,16 S 17,24 S 17,24 S 25,32 S 25,32 S 1,4 S 5,8 S 9,12 S 13,16 S 17,20 S 21,24 S 25,28 S 29,32 Aspects théoriques et algorithmiques du calcul réparti 19 Effet surface / volume (1/4) Pour un calcul 3D, les besoins en communication d une tâche sont proportionnels à la surface du sous-domaine sur lequel elle opère, tandis que les besoins en calcul sont proportionnels au volume du sous-domaine. Pour finir, on étudie l impact du degré de la partition en sous-domaines (1D, 2D, 3D). NB. On peut bien sûr faire de même pour un calcul nd, n!2. Aspects théoriques et algorithmiques du calcul réparti 20
Effet surface / volume (2/4) Par exemple, pour notre calcul 2D, la quantité de communications effectuées par unité de calcul décroît lorsque la taille de la tâche augmente. grille 8 x 8 64 tâches 4 x (64-8) x 1 = 224 valeurs à transférer 224 / 64 = 3,5 valeurs par tâche Comm./Calcul =3,5 / 1 = 3,5 grille 8 x 8 4 tâches 4 x (4-2) x 4 = 32 valeurs à transférer 32 / 4 = 8 valeurs par tâche Comm./Calcul = 8 / 16 = 0,5 Aspects théoriques et algorithmiques du calcul réparti 21 Effet surface / volume (3/4) Une autre conséquence de l effet «surface / volume» est que les partitions de degré le plus élevé (par exemple partition 2D par rapport à partition 1D) sont les plus efficaces car elles réduisent la surface de communication par rapport au volume de calcul. N N N 1D p plaques 2 D p 2 barres 3D p 3 cubes p = N/d communication 2 N 2 4 N x d 6 d 2 calcul N 2 x d N x d 2 d 3 communication / calcul 2 / d 4 / d 6 / d Il est donc préférable d agglomérer les tâches suivant toutes les dimensions!? Aspects théoriques et algorithmiques du calcul réparti 22
Effet surface / volume (4/4) En effet, pour une taille de tâche T = N # avec # $ [0, 3], le rapport communication/calcul évolue comme ci-dessous (voir les exposants) : 1D 2D 3D Valeur de d T/N 2 (T/N) 1/2 T 1/3 Communication / Calcul 2 /( T/N 2 ) = 2 N 2-! 4 / (T/N) 1/2 = 4 N 1/2 -! /2 6 / T 1/3 = 6 N -! /3 2,5 2 1,5 1 0,5 0-0,5-1 -1,5 0 1 2 3 ß Aspects théoriques et algorithmiques du calcul réparti 23 1D 2D 3D Check-list Est-ce que l agglomération, en augmentant la «localité des données», réduit les coûts de communication? Si l agglomération conduit à dupliquer les données, avez-vous vérifié que cela ne vous contraint pas trop en terme de taille de problème à traiter? Plus prosaïquement, si vous parallélisez un programme existant, avezvous évalué le coût des modifications à apporter au programme séquentiel? Aspects théoriques et algorithmiques du calcul réparti 24