Documente Academic
Documente Profesional
Documente Cultură
1 2013 CPD Introducere
1 2013 CPD 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
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
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
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)
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
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
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
P0
Proces P0
P0 P1
P2
P1 P0
Proces P1
P2 P1
P0
P2
Proces P2 T
P2
T
16
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
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
Modul 1
Modul 2
Modul 3
Modul P - 1
Modul P
Modul 1
Modul 2
Modul 3
Modul P - 1
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
2.
3.
31
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
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
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
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
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
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
Internet
Host intranet
Wireless LAN
WAP gateway
Home intranet
Sisteme Batch
1960s-1970s
1969-1973 1960-1980
Multics, IBM360
ARPAnet, Ethernet PDP, VAX
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.
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
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
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
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
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
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
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
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)
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
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
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
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
71
Abstraciunea Message-Passing
Match t Receive ,
Y, P,t
Adresa Y
Adresa x
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
Server 1
Server N
78
Modelul Cluster
Workstation
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 server1
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
Workstation
Workstation
80
HTTP server
Server
invocation result
Server
81
Structuri de servere
Service
Server Client
Client
Workstation
Server
Workstation
Workstation
100Gbps LAN
Slave N
1Gbps SAN
82
Client
Web server
Workstation
Workstation
100Gbps LAN
Workstation
Master node
Slave 1
Slave 2
Slave N
1Gbps SAN
83
Procese peer
Workstation
Workstation
Workstation
100Gbps LAN
Workstation Workstation
84
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
Compute server
network
Application Process
Workstation
Workstation
100Gbps LAN
Slave 1
Slave 2
Slave N
1Gbps SAN
86
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
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
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 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