• Aucun résultat trouvé

7.3 Résultats et interprétation

7.3.1 Résultats

Nous présentons dans cette partie les résultats des algorithmes d'optimisation, selon les cri- tères de conguration retenus.

Heuristique Gloutonne

Le tableau 7.2 donne le résultat de l'optimisation par l'algorithme F GH, en utilisant suc- cessivement comme critère de valeur les connexions (FGH-CB) et les périodes (FGH-PB). Le symbole x désigne une composition de threads, c'est-à-dire deux threads fusionnés, tandis que le symbole + désigne une addition de threads, c'est-à-dire deux threads concurrents et séparés. Dans les deux systèmes obtenus respectivement par l'application de FGH-CB et FGH-PB, on observe deux types de diérences.

 en premier lieu, un plus grand nombre de thread naux est obtenu par l'application de la version basée sur les périodes de l'algorithme. Ce résultat est cohérent avec la construc- tion de l'algorithme, qui privilégie comme son nom l'indique les périodes, faisant décroître

moins rapidement les périodes des threads fusionnés, ouvrant ainsi la voie à plus de fusions ultérieures, comme expliqué dans le chapitre4;

 ensuite, nous voyons que de larges blocs de threads peuvent être déplacés d'un process à l'autre, dans les deux implantations. Dans ce cas, il s'agit de l'eet de la fonction Move. Outre ces éléments, les deux versions présentent quelques diérences, dont nous discutons pour chaque process dans le système fusionné.

Display Avec F GH, nous imposons le premier paramètre de l'opération Merge. Le princi- pal critère de décision est le nombre de connexions entrantes ou sortantes. Dans notre mo- dèle, le thread Builtin_Test est tout d'abord élu, puisque celui-ci envoie un nombre impor- tant de données aux threads MPD_Status_Display, HUD_Display et MPD_Stores_Display. Dans la version basée sur les connexions, c'est logiquement avec le premier de ces threads qu'il est d'abord fusionné. Radar_Control est également fusionné, car il envoie un message d'erreur à MPD_Status_Display, puis MPD_Stores_Display, Target_Tracking (qui envoie la table des contacts à MPD_Status_Display). à ce point de l'algorithme, la période du thread créé est de 40 ms. Keyset et HOTAS sont ensuite fusionnés à ce thread, malgré l'absence de connexions à ce thread, car leur périodes sont également de 40 ms. A contrario, HUD_Display n'est pas fu- sionné car sa période de 52 ms violerait la condition de faisabilité. Ce dernier est donc fusionné dans un nouveau thread avec MPD_Tactical_Display, dont il partage la période. Finalement, RWR_Control et RWR_Threat_Response fusionnent pour former un troisième thread.

Dans la version basée sur les périodes, le critère de connexion est ignoré (sauf pour l'élection du premier paramètre de fusion), au prot d'une mesure de la réduction de la valeur minimale des périodes de l'ensemble de threads candidats à la fusion. Le premier thread créé par un ensemble de Merge contiendra ainsi RWR_Control (qui partage avec Builtin_Test et MPD_Status_Display une basse fréquence de 200 ms). Il en va de même, un peu plus tard, pour RWR_Treat_Response. Target_Tracking, Radar_Control et HOTAS, tous de période 40 ms, qui sont pour leur part fusionnés dans un second thread. Comme dans la version précédente (et pour la même raison), HUD_Display et MPD_Tactical_Display sont fusionnés dans un troisième thread.

Dans les deux versions de l'algorithme, le premier thread fusionné est déplacé vers le process weapons.

Weapons Les trois threads Weapon_Selection, Weapon_Trajectory et Weapon_Release sont fusionnés car connectés entre eux et de périodes proches (100 ms pour les deux premiers, et 200 ms pour le dernier). Cette fusion s'opère dans les deux versions.

Dans la version basée sur les périodes de l'algorithme, le thread déplacé du process display est fusionné avec le précédent thread, car leur périodes sont identiques (100 ms) et que la fusion ne viole pas les règles de faisabilité.

Navigation Les deux threads du process Navigation ont des périodes premières entre elles. La fusion de ces deux threads engendrerait donc un thread de période 1 ms, quelle que soit l'implantation de l'algorithme. Comme une telle période violerait évidement la condition de faisabilité, aucune fusion n'est eectuée.

Heuristique Semi-Gloutonne

Le tableau7.3donne le résultat de l'optimisation par l'algorithme HGH, en utilisant succes- sivement comme critère de valeur les connexions (HGH-CB) et les périodes (HGH-PB).

7.3. Résultats et interprétation Original Display HUD_Display (P, 52ms) + MPD_Tactical (P, 52ms) +MPD_Status (P, 200ms) + MPD_Stores (P, 200ms) +

Builtin_Test (P, 1000ms) + Keyset (P, 200ms) + HOTAS (P, 40ms) + Radar_Control (P, 40ms) + Target_Track (P, 40ms) + RWR_Threat (P, 100ms) + RWR_Control (S, 400ms)

Weapons Weapon_Selection (S, 200ms) + Weapon_Trajectory (S, 100ms) + Weapon_Release (S, 200ms)

Navigation Flight_Data (P, 59 ms) + Steering (P, 80 ms) Système HGH-CB

Display (RWR_Threat_Response) + (HUD_Display x

MPD_Tactical_Display) + (RWR_Control x Keyset x Radar_Control x MPD_Status_Display x Builtin_Test x MPD_Stores_Display x HOTAS)

Weapons (Target_Tracking) + (Weapon_Release x Wea-

pon_Selection x Weapon_Trajectory) Navigation Flight_Data + Steering

Système HGH-PB

Display (HUD_Display x MPD_Tactical_Display) + (Buil-

tin_Test x MPD_Status_Display x MPD_Stores_Display x Keyset x RWR_Control x RWR_Threat_Response)

Weapons (Radar_Control x Target_Tracking x HOTAS) + (Wea-

pon_Release x Weapon_Selection x Weapon_Trajectory) Navigation Flight_Data + Steering

Tab. 7.3  Composition du modèle GAP après optimisation avec HGH

L'heuristique semi-gloutonne (HGH) assure une exploration plus large de l'espace des so- lutions. Paradoxalement, la nature optimale du premier ensemble de threads fusionnés tend à réduire les possibilités de fusions ultérieures. Nous obtenons au nal plus de threads  et des threads plus déséquilibrés en terme de charge (WCET/Période), que dans l'algorithme F GH. Nous décrivons ci-dessous les opérations eectuées par l'algorithme HGH, et ce pour les versions basée sur les connexions et basée sur les périodes.

Display Dans HGH − P C, comparativement à F GH − P C, le thread initial inclue le thread RWR_Control, en plus de tous ceux présents dans le premier thread de F GH − P C, à part Target_Tracking qui en est exclu. Ce dernier ayant une charge bien plus importante, nous avons donc bien créé un thread plus performant (selon nos critères), et nous vérions au passage que cette situation correspond au cas où le thread exclu dans F GH − P C est le premier fusionné dans HGH − P C. RWR_Control et RWR_Threat_Response fusionnent ensuite pour former un second thread. Finalement, RWR_Threat_Response ne peut plus être fusionné avec aucun thread existant sans violer la contrainte de faisabilité. Target_Tracking est ensuite déplacé vers le process Weapons.

Dans la version basée sur les périodes, Target_Tracking, Radar_Control et HOTAS sont tout d'abord fusionnés, comme dans F GH − P C et pour les même raisons. De la même façon, HUD_Display et MPD_Tactical_Display sont fusionnés dans un second thread. Tous les autres threads du process seront fusionnés dans un troisième thread de 100 ms, lequel sera ensuite déplacé vers Weapons.

FGH-CB HGH-CB FGH-PB HGH-PB

Iterations 536 86 723 101

Durée (s) 4.19 2.63 2.88 3.37

Gain en Mémoire 30% 32% 39% 36%

Tab. 7.4  Coûts et gains de l'optimization

Weapons Pour la même raison qu'avec l'algorithme précédent, les threads Weapon_Selection, Weapon_Trajectory et Weapon_Release sont fusionnés en un seul thread, et ce quel que soit la version de HGH. Aucune fusion ultérieure n'est possible, les threads déplacés ayant déjà une charge trop importante.

Navigation Pour la même raison qu'avec l'algorithme précédent, aucune fusion n'a lieu.