Aspects théoriques et algorithmiques du calcul réparti Le placement 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 (1/2) A shortest tree algorithm for optimal assignments across space and time in a distributed processor system. S. H. Bokhari. IEEE Transactions on Software Engineering, 1981, Vol. SE-7, n 6. Mapping graphs onto a partially reconfigurable architecture. P. Chrétienne et F. Lamour. Proceedings of the 2 nd European Conference on Distributed Memory Computing, 1991, pages 73-79. On the mapping problem. S. H. Bokhari. IEEE Transactions on Computers, 1981, Vol. C-30. Processor scheduling for linearly connected parallel processors. C. E. McDowell et W.F. Appelbe. IEEE Transactions on Computers, 1986, Vol. C-35. Et plus si affinités Aspects théoriques et algorithmiques du calcul réparti 2
Références (2/2) Fiber-to-objet assignment heuristics. F. Sourd et P. Chrétienne. European Journal of Operational Research, 1999, Vol. 117, pages 1-14. A measure of similarity between graph vertices: applications to synomym extraction and web searching. V. D. Blondel, A. Gajardo, M. Heymans, P. Senellart et P. Van Dooren. SIAM Review, 2004, Vol. 46, n 4, pages 647-666. Aspects théoriques et algorithmiques du calcul réparti 3 Plan du cours Contexte Réseau d interconnexion Problématique Approche quantitative Approche qualitative Permutation de la matrice d adjacence Aspects théoriques et algorithmiques du calcul réparti 4
Contexte Le problème de placement est le problème d affectation des tâches d un programme sur les nœuds d une machine parallèle à mémoire distribuée. Une machine parallèle est constituée de : nœuds (ressources de calcul et de stockage) ; réseau d interconnexion. Une machine parallèle à mémoire distribuée est : une machine où chaque nœud possède une ressource mémoire propre qui ne peut pas être directement accédée par les autres nœuds. Les nœuds échangent des données via le réseau d interconnexion. Le problème de placement peut également se poser pour une machine monoprocesseur et avec un processeur multi-cœurs, en cas d accès nonuniforme à la mémoire. Dans la suite, on fait l hypothèse : un processeur par nœud. Aspects théoriques et algorithmiques du calcul réparti 5 Réseau d interconnexion (1/7) Le réseau d interconnexion relie entre eux les nœuds (ressources de calcul + mémoire) d une machine parallèle. Il faut P x (P-1)/2 liens bidirectionnels pour relier complètement entre eux les P nœuds d une machine : on parle de réseau complet. Réseau d interconnexion complet de 8 nœuds Aspects théoriques et algorithmiques du calcul réparti 6
Réseau d interconnexion (2/7) La plupart des réseaux d interconnexion sont incomplets, c est-àdire qu ils possèdent moins de P x (P-1)/2 liens pour relier P nœuds. Les messages qui sont échangés entre deux nœuds non directement reliés entre eux doivent transiter par des nœuds intermédiaires, appelés des nœuds de routage. On peut définir un graphe de la machine parallèle, les arêtes correspondants aux liens du réseau. Le nombre de liens à franchir pour aller du nœud émetteur au nœud récepteur représente la distance entre ces 2 nœuds. La distance maximale entre deux nœuds sur le réseau est égale au diamètre du graphe de la machine parallèle. Aspects théoriques et algorithmiques du calcul réparti 7 Réseau d interconnexion (3/7) La ligne : Dans une ligne à P nœuds, chaque nœud est connecté à 2 voisins immédiats à l exception des extrémités. Ligne de 4 nœuds L anneau : Dans un anneau à P nœuds, tout nœud i est connecté aux nœuds i+1 et i-1 modulo P. Anneau de 4 nœuds Aspects théoriques et algorithmiques du calcul réparti 8
Réseau d interconnexion (4/7) La grille : Dans une grille de dimension d, chaque nœud à l exception de ceux à la périphérie est connecté à 2d voisins immédiats. Grille 2d 4x4 Aspects théoriques et algorithmiques du calcul réparti 9 Réseau d interconnexion (5/7) La grille torique : Dans une grille torique de dimension d chaque nœud est connecté à 2d voisins immédiats. Tore 2d 4x4 Aspects théoriques et algorithmiques du calcul réparti 10
Réseau d interconnexion (6/7) L hypercube : Dans un hypercube de dimension d chacun des 2 d nœuds est connecté à d nœuds. 0 1 00 01 10 11 100 110 000 010 101 111 001 011 d = 0 d = 1 d = 2 d = 3 d = 4 Aspects théoriques et algorithmiques du calcul réparti 11 Réseau d interconnexion (7/7) Le système distribué : Il est souvent utilisé pour connecter les stations de travail et les ordinateurs personnels. Tous les ordinateurs reliés entre eux partagent un unique canal de communication (avec un débit/bande passante maximal). Le réseau d interconnexion peut être «à faible latence» via Ethernet, sans fil (WiFi), ou inclure un switch... Mac Mac Mac PC Mac Aspects théoriques et algorithmiques du calcul réparti 12
Problématique (1/4) Comment affecter les tâches d un programme sur les différents nœuds d une machine parallèle de sorte que le temps d exécution soit le plus petit possible? Les paramètres à prendre en compte sont : le nombre de tâches, le nombre de nœuds, le schéma de communication entre les tâches, le réseau d interconnexion entre les nœuds, le modèle de communication. Aspects théoriques et algorithmiques du calcul réparti 13 Problématique (2/4) T 1 T 2 P 2 T 3 T 4 T 3 T 4 Graphe de tâches P 1 T 1 T 2 arbitraire P 2 T 1 T 4 P 1 T 2 T 3 optimal Aspects théoriques et algorithmiques du calcul réparti 14
Problématique (3/4) Soit A l ensemble des affectations des tâches du programme aux nœuds de la machine parallèle, le problème de placement consiste à trouver une affectation a! A telle que le temps d exécution du programme est minimum. Le problème général est NP-complet. Les méthodes de résolution sont heuristiques. Aspects théoriques et algorithmiques du calcul réparti 15 Problématique (4/4) Le problème du placement demande le plus souvent de faire un compromis acceptable entre : maximiser le parallélisme en plaçant les tâches différentes sur des nœuds différents, minimiser les communications en plaçant les tâches qui communiquent fréquemment sur le même nœud. Aspects théoriques et algorithmiques du calcul réparti 16
Approche quantitative (1/2) L approche quantitative consiste : à définir une fonction de coût intégrant les paramètres qui décrivent : les caractéristiques du graphe de tâches (taille de chaque tâche, longueur des messages à échanger entre les tâches,...), les caractéristiques du graphe de la machine parallèle (vitesse de calcul et capacité mémoire de chaque nœud, vitesse de communication inter nœud, structure du réseau d interconnexion,...) ; à rechercher un placement qui minimise cette fonction. Aspects théoriques et algorithmiques du calcul réparti 17 Approche quantitative (2/2) Une formulation, où l on suppose que les communications sont toutes séquentielles et qu on peut négliger les temps d attente : Soient G T =(V T,E T ) le graphe de tâches avec : c T (t 1, t 2 ) le nombre de mots à envoyer entre la tâche t 1 et la tâche t 2, w T (t) le nombre d instructions exécutées par la tâche t, G P =(V P,E P ) le graphe de la machine parallèle avec : c p (p 1, p 2 ) la vitesse de transfert par mot du lien entre les nœuds p 1 et p 2. w P (p) la vitesse de calcul du nœud p. et a : V T " V P l affectation telle que : # (t1, t2)! ET [c T (t 1, t 2 ) * c p (a(t 1 ), a(t 2 ))] + max p! VP [ w P (p) * # t,a(t)=p w T (t)] soit minimum. Aspects théoriques et algorithmiques du calcul réparti 18
Approche qualitative (1/2) L approche qualitative consiste à trouver un isomorphisme entre le graphe de tâches et le graphe de la machine parallèle. Rappels : G T =(V T,E T ) et G P =(V P,E P ) sont isomorphes s il existe une fonction bijective M : V T " V P telle que (t 1, t 2 )! E T $ (M(t 1 ), M(t 2 ))! E P. Des graphes isomorphes ont nécessairement : le même nombre de sommets, le même nombre d arêtes, un nombre égal de sommets de n importe quel degré. Aspects théoriques et algorithmiques du calcul réparti 19 Approche qualitative (2/2) On recherche en pratique un placement qui respecte au mieux la topographie de la machine parallèle. Le problème revient à trouver une fonction de placement M : V T " V P qui maximise le nombre de tâches communicantes qui sont affectées à des nœuds voisins. Caractéristiques : le nombre de nœuds n est pas forcément égal au nombre de tâches, 2 tâches communicantes ne sont pas automatiquement sur des nœuds communicants. Aspects théoriques et algorithmiques du calcul réparti 20
Permutation de la matrice d adjacence (1/2) Matrice d adjacence : A = (A ij ) ij! R NxN est la matrice d adjacence d un graphe G=(V,E) de N sommets si A ij = 1 lorsque (v i, v j )! E dans G et A ij = 0 sinon. Isomorphisme : v 1 v 2 v 4 v 3 0 1 1 1 1 0 1 0 1 1 0 1 1 0 1 0 Est-il possible par permutation des lignes et des colonnes de la matrice d adjacence du graphe de tâches d obtenir la matrice d adjacence du graphe de la machine parallèle? p 1 p 2 0 1 0 1 1 0 1 1 0 1 0 1 C 2 % C 3 / L 2 % L 3 p 1 1 1 0 4 p L 1 % L 4 / C 4 % C 1 3 Graphe de la machine parallèle Matrice d adjacence Permutations Aspects théoriques et algorithmiques du calcul réparti 21 Permutation de la matrice d adjacence (2/2) Heuristique : a) 2 lignes/2 colonnes de la matrice d adjacence du graphe de tâches sont permutées, b) la nouvelle matrice obtenue est comparée à la matrice d adjacence du graphe de la machine parallèle: Si le placement est meilleur on réitère les étapes a) et b) avec comme point de départ la nouvelle matrice. Si le placement n est pas meilleur on reprend les étapes a) et b) avec la matrice précédente. c) l algorithme s arrête lorsque le placement ne peut plus être amélioré. & idée : des permutations aléatoires pour tenter de débloquer les situations apparemment impossibles à améliorer. Aspects théoriques et algorithmiques du calcul réparti 22