Concepte introductive



Yüklə 482 b.
tarix30.07.2018
ölçüsü482 b.
#63045





Concepte introductive

  • Concepte introductive

    • Introducere în procesarea paralelă şi distribuită . Taxonomii în calculul paralel şi distribuit. Modele şi paradigme ale procesării paralele  şi distribuite
  • II. Calcul paralel

    • Scalabilitate şi performanţă in sisteme cu procesoare multiple. Legile accelerării performanţei. 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)
    • Modele de calcul paralel si comunicatie. Sisteme de memorie.Retele statice si dinamice. Comunicaţiile şi rutarea in sisteme multiprocesor . Topologii, canale şi reţele virtuale , tehnici de transmisie pentru operaţiuni de comunicatie de grup. 


III. Calcul distribuit

  • III. Calcul distribuit

    • Modele fundamentale în calculul distribuit : interactiune, comunicare, procesare, cadere  .Principii .Caracteristici .
    • Timp și Sincronizare :ceasuri fizice si logice
    • Excludere mutuala distribuita , snapshot distribuit
    • Ordonare cauzala a evenimentelor
    • Stări gobale
    • Alegere leader (proces)
    • Alti algoritmi distribuiti
    • Auxiliar
    • Consistenţă şi replicare: modele si protocoale .
    • Toleranta la erori in sisteme distribuite.
    • Sisteme cu memorie partajata distribuita, Structuri P2P
    • Clustere şi griduri computaţionale


  • 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

  • Referat individual – prezentat public

  • Teme 20% (6 sapt)

  • Proiect 30% (4 sapt )

  • Referat 20% (2 sapt)

  • Examen 30%

    • toate modalitatile de evaluare sunt obligatorii
    • ponderea specificata, notare distincta, 50%


prima generaţie (1956) - CPU, VF, PC, CPU implicată în toate operaţiile de acces la memorie şi de I/O, masini cu acumulator, limbaj de asamblare (Eniac, IBM701)

  • prima generaţie (1956) - CPU, VF, PC, CPU implicată în toate operaţiile de acces la memorie şi de I/O, masini cu acumulator, limbaj de asamblare (Eniac, IBM701)

  • a doua generaţie (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 generaţie (1978)- control microprogamat, pipelining şi memorii cache , SO time- sharing ce folosesc memoria virtuală (IBM 360, CDC 6600 PDP8).

  • a patra generaţie (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 generaţie (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)



Sisteme de calcul cu mai multe elemente de procesare

  • Sisteme de calcul cu mai multe elemente de procesare

  • Procesare paralela – executia rapida (t<<<) a unor probleme de calcul pe masini cu mai multe procesoare ce lucreaza in maniera bine coordonata

    • Sisteme cuplate strans (distanţa î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 (reţele de calculatoare, multicalculatoare)






Evolutia arhitecturilor

  • 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


Era calculatoarelor seriale (IBM Mainframe)

  • 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

  • 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







“Mai repede, mai mult”

  • “Mai repede, mai mult”



Algoritm secvential: specifica executia secventiala a unui set de instructiuni

  • 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 procesor – proces.



Influenta aplicatiei asupra arhitecturii

  • 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



Compuse din taskuri.

  • Compuse din taskuri.

  • In aplicatii cu grad nenul de paralelism unele taskuri ruleaza in paralel.

  • Caracteristici

    • granularitate
    • grad de paralelism
    • nivelul de paralelism
    • interdependenta datelor


Granularitatea unui task

  • Granularitatea unui task

  • Dependenta de:

  • R – durata de executie (runtime)

  • C – durata comunicarii

  • Granularitate grosiera: R > > C

  • Granularitate fina: R < < C

  • Granularitate medie: R si C – comparabile



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)


  • Aplicatie seriala







Obiectivele clasificarilor ( taxonomiilor) :

  • 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.


Control – driven:

  • 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.
  • Demand – driven:

    • Executia unei instructiuni este activata atunci cand rezultatul executiei ei este cerut de o instructiune deja activata pentru executie.








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

  • 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)



Viteza mare de prelucrare, daca prelucrarea poate fi descompusa in fire paralele, TOATE procesoarele prelucrand simultan

  • 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



Planificarea procesoarelor: alocarea eficienta a taskurilor la procesoarele din sistem intr-o maniera dinamica, pe durata evolutiei prelucrarii

  • 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



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.

  • 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













Cluster de statii SMPs (CLUMP ) (ASCI Red (Intel), ...

  • 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).





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

  • Modelul COMA ( Cache Only Memory Acces)

  • M principale devin cache, coerenţa prin structuri de “directoare cache” distribuite









Def1. (Tannenbaum) - o colectie de computere independente ce apare ca un sistem unic, coerent utilizatorilor sai – greu de realizat

    • 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.




    • 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


Economice

  • 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



In dezvoltarea de sistem => set de false ipoteze

    • 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


  • 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.



Descentralizare /distributie

  • 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 ( cod mobil),
    • coordonare distribuita,
    • documente partajate,
    • sisteme publish&subscribe,
    • obiecte distribuite,servicii web


Sistem deschis - poate interactiona cu servicii ( interfete) oferite de alte sisteme deschise, indiferent de infrastructura, independent de heterogeneitatea HW/SW sau de limbaj.

  • 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.


Heterogeneitate

  • 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


Toleranta la erori- sistemul va opera chiar in prezenta erorilor =>determina modalitatea de proiectare a sistemului distribuit

  • 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




Motivare – aplicatii in retea greu de integrat

  • 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



Servicii middleware

    • 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)


heterogeneitate ( HW, SW)/ numar de procesoare ( noduri in sistem)

    • 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


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)

  • 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.


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).

  • 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







Model de programare - conceptualizarea masinii fizice utilizata de programator la nivel de aplicatii

  • 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


set de adrese de memorie partajate de procesoare

  • 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 complexe care sa rezolve accesele concurente la acceasi locatie de memorie


comunicatie bazata pe operatii I/O explicite

    • 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 (MPI, PVM)



primitiva Send specifica buferul pentru transmisie si procesul receptor

    • 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


Modelul obiectual

    • 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 mobili - refera cod disponibil oriunde in retea.


Modelul minicomputer

  • Modelul minicomputer

  • Modelul workstation

  • Modelul workstation-server

  • Modelul processor-pool

  • Modelul cluster

  • Modelul grid computing



reprezintă o extensie a sistemelor clasice cu partajarea timpului

  • 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ţă.



bazat pe migrarea proceselor în sistem

  • bazat pe migrarea proceselor în sistem

  • anumite joburi pot migra de pe staţiile încărcate pe alte staţii

  • modelul ridică o serie de probleme între care identificarea unei staţii neocupate, mecanisme necesare migrării, etc.



presupune existenţa unor staţii simple pentru procesare locală a aplicaţiilor interactive , iar operaţii de acces la fişiere, tipărire, http sunt transferate unor servere specializate.

  • presupune existenţa unor staţii simple pentru procesare locală a aplicaţiilor interactive , iar operaţii de acces la fişiere, tipărire, http sunt transferate unor servere specializate.

  • Serverele sunt sisteme puternice fiecare dedicat unui anumit tip de serviciu.

  • Modelul de comunicaţie client - server - tip apel de procedură la distanţă sau invocare remote de obiecte .

  • Modalitatea de interacţiune este realizată prin apelul procesului server de către procesul client, fără a presupune migrare.



terminale diskless

  • terminale diskless

  • toate serviciile oferite în sistem sunt distribuite tuturor serverelor existente

  • pentru fiecare utilizator va putea fi alocat numărul necesar de procesoare.

  • asigură o mai bună utilizare însă cu preţul reducerii interactivităţii.



  • serverul conţine staţii sau sisteme personale conectate printr-o reţea de mare viteză, având drept scop performanţă oferită aplicaţiilor - pot procesa cereri în paralel.



a apărut în intenţia 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.

    • a apărut în intenţia 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 ştiinţific bazat pe date distribuite
        • calcul colaborativ .














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).

  • 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 1999. (eMarketer/Media Metrix, Nov. 1999).



the Google cluster has the following stats:

  • 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



Tim O’Reilly, in an address at 6/2000 Java One:

  • Tim O’Reilly, 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









Calcul paralel

  • 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


Yüklə 482 b.

Dostları ilə paylaş:




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©muhaz.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin