• Aucun résultat trouvé

Chapitre 8 : Descripteur discret 135

9.5 Structures de données

Un deuxième module (compile_phsan) implante une extension du langage standard pour inclure la description des événements phase-type dans le modèle. Ce langage a été proposé par Sbeity et une description détaillée est dans [89].

Les deux modules de cette phase reçoivent un fichier du type .san qui suit les règles

de description et génèrent, après l’analyse syntaxique, un ensemble de fichiers décrivant le descripteur markovien plein, dans le format proposé dans [34].

9.5 Structures de données

Les modules inclus dans la phase “structure de données” manipulent le descripteur markovien de façon à le transformer pour l’adapter à la phase de “méthodes de résolution”.

On peut classer les modules de cette phase en2groupes, divisés selon la structure de

stock-age utilisée : tensorielle et HBF.

9.5.1 Structure tensorielle

Deux étapes sont nécessaires pour préparer le descripteur markovien plein obtenu par la compilation du modèle SAN pour la phase “méthodes de résolution” : compilation du descrip-teur et normalisation du descripdescrip-teur.

Compilation du descripteur

Cette étape de traitement de “structure de données” transforme le descripteur markovien plein stocké en un ensemble des petites matrices au format plein en des matrices stockées au format HBF. Cette conversion a pour but de réduire le nombre de multiplications inutiles (mul-tiplication par zéro) au moment de la résolution du modèle, vu que, assez souvent, pour des petites matrices le format HBF prend plus de place de stockage que le format plein. Notons que la matrice de transition de la chaîne de Markov équivalente continue à être représentée en forme tensorielle, et uniquement l’ensemble de matrices du descripteur markovien utilise le format HBF.

Cependant, les méthodes les plus importantes du module de cette étape sont les méth-odes d’agrégation (algébrique et sémantique) en charge des groupement des automates. Le groupement d’automates par agrégation algébrique est réalisé par l’application des opérations de somme et de produit tensoriel sur un ensemble matrices du descripteur markovien. Avec ce type d’agrégation on réduit le nombre d’automates du modèle mais on a des automates plus grands [34]. La méthode d’agrégation sémantique peut être utilisée uniquement sur un ensemble d’automates identiques (replicas). Cette méthode permet de représenter avec un seul automate le nombre d’automates dans chaque état des automates agrégés [6]. Cette méthode réduit de

façon significative le nombre d’états du modèle, mais elle est applicable à un ensemble réduit de modèles.

Le module qui réalise l’étape de compilation du descripteur est appelé compile_dsc. Il com-pile l’ensemble des fichiers générés par le module comcom-pile_san pour décrire le descripteur markovien plein et génère un ensemble de fichiers qui décrivent le descripteur markovien creux.

Normalisation du descripteur

La dernière étape de la phase traitement de structures de données normalise le descripteur markovien creux et réalise le pré-calcul de la diagonale du descripteur.

Le pré-calcul de la diagonale du descripteur consiste à extraire toutes les matrices de normal-isation des événements synchronisants et les éléments diagonaux des matrices des événements locaux. Ces éléments sont utilisés pour construire le vecteur diagonal utilisé dans les méthodes de résolution. Cette technique améliore la performance des méthodes de résolution. Une de-scription détaillée de la méthode de pré-calcul de la diagonale du descripteur est décrite par Fernandes [34].

En plus de la normalisation du descripteur et du pré-calcul de la diagonale, les modules de cette étape font une analyse du modèle à la recherche de possibles optimisations, telles que, le remplacement de fonctions par des valeurs constantes (lorsque la fonction a la même valeur sur tous l’espace d’états) et la génération de l’ordre de multiplication des matrices de façon à minimiser l’évaluation des fonctions.

Cette étape de normalisation et d’optimisation est implantée par deux modules : norm_dsc_ex et norm_dsc_sp. Ces deux modules implantent les mêmes méthodes et techniques, ils utilisent l’ensemble de fichiers qui décrivent le descripteur markovien creux pour générer l’ensemble des fichiers qui décrivent le descripteur markovien normalisé. Cependant le module norm_dsc_ex travaille sur l’espace d’état produit et génère le vecteur diagonal avec cette taille, alors que le module norm_dsc_sp travaille sur l’espace d’états atteignables et le vecteur diagonal généré a cette taille.

9.5.2 Structure HBF

Un autre chemin possible pour résoudre un modèle est de générer directement la chaîne de Markov équivalente au modèle SAN. Après le découpage du logiciel, le module gen_hbf réalise la construction de la chaîne de Markov équivalente au descripteur markovien plein obtenu après la compilation du modèle SAN.

La matrice de transition de la chaîne de Markov équivalente au modèle SAN est stocké sous le format HBF (Harwell-Boeing Format). Optionnellement, ce module peut convertir la matrice générée pour qu’elle soit compatible avec le logiciel MARCA [92, 93].

9.6. MÉTHODES DE RÉSOLUTION 181

9.6 Méthodes de résolution

Plusieurs méthodes de résolution sont implantées dans PEPS2007, telles que la méthode de la puissance, Arnoldi et GMRES pour la solution stationnaire et la méthode d’uniformisation pour les solutions transitoires.

Comme pour la phase de structures de données, on peut grouper les modules de cette phase selon le type de structure utilisée pour le stockage : tensorielle et HBF (Harwell-Boeing

For-mat).

9.6.1 Structure tensorielle

Les modules de cette phase qui utilisent une structure tensorielle sont basés sur la méthode de shuffle [35]. La méthode de shuffle permet de réaliser des multiplications vecteur-descripteur sans jamais avoir à générer la matrice de transition de la chaîne de Markov. Autrement dit, ces modules travaillent directement sur le descripteur markovien normalisé du modèle.

Les méthodes de résolution qui utilisent cette structure tensorielle sont implantées dans trois modules : solve_cnd_ex, solve_cnd_sp et solve_cnd_pav.

Les modules solve_cnd_ex et solve_cnd_ex implantent quelques méthodes de résolution sta-tionnaire classique : puissance, Arnoldi et GMRES et la méthode d’uniformisation pour des so-lutions transitoires. La différence entre ces deux modules est le format du vecteur de probabilité utilisé. Alors que le module solve_cnd_ex utilisé un vecteur plein, donc de la taille de l’espace d’état produit du modèle, pour stocker le vecteur de probabilité, le module solve_cnd_sp utilise un vecteur creux, où uniquement les probabilités des états atteignables sont stockées. L’utilisa-tion des vecteur creux pour le stockage du vecteur de probabilités a été proposé par Benoit dans [9] et apporte plusieurs avantages lorsque l’espace d’états atteignables est beaucoup plus petit

que l’espace d’états produit (la limité est à50%).

Il faut remarquer que le solve_cnd_ex utilise le descripteur normalisé généré par le module

norm_dsc_ex, où le vecteur diagonal a la taille de l’espace d’états produit, alors que solve_cnd_sp

utilise le descripteur normalisé généré par le module norm_dsc_sp, avec un vecteur diagonal ayant uniquement les états atteignables. De la même façon, le résultat rendu par le module

solve_cnd_ex est un vecteur de probabilités au format plein, alors que le module solve_cnd_sp

rend un vecteur de probabilités au format creux. Optionnellement, les deux modules peuvent calculer les indices de performances sur les fonctions résultats définies dans le modèle.

Le troisième module implante plusieurs méthodes pour le calcul de la disponibilité ponctuelle. Ces méthodes sont décrites en détails dans le Chapitre 3. Ce module rend la valeur de la

disponi-bilité ponctuelle à un instanttspécifié par l’utilisateur.

Notons que ce module a été conçu après le découpage du logiciel et il faut noter le gain de cette nouvelle structure du logiciel, car dans ce module, certaines méthodes utilisée pour le

Documents relatifs