Cours 3 Conception dalgorithmes - PowerPoint PPT Presentation

1 / 20
About This Presentation
Title:

Cours 3 Conception dalgorithmes

Description:

Maximiser l'utilisation des processeurs (% moyen du temps o les processeurs sont actifs durant l'ex cution) Minimiser les communications entre processeurs ... – PowerPoint PPT presentation

Number of Views:51
Avg rating:3.0/5.0
Slides: 21
Provided by: wwwen4
Category:

less

Transcript and Presenter's Notes

Title: Cours 3 Conception dalgorithmes


1
Cours 3Conception dalgorithmes
  • Pierre Delisle
  • Université du Québec à Chicoutimi
  • Département dinformatique et de mathématique

2
Plan de la présentation
  • Modèle Tâche/Canal (task/channel)
  • Méthodologie de conception
  • Application de la méthodologie au problème
    daddition de n nombres

3
Modèle Tâche/Canal (Task/Channel)
  • Développé par Foster en 1995
  • Exécution parallèle ensemble de tâches qui
    interagissent les unes avec les autres par des
    messages envoyés à travers des canaux
  • Figure p. 64
  • Tâche programme mémoire ports dE/S
  • Canal file connectant le port de sortie dune
    tâche avec le port dentrée dune autre tâche
  • Réception de message -gt Synchrone (bloquant)
  • Envoi de message -gt Asynchrone (non bloquant)

4
Méthodologie de conception (Foster)
  • 4 étapes dans la conception dun algorithme
    parallèle
  • Partitionnement
  • Communication
  • Agglomération
  • Assignation

Partitionnement
Communication
Problème
Agglomération
Assignation
5
Partitionnement
  • Division des opérations et des données en
    morceaux
  • Peut être centré sur les données ou sur les
    instructions
  • Décomposition de domaine (p. 66)
  • Division des données
  • Association des instructions aux données
  • Décomposition fonctionnelle (p. 67)
  • Division des instructions
  • Association des données aux instructions
  • But Identifier un max. de tâches primitives

6
4 critères pour évaluer la qualité dun
partitionnement
  • Le nombre de tâches primitives est
    considérablement plus grand que le nombre de
    processeurs de lordinateur utilisé
  • Les instructions et données redondantes sont
    minimisées (extensibilité -gt taille de problème)
  • Les tâches primitives sont de taille semblable
    (efficacité de lordonnancement des tâches)
  • Le nombre de tâches primitives augmente en
    fonction de la taille du problème (extensibilité
    -gt nombre de processeurs)

7
Communication
  • 2 formes de communication entre les tâches
  • Locale
  • Une tâche nécessite des données provenant dun
    petit nombre dautres tâches
  • Création de canaux partant des tâches fournissant
    les données, vers la tâche qui a besoin de ces
    données
  • Globale
  • Une tâche nécessite des données provenant dun
    grand nombre dautres tâches
  • Gestion des canaux plus complexe et généralement
    traitée plus tard dans le processus de conception

8
Communication
  • Les communications entre tâches dun algorithme
    parallèle sont une source de coûts et doivent
    être minimisées autant que possible
  • 4 critères permettent dévaluer la structure des
    communications dun algorithme parallèle
  • Les opérations de communication sont équilibrées
    entre les tâches
  • Chaque tâche communique avec un petit nombre de
    tâches voisines
  • Les tâches peuvent effectuer leurs communications
    de façon concurrente
  • Les tâches peuvent effectuer leurs calculs de
    façon concurrente

9
Agglomération
  • À partir de cette étape, une architecture cible
    doit être identifiée
  • Regroupement de tâches primitives en tâches de
    plus grande taille
  • Amélioration de la performance
  • Simplification de la programmation
  • Lagglomération de tâches primitives
    communicantes (p. 69)
  • Réduit la charge de communication
  • Augmente la localité de lalgorithme parallèle
  • Autre méthode Agglomération des tâches qui
    effectuent des envois et réceptions semblables

10
7 critères pour évaluer la qualité de
lagglomération
  • Augmentation de la localité
  • La réplication de calcul prend moins de temps que
    les communications quelle remplacent
  • La quantité de données répliquée est assez petite
    pour permettre lextensibilité
  • Les tâches agglomérées ont des coûts de calcul et
    de communication similaires
  • Le nombre de tâches augmente en fonction de la
    taille de problème
  • Le nombre de tâches est aussi petit que possible,
    tout en étant plus grand que le nombre de
    processeurs
  • Lagglomération choisie pour la parallélisation
    dun code séquentiel implique des coûts
    raisonnables de modification de code

11
Assignation (mapping)
  • Attribution des tâches aux processeurs
  • Buts
  • Maximiser lutilisation des processeurs ( moyen
    du temps où les processeurs sont actifs durant
    lexécution)
  • Minimiser les communications entre processeurs
  • Ces 2 buts sont souvent contradictoires, un
    compromis est alors nécessaire
  • Des algorithmes peuvent aider le programmeur
    (résumé figure p. 72)
  • Algos déquilibre de charge (Load Balancing)
    déterminent une agglomération/assignation
    adéquate
  • Algos dordonnancement de tâches (Task
    Scheduling) allouent les tâches aux processeurs
    durant lexécution

12
Arbre de décision pour lassignation
Nombre de tâches statique
Nombre de tâches dynamique
Schéma de communication structuré
Schéma de communication non structuré
Communications fréquentes entre les tâches
Plusieurs tâches courtes et pas de communications
Temps de calcul constant par tâche
Temps de calcul varie selon la région
Agglomérer les tâches pour minimiser les
communications. Créer une tâche par processeur
Utiliser un algorithme déquilibre de charges
dynamique
Utiliser un algorithme dordonnancement de tâches
durant lexécution
Assignation cyclique pour équilibrer la charge de
calcul
Assignation cyclique pour équilibrer la charge de
calcul
Utiliser un algorithme déquilibre de charges
statique
13
4 règles pour évaluer la qualité de lassignation
  • Considération dune seule tâche par proc et de
    plusieurs tâches par proc
  • Considération des allocations statiques et
    dynamiques des tâches aux procs
  • Si une allocation dynamique a été choisie,
    vérification quelle nest pas un goulot
    détranglement au niveau du système
  • Si une allocation statique a été choisie,
    vérification que le ratio tâche/proc est dau
    moins 101 (???)

14
Exemple problème daddition de n nombres
(réduction)
  • Soit un ensemble de nombres a0, a1, a2, , an-1
  • Trouver la somme a0 a1 a2 an-1
  • En séquentiel n-1 opérations -gt T(n)
  • Partitionnement
  • n valeurs -gt n tâches avec une valeur chacune
  • But trouver la somme des n valeurs

15
Exemple problème daddition de n nombres
(réduction)
  • Communication
  • Des canaux doivent être créés entre les tâches
    pour transférer les données à additionner
  • Une tâche doit, à la fin, contenir le grand total
    (tâche racine)
  • Premier essai toutes les tâches envoient leur
    valeur à la tâche racine qui effectue laddition
  • Temps dexécution (n - 1) (? ?)
  • Plus lent que lalgorithme séquentiel !
  • Conclusion un meilleur équilibre doit être
    trouvé entre les calculs et les communications

16
Exemple problème daddition de n nombres
(réduction)
  • Deuxième essai 2 semi-racines, chacune
    responsable de n/2 éléments
  • 2 communications en parallèle
  • 2 calculs daddition en parallèle
  • Temps dexécution (n/2) (? ?)
  • Réduction de moitié !
  • Troisième essai 4 semi-racines, chacune
    responsable de n/4 éléments
  • Temps dexécution (n/4 1) (? ?)
  • Presque 4 fois plus rapide !

17
Exemple problème daddition de n nombres
(réduction)
  • En utilisant un schéma de communication en arbre
    binomial (Rappel)
  • Addition de 2 valeurs 1 passage de message
  • Addition de 4 valeurs 2 passages de message
  • Addition de 8 valeurs 3 passages de message
  • Addition de n valeurs log n passages de message
  • Exemple de 16 tâches (p. 80)
  • Si n nest pas une puissance de 2 (p. 81)
  • n 2k r où r lt 2k
  • 1ere étape r tâches envoient une valeur à r
    autres tâches
  • Ensuite, ces r tâches deviennent inactives, il
    reste 2k tâches et lalgorithme se déroule
    normalement
  • Nombre de communications général log n

18
Exemple problème daddition de n nombres
(réduction)
  • Agglomération et assignation (p. 81)
  • Assignation du graphe de n tâches sur un ensemble
    de p processeurs, p lt n
  • Utilisation de larbre de décision
  • Nombre de tâches -gt statique
  • Schéma de communication -gt structuré
  • Temps de communication par tâche -gt constant
  • Résultat
  • Minimisation des communications
  • Assignation de n/p tâches à chacun des p
    processeurs
  • Plus besoin de conserver la vision de tâches
    primitives sur un même processeur, alors
  • n/p tâches primitives avec une seule valeur -gt 1
    tâche contenant n/p valeurs

19
Exemple problème daddition de n nombres
(réduction)
  • Analyse
  • ? temps requis pour effectuer une addition
  • ? temps requis pour communiquer une valeur
    dune tâche à une autre
  • Temps de calcul de chaque tâche ( n/p 1)?
  • Temps pour une étape de réduction (communication
    addition) ? ?
  • Nombre de réductions log p
  • Temps de communication log p (? ?)
  • Temps total de lalgorithme
  • ( n/p 1)? log p (? ?)

20
Sommaire
  • Modèle tâche/canal
  • Façon efficace de modéliser un algorithme
    parallèle
  • Particulièrement adapté aux ordinateurs à mémoire
    distribuée
  • 4 étapes
  • Partitionnement
  • Communication
  • Agglomération
  • Assignation
  • But principal déterminer un compromis équitable
    entre la maximisation de lutilisation des
    processeurs et la minimisation des communications
    entre processeurs
Write a Comment
User Comments (0)
About PowerShow.com