Documente Academic
Documente Profesional
Documente Cultură
Curs 2007/2008
Conf.dr.ing. Ioana ora
E-mail: ioana@cs.utt.ro
http://www.cs.utt.ro/~ioana
Continutul cursului
Introducere in calculul paralel. Scopul cursului. Concepte si
notiuni.
Modele de arhitecturi paralele;Clasificari; Modelul teoretic
PRAM
Aspecte hardware ale sistemelor paralele: retele de
interconectare; comunicarea prin mesaje.
Metrici de performanta
Proiectarea algoritmilor paraleli
Exemple de algoritmi paraleli
Programarea sistemelor paralele cu transmitere de mesaje
Programarea sistemelor paralele cu spatiu de memorie
comun
Bibliografie
A. Grama, A. Gupta, G. Karypis, V. Kumar: Introduction
to Parallel Computing, Second Edition, 2003,
AddisonWesley.
Ian Foster: Designing and Building Parallel Programs,
1995, Addison Wesley
http://wotug.kent.ac.uk/parallel/books/addison-wesley/dbpp/
Capitolul 1
Introducere in calculul
paralel. Scopul cursului.
Concepte si notiuni.
Motivatie
Mai repede, mai mult
Problemele de rezolvat necesita
cresterea puterii de calcul
Probleme de rezolvat
Aplicatii
Putere de calcul,
Tehnologie
mai mult
Exemplu problema: inmultirea a 2 matrici de
dimensiuni mari
PC cu memorie 512MB: dimensiune maxima a matricilor
8192*8192 (pentru elem de tip double 8 octeti)
Paragon cu 1024 procesoare cu 64MB fiecare: dimensiune
maxima a matricilor: 92000*92000
Studentul:
Domenii de aplicatii
Aplicatii tipice: cele care necesita procesari
complexe pe volum mare de date
Modelare si simulare: prognoza meteo,
dinamica moleculara
Inteligenta artificiala: retele neuronale,
cautare
Grafica
Multimedia, realitate virtuala, cinematografie
Motoare de cautare (ex: AltaVista 10
procesoare)
Concepte
Executia pe sistem
cu 3 procesoare
Paralelism fizic
Multi-procesare
Executia pe sistem
cu 1 procesor
Paralelism logic
Multi-programare
0
P0
P0
P1
P1
Proces P0
P2
P0
P2
Proces P1
P0
P1
P2
Proces P2
T
P2
Relatia concurent-distribuit-paralel
Multi-tasking, Multi-threading:
definirea de procese care ruleaza
in acelasi timp (concurent)
Concurent
Distribuit
Paralel
Multi-procesare: procesele
concurente ruleaza pe
procesoare diferite
Sistem distribuit
Compilatoare:
compilatoare pentru limbaje paralele
Supercompilatoare: traslateaza cod secvential in cod paralel
Algoritmi:
Dezvoltarea unor noi algoritmi pentru noile arhitecturi paralele
Dezvoltarea de biblioteci
Aplicatii
Stiinta computationala utilizarea calc pentru analiza problemelor
stiintifice si ingineresti: dinamica fluidelor, stiinta materialelor, studiul
atmosferei, biologie, economie, stiinte sociale
Scopul cursului
Proiectarea algoritmilor paraleli
Performantele algoritmilor paraleli
Capitolul 2
Modele de arhitecturi
paralele; Clasificari
Mem2
Mem_M
Retea de interconectare
CPU1
CPU2
CPU_N
Memorie :
Comuna
Distribuita
Cu spatiu de adrese comun
Fara spatiu de adrese comun
Reteaua de interconectare
Magistrala
Retea de comunicare cu diverse topologii
Clasificarea Flynn:
Dupa natura fluxului de instructiuni (numarul de unitati de
control) si a fluxului de date (numarul de procesoare)
SISD: Single Instruction stream, Single Data stream
MISD: Multiple Instruction stream, Single Data stream
SIMD: Single Instruction stream, Multiple Data stream
MIMD: Multiple Instruction stream, Multiple Data stream
Potentialul
claselor arhitecturale Flynn
+
SISD
AB
A+B
+
MISD
*
AB
A+B
A*B
+
A B SIMD
CD
A+B
C+D
+
MIMD
*
AB
CD
A+B
C*D
Dupa [Petcu]
Sisteme SISD
Masina secventiala clasica, executa o
singura instructiune la un moment dat
Arhitectura Von Neuman
Unitate
Control
Unitate
Memorie
Procesare
Flux instructiuni
Flux date
Sisteme SIMD
Unitate
procesare
Unitate
Control
(Program)
Unitate
procesare
Unitate
procesare
Memorie
partajata
sau
Retea de
interconect
are
Sisteme MIMD
Unitate
Control
Unitate
procesare
Unitate
Control
Unitate
procesare
Unitate
Control
Unitate
procesare
Memorie
partajata
sau
Retea de
interconect
are
Sisteme MIMD
Cea mai generala arhitectura
Fiecare procesor are o unitate de control
proprie
Procesoarele pot opera asincron (executa
instructiuni diferite pe date diferite in
acelasi timp)
Comunicarea:
Memorie partajata - > multiprocesoare
(Cedar, Cray)
Retea de interconectare -> multicalculatoare
(Paragon, nCUBE)
Sisteme MISD
N procesoare, N unitati de control (programe), 1 memorie
comuna, 1 secventa de date
Categorie controversata: Nu exista in practica !
Procesoare pipeline ar putea fi incadrate in aceasta categorie
Memorie
Unitate
procesare
Unitate
Control
Unitate
procesare
Unitate
Control
Unitate
procesare
Unitate
Control
Arhitecturi in practica
Din: [Grama,Gupta,Kumar&Karypis]
Paralelismul de date
Aceeasi operatie e efectuata in paralel pe
seturi de date diferite
SPMD Single Program Multiple Data
Arhitecturi vectoriale, SIMD; si pe MIMD daca
se incarca acelasi program in toate unitatile de
control
Din: [Grama,Gupta,Kumar&Karypis]
PRAM (cont.)
Procesoarele pot citi si scrie in aceeasi
locatie de memorie simultan
Fiecare procesor poate efectua orice
operatie pe memoria partajata
Fiecare procesor are o memorie locala
mica
Fiecare procesor executa acelasi program
pe date diferite
PRAM (cont)
Exista un clock comun sistemului
Intr-o unitate de timp, fiecare procesor poate
executa una sau toate operatiile urmatoare:
Read dintr-o locatie de memorie locala sau globala
Execute o operatie RAM
Write intr-o locatie de memorie locala sau globala
Categorii PRAM
In functie de modul (concurent/exclusiv) in care se fac
operatiile de citire si scriere:
Arbitrary CRCW
Common CRCW
Cost de
realizare a
masinii
PRAM
CREW
EREW