Vous êtes sur la page 1sur 2

Cours #2 : Exercices théoriques

1. Selon la méthode PCAM, le partitionnement représente-t’il la façon dont les tâches sont
distribuées parmi les processeurs? Sinon, qu’est-ce?

2. Les dépendances affectent quelle étape de la méthode PCAM?

3. On doit effectuer de la détection de contours sur une image. Quel type de décomposition est la
plus appropriée?

4. On doit rechercher les nombres premiers dans une liste. Ainsi, on choisit que « déterminer si un
nombre de la liste est premier » est une tâche. Pour ce faire, on essaie tous les nombres en
incrémentant de 1 à partir de 2 jusqu’à trouver un multiple ou le nombre en question. On
développe le programme afin que ce calcul s’exécute de façon concourante pour chaque
nombre de la liste. Pour une liste de 128 nombres sur la machine des laboratoires qui possède
64 processeurs logiques, on remarque que le programme n’arrive pas à exploiter le processeur à
son maximum. Pourquoi?

5. Nous avons déterminé 4 attributs à la structure de communication. Quels sont-ils?

6. À quoi sert l’agglomération?

7. Quelle est la relation entre la granularité et la taille des tâches? Comment est-ce affecté par
l’agglomération?

8. La bissection récursive est-elle un algorithme glouton?

9. Un système patron-employé est sujet à quel problème potentiel?

10. MPI peut fonctionner même entre des machines Linux et Windows dans un même réseau.
Quelle propriété d’un système distribué cela décrit-il?

11. Qu’est-ce que SPMD?

12. Pour effectuer un envoi à tous les processus dans un communicateur, le processus « 0 » utilise la
fonction MPI_Bcast pour envoyer la valeur. Quelle fonction est-ce que les autres processus
doivent appeler pour la recevoir?
13. On doit appliquer la méthode PCAR (PCAM) pour résoudre les problèmes suivants :

o On souhaite simuler les forces d’un impact de balle dans une vitre pare-balle. La vitre
est donc discrétisée en une matrice 2D (je simplifie un peu!) 1000x1000 cellules où
chaque cellule contient un vecteur de forces. Le temps est discrétisé en blocs d’une
microseconde chacun et on doit effectuer la simulation pendant une seconde (donc 1
million d’itérations).
La fonction pour évaluer les forces au temps T à une cellule [X,Y] s’appelle ainsi :
eval( m[T-1,X-1,Y], m[T-1,X+1,Y], m[T-1,X,Y-1], m[T-1,X,Y+1], m[T-1,X,Y])
On vous dit que le temps nécessaire à l’exécution de la fonction « eval » n’est pas
constante. Si les forces passées sont petites, le calcul est très rapide. Si les forces sont
grandes, l’exécution prend plusieurs centaines de fois plus longtemps.
On vous donne une machine avec 32 processeurs afin de résoudre le problème.

 Partitionnement

 Communication

 Agglomération

 Répartition

o On souhaite simuler le vieillissement d’une peinture afin d’aider à sa restauration. On


discrétise la peinture en une matrice 2D de 800x600 cellules où chaque cellule contient
un nombre entier 32 bits représentant une couleur RGB. Le temps est discrétisé en blocs
d’un an et on doit effectuer la simulation pendant 4 siècles (donc 400 itérations).
La fonction pour vieillir une cellule de la peinture d’un an s’appelle ainsi :
eval( m[T-1,X,Y] )
On vous dit que le temps nécessaire à l’exécution de la fonction « eval » est constant.
On vous donne 8 machines avec 4 processeurs chacune afin de résoudre le problème.

 Partitionnement

 Communication

 Agglomération

 Répartition

Vous aimerez peut-être aussi