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.
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)
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),
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.
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.
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 modelulpeer-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 modelulpeer-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 Implicitabazata 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
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.
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