CATEGORII DOCUMENTE |
SISTEME CU PROCESOARE MULTIPLE
Elemente definitorii (1)
Presupune parcurgerea anterioara a cursurilor ASDN, DCE, AC, AMP, SMP, cunostinte solide de progrmare, cunoasterea limbii engleze
Competente dobandite in urma promovarii:
o intelegerea functionarii sistemelor care contin procesoare multiple
o proiectarea de sisteme cu procesoare multiple cu aplicatii real time
o programarea structurilor cu procesoare multiple
Elemente definitorii (2)
Microprocesorul unic, oricat de puternic, nu poate asigura functionarea in timp real a unor largi clase de aplicatii moderne (e.g. administration, banking, weather prediction, air and ground transport, process modeling and identification etc.)
Rezulta necesitatea utilizarii de sisteme cu procesoare multiple, cu structuri, complexitati si functii adaptate aplicatiilor in cauza
Cunoasterea intima a acestor sisteme confera abilitati de intelegere a integrarii SPM in aplicatii, precum si de proiectare si de programare a SPM
Evaluarea Cunostintelor (1)
Structura cursului:
14 sapt x 4 ore/sapt = 56 ore curs
14 sapt x 2 ore/sapt = 28 ore aplicatii
Metoda de evaluare a cunostintelor: evaluarea continua
Evaluare a activitatii la curs: 1 examen scris (sapt. 8), 1 examen scris+oral (sesiunea de iarna)
Evaluare a activitatii aplicative: 4 teme cu pondere egala:
1 lucrare de cercetare (gen referat) pe o tema legata de materia studiata
1 program de simulare
2 programe de programare paralela.
SPM
Evaluarea Cunostintelor (2)
Baza materiala:
25 PCuri conectate la Internet (ED308) + 12 PCuri conectate la Internet (ED312)
Structura de servere IBM pentru studiul structurilor cu procesoare multiple si programare sub Linux (ED320, ED309)
Materiale elaborate in anii anteriori
Note de curs, difuzate saptamanal, anticipat (7 zile in avans)
Probele de examen:
Saptamana 8:
2 subiecte + 1 problema,
pondere 30 % din nota la examen
conditie de promovare: minimum 5
Sesiunea de iarna:
2 subiecte + 1 problema,
Examen oral, 2 subiecte
pondere 30 % din nota la examen
conditie de promovare: minimum 5
Aplicatii:
Cele 4 teme, notate de la 0 la 10, suma minima pentru promovare 24
Ponderea examenelor: 60% (30% P + 30% F)
Ponderea aplicatiilor: 40% (10% + 10% +10% + 10%)
Principalele capitole ale cursului
Introducere. Clasificari ale arhitecturilor paralele. Evaluarea performantelor si a calitatii.
i. Magistrala comuna
ii. Linear array
iii. Inel
iv. Arbore binar
v. Fat-tree
vi. Shuffle-exchange
vii. Retea bidimensionala
viii. Hypercurbe
ix. Retea n-dimensionala
x. Cyclic Connected Cube
xi. Dirijare
xii. Latenta
i. Retele fara blocare
ii. Retele cu rearanjare
iii. Retele cu blocare
i. Mod de operare
ii. Metodologie de comutare
iii. Topologia retelei
iv. Strategia de comanda a comutatorului
i. Retele de interconectare
ii. Scheme de coerenta cu memorie cache
i. Programare pe multiprocesoare
ii. Programare pe multicomputere
i. Partitionare
ii. Alocare, planificare
i. Structura sincrona
ii. Structura pipeline
BIBLIOGRAFIE
Tanenbaum, van Steen: Distributed Systems, 2002
Grama, Gupta, Karypis, Kumar: Introduction to Parallel Computing, 2003
Culler, Pal Singh: Parallel Computer Architecture, 1999
Intel MultiProcessor Specification
OpenMP Application Program Interface
CAPITOLUL 1 - Clasificari arhitecturale
Ce se urmareste in acest capitol:
Trecerea in revista a diverselor clasificari (taxonomii) pentru sisteme cu procesoare multiple
Evidentierea diferentelor intre structurile realizabile practic
Evaluarea posibilelor domenii de aplicatii pentru fiecare structura
Evaluarea performantelor si a calitatii
Introducere
Costul si performantele - cei doi parametri majori de evaluare a arhitecturilor de calcul
Obiectiv : minimizarea raportului cost / performanta
Masurarea performantei:
numarul maxim de operatii/secunda (operatii aritmetice, instructiuni, operatii I/0, etc.)
dimensiunile maxime ale programelor si datelor
comoditatea programarii
consumul de energie electrica
fiabilitatea
disponibilitatea
masa, volum
Introducere - Benchmarks
Benchmarks: pachete de programe standardizate care ruleaza pe masini pentru a le stabili performantele
Whetstone este utilizat pentru evaluarea abilitatii de a efectua calcule numerice, in esenta aritmetica in virgula mobila
Un mare volum de timp este consumat in bibliotecile matematice.
Foloseste putine variabile locale si multe globale.
9 bucle mici, un mare grad de code locality.
Dhrystone este bazat pe statistici recente, in special din system programming.
Contine relativ putine operatii in aritmetica mobila.
Un mare volum de timp este consumat in functii cu siruri (C - pana la 40%).
Nu contine bucle in programul principal - multe cache miss la procesoarele cu memorie cache mica.
Se manipuleaza putine date globale
Linpack
Whetstone
Dhrystone
Teste ale Fermi National Accelerator Laboratory
Testele NASA/Ames (12 subrutine Fortran)
Setul de probleme numerice al lui John RICE
Testele lui Raul MENDEZ pentru masini japoneze
Mai multe informatii:
Simpson, D. - The Trouble with Benchmarks, Systems Integration, Aug 1990, 37-45
Weicker, R.P. - An Overview of Common Benchmarks, IEEE Computer, 1990, 23:12, 65-75
Majoritatea imbunatatirilor performantelor se datoreaza progreselor tehnologiei hardware.
Progresul: de la tuburi electronice la VLSI
Trei valuri de calculatoare :
o anii ' 60 : mainframes
o anii ' 70 : minicomputers
o anii ' 80 : microcomputers
In general, dezvoltarea software-ului a urmat un traseu independent de tehnologia hardware.
S-a afirmat ca tehnologia semiconductoarelor si-a atins limitele si progresul nu mai este posibil. Afirmatia este falsa.
Cand performanta dorita nu a mai putut fi obtinuta cu tehnologia hardware a momentului, s-a recurs la structuri pipeline si la structuri cu procesoare multiple, fara a se astepta o noua generatie tehnologica.
Prelucrarea paralela este considerata ca al 4-lea val in tehnica de calcul.
Tipuri de sisteme de calcul.
1. serial
2.
Pipeline 3.
Paralel
De ce sunt necesare structuri puternice de calcul?
Clasificari arhitecturale
Sisteme cu procesor unic
Sisteme cu procesoare multiple
o Sisteme multiprocesor
o Sisteme distribuite
Prelucrarea paralela - cale de crestere a performantei. Ea necesita procesoare multiple.
Notiuni
D data stream - flux de date
I instruction stream - flux de instructiuni
S single - unic
M multiple - multiplu
Deci
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
Influenta aplicatiei asupra arhitecturii
A - nivelul de paralelism permis de aplicatie
L - nivelul de paralelism permis de limbajul de programare
C - nivelul de paralelism permis de compilator
H - nivelul de paralelism permis de structura hardware
Minimizarea timpului de rulare a aplicatiei necesita :
A ≤ L ≤ C ≤ H
Caracterizarea aplicatiilor
Compuse din taskuri.
In aplicatii cu grad nenul de paralelism unele ruleaza in paralel.
Elemente de caracterizare
o granularitate
o grad de paralelism
o nivelul de paralelism
o interdependenta datelor (data dependency)
Granularitatea unui task
Dependenta de:
o R - durata de executie (runtime)
o C - durata comunicarii
Granularitate grosiera: R > > C
Granularitate fina: R < < C
Granularitate medie: R si C - comparabile
Gradul de paralelism
Exemplu :
A = B * C + D * E + F * G
Modele
de procese
Taxonomii
Obiectivele clasificarilor :
Treleaven (1982), Myers (1982), preluate de Milutinovic (1989).
RISC
CISC
HLL (high level language)
Taxonomia Flynn :
Avantajele MIMD
Elemente de considerat in proiectarea MIMD
Exemple de sisteme MIMD
Structura
multiprocesor Structura
multicomputer
Structura multi-multiprocesor
Arhitectura
dataflow Structura Array Processor
Structura Procesor vectorial Structura Systolic Array
Taxonomia Skillcorn
Skillcorn considera urmatoarele niveluri de modelare a unui sistem de calcul:
Modelul masinii abstracte reprezinta nivelul superior al taxonomiei Skillcorn. Urmatorul nivel se bazeaza pe modelul bazat pe performanta
Skillcorn, D.B.A taxonomy for computer architecture, IEEE Computer 21 (11), 46-57
Taxonomia utilizeaza patru tipuri de unitati functionale in construirea masinii abstracte:
Arhitectura SISD
- Conexiunile intre unitatile functionale se fac prin comutatoare statice sau dinamice.
- Cele mai simple retele de interconectare - magistralele
Patru tipuri de modele abstracte de comutatoare :
Tipuri de arhitecturi Skillcorn
Cl |
IPs |
DPs |
IP-DP |
IP-IM |
DP-DM |
DP-DP |
Name |
|
|
|
none |
none |
|
none |
reduct/data flow uniprocessor |
|
|
n |
none |
none |
n-n |
none |
separate machines |
|
|
n |
none |
none |
n-n |
n x n |
loosely coupled reduct/data flow |
|
|
n |
none |
none |
n x n |
none |
tightly coupled reduct/data flow |
|
|
n |
none |
none |
n x n |
n x n |
|
|
|
|
|
|
|
none |
von Neumann uniprocessor |
|
|
n |
1-n |
|
n-n |
none |
|
|
|
n |
1-n |
|
n-n |
n x n |
Type 1 array processor |
|
|
n |
1-n |
|
n x n |
none |
Type 2 array processor |
|
|
n |
1-n |
|
n x n |
n x n |
|
|
n |
|
1-n |
n-n |
|
none |
|
|
n |
|
1-n |
n x n |
|
none |
|
|
n |
n |
n-n |
n-n |
n-n |
none |
separate von Neumann uniprocessors |
|
n |
n |
n-n |
n-n |
n-n |
n x n |
loosely coupled von Neumann |
|
n |
n |
n-n |
n-n |
n x n |
none |
tightly coupled von Neumann |
|
n |
n |
n-n |
n-n |
n x n |
n x n |
|
|
n |
n |
n-n |
n x n |
n-n |
none |
|
|
n |
n |
n-n |
n x n |
n-n |
n x n |
|
|
n |
n |
n-n |
n x n |
n x n |
none |
Denelcor Heterogeneous Element Processor |
|
n |
n |
n-n |
n x n |
n x n |
n x n |
|
|
n |
n |
n x n |
n-n |
n-n |
none |
|
|
n |
n |
n x n |
n-n |
n-n |
n x n |
|
|
n |
n |
n x n |
n-n |
n x n |
none |
|
|
n |
n |
n x n |
n-n |
n x n |
n x n |
|
|
n |
n |
n x n |
n x n |
n-n |
none |
|
|
n |
n |
n x n |
n x n |
n-n |
n x n |
|
|
n |
n |
n x n |
n x n |
n x n |
none |
|
|
n |
n |
n x n |
n x n |
n x n |
n x n |
|
Clase de arhitecturi
Clasele 1,2,3,4,5 caracterizeaza arhitecturi data flow/reduction.
Clasa 6 se refera la SISD.
Clasele 7,8,9,10
sunt SIMD.
Clasele 11 si 12 califica MISD, chiar daca o asemenea arhitectura este considerata aberanta.
Clasele 13-20 reprezinta structuri conventionale MIMD cu diverse tipuri de retele de interconectare.
Clasele 21-28 sunt clase MIMD neexplorate inca.
Taxonomia Skillcorn o extinde pe cea a lui Flynn, evidentiind mai detaliat diferentele intre diversele tipuri de arhitecturi paralele.
SISD - Reprezentare abstracta
SISD -
Structura interna - Procesor IP SISD - Structura interna - Procesor DP
SISD - Struct. interna - Procesor DP - Vers . rapida
SISD - Metode de imbunatatire
Arhitectura SISD se poate imbunatati prin :
Optimizarea digramei de stari in vederea scurtarii timpului de tranzit al jetonului prin retea. Nu produce noi tipuri de arhitectura
Permisiunea ca mai multe stari sa fie active la un moment dat. Presupune utilizarea de arhitecturi pipeline
Arhitectura SIMD
Toate modelele din desenele ce urmeaza au un singur procesor (IP) de comanda, cu n procesoare artimetice (DP), interconectate prin comutator 1-to-n.
SIMD -
Tip 1 SIMD
- Tip 2
SIMD - Tip 3
Arhitecturi MIMD
In desene sunt ilustrate doua modele de sistem MIMD :
unul - tightly coupled (cu memorie comuna)
celalalt - loosely coupled (sistem distribuit)
MIMD - Arhitectura "tightly coupled"
In sistemele puternic cuplate ("tightly coupled"), procesoarele se conecteaza la memorii printr-un comutator dinamic arhitectura de acces uniform la memorie (UMA).
Comunicatia si sincronizarea intre procesoare se realizeaza prin zone comune de memorie.
MIMD - Arhitectura "loosely coupled"
In sisteme slab cuplate ("loosely coupled"), fiecare procesor dispune de memorie proprie (private memory).
Comunicatia intre procesoare se face prin mesaje (message passing).
o arhitectura de acces neuniform la memorie (NUMA).
Exemple : Cm* (Carnegie Mellon University) si iPSc (Intel).
MIMD - Avantaje/Dezavantaje
Avantaj al sistemelor puternic cuplate : comoditate de programare oferita de spatiul comun de adrese
(shared address space).
Avantaj al sistemelor slab cuplate: scalability (posibilitate comoda de expandare)
Arhitecturi cu reducere ("reduction")
Modelul abstract al unei masini tip "reduction" - arhitectura demand driven.
Calculele sunt organizate sub forma unui graf ale carui:
o nod radacina - este de tip "apply",
o subarborele din stanga este "description of a function"
o subarborele din dreapta este "description of the arguments"
Descrierea poate consta in valoarea propriu-zisa sau descrierea modului in care se obtine valoarea.
"Redex" - subarbore in care functia si argumentele sunt deja evaluate.
La executia unui redex valoarea rezultata inlocuieste redex-ul.
In general, la nivelul frunzelui arborelui, sunt disponibile (pentru executie) cateva redex-uri.
o Pentru evaluarea lor se pot folosi in mod concurent procesoare multiple.
Daca nu exista nici un redex, calculele nu pot incepe.
Intrucat graful redus imbraca atat rolul instructiunilor (in structura), cat si cel al datelor (in continut), nu este necesar procesor IP, iar modelul abstract al masinii este de tipul MIMD puternic cuplat, fara IP si IM.
Exemplu
a = (d + e) + (f * g)
cu d = 1, e = 3, f = 5, d = 7
Nodul x creaza cereri de executie nodurilor 2 si 5. Aceste cereri se propaga in josul arborelui, spre frunze, care propaga rezultatele catre nodurile parinte 2 si 5.
Nodurile 2 si 5 sunt radacinile a doua redex.
Desenul arata starea sistemului dupa executia celor doua redex.
Arhitecturi cu reducere - Exemplu (1)
Arhitecturi cu reducere - Exemplu (2)
Arhitecturi cu reducere - Realizari, Exemple :
1.
Arhitecturi Data flow
Arhitectura este de tipul "data driven".
Nu exista un mecanism explicit de secventiere a instructiunilor, iar calculele sunt controlate de disponibilitatea si dependenta datelor.
Modelul de calcul al unei arhitecturi data flow este sub forma unui graf orientat, numit graf data flow
Exemplu
a = (d + e) + (f * g)
Doua tipuri de arhitecturi dataflow Model Dataflow - Tip Dennis
Taxonomia Duncan
Definitie : Arhitectura paralel - arhitectura care ofera in mod explicit un cadru de nivel inalt pentru dezvoltarea solutiilor de programare paralela prin disponibilitatea de procesoare care coopereaza pentru rezolvarea prin executia concurenta a problemelor.
Clase
Clasificarea arhitecturilor paralele:
Subclase
Procesoare Vectoriale
Structura
de procesor vectorial Arhitectura vectoriala registru -
registru
Procesoare asociative (AM)
Procesoare
asociative - Model
Procesoare asociative - Operare
Procesor
asociativ
Arhitecturi sistolice (AS)
Arhitecturi sistolice - Structura Procesoare sistolice - Exemplu
Obiect: calculul produsului A*B
Procesoare
sistolice - Exemplu (2)
Elemente Definitorii
Caz tipic al distributiei instructiunilor
Operatii |
Frecventa [%] |
CPI |
Ponderat [cycles/instr] |
Load and store |
|
|
|
Integer add/subtract |
|
|
|
Integer multiply/divide |
|
|
|
F.P. add |
|
|
|
F.P. multiply |
|
|
|
Logical |
|
|
|
Branch |
|
|
|
Compare shift |
|
|
|
|
|
|
|
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 1858
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved