Você está na página 1de 3

UVHC-ISTV : Master 1 Informatique

2015/2016
TD : Architecture Multi-cores et OpenMp
Exercice 1 : architecture multi-cores, classification
La figure suivante, prise du livre Multi-Core Programming crit par S. Akhter et J. Roberts (intel
press), prsente une classification des architectures multi-cores.

La figure prsente 6 classes darchitectures de systmes, notes de A F. Commentez en 2 ou 3


phrases ces architectures. Expliquez les diffrences entre ces architectures et donnez une ide sur les
avantages et les inconvnients de chaque architecture.

Exercice 2 : architecture multi-cores, Consommation Energie


1) Your companys internal studies show that a single-core, system is sufficient for the demand on

your processing power; however, you are exploring whether you could save power by using two cores.
A - Assume your application is 70% parallelizable. By how much could you decrease the frequency
and get the same performance?
B - Assume that the voltage may be decreased linearly with the frequency (V=a.F). Using the
equation P=A.V2.F, how much dynamic power would, the dual-core system require as compared to the
single-core system?
C Let suppose now that the application is p% parallelizable. Same question for A and B. We suppose
having a dual core-architecture.
D In this question, we repeat question A and B for an architcture having n cores running an
application which is p% parallelizable

Exercice 3 : architecture multi-cores,


Selon la loi dAmdahl, lorsque quune application est excute sur une
architecture comportant N cores, lacclration idale (ou maximale) par rapport
une architecture avec un seul core est gale N. Cependant cette acclration
est limite par 2 facteurs :
Le pourcentage de lapplication qui peut rellement tre paralllise sur
les N cores, et
Le cout des communications entre les processeurs, ou entre les
processeurs et les mmoires ou sont stockes les donnes.
La loi dAmdahl prend en compte le premier facteur mais pas le deuxime.
1. Si on ignore le cout des communications, quelle est lacclration obtenue
sur une architecture comportant N cores si 80% de lapplication est

paralllise?
2. En supposant toujours que 80% de lapplication est paralllise, quelle est
lacclration avec 8 cores, si pour chaque processeur ajout, le surcout en
communication sur le temps dexcution initiale est de 0.5% ?
3. En supposant toujours que 80% de lapplication est paralllise, quelle est
lacclration avec 8 cores, si on suppose qu chaque fois que le nombre
de cores est multipli par 2, le surcout en communication sur le temps
dexcution initiale augmente de 0.5% ?
4. Ecrire lquation qui permet de trouver le nombre de cores nopt qui donne
la plus grande valeur de lacclration pour une application comportant
une fraction paralllise de P%. L aussi on supposera quun overhead de
0.5% en communication est ajout chaque fois que le nombre de cores
est multipli par 2.

Exercice 4 :
Le programme suivant un calcul sur les vecteurs de flottants en double prcision (64 bits). En utilisant les
directives OpenMP montrez comment il est possible de le parallliser. Quelles sont les variables prives et les
variables partages ?
Quel est le type de paralllisme le plus adquat (dcomposition de domaine, ou dcomposition de tches) ? Est-il
possible dappliquer les 2 dcompositions en mme temps sur ce programme? Si oui, montrer comment ?

Exercice 5 : Programmation avec OpenMp


Le jeu se droule sur une grille deux dimensions (N*N), dont les cases quon appelle des
cellules, par analogie avec les cellules vivantes peuvent prendre deux tats distincts:
vivantesoumortes.
chaquetape,lvolutiondunecelluleestentirementdtermineparltatdeseshuitvoisinesde
lafaonsuivante:
Unecellulemortepossdantexactementtroisvoisinesvivantesdevientvivante(ellenat).
Unecellulevivantepossdantexactementdeuxoutroisvoisinesvivanteslereste.
Unecellulevivantemeurtsielleaplusde3voisinesvivantesoumoinsde2voisinesvivantes.
Lvolutiondela populationcontinue jusqu ce quonobserve une stabilit des cellules (pas de
changementsaprs2tours)oubienquunnombremaximaldetourssoitatteint.Nousdisposantde2
tableaux(N*Nlments),lunpourltatcourantetlautrepourltatsuivant.Achaquetour,nous
utilisonslesvaleursdecourantpourcalculerltatdesuivant,etc.
ProposeruneimplmentationparallledujeudelavieavecopenMp.

Exercice 6: Programmation avec OpenMp

a. (2 points) Ecrire un programme en OpenMp qui ralise la recherche dun entier V dans un
tableau T de 1000 valeurs entires en utilisant 4 theads. Comment amliorer les performances
pour arrter la recherche ds que la valeur a t trouve par un thread ?
b. (2 points) Ecrire un programme en OpenMp qui ralise la recherche de la plus grande valeur
dans un tableau T de 1000 lments en utilisant 4 threads.
Dans cette question il faut utiliser :
#pragmaompcritical(update_max)
//updatemaxreprsentelenomdelasectioncritiqueou
//lemaxestmisjour
{..............}

c. (3 points) Soit les tableaux X, Y et A dfinis ci-dessous :


#defineN1000
floatA[N][N],X[N],Y[N];

Donner une version OpenMP pour 8 processeurs du programme calculant : Y = A* X (produit


matricevecteur).