• Aucun résultat trouvé

4.4 Analyse du coût du modèle d’exécution

4.4.2 Analyse du coût sur une machine à mémoire distribuée

4.4.2.1 Graphe et ordonnancement centralisés

Nous décrivons dans cette section un modèle d’exécution d’Athapascan-1 pour ma-chine à mémoire distribuée valable pour tout type de programme Athapascan-1 ; l’ordon-nancement et la gestion du graphe et des objets partagées sont centralisées. L’intérêt de ce modèle d’exécution centralisé se justifie en partie par l’existence de certaines politiques d’ordonnancement centralisées. En effet pour prendre une décision d’ordonnancement, ce type de politique a besoin de consulter l’ensemble des tâches prêtes et non encore exécu-tées ainsi que la charge de l’ensemble des processeurs. Notons cependant que ce modèle d’exécution centralisé peut être pénalisant sur un grand nombre de processeurs pour des applications dans lesquelles les tâches sont de faible granularité.

La figure 4.7 page 69 montre le diagramme du modèle d’exécution centralisé. La gestion du graphe et de l’ordonnancement est réalisée sur un processeur, appelé ci-après maître. Les autres processeurs sont dédiés à l’execution des tâches et sont appelés es-claves. Nous détaillons dans la suite les diverses opérations réalisées par le processeur maître et les processeurs esclaves.

Le processeur maître gère les événements suivants arrivant du réseau :

– Création de tâche : la tâche est alors insérée dans le graphe grâce au module de construction du graphe.

– Fin de tâche : les nouvelles tâche prêtes sont alors calculées par le module d’inter-prétation du graphe.

Analyse du coût du modèle d’exécution 4.4 Ordonnancement Tâche à exécuter Tâche prête Tâche terminée Objet à communiquer Processeur disponible (charge)

Machine parallèle

Consultation du graphe

Graphe de flot de donnée Construction du graphe

(calcul des contraintes de flot)

Interprétation du graphe

(contrôle des contraintes de flot)

Processeur maître

Création d’une tâche

Application Athapascan-1

Figure 4.7 – Modèle d’exécution d’un programme Athapascan-1 centralisé. Les opérations réalisées par le processeur maître se situe à l’intérieur du cadre en pointillé.

Par ailleurs, à la fin du traitement chacun de ces événements, le processeur maître peut décider d’allouer une tâche prête (si elle existe) sur un des processeurs esclaves en vue de son exécution. Cette tâche est alors envoyée sur le processeur disponible et des messages de contrôle sont éventuellement envoyés à certains processeurs esclaves pour gérer la cohérence de la mémoire partagée distribuée. Ces messages consistent à demander à un processeur esclave l’envoi par le réseau d’un objet partagé sur un autre processeur esclave. Un processeur esclave peut a priori disposer simultanément de plusieurs tâches à exé-cuter qui lui ont été allouées par le processeur maître. Chaque processeur esclave dispose alors de deux listes de tâches. L’une contient les tâches prêtes à être exécutée et l’autre contient les tâches en attente de données nécessaires à leur exécution (i.e. les versions valide des objets partagés). Un processeur esclave gère alors les événements suivant :

– Terminaison d’une tâche. L’identification de la tâche est alors envoyée au proces-seur maître.

– Réception d’une tâche allouée par le processeur maître. Cette tâche est alors mise dans l’une des deux listes de tâches.

– Réception d’un message venant du processeur maître demandant l’envoi d’un objet partagé à un autre processeur esclave. L’objet est alors envoyé immédiatement.

– Réception d’un objet partagée envoyé par un autre processeur esclave. Les deux listes de tâches sont alors mises à jour (i.e. les tâches devenant prêtes à être exécuter sont mises dans l’autre liste).

Par ailleurs, à la fin du traitement chacun de ces événements, si des tâches prêtes à exécuter sont présentes et si le processeur est disponible (i.e. il n’exécute aucune tâche), alors il démarre l’exécution d’une nouvelle tâche.

Ce schéma d’exécution suppose qu’un processeur esclave doit être capable, lors de la réception d’une communication, d’interrompre l’exécution d’une tâche pour traiter l’évé-nement associé à la communication. Nous verrons dans le chapitre 6 comment un tel mécanisme de réactivité face aux communications peut en pratique être obtenu grâce à la bibliothèque Athapascan-0. Pour l’analyse du coût de ce modèle d’exécution, nous sup-poserons que l’exécution d’une tâche est interrompue immédiatement après l’arrivée d’un message venant du réseau.

La proposition suivante borne alors le temps de l’exécution d’un programme Athapas-can-1, obtenu en suivant ce modèle centralisé d’exécution.

Proposition 4 L’exécution d’un programme Athapascan-1 sur une machine à mémoire

distribuée comportantm + 1processeurs identiques peut être réalisée en suivant le modèle d’exécution centralisé précédemment présenté. Le temps d’exécution est alors majoré par : T exe ! m (G)+ m (G)+O (n+n d )+3(n+n d )

Gest le graphe généré par l’exécution et est le temps de communication d’un iden-tificateur d’objet partagé ou de tâche.

Preuve. Nous définissons comme dans la section 4.4.1 page 66, les sous ensembles dis-jointsC (surcoût d’Athapascan-1),O (surcoût d’ordonnancement) et E = T n(C [O )

qui partitionnent l’ensembleT des tops d’exécutions. CependantC contient aussi main-tenant, outre les tops pour lequel une opération de construction ou d’interprétation du graphe est en cours sur un des processeurs, les tops pendant lesquels une communica-tion autre qu’une version d’un objet partagé est en cours (i.e. une communicacommunica-tion entre le processeur maître et un processeur esclave).

La construction et l’interprétation du graphe sur le processeur maître sont, d’après les propositions 1 et 2, bornées parO (n+n

d )donc#E O (n+n d ).#O= m (G)de par la définition de m (G)et deOet#E ! m (G)de par la définition de! m (G). Les communications générées pour contrôler l’exécution sont les suivantes :

– Lors de la création d’une tâche, les données communiquées au processeur maître sont un identificateur de la tâche et un identificateur de chaque objet partagé accédé par cette tâche.n+n

d identificateurs sont au total communiqués ici.

– Lors de la terminaison d’une tâche, l’identificateur de la tâche est communiquée au processeur maître .nidentificateurs sont au total communiqués ici.

Analyse du coût du modèle d’exécution 4.4 – Lors du placement, par le processeur maître, d’une tâche prête sur un processeur esclave pour son exécution, les données communiquées au processeur esclave sont un identificateur de la tâche et un identificateur de chaque objet partagé accédé par cette tâche.n+n

d identificateurs sont au total communiqués ici.

– Pour chaque objet partagé communiqué entre deux processeurs esclaves, un identifi-cateur d’objet partagé a été envoyé du processeur maître vers un processeur esclave. Au plusn

d identificateurs sont au total communiqués ici. Le nombre d’identificateurs communiqués est donc de3(n+n d

). 2