Aller au contenu

MÉTHODOLOGIE DE PARALLÉLISATION

1/107
100%
Rendu du PDF...
Page 1 sur 107Lecteur de document UniversityLib

MÉTHODOLOGIE DE PARALLÉLISATION

Programming, Math · course

Fiche de révisionFiche de cours

Fiche de cours – MÉTHODOLOGIE DE PARALLÉLISATION

Rédigée à partir de ce document, puis vérifiée avant publication.

Méthodologie de parallélisation

La méthodologie de parallélisation est essentielle pour optimiser l'exécution des programmes en segmentant les tâches. Cet article couvre les notions de système de tâches, les graphes de précédence, l'ordonnancement des tâches, ainsi que les types de dépendance. Des exemples pratiques et des méthodes de détermination de Popt seront également présentés pour aider à la compréhension de ces concepts.

Notion de système de tâches

La décomposition d'un programme en tâches n'est pas unique et dépend de la granularité demandée, c'est-à-dire la taille des tâches à paralléliser. Par exemple, pour un programme donné, on peut avoir :

pour i=1 à n faire
  pour j=1 à n faire
    Y(i)= Y(i)+ A(i,j)* X(j)
  fin pour j
fin pour i

Dans cet exemple, la granularité peut être fine, moyenne ou grande. Une granularité fine correspond à une seule opération élémentaire, ce qui peut entraîner jusqu'à 2n² tâches. Plus la granularité est fine, plus le parallélisme peut être exploité.

Définition d'une tâche

Une tâche est une unité indivisible définie par les propriétés suivantes :

  • Ei : les entrées de la tâche Ti
  • Si : les sorties de la tâche Ti
  • Fi : opérateur sur Ti
  • Θi : coût de Ti (nombre d'opérations élémentaires)

La tâche est représentée par (Ei, Si, Fi, Θi). Il est important de noter que la tâche ne peut s'exécuter que sur un seul processeur et que son exécution est non préemptive.

Système de tâches

Un système de tâches S = (T1,…,Tn, <<) est un ensemble de tâches muni d'une relation d'ordre partiel notée <<. Cela signifie que l'exécution de la tâche Tj ne peut commencer que si Ti a terminé son exécution.

Deux tâches Ti et Tj sont indépendantes si :

Si ∩ Sj = Si ∩ Ej = Ei ∩ Sj = Ø, c'est la condition de Bernstein. Cette relation d'ordre est transitive mais non symétrique.

Graphe de précédence

Le graphe de précédence (GP) est un outil graphique qui représente les relations d'ordre entre les tâches. Pour construire le GP, il faut éliminer les redondances du graphe de tâches (GT).

Un exemple de graphe de tâches est :

T1 << T4
T2 << T4, T2 << T5, T2 << T6
T3 << T5, T3 << T6
T5 << T6

Pour chaque programme, on associe un graphe de tâches. Il est important de noter que le GP doit supprimer les arcs transitifs pour obtenir une représentation claire des dépendances.

Matrice d'adjacence

La matrice d'adjacence d'ordre n est définie par :

aij = 1 ssi Ti << Tj

Cette matrice est souvent creuse et peut être utilisée pour appliquer un algorithme de tri topologique, qui permet de numéroter les nœuds d'un graphe de manière à respecter les relations d'ordre.

Ordonnancement des tâches

L'ordonnancement est défini comme suit :

ORD : (tdb(Ti), Proc(Ti))

où tdb(Ti) est le temps de début d'exécution de Ti, et Proc(Ti) est le processeur qui va exécuter Ti.

Pour minimiser le temps d'exécution total Tp, on doit respecter les contraintes suivantes :

  • Si Ti << Tj alors tdb(Ti) < tdb(Tj)
  • Si tdb(Ti) = tdb(Tj) alors Proc(Ti) ≠ Proc(Tj)

Le temps d'exécution total est donné par :

Tp = maxi[tdb(Ti) + θi]

Il est crucial de minimiser Tp pour obtenir un ordonnancement optimal.

Détermination de temps au plus tôt et au plus tard

Pour chaque tâche, on détermine le temps au plus tôt (teti) et le temps au plus tard (teTi). Dans le cas où il n'y a pas de dépendance, les temps peuvent être calculés directement. Cependant, dans le cas général, il faut tenir compte des dépendances pour déterminer Topt.

Types de dépendance

Il existe plusieurs types de dépendance entre les tâches :

  • Dépendance de flux (RAW) : Si = Fi(Ei)
  • Anti-dépendance (WAR) : Si = Ei
  • Dépendance de sortie (WAW) : Si = Ej

Dans la pratique, la dépendance de flux est souvent la plus préoccupante, car elle engendre des coûts de communication.

Détermination de Popt

Pour déterminer Popt, on utilise les relations d'ordre et les temps calculés pour chaque tâche. On doit également prendre en compte le type de dépendance pour optimiser l'ordonnancement.

Points clés

  • La décomposition des tâches dépend de la granularité.
  • Le graphe de précédence aide à visualiser les dépendances.
  • L'ordonnancement doit minimiser le temps d'exécution total.
  • Les types de dépendance influencent l'ordonnancement.

Glossaire

  • Système de tâches : Ensemble de tâches avec relations d'ordre.
  • Graphe de précédence : Représentation graphique des dépendances.
  • Ordonnancement : Planification des tâches sur processeurs.
  • Dépendance : Relation entre tâches influençant leur exécution.
  • Popt : Nombre optimal de processeurs nécessaires.

Questions fréquentes

Qu'est-ce qu'un système de tâches ?

Un système de tâches est un ensemble de tâches avec une relation d'ordre partiel, indiquant que certaines tâches doivent être terminées avant que d'autres puissent commencer.

Comment construire un graphe de précédence ?

Pour construire un graphe de précédence, il faut d'abord établir un graphe de tâches, puis éliminer les redondances et les arcs transitifs pour obtenir une représentation claire des dépendances.

Quels sont les types de dépendance ?

Les types de dépendance incluent la dépendance de flux (RAW), l'anti-dépendance (WAR) et la dépendance de sortie (WAW), chacun ayant des implications différentes sur l'ordonnancement des tâches.

Comment déterminer le temps d'exécution optimal ?

Le temps d'exécution optimal est déterminé en calculant les temps au plus tôt et au plus tard pour chaque tâche, tout en respectant les dépendances entre elles.

Pourquoi est-il important de minimiser le temps d'exécution total ?

Minimiser le temps d'exécution total permet d'optimiser l'utilisation des ressources et d'améliorer l'efficacité globale du système de traitement.

Toutes les révisions