Vous êtes sur la page 1sur 1

Examen Programmation Parallèle – Durée 2H

Exercice 1

La machine décrite ci-dessus utilise le protocole MESI pour maintenir la cohérence du cache. Dans la
suite, Rp(a) signifie que le processeur p lit un octet de l'adresse a. Wp(a) = v signifie que le processeur
p écrit v à l'emplacement mémoire a. Les adresses sont représentées en binaire. Initialement, toutes
les lignes de cache sont invalides et tous les emplacements mémoire contiennent 0. On peut
remarquer, en lisant les adresses, que toutes les opérations portent sur un même bloc.

a. Montrez les transitions des lignes de cache et la latence dans le tableau ci-dessous, sachant que :
 Un cache hit prend 1 cycle,
 Un cache miss prend 8 cycles,
 Un write back prend 8 cycles,
 Une transition I - M prend 2 cycles
 Une transition S - M prend 2 cycles.

b. Quelle est la pénalité (latence totale) de cette séquence de code ?


c. Trouvez une meilleure séquence d’exécution qui va engendrer la plus petite pénalité.

Exercice 2

En utilisant une approche basée sur l’espionnage, et le protocole MESI, remplir le tableau ci-dessous.
Sachant que trois processeurs se partagent la variable b. Les caches C1, C2 et C3 sont considérés
comme initialement à l’état Invalide (I). La mémoire est notée Mem.

Action Bus Tr Fournit par C1 C2 C3


P1 PrRd
P3 PrRd
P3 PrWr
P1 PrRd
P2 PrRd
Exercice 3

Soit le programme parallèle ci-dessous avec deux threads Thread1 et Thread2. Les variables A et B
sont initialement à 0 chacune. En considérant qu’un modèle de cohérence séquentielle est utilisé.

a. Donner deux (autres : différents de l’exemple) exécutions possibles pour ce programme ainsi
que la valeur affichée :

Par exemple une exécution possible ainsi que la valeur affichée : (1) → (2) → (3) → (4) : 01

b. Donner une exécution impossible et le résultat correspondant.

Dr. El Hadji Bassirou TOURE – M2 GL ISI

Vous aimerez peut-être aussi