Sunteți pe pagina 1din 94

Calcul Paralel si Distribuit Introducere

Organizatoric
Curs - 356,Activitati practice Miercuri 8-14, Obs 210. Consultatii : sala M05 , vineri 10-12 Metode de evaluare 4 teme de laborator notate ca activitate practica individuala trimise pe e-mail, nu se accepta decat deadline-ul specificat. Proiect individual- prezentat public, ultima saptamana de lab.

Laborator /teme 20% Proiect 30% Examen final 50% toate cele trei modalitati de evaluare sunt obligatorii ponderea specificata, notare distincta, nota de trecere pentru fiecare Optional/suplimentar tema adiacenta 10%- bonus Adresa resurse: ftp://ftp.utcluj.ro/pub/users/civan /CPD
e-mail cosmina.ivan@cs.utcluj.ro, cosmiivan@yahoo.com Baritiu 26-M05
2

Bibliografie

referinte bibliografice specificate din ( format electronic) :

Introduction to Parallel Computing: Design and Analysis of Algorithms,


V.Kumar, A. Grama, A. Gupta, G. Karypis, Ed. Addison Wesley , 2009

Building parallel programms,


A Kaminsky, Ed Cengage, 2011

Distributed Algorithms .An algoritmic approach,


Wan Fokkink , MIT press 2013

Distributed systems,principles,algorithms, systems,


M. Singhal, Ed. Cambridge University press, 2008

Continut
Cursul coreleaza doua domenii din stiinta calculatoarelor =>Calculul paralel si calculul distribuit

Ce aspecte vor fi abordate: Arhitecturi paralele si distribuite - NU Algoritmi paraleli si distribuiti Programare paralel si distribuita Sisteme de operare paralele si distribuite - NU
4

Coninut (1)
Concepte introductive
Introducere n procesarea paralel i distribuit . Taxonomii n calculul paralel i distribuit. Modele i paradigme ale procesrii paralele i distribuite

II. Calcul paralel Modele de calcul paralel si comunicatie. Sisteme de memorie.Retele statice si dinamice. Comunicaiile i rutarea in sisteme multiprocesor . Topologii, canale i reele virtuale , tehnici de transmisie pentru operaiuni de comunicatie de grup. Scalabilitate i performan in sisteme cu procesoare multiple. Legile accelerrii performanei. Scalabilitate algoritmic i arhitectural. Tehnici i paradigme pentru proiectarea algoritmilor paraleli.
tehnici de paralelizare, dependenta datelor, descompunerea datelor, tehnici de mapare statica/dinamica

Algoritmi paraleli fundamentali (sortare, cautare, pe matrici, pe grafuri)


5

Coninut (2)
III. Calcul distribuit
Modele fundamentale n calculul distribuit : interactiune, comunicare, procesare, cadere .Principii .Caracteristici . Sincronizare :ceasuri fizice si logice Excludere mutuala, snapshot distribuit Ordonare cauzala Stri gobale Alegere leader Consisten i replicare: modele si protocoale . Toleranta la erori in sisteme distribuite. Algoritmi distribuiti fundamentali

Auxiliar Sisteme cu memorie partajata distribuita,Sisteme distribuite de obiecte/componente , Sisteme distribuite bazate pe web Clustere i griduri computaionale Structuri P2P
6

5 generaii de arhitecturi de calcul


prima generaie (1956) - CPU, VF, PC, CPU implicat n toate operaiile de acces la memorie i de I/O, masini cu acumulator, limbaj de asamblare (Eniac, IBM701)

a doua generaie (1967) - registre index, aritmetica virgula flotant,multiplexare memorie,procesoare de I/O, limbaje de nivel inalt, procesare batch, compilatoare, biblioteci (IBM 7030,CDC1604) a treia generaie (1978)- control microprogamat, pipelining i memorii cache , SO time- sharing ce folosesc memoria virtual (IBM 360, CDC 6600 PDP8). a patra generaie (1989) - calculatoare paralele si sisteme distribuite, n diverse arhitecturi cu memorie partajat sau distribuit, VLSI, SO pentru multiprocesare, limbaje, biblioteci i compilatoare speciale pentru paralelism, tools -uri software (VAX9000, CrayX-MP, IBM 4090)
a cincea generaie (Tflops - Pflops realizeaz procesare masiv-paralel,arhitecturi scalabile i heterogene de calculatoare cu memorie partajat sau sisteme cu transfer de mesaje , Java, microkernel/ multithreading, S paralele si distribuite (Fujitsu, CrayMachine, Intel-Paragon, Dash, KSR, SGI Origin)

(K Hwang, Scalable parallel computing, 1998)

Paralel vs distribuit
Sisteme de calcul cu mai multe elemente de procesare
Procesare paralela executia rapida a unor probleme de calcul pe masini cu mai multe procesoare ce lucreaza in maniera bine coordonata

Sisteme cuplate strans (distana ntre procesoare este redusa, multiprocesoare) Procesare distribuita - rezolvarea unor probleme de calcul prin partajarea resurselor in sistem, oferind fiabilitate, toleranta la erori, procesoarele unui astfel de sistem sunt distribuite fizic
Sisteme cuplate larg (reele de calculatoare, multicalculatoare)
Procesare concurenta la nivel de instructiune , pipeline in procesoare vectoriale, multiprocesare bazata pe M partajata sau distribuita, sisteme distribuite/Internet

Aplicatii ale calculului paralel i distribuit


Simularea informatiei Dinamica fluidelor, Dinamica structurala industrie automobilistica, civil Simulari electromagnetice - radar Planificare sisteme de control aviatice Modelare mediu ,Simulari integrate complexe ( climat, date seismice) Modelare biologie/sanatate, Chimie stare solida/tranzitii Dinamica moleculara, astrodinmica Modelare economica/financiara Simulari in retea, griduri, Simulari ale fluxurilor particulelor nucleare Prelucrari grafice, procesare de imagini Containere informationale de stocare Analiza statistica : sanatate/asigurari Data mining Acces la informatie Procesare tranzactii online/banci asigurari Sisteme colaborative (WWW, proprietar) Planificare piete bursiere Integrare Informatie Sisteme suport de decizie Sisteme de control in timp real E-........ Bancar, comert,..... Educatie e-learning , sisteme de asistare
9

Complexitate....
Alocarea resurselor dimensionarea colectiei de elemente de procesare, elementelor de memorie parametrii de performanta in accesul la resurse Accesul la date, comunicatia si sincronizarea cum comunica si coopereaza elementele de procesare? cum sunt datele transmise intre procesoare? setul de abstractiuni si primitive necesare cooperarii intre elementele de procesare? Performanta si scalabilitatea translatarea cerintelor in termeni de performanta arhitectura ofera scalabilitate?

10

Evoluie arhitectural
Architectura de sistem transfera oferta tehnologica in performanta si capabilitati de procesare rezolva diferentele generate de heterogeneitate si cerintele de localitate a datelor, modificabile ca urmare a scalarii sistemului sau evolutiei tehnologice
Evolutia arhitecturilor initial , programarea asociata unei anumite arhitecturi fizice limitari: lipsa portabilitatii, scalabilitatii, problema grefata pe o anumita arhitectura

ulterior - programe proiectate specific anumitor categorii de algoritmi/probleme (stiluri) , compilatorul a devenit responsabil cu maparea/translatarea specifica arhitecturii curent convergenta arhitecturala, diverse instrumente standardizate pentru programarea paralela si distribuita
11

Evolutie arhitecturi
Era calculatoarelor seriale (IBM Mainframe) Calculatoare vectoriale (Cray) Paralelism SIMD ( o instructiune mai multe fluxuri de date, Thinking Machines ,Maspar) Paralelism MIMD ( mai multe instructiuni, mai multe fluxuri, Transputere / alte tehnologii on chip) statii de lucru (Workstations-Sun) Sisteme de procesare masiv paralela (topologii diverse hipercub, tor, mesh) Calculatoare Personale (IBM, Intel, Microsoft, Apple) Sisteme MPP comerciale Retele de statii de lucru (NOW) Servere Enterprise implementeaza tehnologii specifice partajarii memoriei Calculul paralel larg raspandit Paralelism de date (SPMD MPI/ HPF) modele paralele acceptate WAN in universitati (ATM) Masini cu M distribuita retele dinamice cu comutare inlocuiesc retelele statice Calcul bazat pe modelul Client/Server Calculul distribuit inlocuieste calculul paralel ca domeniu de interes major Obiecte distribuite, modele noi Agenti/Servlet PC/ retele rapide, Linux ca sistem de operare - clustere Beowulf Internet computing ( Seti, Gnutella) Internet de banda larga ( modemuri de cablu,ASDL, sateliti, comunicatii wireless, etc.) Calcul mobil, senzitiv la context Griduri/metacomputing: calcul distribuit si de inalta performanta pentru aplicatii complexe , pe scara larga

12

Calcul paralel
Procesare paralela - o forma de procesare a informatiei ce utilizeaza evenimente concurente si necesita suport de limbaj si/sau hardware. Algoritm paralel = algoritm care permite efectuarea simultana a mai multor operatii/taskuri. Descompunerea unei probleme in subprobleme care se executa in paralel pe mai multe procesoare Calculator paralel - o colectie de elemente de procesare utilizate pentru a rezolva mult mai rapid probleme de procesare de dimensiuni mari (Almasi& Gottlieb, 1989)
Supercalculatoare paralele, statii de lucru multiprocesor, retele de calculatoare,

Arhitecturile paralele :
ofer o soluie de crestere a performanei sistemelor de calcul (clasic, bazat doar pe evolutia la nivelul procesoarelor)

procesarea paralela este aplicabila la toate nivelurile in proiectarea de sistem, utila in procesarea unor volume mari de date permit stabilirea unor relatii logice intre diverse forme de manifestare a paralelismului : paralelismul la nivel de instructiune/ thread , la nivel de task/ element de procesare 13

Motivatie
Mai repede, mai mult
Problemele de rezolvat necesita cresterea puterii de calcul

Probleme de rezolvat Aplicatii

Putere de calcul, Tehnologie

Cresterea puterii de calcul permite punerea de noi probleme

Nu conteaza cat de rapid este calculatorul cel mai performant de la un moment dat, cineva va dori sa utilizeze unul mai rapid Exista intotdeauna probleme importante care cer mai mult decat puterea de calcul disponibila la un moment dat Cu cat puterea de calcul creste mai mult ,cu atat mai multe probleme nerezolvate apar la orizont
14

Programare paralela
Algoritm secvential: specifica executia secventiala a unui set de instructiuni Proces: executia unui program secvential Algoritm paralel: specifica mai multi algoritmi secventiali care pot fi executati simultan ,ca procese paralele Paralelism logic: 1 procesor N procese. La un moment dat se executa fizic o actiune corespunzatoare unui singur proces. Procesele se desfasoara concurent: se lanseaza instructiunile unui proces inainte de a se fi terminat executia tuturor instructiunilor corespunzatoare celorlalte procese Paralelism fizic: mapare 1 procesor 1 proces.
15

Paralelism logic paralelism fizic


Specificarea unui program concurent, 3 procese

Executia pe sistem cu 1 procesor Paralelism logic Multi-programare


0

Executia pe sistem cu 3 procesoare Paralelism fizic Multi-procesare


0

P0
Proces P0

P0 P1
P2

P1 P0

Proces P1

P2 P1

P0

P2

Proces P2 T

P2
T
16

Clasificari arhitecturale (3)


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 : ALCH

17

Caracterizarea aplicatiilor
Compuse din taskuri. In aplicatii cu grad nenul de paralelism unele ruleaza in paralel. Elemente de caracterizare granularitate grad de paralelism nivelul de paralelism interdependenta datelor

18

Granularitatea unui task


Granularitatea unui task Dependenta de: R durata de executie (runtime) C durata comunicarii Granularitate grosiera: Granularitate fina: Granularitate medie: R>>C R<<C R si C comparabile

19

Gradul de paralelism
Gradul de paralelism

Masura numarului de fire (threads) executate simultan. Nivelul de paralelism: la nivelul procedurii la nivelul taskului la nivelul instructiunii la nivelul operatiei la nivelul microoperatiei (microcode)

20

Modele de procese

Aplicatie seriala
Modul 1

Modul 2 Modul 1

Modul 3

Single task Multiple tasks

Modele de procese (2)

Modul 1

Modul 2

Modul 3

Modul P - 1

Aplicatie serie - paralel


22

Modul P

Modele de procese (3)

Modul 1

Modul 2

Modul 3

Modul P - 1

Aplicatie serie paralel cu dependenta datelor

Modul P

23

Taxonomii
Obiectivele clasificarilor ( taxonomiilor) :

Sa ofere posibile configuratii ce ar putea fi omise de catre arhitectii de sistem. Sa permita o examinare formala a posibilelor variante de arhitectura.

Sa permita construirea de modele utile de evaluare a performantei, evidentiind potentialul unei anumite arhitecturi pentru imbunatatirea performantelor. Sa ofere raspunsuri la intrebari privind tipul paralelismului, arhitectura cu cele mai bune perspective de viitor, realizarile la zi privind o anume arhitectura.
24

Taxonomii
Control driven: Activitatea de prelucrare este dictata de secventa de instructiuni. Datele sunt preluate de procesor cand este nevoie de ele. Data driven: Activitatea de prelucrare dictata de disponibilitatea datelor necesare efectuarii unei instructiuni. Experimentala ! Demand driven: Executia unei instructiuni este activata atunci cand rezultatul executiei ei este cerut de o instructiune deja activata pentru executie. Experimentala !
25

Structura multiprocesor

Procesoare

P1

P2

P3

Pn

Retea interconectare

Memorie

M1

M2

Mm

26

Structura multicomputer

Retea interconectare

P1 Calculatoare

Pn

P2

M1

Mn

M2

27

Structura multi-multiprocesor

Retea interconectare

28

Taxonomia Flynn
SISD mainframe-uri, statii de lucru, PC (Single Instruction stream -Single Data stream), masini conventionale secventiale,ce utilizeaza diverse tehnici pentru cresterea performantelor uniprocesorului.

SIMD (Single Instruction stream over Multiple Data streams) , memorie partajata-calculatoare vectoriale -tablouri de elemente de procesare sincronizate (seria Cray CM-2).
MISD (Multiple Instruction streams & Single Data stream), Memoria partajata tablouri sistolice pentru executie pipeline, (Sequent, KSR, Terra, SGI, SUN) MIMD - (Multiple Instruction streams Multiple data)Memoria distribuita si/sau partajata sisteme complexe tip cluster (Cray T3D, CM-5, Intel, Transputere IBM SP2, DEC, Sun, HP)

29

Avantajele MIMD
Viteza mare de prelucrare, daca prelucrarea poate fi descompusa in fire paralele, TOATE procesoarele prelucrand simultan Intrucat procesoarele si blocurile de memorie sunt resurse de tip general, defectarea unei unitati se poate compensa prin alocarea sarcinii de prelucrare altei unitati (grad ridicat de toleranta la erori) Se poate utiliza reconfigurarea dinamica pentru a face fata gradelor variabile de incarcare a procesoarelor

30

Cerinte - MIMD (1)


1. Planificarea procesoarelor: alocarea eficienta a taskurilor la procesoarele din sistem intr-o maniera dinamica, pe durata evolutiei prelucrarii
Sincronizarea procesoarelor: prevenirea situatiilor de tentativa simultana de schimb de date intre doua procesoare si respectarea restrictiilor de precedenta in manipularea datelor. Proiectarea retelei de interconectare: retelele de interconectare procesor memorie si procesor procesor sunt, probabil, cele mai costisitoare elemente ale sistemului. De aici dedicarea de I/O procesoarelor si NU utilizarea unei retele de interconectare procesor I/O

2.

3.

31

Cerinte - MIMD (3)


4. Overhead: in mod ideal, un sistem cu n procesoare ar trebui sa ofere o viteza de prelucrare (throughput) de n ori mai mare decat un sistem cu un unic procesor. In realitate, consumul suplimentar de resurse (overhead) pentru coordonarea activitatii procesoarelor si solutionarea competitiei pentru resurse comune (memorie, reteaua de interconectare) nu permite atingerea acestui deziderat. 5. Partitionarea: identificarea paralelismului in algoritmii de prelucrare si invocarea prelucrarii concurente nu este o problema triviala

32

Taxonomia Hwang Calculatoare vectoriale (PV) - sisteme proprietar, initial dezvoltate pentru stiinte computationale
Multiprocesoare simetrice (SMP) nescalabile, suport simplu , ieftin pentru procesare paralela

Sisteme masiv paralele (MPP)- sisteme proprietar, performante deosebite in procesarea paralela insa la costuri ridicate
Sisteme distribuite (SD) - complexe , o colectie de resurse de calcul autonome ce coopereaza

Clustere/Griduri ofera suport pentru calcul de inalta performanta , definesc sisteme cuplate larg, de mare disponibilitate (sisteme critice, sisteme tolerante la erori)
33

Modele (1)
PVP - procesoare vectoriale
Arhitectur tip shared Memory , module de memorie partajate ce ofer acces rapid la date, procesoare puternice proprietar , nu integreaza cacheuri , doar registre vectoriale si buffere de instructiuni

Reteaua de interconectare proprietar (crossbar ) (Cray C90, T90) SMP - multiprocesoare simetrice sistem bazat pe procesoare echivalente conectate folosind memoria partajat i protocoale pentru coerenta datelor
arhitectur simetric (tip Shared-everything ) , procesoarele partajeaz resursele globale disponibile, RI mag./crossbar ruleaz o singura copie a SO Limitari reteaua de interconectare (magistrala) greu de scalat odata proiectata(SGI, DEC Alpha, IBMR50)
34

Modele (2)
MPP procesoare masiv paralele

sistem de procesare paralela de dimensiuni mari, procesoare clasice i memoria distribuit nodurilor de procesare
arhitectur shared-nothing scalabil ( sute de noduri de procesare) main asincron MIMD, cuplat strans , folosind retele de interconectare de nalt performan (B>> , L<<)

programul conine procese multiple, fiecare cu spaiul privat de adrese, interaciune prin transfer de mesaje
procese sincronizate (operaii de transfer de mesaje) in anumite sisteme e posibil un singur kernel pentru aplicaii complexe ce posed grad ridicat de paralelism(Intel Paragon)
35

Modele (3)
DSM (Distributed Shared Memory)
memoriile distribuite nodurilor de procesare devin memorie global partajat, creand un spaiu unic de adrese arhitectura ce integreaza structuri d ecoerenta a datelor tip directoare de cacheuri

necesit suport HW/SW - pentru a implementa conceptul SSI (Single system image) (Stanford Dash - structuri de directoare,CrayT3D- suport HW ,Treadmarks- extensii SW )
Sistem distribuit calculatoare independente , conectate bazat pe retele convenionale mainile individuale pot fi combinaii MPP,SMP, clustere, sisteme individuale

posed imagini multiple de sistem (fiecare nod ruleaz propriul SO)

36

Modele (4)
COW Cluster of workstation (Digital Trucluster IBM SP2, Berkeley NOW)
fiecare nod e o staie complet (disc, mai puin periferie), poate reprezenta SMP sau PC

noduri conectate folosind reea convenional (Ethernet, FDDI, FC, switch ATM) sau retele proprietar interfaa de reea cuplat larg magistralei I-O fiecare nod ruleaz propriul sistem de operare- microkernel sistemul de operare integreaza Sw special pentru implementarea imaginii unice de sistem (SSI)
echilibrarea ncrcrii, suport pentru paralelism i comunicaie nodurile lucreaza colectiv asemeni unei resurse unice integrate masina ofera disponibilitate ridicata si performanta crescuta avantaje de cost in implementarea de masini scalabile
37

Maini hibride tip cluster


Cluster de statii SMPs (CLUMP ) (ASCI Red (Intel), ...
sistemele SMP, cele mai rapide solutii de procesare paralela pot fi integrate intr-o structura tip cluster

Memoria partajata in structura SMP, dar transfer de mesaje intre noduri masina privita unitar, intotdeauna se foloseste transfer de mesaje (si la nivelul nodului SMP expune doua niveluri / memoria partajata si transferul de mesaje (creste performantele dar si complexitatea programarii).

38

Modele de acces la memorie


Modelul UMA(UniformMemory Access) memoria fizic e uniform partajat de toate procesoarele

procesoarele au acelai timp de acces la memorie

Modelul NUMA( NonUniform Memory Access) memoria partajat e distribuit fizic procesoarelor , este creat un spaiu de adresare comun tipuri de accese la memorie : acces la memoria local, acces la memoria local a altui procesor, acces la memoria global partajat.

P1

PE1
M1

P2

PE2
...
M2

Pn

PEn
Mn

RETEA DE INTERCONECTARE

39

Modele de acces la memorie


P1 P2 Pn

PE1
C1 C2 M1

PE2
...
M2 Cn

PEn

Modelul CC-NUMA (Cache Coherent NUMA) - toate datele partajate sunt echidistante accesului procesoarelor

Mn

Retea de interconectare

Modelul COMA ( Cache Only Memory Acces)

M principale devin cache, coerena prin structuri de directoare cache distribuite

P1

P2

Pn

PE1
C1 C2

PE2

...

PEn
Cn

Retea de interconectare

40

41

42

Calcul distribuit
Def1. (Tannenbaum) - o colectie de computere independente ce apare ca un sistem unic, coerent utilizatorilor sai greu de realizat Def2. (Coulloris) - o colectie de resurse de calcul heterogene interconectate folosind o retea / infrastructura ce ofera suport pentru dezvoltarea de aplicatii si servicii . Resursele distribuite sunt autonome , comunica si coopereaza prin schimb de mesaje pentru a rezolva o sarcina comuna sau un serviciu.

Def3. (Lamport) acel sistem in care nu se poate atinge un anumit scop deoarece o masina fizica despre care nici nu s-a auzit a cazut.
slab corelat fizic, strans corelat logic Bazat pe schimb de mesaje transfer de mesaje necesar cooperarii pentru o stare comuna Presupune integrarea unui suport software (de nivel SO/Middleware) ce permite independenta masinilor si utilizatorilor sistemului distribuit , cat si interactiunea lor.
43

Sistem distribuit cu elemente mobile

Internet

Host intranet

Wireless LAN

WAP gateway

Home intranet

Mobile phone Printer Camera Laptop Host site


(G. Coulouris, Distributed systems)

Exemple de SD : Web, Intranet, infrastructuri mobile, etc.


44

Milestones in Sisteme Distribuite


1950s-1960s 1960s

Sisteme Batch

Multiprogramare Sisteme Time sharing


WAN / LAN Minicomputere

1960s-1970s
1969-1973 1960-1980

Multics, IBM360
ARPAnet, Ethernet PDP, VAX

1980 1980s prezent


1990s > 1995s

Workstations Modele Workstation/Server


Clusters

Alto Sprite, V-system


Beowulf

Grid computing

Globus,

45

SD caracteristici
SD acceptiune HW un calculator virtual, existenta nodurilor autonome e transparenta, implementarea transparentei prin algoritmi de control distribuit.
SD acceptiune SW aplicatii bazate pe cooperare intre procesoare/ hosturi

Caracteristici resurse fizice si logice multiple distributia resurselor e transparenta independenta si cooperare intre componente
Host - componente operationale HW i SW Middleware nivel intermediar , rezolva heterogeneitatea si distribuirea entitatilor in sistem Resurse abstractiuni HW/SW, resurse distribuite : fizice, date , control
46

Argumente
Economice Partajarea resurselor- BD/HW costisitoare, control remote laboratoare speciale, etc.

Relativ simplu de expandat/scalat


Viteza /puterea de calcul oferita este posibil mai mare chiar decat a unui mainframe.

Rata cost/performanta ( retele Gb procesoare de viteza)


Informatie/utilizatori inerent distribuiti

Expandabilitate/flexibilitate in reconfigurarea de sistem pentru a indeplini cerintele utilizatorilor Disponibilitate si siguranta functionarii - daca o masina cade, sistemul rezista. Scalabilitate buna determinata de conectivitatea slaba
47

Ipoteze false =>complexitate


In dezvoltarea de sistem => set de false ipoteze
Reteaua este sigura pentru transmisie Reteaua este securizata Reteaua este omogena Topologia retelei nu se modifica Latenta de transmisie este nula Latimea de banda este infinita Costul de transport ( performanta) este zero Un singur domeniu administrativ

48

Avantaje /dezavantaje
Avantaje/popularitate Disponibilitatea sistemelor de calcul si retelelor de comunicatie Partajarea resurselor Scalabilitate Toleranta la erori Dezavantaje: Puncte de cadere multiple: caderea nodurilor/ sau legaturilor de comunicatie. Aspecte de securitate : mai multe oportunitati pentru atacuri neautorizate.

49

Proprietati
Descentralizare /distributie
Non-centralizarea datelor /serviciilor (server) , controlului (algoritmi distribuiti) nici un host nu detine starea completa a sistemului nu exista ceas global in sistem integreaza mecanisme tolerante la caderea nodurilor/ legaturilor de comunicatie nodurile pot lua decizii functie de info locala

Paradigme (clase de sisteme distribuite) DSM, agenti, coordonare distribuita, documente partajate, sisteme publish&subscribe, obiecte distribuite, servicii web
50

Sistem deschis
Sistem deschis - poate interactiona cu servicii ( interfete) oferite de alte sisteme deschise, indiferent de infrastructura, independent de heterogeneitatea HW/SW sau de limbaj. Caracteristici: Sistemul este conform unor interfete predefinite, publice Este asigurata conformitatea componentelor sale cu standarde publice (implementat folosind componente testate pentru conformanta) suporta portabilitatea aplicatiei, ofera interoperabilitate poate fi usor extins/ modificat/reimplementat Concept corelat cu cele de interoperabilitate/portabilitate

Standardizare ( ISO/ ITU RM-ODP ) permite interoperabilitate ( integrare componente Sw/HW) ofera suport pentru portabilitate standarde de facto ( OMG, TINA) , de jure, etc.

51

Heterogeneitate/flexibilitate
Heterogeneitate generata de varietatea tehnologiilor utilizate pentru implementarea platformelor, managementului datelor si aplicatiilor heterogeneitatea platformelor (retelelor, SO, hw) , a limbajelor a componentelor implementate de catre dezvoltatori diferiti rezolvata de un nivel intermediar middleware, masini virtuale Flexibilitate solutie clasica - kernel monolitic - nonflexibila , sistem de fisiere/ sistem de directoare, management complex al proceselor, noi solutii - microkernel - servere de nivel utilizator pentru servicii sistem, (mecanism IPC, MM, management/planificare de procese redusa)
= extensibilitate simpla ( modificare componente /servicii),interoperabilitate, interfete publice, standardizate

Performanta - integrare suport pentru paralelism, abilitatea migrarii entitatilor, securitate, etc

52

Toleranta la erori/ partajare resurse


Toleranta la erori- sistemul va opera chiar in prezenta erorilor =>determina modalitatea de proiectare a sistemului distribuit solutii de management identifica si inlocuiesc componentele ce genereaza erori. Sisteme HW redundanta fizica, Sisteme SW replicari de servere, de date, tranzactii specializate Partajarea resurselor - un sistem distribuit ofera suport pentru cooperare - aplicatii de grup ce necesita partajarea resurselor logice/fizice aspecte complementare/complexe de securitate componente secializate pentru managementul resurselor autorizare acces, autentificare Securitate lipsa unui punct unic de control Mesaje furate, modificate, serviciile interzise =>solutii criptografice

53

Transparente
Transparenta sistemul se prezinta unitar fata de utilizatori si aplicatii (nivel inalt se ascunde distributia fata de utilizatori, nivel scazut ascunderea distributiei fata de programe)
Transparenta Accesului Descriere

Ascunde diferente in reprezentarea datelor si modul in care e accesata o resursa similar local si remote Ascunde locatia resursei
Ascunde faptul ca o resursa se poate muta la o alta locatie

Locatiei Migrarii
Relocarii/mobilitatii Replicarii Concurentei Caderii/defectarii

Ascunde faptul ca o resursa poate/se poate muta in timp ce este utilizata fara a afecta utilizatorii /programele
Pot fi utilizate mai multe instante ale resursei fara a sti care replica este utilizata Ascunde partajarea concurenta a resursei de mai multi utilizatori, procesele opereaza fara interferente Ascunde caderea si refacerea accesului la o resursa, astfel taskurile pot fi finalizate Ascunde locatia unei resurse software (in M sau pe disc)

Persistentei

Sistem de operare
Sistem monoprocesor - partajare resurse CPU , discuri, Mimplementeaza o masina virtuala ce ofera facilitati multitasking aplicatiilor (lucreaza in mod protejat)

Sistem multiprocesor - CPU multiple, acces la M partajata (computer virtual) procese/threaduri - legate procesoarelor, M fizica extinsa la M virtuala, discuri inlocuite de fisiere ce pot fi mapate discurilor multiple
implementat prin extensie SO structuri de date necesare gestionarii HW sunt plasate in regiune partajata de M, necesita protejare la acces simultan prin mecanisme tip semafoare/monitoare.

55

Sisteme de operare de retea


SO individuale (posibil diferite) cu facilitati de comunicare in retea

Servicii legate nodurilor de procesare : rlogin, rsh, rcp, telnet, ftp ,orientate accesului la fisiere (procesoarele partajaza fisiere) integreaza servere dedicateftp, DNS, mail, PPP nu ofera imagine unica de sistem Ex. Windows, Linux

56

Sistem de operare distribuit


M nu e partajata- e necesara comunicare intre procesoare prin transfer de mesaje,comunicatia globala poate fi complexa (broadcast necesita tehnici specifice in API)
Servicii distribuite (transparent) pe sisteme So individuale cunosc existenta celorlalte masini fizice , sunt identice

Managementul resurselor e distribuit


Ex. Implementari putine- Amoeba, Chorus

57

Middleware (1)
Motivare aplicatii in retea greu de integrat sisteme de operare in retea diferite sisteme informationale federalizate combinare de BD diferite, sisteme de procesare a tranzactiilor) servicii Internet pe scara larga extensibilitatea unor servicii /complexe mobilitate, teleworking, aplicatii colaborative
Definitie set de API uri independente de sistem pentru integrare programare distribuita

Caracteristici independenta de L, SO, retea utilizeaza functionalitatea de baza oferita de sistemele de operare existente ( RPC, NFS , DCOM) protocoalele / interfetele utilizate la fiecare nivel middleware sunt identice

Middleware -caracteristici
Servicii middleware Servicii de comunicatie - apeluri de proceduri remote, invocari de obiecte la distanta, sisteme de cozi de mesaje, sisteme de streamuri, servicii de notificare evenimente
Servicii pentru sisteme informationale - servicii de numire entitati, servicii de directoare (masini de cautare) servicii de localizare entitati mobile, facilitati de stocare distribuita, managementul datelor Servicii de control - refera controlul modului de acces la date persistenta, procesarea tranzactiilor, migrarea proceselor, planificarea taskurilor

Servicii de securitate - utile in procesare si comunicatie sigura - de autentificare/autorizare, de criptare, de audit.


Tipuri de middleware orientate tranzactii(TP)- procesare tranzactii distribuite in BD multiple orientate mesaj (MOM)- trafic sigur de mesaje intre resursele SD orientate apel remote de proceduri (RMI) orientate obiectual invocari remote de obiecte(DOM)
59

Caracteristici/ cerinte pentru sisteme distribuite


heterogeneitate ( HW, SW)/ numar de procesoare ( noduri in sistem) concurenta accesului la diverse resurse (partajarea resurselor, retele de interconectare stari partajate ) cooperare/comunicare, gradul de sincronizare inexistenta unui mecanism de coordonare globala Implementarea de mecanisme de tolerare a diverselor tipuri de caderi in sistem Dificultati de proiectare/ implementare/ management : scalabilitate, pierderea controlului in anumite parti in sistem, transfer de mesaje nesigur, caderi independente in sistem

60

Scalabilitatea
Scalabilitatea defineste modul in care sistemul suporta cresterea numarului de utilizatori, hosturi, domenii administrative, volumului datelor, tranzactiilor efectuate, distantei intre noduri etc. (multe sisteme suporta doar scalabilitatea dimensiunii)
Tehnici de scalare Distributie - partitionare date/procesare pe mai multe sisteme ( ex. Apeti Java, DNS, WWW) Replicare copii ale datelor pe diverse masini (servere de fisiere, BD replicate, site-uri replicate) Cachare - procese client pot accesa copii locale ale datelor: cache web, (browser, proxy) , cache fisiere(la client/server) Utilizarea de comunicatii cu predilectie asincrone Probleme in asigurarea scalabilitatii de sistem

Complexitate in aplicarea tehnicilor de scalare datorate inconsistentei datelor (copii cachate sau replicate ) si sincronizarilor globale greoaie
Existenta unor servicii centralizate server unic pentru utilizatori, date centralizate , algoritmi centralizati - Solutie algoritmi decentralizati nici un host nu detine starea sistemului, hosturile iau decizii bazat pe info locale, caderea unei masini nu distruge algoritmul.
61

Heterogeneitate/flexibilitate
Heterogeneitate generata de varietatea tehnologiilor utilizate pentru implementarea platformelor, managementului datelor si aplicatiilor heterogeneitatea platformelor (retelelor, SO, hw) , a limbajelor a componentelor implementate de catre dezvoltatori diferiti rezolvata de un nivel intermediar middleware, masini virtuale Flexibilitate solutie clasica - kernel monolitic - nonflexibila , sistem de fisiere/ sistem de directoare, management complex al proceselor, noi solutii - microkernel - servere de nivel utilizator pentru servicii sistem, (mecanism IPC, MM, management/planificare de procese redusa)
= extensibilitate simpla ( modificare componente /servicii),interoperabilitate, interfete publice, standardizate

Performanta - integrare suport pentru paralelism, abilitatea migrarii entitatilor, securitate, etc

62

Toleranta la erori/ partajare resurse


Toleranta la erori- sistemul va opera chiar in prezenta erorilor =>determina modalitatea de proiectare a sistemului distribuit solutii de management identifica si inlocuiesc componentele ce genereaza erori. Sisteme HW redundanta fizica, Sisteme SW replicari de servere, de date, tranzactii specializate Partajarea resurselor - un sistem distribuit ofera suport pentru cooperare - aplicatii de grup ce necesita partajarea resurselor logice/fizice aspecte complementare/complexe de securitate componente secializate pentru managementul resurselor autorizare acces, autentificare Securitate lipsa unui punct unic de control Mesaje furate, modificate, serviciile interzise =>solutii criptografice

63

Sistem deschis
Sistem deschis - poate interactiona cu servicii ( interfete) oferite de alte sisteme deschise, indiferent de infrastructura, independent de heterogeneitatea HW/SW sau de limbaj. Caracteristici: Sistemul este conform unor interfete predefinite, publice Este asigurata conformitatea componentelor sale cu standarde publice (implementat folosind componente testate pentru conformanta) suporta portabilitatea aplicatiei, ofera interoperabilitate poate fi usor extins/ modificat/reimplementat Concept corelat cu cele de interoperabilitate/portabilitate

Standardizare ( ISO/ ITU RM-ODP ) permite interoperabilitate ( integrare componente Sw/HW) ofera suport pentru portabilitate standarde de facto ( OMG, TINA) , de jure, etc.

64

Modele in sisteme distribuite


Modelul de interactiune procese : modelul client-server si variatii (servere multiple cooperante ce ofera un serviciu, cod mobil, agenti mobili), respectiv modelul peer-to-peer (procesele pereche coopereaza si implementeaza mecanisme de notificare evenimente sau comunicatii de grup). Factori ce afecteaza interactiunea : performanta canalelor,solutiile de comunicare alese: tranzient/persistent , sincron/ asincron Modelul de comunicatie - socketuri / RPC/invocari de metode/transfer de mesaje / bazat pe evenimente/ streamuri Modelul de cadere - procesele si canalele de comunicatie comporta caderi, diverse tipuri de interactiune/ cadere (fail-stop, crash, omisiune ,caderi arbitrare)

Modelul de securitate - presupune securizarea proceselor si a canalelor de comunicatie utilizate in interactiuni, prin protejarea acestora la accese neautorizate (orientate client , respectiv server)
Modelul de programare (calcul ) - a evoluat paralel cu limbajele de programare si cu diversele mecanisme specifice sistemelor de operare/ middleware

65

Modele de comunicatie
Comunicatia caracteristica importanta in proiectarea unui SD (HW/SW), Protocol un set de reguli ( specifica secventa de mesaje schimbate) si formate de date utilizate pentru a implementa comunicatia intre procese, se regasesc in emitator/receptor
IPC : socketuri, invocari remote, mesaje, streamuri ( pentru fiecare exista protcoale specifice, diferite semantici) terminal virtual, transfer
Host A ISO/OSI 1 Aplicatie interfete 2 Prez.
3 Sesiune Transport

Host B
Mesaj

fisiere(FTP,SMTP,RPC)

criptare, compresie, conversie (XDR)


interfata utiliz:directoare, dr. acces, sincro, SO diferite

Mesaj
Mesaj

4
Subretea 5

Mesaj
Pachet Frame Bit

creare pachete, mux/demux, transm.sigura cap la cap rutare, control congestie, internetwork, Ip, X25
limitare frame, control flux, detectare erori( HDLC, Eth)

Retea
Leg. date Fizic

6
7

semnale fizice, cablare

66

Modele de cadere
Model de cadere - definirea modalitatilor de aparitie a defectelor pentru a intelege efectele lor caderi de procese, canale de comunicatie pot fi benigne, arbitrare, de timp
caderi tip crash - oprirea unui host caderi prin omisiune (canal ) - serverul nu raspunde, timeout nu anunta daca procesul/canalul a cazut , omisiune la emisie/receptie ( procese)

cadere proces tip fail stop = procese cad, raman oprite ,alte procese pot detecta caderea
caderi arbitrare ( proces/canal) - manifestari aleatoare transmitere aleatoare de mesaje, opriri de procese, pasi eronatim , caderi datorate unor raspunsuri eronate

caderi datorate depasirii limitei de timp de executie ( de performanta a procesului /canalului)


Tehnici de detectare/mascare/tolerare ( redundanta) /recuperare
67

Modele de numire entitati


Resursele in SD - accesate bazat pe identificatori / referinte
identificatorii pot fi stocati/regasiti identificatorii includ / pot fi transformati in adrese de entitati (obiecte) Nume string ce referentiaza entitati , poate fi rezolvat la un identificator/adresa (nume de domeniu Internet, cai de fisiere, numar de proces) , este preferabil identificatorului Nume independent de locatie - e independent de adresele punctelor de acces Identificatori unici refera o singura entitate in SD Nume de resurse sunt rezolvate de servicii Rezolutia de nume/legarea

Sistem de nume - rol important in SD pentru identificare , acces Spatiu de nume cerinte : structurat, sa permita restructurarea arborilor de nume
Servicii de nume distribuite leaga numele resursei de adresa sa , permit rezolvarea numelui( ofera adresa si alte atribute) ex. DNS Internet, X500, etc
68

Modele de programare
Model de programare - conceptualizarea masinii fizice utilizata de programator la nivel de aplicatii modul in care elementele fizice coopereaza si isi coordoneaza activitatile specificarea activitatilor de comunicare si sincronizare
Model clasic de programare : multiprogramare concept ce reflecta inexistenta comunicarii sau sincronizarilor la nivel de program Modele de programare actuale:

Spatiu de adrese partajat acces partajat la date Transfer de mesaje - comunicare explicita punct la punct
69

Modelul spaiului de memorie partajat


set de adrese de memorie partajate de procesoare comunicatie Implicita bazata pe Memorie orice procesor poate referi direct orice locatie de M scrierile in spatiul de adrese partajat sunt vizibile celorlalte procese/threaduri operatii speciale , atomice pentru sincronizare si comunicare arhitecturi cuplate strans

Limitari : cresterea numarului de procesoare conduce la necesitatea implementarii unori mecanisme care sa rezolve accesele concurente la acceasi locatie de memorie
70

Modelul transferului de mesaje


comunicatie bazata pe operatii I/O explicite usor de proiectat , mult mai scalabile Modelul de programare acces direct doar la spatiul de adrese private (M locala) comunicatia bazata pe mesaje explicite (send/receive) bazat pe biblioteci, primitive

71

Abstraciunea Message-Passing

Match t Receive ,

Y, P,t
Adresa Y

Send X, Q, t Spatiu de adrese local

Adresa x

Spatiu de adrese local Pr oces P

Proces Q

primitiva Send specifica buferul pentru transmisie si procesul receptor primitiva Recv specifica procesul emitator si spatiul de stocare la nivel aplicatie copie memorie-memorie, procesele necesita numire Tag optional in procesul emitator si regula de matching la receptor procesele utilizator numesc datele locale si entitatile in procese. potrivirea send/receive realizeaza si sincronizarea

72

Modele de interactiune
Modelul obiectual Obiect = resursa partajata , poseda identitate unica, se afla in server si ofera facilitati de acces la distanta obiectul client poseda un proxy implementarea interfetei obiectului pot fi colocate in alte hosturi mentinand identitatea ( migrare obiecte) Observatii distinctie minimalista intre servere - clienti , reflecta modelul de interactiune peer to peer ( un obiect poate fi client/server, solicita servicii altor obiecte) nivelul middleware implementeaza mecanisme de localizare a obiectelor si de comunicare/interactiune

Modelul cod la cerere clientul poseda resursele si va efectua procesarea , serverul detine codul/aplicatia ( Know-how , ex. appleti Java) pe care il transfera la cerere clientului Modelul agenti mobili ofera flexibilitate crescuta in implementarea aplicatiilor distribuite orice nod in sistem poseda resursele/ aplicatia (componente) , agentii 73 mobili - refera cod disponibil oriunde in retea.

Modele de platforme
Modelul minicomputer Modelul workstation Modelul workstation-server Modelul processor-pool Modelul cluster Modelul grid computing

74

Modelul minicomputer
Minicomputer

Minicomputer

ARPA net

Minicomputer

reprezint o extensie a sistemelor clasice cu partajarea timpului dup logarea pe sistemul propriu, e posibil i accesul remote la alte procesoare (telnet) resursele partajate reprezint baze de date sau dispozitive de mare performan.

75

Modelul Workstation
Workstation Workstation

100Gbps LAN

Workstation

Workstation

Workstation

bazat pe migrarea proceselor n sistem anumite joburi pot migra de pe staiile ncrcate pe alte staii modelul ridic o serie de probleme ntre care identificarea unei staii neocupate, mecanisme necesare migrrii, etc.

76

Modelul Workstation-Server
presupune existena unor staii simple pentru procesare local a aplicaiilor interactive , iar operaii de acces la fiiere, tiprire, http sunt transferate unor servere specializate. Serverele sunt sisteme puternice fiecare dedicat unui anumit tip de serviciu. Modelul de comunicaie client - server tip apel de procedur la distan sau invocare remote de obiecte .
MiniComputer
... server

Workstation

Workstation
100Gbps LAN

Workstation

file server

MiniComputer

http server

MiniComputer

Modalitatea de interaciune este realizat prin apelul procesului server de ctre procesul client, fr a presupune migrare.
77

Modelul Ferma de procesoare


terminale diskless
toate serviciile oferite n sistem sunt distribuite tuturor serverelor existente
100Gbps LAN

pentru fiecare utilizator va putea fi alocat numrul necesar de procesoare.

Server 1

Server N

asigur o mai bun utilizare ns cu preul reducerii interactivitii.

78

Modelul Cluster
Workstation

Workstation 100Gbps LAN

Workstation

serverul conine staii sau sisteme personale conectate printr-o reea de mare vitez, avnd drept scop performan oferit aplicaiilor - pot procesa cereri n paralel.

http server2 http server N

http server1

Master Slave node 1

Slave 2

Slave N

1Gbps SAN

79

Modelul grid
Workstation

a aprut n intenia de a colecta puterea de calcul a sistemelor tip supercomputer, i a clusterelor distribuite cu scopul de a le oferi ca o resurs unitar de calcul. ofer
calcul distribuit de performan (pentru probleme complexe), debit de procesare ridicat prin integrarea diverselor resurse disponibile de procesare calcul tiinific bazat pe date distribuite calcul colaborativ .

Supercomputer

Minicomputer

Cluster Retea de mare performanta Supercomputer

Cluster

Workstation

Workstation

80

Modele computationale - Modelul Client-Server


File server DNS server
Client invocation result

HTTP server
Server

invocation result

Server

Client Key: Process: Computer:


Workstation Workstation 100Gbps LAN MiniMiniMiniComputer Computer Computer file server http server cycle server Workstation

81

Structuri de servere
Service

Server Client

Replication Availability Performance


Server

Client
Workstation

Server
Workstation

Workstation

100Gbps LAN

Master Slave Slave node 1 2

Slave N

Ex. altavista.digital.com DB server

1Gbps SAN

82

Servere proxy si cache


Client Proxy server Web server

Client

Ex. Internet Service Provider

Web server

Workstation

Workstation
100Gbps LAN

Workstation

Master node

Slave 1

Slave 2

Slave N

1Gbps SAN

83

Procese peer

Application Coordination code

Application Coordination code

Application Coordination code

Distributed whiteboard application

Workstation

Workstation
Workstation

100Gbps LAN

Workstation Workstation

84

Cod mobil , agenti

a) client request results in the downloading of applet code

Client Applet code b) client interacts with the applet

Web server

Client

Applet

Web server

Workstation Workstation 100Gbps LAN MiniMiniMiniComputer Computer Computer file server http server cycle server Workstation

85

Clienti Thin
X11 Diskless workstations

Network computer or PC Thin Client

Compute server

network

Application Process

Workstation

Workstation

Workstation 100Gbps LAN

100Gbps LAN

Master node Server 1 Server N

Slave 1

Slave 2

Slave N

1Gbps SAN

86

The Power of the Internet


(Source: www.cisco.com)/2012

DOMAIN NAMES: There are 12,844,877 unique domain names (e.g. Cisco.com) registered worldwide, with 428,023 new domain names registered each week. (NetNames Statistics 12/28/1999). BACKBONE CAPACITY: The capacity of the Internet backbone to carry information is doubling every 100 days. (U.S. Internet Council, Apr. 2004). DATA TRAFFIC SURPASSING VOICE: Voice traffic is growing at 10% per year or less, while data traffic is conservatively estimated to be growing at 125% per year, meaning voice will be less than 1% of the total traffic by 2007. (Technology Futures, Inc March 2000). HOST COMPUTERS: In July 1999 there were 56.2 million "host" computers supporting web pages. In July 1997 there were 19.5 million host computers, with 3.2 million hosts in July 1994, and a mere 80,000 in July 1989. (Internet Software Consortium Internet Domain Survey). TOTAL AMOUNT OF DATA: 1,570,000,000 pages, 29,400,000,000,000 bytes of text, 353,000,000 images, and 5,880,000,000,000 bytes of image data. (The Censorware Project, Jan. 26, 1999). EMAIL VOLUME: Average U.S. consumer will receive 1,600 commercial email messages in 2005, up from 40 in 1999, while non-marketing and personal correspondence will more than double from approximately 1,750 emails per year in 1999 to almost 4,000 in 2005 (Jupiter Communications, May 2000). 159 million computers in the U.S., 135 million in EU, and 116 million in Asia Pacific (as of April 2000). WEB HITS/DAY: U.S. web pages averaged one billion hits per day (aggregate) in October 87 1999. (eMarketer/Media Metrix, Nov. 1999).

Google
the Google cluster has the following stats:

359 racks
31,654 machines

63,184 CPUs
126,368 Ghz - processing power

63,184 Gb of RAM
2,527 Tb of Hard Drive space

sursa www.top500.org/2012
88

The network really is the computer.

Tim OReilly, in an address at 6/2000 Java One: By now, it's a truism that the Internet runs on open source. Bind, the Berkeley Internet Name Daemon, is the single most mission critical program on the Internet, followed closely by Sendmail and Apache, open source servers for two of the Internet's most widely used application protocols, SMTP and HTTP. Early killer apps: - usenet: distributed bulletin board - email - talk Recent killer apps: - the web - collaborative computing

89

The Case of Facebook


The new Facebook data center in Prineville, Oregon. The new servers have been redesigned are networked, for energy efficiency, speedup and for fault-tolerance.

user
The set up mimics clientserver kind of operation, with the servers having a high level of parallelism. However, the network of servers may also be viewed as a distributed system.

user
user
30,000 servers

17

Example

A record of email communication among 4360 employees of one of the Hewlett Packard Research Labs during the completion of a project. It is a trivial example of a distributed system.
2

Paralel vs distribuit

Sisteme paralele Memoria


Sisteme cuplate strans

Sisteme distribuite
Sisteme cuplate larg ,memoria distribuita,transfer de mesaje,paradigme RPC/RMI sisteme de obiecte, DSM)
Nu exist control unic

Control Interconectare

Control unic Tbps (Bus, mesh, tree, hipercub) Performanta Calcul stiintific

Gbps Ethernet, token ring ,SCI , Myrinet) Disponibilitate/siguranta functionarii , partajare info si resurse , performanta

Scop

92

Concluzii
Calcul paralel
Procese cooperante n rezolvarea unui obiectiv comun - task, fie acestea implementate pe procesoare virtuale sau separate fizic.
Scop : obtinerea performantei Performanta timp de raspuns al sistemului la un anumit grad de incarcare Dificultati de abstractizare a conceptelor de paralelism - la nivelul unui program, procedura, instructiune Paralelizare automat prin compilatoare sau/si la nivelul algoritmului

Calcul distribuit
numar arbitrar de sisteme si procese, comunic prin mesaje sistem de control deschis Scop partajarea resurselor i reducerea costurilor pentru probleme complexe, pe retele de calculatoare
Pentru ca un sistem sa fie distribuit e necesar ca toate dimensiunile sa comporte distributie => complexitate Dimensiunile distributiei poate reflecta distribuirea aplicatiei sau descompunerea functionala a sistemului (resursele fizice sau logice pot fi distribuite) strategia de control poate fi centralizata sau distribuita datele (controlate de sistem / aplicatie ) distribuite

93

END
Multumesc Q&A

FINE

Bibliografie Introduction to parallel computing -V.Kumar (cap1 ) Distributed systems,prociples,algoritms,systems-M. Singhal (cap1)
94

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