• Aucun résultat trouvé

Principe de l’approche hiérarchique

5.3.2 Algorithme RBB (Reliability-Based Bi-objective scheduling heuristic)

Basée liste, cette première heuristique émet l’hypothèse selon laquelle la recherche est contrainte par une valeur de GSFR, correspondante donc à une valeur de fiabilité. Le but est de produire un couple de valeurs respectant la contrainte de fiabilité imposée et ayant la valeur optimale de la longueur d’ordonnancement et ce pour une instance du problème.

5.3 AAA-Bi-Hiérarchique 99

L’algorithme RBB

Entrées : ALG, ARC, Λc

Sorties : LRBB, ΛRBB Début

Initialiser les listes des tâches concurrentes et des tâches ordonnancées :

Tconc(0) := {t ∈ T | pred(t) = ∅} ; Tsched(0) := ∅ ;

Tant que Tconc(n) 6= ∅ Faire

À Calculer la pression d’ordonnancement sûre pour chaque tâche tide Tconc(n) sur chaque processeur pjtel que Λi < Λc;

Á Ordonnancer le couple (ti, pj) qui minimise la pression d’ordonnancement sûre ;

 Mettre à jour les listes des tâches concurrentes et des tâches ordonnancées : Tsched(n) := Tsched(n−1)∪ {t} ;

Tconc(n+1):= Tconc(n) − {t} ∪ {t0 ∈ succ(t) | pred(t0) ⊆ Tsched(n) } ; Fin Tant que

Fin

Tsched(0) est la liste des tâches ordonnancées, pred(ti) est l’ensemble des prédécesseurs de la tâche ti, et succ(ti) est l’ensemble des successeurs de la tâche ti.

5.3.3 Fonctionnement de RBB

— Entrées de RBB

Les entrées dont dispose l’heuristique RBB sont :

1. Une application ALG sous forme d’un graphe de tâches ;

2. Une architecture ARC sous forme d’un ensemble de processeurs reliés entre eux par des liens de communication ;

recherche ; — Sorties de RBB

Les sorties de l’heuristique RBB consistent en deux valeurs à savoir : 1. Une valeur du GSFR exprimant la fiabilité du système ;

2. Une valeur de la longueur d’ordonnancement ou Makespan ;

Ces deux valeurs sont les valeurs respectives des deux fonctions objectifs, elles expriment l’évaluation de l’ordonnancement correspondant.

— Initialisation

Deux listes sont utilisées :

1. Tconc(0) : est la liste des tâches concurrentes sachant qu’une tâche est considérée comme concurrente si elle n’a pas de prédécesseur ;

2. Tsched(0) : la liste des tâches ordonnancées et qui vont constituer, à la fin, l’ordonnancement résultat ;

— Evaluation

L’étape d’évaluation (1) consiste à calculer, pour chaque tâche concurrente, sa pression d’ordonnancement sûre sur chacun des processeurs tel que la contrainte courante relative au GSFR soit respectée.

— Choix

Cette étape (2) consiste à réaliser un choix concernant le meilleur couple (tâche, processeur), donc celui qui minimise la pression d’ordonnancement sûre.

— Mise à jour

L’étape de mise à jour (3) consiste d’une part à ajouter la tâche choisie à la liste des tâches ordonnancées et d’autre part à enlever la tâche choisie de la liste des tâches concurrentes ainsi que tous ses successeurs tel que les prédécesseurs de ces derniers soient déjà ordonnancés.

5.3 AAA-Bi-Hiérarchique 101

Le résultat est un couple de valeurs (LRBBRBB) contraint par une valeur de GSFR et dont la valeur de la longueur d’ordonnancement est la plus optimale.

5.3.4 Algorithme MBB (Makespan-Based Bi-objective scheduling heuristic)

L’heuristique d’ordonnancement MBB est également basée liste. Elle est, cependant, contrainte par une valeur de la longueur d’ordonnancement produite par l’heuristique RBB.

L’Algorithme MBB

Entrées : ALG, ARC, LRBB

Sorties : LM BB, ΛM BB

Début

Initialiser les listes des tâches concurrentes et des tâches ordonnancées :

Tconc(0) := {t ∈ T | pred(t) = ∅} ; Tsched(0) := ∅ ;

Tant que Tconc(n) 6= ∅ Faire

À Calculer le GSFR pour chaque tâche tide Tconc(n) sur chaque processeur pj tel que Li < LRBB;

Á Ordonnancer le couple (ti, pj) qui minimise le GSFR ;

 Mettre à jour les listes des tâches concurrentes et des tâches ordonnancées : Tsched(n) := Tsched(n−1)∪ {t} ;

Tconc(n+1):= Tconc(n) − {t} ∪ {t0 ∈ succ(t) | pred(t0) ⊆ Tsched(n) } ; Fin Tant que

Fin

Son objectif est de produire, dans l’espace limité par la contrainte de longueur d’ordonnancement, le couple de valeurs dont celle du GSFR est la plus optimale pour l’instance en cours.

5.3.5 Fonctionnement de MBB

— Entrées de MBB

Les trois entrées de l’heuristique MBB, dont les deux premières sont les mêmes que celles de l’heuristique RBB, sont :

1. Une application ALG sous forme d’un graphe de tâches ;

2. Une architecture ARC sous forme d’un ensemble de processeurs reliés entre eux ; 3. Une valeur de longueur d’ordonnancement (LRBB) issue de l’heuristique RBB et qui est

considérée par l’heuristique MBB comme une contrainte à respecter ; — Sorties de MBB

Les sorties de l’heuristique MBB consistent en deux valeurs à savoir : 1. Une valeur de la longueur d’ordonnancement ou Makespan ; 2. Une valeur du GSFR exprimant la fiabilité du système ;

Comme pour RBB, les deux valeurs expriment une solution qui est, dans notre cas, un ordo-nnancement.

— Initialisation

Pour MBB, deux listes sont également utilisées :

1. Tconc(0) : est la liste des tâches concurrentes sachant qu’une tâche est considérée comme concurrente si elle n’a pas de prédécesseur ;

2. Tsched(0) : la liste des tâches ordonnancées et qui vont constituer, à la fin, l’ordonnancement résultat ;

— Evaluation

L’étape d’évaluation (1) consiste à calculer le GSFR pour chaque tâche concurrente sur chacun des processeurs tel que la valeur (LRBB) de la longueur d’ordonnancement, issue de l’heuristique RBB, soit respectée.

5.3 AAA-Bi-Hiérarchique 103

— Choix

L’étape (2) consiste à réaliser un choix concernant le couple (tâche, processeur) dont la valeur du GSFR est la plus petite, ce qui implique une plus grande fiabilité.

— Mise à jour

Comme pour l’heuristique RBB, l’étape de mise à jour (3) consiste d’une part à ajouter la tâche choisie à la liste des tâches ordonnancées et d’autre part à enlever la tâche choisie de la liste des tâches concurrentes ainsi que tous ses successeurs tel que les prédécesseurs de ces derniers soient déjà ordonnancés.

Les étapes (1), (2) et (3) de l’heuristique sont répétées jusqu’à ce qu’il n’y ait plus de tâche concurrente. Les deux heuristiques RBB et MBB peuvent être ré-exécutées en changeant la contrainte initiale λc. Leur coopération permet d’améliorer itérativement les solutions (Figure 5.6).

Documents relatifs