You are on page 1of 38

Curs:

Arhitectura calculatoarelor, 2016-2017


Topici avansate

G Stefanescu
Arhitecturi paralele

Arhitecturi paralele clasice


– Shared memory
– Message-passing
– Data parallelism

Altele
– Arhitecturi Dataflow
– Arhitecturi Sistolice

Tendinte de convergenta si combinare de modele


Caracterisitici de baza:
– Impartirea problemei in
– Job-uri executabile in paralel

– Nevoie de
– Comunicare intre procese
– Coordonare/Sincronizare

Ce defineste o arhitectura:
– Separarea soft/hard (ca ISA – Inst.Set.Arch.)
– Separerea user/system
Arhitecturi shared memory

Shared memory multiprocessors


– Comunicare prin intermediul accesului la memorie
– Un spatiu unic de adrese
– Ce scrie un thread poate citi alt thread
Arhitecturi message-passing

Arhitecturi “message-passing”:
– Memorie distribuita pe procesoare
– Comunicare prin trimitere-primire de mesaje
– Sincronizare: potrivire intre send si receive

Exemplu: multumi Mandelbrot


– https://medium.com/starts-with-a-bang/weekend-
diversion-zooming-into-a-fractal-
975c80636cf0#.8hfonch1a
Arhitecturi “data parallel”

Arhitecturi “data-parallel”:
– SIMD model – single intstruction, multiple data
– Operatii executate in parallel pe elementele unei
multimi mari (vectori, matrici de date)
– A.k.a: processor arrays, SIMD machines

Bulk synchronous:
– un pas de calcul local
– un pas de sincronizare/comunicare globala
Arhitecturi “dataflow”

Arhitecturi “dataflow”:
– Graf cu interdependentele dintre date
– Noduri de calcul care opereaza repetitiv cand au date la
intrare: primesc date, calculeaza, trimit date

Modele:
– Static/dynamic (structura grafului de interdependenta)
– Determinist/nedeterminist
– Syncron/asincron
Arhitecturi “sistolice”

Arhitecturi “sistolice”:
– Array regulat de unitati de procesare
– Fluxul de date este pasat sincron
– fiecare nod citeste, calculeaza, trimite mai departe

(cumva similar ca in creier, inima)


– Dificultati de clasificare: nu MISD, SIMD, MIMD

Aplicatii:
– massively parallel integration, convolution, correlation,
matrix multiplication or data sorting tasks
– dynamic programming algorithms, used in DNA and
protein sequence analysis.

You might also like