Sunteți pe pagina 1din 15

Universitatea Politehnica Bucureti - Facultatea de Automatic i Calculatoare

1. Introducere
Calcul paralel = impartirea unei aplicatii in procese (taskuri) executate simultan pe un sistem cu mai multe
procesoare
Calcul distribuit = impartirea unei aplicatii in procese
(task-uri) executate in sisteme diferite (cu resurse diferite)
Impartirea poate fi
simpla procesele nu depind unele de altele: ordinea
de executie este oarecare
complicata procese dependente unele de altele:
ordinea de executie trebuie sa respecte dependentele
intre procese
foarte complicata se doreste si optimizarea timpului
de raspuns
Algoritmi paraleli si distribuiti

Universitatea Politehnica Bucureti - Facultatea de Automatic i Calculatoare

De ce folosim APD?
creterea performanelor
executia in paralel reduce timpul de raspuns

sigurana n funcionare
executia paralela a mai multor replici de program

faze cu funcionaliti distincte


executate pe calculatoare specializate (de ex. pentru grafica,
sisteme de fisiere/baze de date etc.)

aplicaii inerent paralele


natura problemei cere ca rezolvarea sa fie paralela,
secventialitatea fiind doar un caz particular
distributia naturala a resurselor si/sau utilizatorilor cere solutii
paralele / distribuite
Algoritmi paraleli si distribuiti

Universitatea Politehnica Bucureti - Facultatea de Automatic i Calculatoare

Arhitectura unui sistem de calcul


Modelul clasic von Neumann are trei componente:
C = Control;

P = Procesor;

M = Memorie

SISD Single Instruction Stream, Single


Data Stream
Algoritmi paraleli si distribuiti

Universitatea Politehnica Bucureti - Facultatea de Automatic i Calculatoare

Arhitecturi Paralele
Taxonomia Flynn
SISD Single Instruction Stream, Single Data Stream
SIMD Single Instruction Stream, Multiple Data
Stream
MISD Multiple Instruction Stream, Single Data
Stream
MIMD Multiple Instruction Stream, Multiple Data
Stream
Importanta pentru implementarea algoritmilor paraleli si
distribuiti

Algoritmi paraleli si distribuiti

Universitatea Politehnica Bucureti - Facultatea de Automatic i Calculatoare

SIMD

Implementat ca
sisteme cu memorie partajata - Shared Memory (PRAM)
multiprocesoare interconectate - Interconnected
Multiprocessors
Algoritmi paraleli si distribuiti

Universitatea Politehnica Bucureti - Facultatea de Automatic i Calculatoare

SIMD (2)
Shared memory (Parallel Random Access Machine PRAM)
EREW - Exclusive Read Exclusive Write
CREW - Concurrent Read Exclusive Write
ERCW - Exclusive Read Concurrent Write
CRCW - Concurrent Read Concurrent Write
Influenteaza performanta algoritmilor
Exemplu: citirea valorii unei variabila partajate
Un pas in CREW, CRCW
log N pasi in EREW, ERCW

Algoritmi paraleli si distribuiti

Universitatea Politehnica Bucureti - Facultatea de Automatic i Calculatoare

X1

X2

X3

X4

v
Memoria comuna

v
P1

P2

P3

citirile unei celule


sunt exclusive (nu se
pot face simultan)

P4

Valoarea este in variabila A in memoria comuna


Foloseste X1, X2, din memoria comuna pentru copiere
numarul de cpii se dubleaza la fiecare pas
pentru N procesoare operatia se termina dupa log N pasi
Algoritmi paraleli si distribuiti

Universitatea Politehnica Bucureti - Facultatea de Automatic i Calculatoare

SIMD cu Retele de interconectare (4)


Topologii
tablou
arbore
cub
hiper-cub

Functionare: la fiecare ciclu, fiecare procesor


Citeste intrarile
Face calcule si modifica memoria proprie
Scrie iesirile

Algoritmi paraleli si distribuiti

Universitatea Politehnica Bucureti - Facultatea de Automatic i Calculatoare

Arbore

Algoritmi paraleli si distribuiti

7
9

Universitatea Politehnica Bucureti - Facultatea de Automatic i Calculatoare

coloana j

Tablou

linia i

a[i,j] = (a[i-1,j]+ a[i+1,j]+ a[i,j-1]+ a[i,j+1])/4

Algoritmi paraleli si distribuiti

10

Universitatea Politehnica Bucureti - Facultatea de Automatic i Calculatoare

MISD
Fara relevanta practica

Algoritmi paraleli si distribuiti

11

Universitatea Politehnica Bucureti - Facultatea de Automatic i Calculatoare

MIMD
Implementata ca Multi-calculatoare (memorie distribuita) sau Multiprocesoare (memorie partajata)

Algoritmi paraleli si distribuiti

12

Universitatea Politehnica Bucureti - Facultatea de Automatic i Calculatoare

MIMD (2)
"Shared memory"
Uniform Memory Access (UMA)
Non-Uniform Memory Access (NUMA)
cache coherent Non-Uniform Memory Access (ccNUMA)

"Multi-computer"
Massively Parallel Processors (MPP)
Network Of Workstations (NOW)

Algoritmi paraleli si distribuiti

13

Universitatea Politehnica Bucureti - Facultatea de Automatic i Calculatoare

Metode de programare (1)


Date partajate (Shared data)
date
partajate

procese

date locale
date partajate
Algoritmi paraleli si distribuiti

14

Universitatea Politehnica Bucureti - Facultatea de Automatic i Calculatoare

Metode de Programare (2)


Transmitere de mesaje - Message passing

Algoritmi paraleli si distribuiti

15

S-ar putea să vă placă și