Programation Parallèle et Distribuée

Post on 19-Jan-2016

30 views 6 download

description

Programation Parallèle et Distribuée. PhD Marco Antonio Ramos Corchado. Machines PRAM Parallel Random Access Machine Il s’agit d’une “machine parallèle abstraite” Un suite d’instructions à effectuer Un pointeur d’instruction Une mémoire partagée - PowerPoint PPT Presentation

Transcript of Programation Parallèle et Distribuée

Programation Parallèle et Distribuée

PhD Marco Antonio Ramos Corchado

• Machines PRAMParallel Random Access MachineIl s’agit d’une “machine parallèle abstraite”– Un suite d’instructions à effectuer– Un pointeur d’instruction– Une mémoire partagée– Une suite (non bornée) de processeurs (parallèles)

• CommunicationElle se fait via la mémoire partagée:– Le coût d’accès à une emplacement mémoire est

contstant– Modes d’accès

• EREW (exclusive read exclusive write)• CREW (concurrent read exclusive write)• CRCW (concurrent read concurrent write)

– Mode arbitraire– Mode consistant– Mode assiciation

Eléments du langage de Programation• Pseudo-langege simple

conditioinnels, boucles, tableaux.• Toutes les variables sont partagées par défaut.• Itérateur parallèle

pourchaque proc i enparallele

Pourchaque proc i enparallele {x[i] = 2*i

}

• Remarques Sémantiques

Les instrutions peuvent donc être paramétrées par i, le numéro du processeur.

Une boucle parallèlePour chaque proc i en parallele

x[i] = y [i]Est réalisée en effectuant (en parallèle)d’abord

toutes les lectures, puis tout les écritures.

Technique de Saut de PointeurProblème Générique : Soit (xi )i une suite (finie) de nombres, une opération ⊗

associative. Comment calculer en parallèle la suite (yi )i définie par récurrence :

– y1 = x1 – yk = yk−1 xk ⊗

On va utiliser une PRAM avec autant de processeurs que de valeurs dans nos suites, et la technique du saut de pointeur.

Algorithme Parallèle

pourchaque proc i en parallele { y[i] = x[i]

tantque ( il existe proc i tq next[i] != NULL ) { si ( next[i] != NULL ) {

y[next[i]] = op(y[i], y[next[i]]) next[i] = next[next[i]] // saut de pointeur

} }

}

Complexité

L’algorithme s’exécute en log2 n itérations :

CREW : temps logarithmique EREW : aussi logarithmqiue en transformant y[next[i]] = op(y[i], y[next[i]]) en temp[i] = y[next[i]]) y[next[i]] = op(y[i],temp[i])

Exercice

Calculer les sommes partielles de la suite d’entiers (ti )i .

Comparaisons des PRAMs Pour pouvoir mieux choisir il est important de

comparer les différents modèles en termes de • Calculabilité • Complexité

Exemple – Calcul du Maximum

On recherche maxi (T (i)). On utilise une machine à n2 processeurs. Chaque processeur (i, j) accèdera à T [i] et T

[j]. On utilise de plus un tableau de booléen auxiliaire m(i). pourchaque 1 < i < n en parallele m[i]=TRUE pourchaque 1< i, j<n en parallele if ( T[i] < T[j]) m[i] = FALSE pourchaque 1 < i < n en parallele if ( m[i] = TRUE ) max = T[i]

• Exemple – Complexité • CRCW (mode consistant) : constant • CREW et EREW : log2 n

• Les accès concurrents sur une valeur par n processeurs ne peuvent se faire qu’en log2 n étapes.

Autre Exemple Recherche de l’appartenance d’une valeur e à une suite

d’éléments distincts (ei )i . L’algorithme suivant résoud le problème en temps

constant sur une PRAM à n processeurs. Le processeur i accède à e[i].

res = FALSE pourchaque 0 < i < n en parallele

si ( e[i] == e ) res = TRUE

Autre Exemple – Complexité

CREW : les ei étant distincts, une seule écriture se fera éventuellement sur res.

EREW : la valeur de e doit être dupliqué n fois. Au mieux log n étapes par dichotomie ...

Comparaison des Modèles Les modèles EREW, CREW er CRCW ne sont

donc pas équivalents. Peut-on mieux les comparer, les hiérarchiser ?

Complexité et Efficacité

Definition La complexité C d’un algorithme PRAM est le nombre d’étapes (parallèles) nécessaires à son

exécution. NB. Cette complexité dépend de la taille de l’entrée et du nombre de processeurs. Etant donné un problème, on note Cseq la complexité du meilleur algorithme séquentiel connu pour

le résoudre.

Definition Le facteur d’accélération est le rapport : Cseq / C

Definition L’efficacité d’un algorithme PRAM sur n processeurs est d´efinie par

eff = Cseq / n * C

Théeorèmes de comparaison

Theorem Tout algorithme sur une machine PRAM CRCW

mode consistant `a p processeurs ne peut être O(log n) fois plus rapide que le meilleur algorithme (pour le même problème) sur une machine EREW `a p processeurs.