Placement de Motifs Architecture Application Contraintes: - Charge - Mémoire - B.passante Mapping: B&B bi objectif + Dijkstra Objectifs: Min Tempsd’execution Min consommation d’énergie Placements: - N Taches = Motif - AAS Motif - Front Pareto
Définitions Architecture Un ensemble (une grille) de processeurs identiques connectés avec une topologie d'interconnexion arbitraire. Caractéristiques: - Fréquence, Énergie consommé par cycle - Bande Passante, Latence - Énergie consommé par une unité de donnée Application Un ensemble de tâches et de communications indépendantes et qui peuvent s'exécuter en parallèle selon n'importe quel ordre. - Taille en cycle - Taille des données d’entré Data In - Taille des données de sortie Data Out
Mapping Motif : Un ensemble de traitements (taches) et communications placés (AAS) sur un ensemble d'éléments d'exécution (PE) connectés à travers un réseau de l'architecture Mapping par partie : - Calculer le placement d’un Motif. - Répéter X fois le placement : X = Taches Motif / Taches totales - Méthode de placement : méthode hybride (B&Bound+Dijkstra). Avantages: - Faire l’AAS indépendamment du nombre total des tâches. - Minimiser la complexité du placement
Algorithme Introduire les caractéristiques de l‘architecture et des tâches répétitives Motif_Taches = 0; Slack =∞ Pour N= 2 …!! Faire - B&B + Dijksta pour tout placement : + m=mode max des processeurs + Vérification des contraintes + Atteint l’objectif D <= deadline. - Calcul du Slack + Sauvegarde le Min + Motif_Taches = N. Fin Pour Sauvegarde Placements de Motif_Taches
Suite ... Faire changer le mode des processeurs Pour chaque placement sauvegardé: - Calcul de la Durée d’exécution - Calcul de la consommation d’energie. Retenir le front de Pareto
Diagramme de Classe Main_Window Grid_Size :int NbTask : int New() ; Open() ; Save() ; Placement() ; Graph_Interface Nodes :List Arc : int addNode(); getNode() ; addArc() ; getArc() ; Branch&Bound NbrPE:int NbrTask : int Access() ; NewPlacement() ; Mis_a_jour() ; … Dijkstra SourcePE:int Destination : int FindVoisin() ; ExtraireMin() ; Tools_Box Durée() ; Energie() ; Slack() ;
Algo Branch And Bound l=1; *** indice Pour N=2 --- !! *** Taches l=1; *** indice Tant que l <= Count *** Compteur des placements Pour k=1 --- NbPE *** Pocesseurs PE[]=Acces(k); - Dijkstra (Data,RootPE,k); Affect_Task_PE [l][N]=PE; Verifie = Verif_contraintes(PE); D=Exécution + Communication; Si (D <= Deadline) Nouveau_Placement(l,N,k); l=l+1; Count = Count +1; Fin Si FinPour k Fin Tant que Calculer le nouveaux Slack et déduire le Motif_Taches FinPour N Print Placements
État actuel: 70% du travail. Futures deadlines: - 15 jours : les résultats - 30 jours : dernières retouches