Sunteți pe pagina 1din 23

Calcul Paralel i

Distribuit
C O N F. D R. C R I S T I A N K E VO RC H I A N
FAC U LTAT E A D E M AT E M AT I C I I N F O R M AT I C
U N I V E R S I TAT E A B U C U R E T I

Teorema CAP

Consistenta-toate nodurile vad aceleasi date in acelasi timp


Fiecare client poate scrie sau citi permanent.
Sistemul functioneaza bine in ciuda partitionarii retei fizice.

Paradigme de calcul
Putem identifica dou paradigme de calcul:
Calculul secvenial(1940)
Paralel i distribuit(1955)
Patru elemente importante marcheza ciclul de via al calculabilitii:
Arhitectura
Compilatoarele
Aplicaiile
Medii pentru problem-solving

Paralel vs. Distribuit


Calculabilitate paralel=procesarea de task-uri
multiple simultan pe mai multe procesoare.
Program paralel=mai multe procese(task-uri)
executate simultan in vederea rezolvarii unei probleme
date.
Un task este subdivizat n mai multe sub-taskuri
utiliznd o tehnic divide-et-impera i fiecare task este
procesat pe un CPU diferit.

Factori ce influeneaz procesele paralele


Arhitecturile secveniale sunt dominate de limitri fizice cum ar fi cele generate
de viteza luminii i legile termodinamicii. Viteza la care un CPU secvenial poate
opera are o crestere limitat. Varianta disponibil de cretere a vitezei fiind cea
de conectare a mai multor CPU-uri.
mbuntirea hardware pe baz de pipelineing, superscaling i altele sunt
nanoscalabile i cer tehnologii de compilare avansate.
Procesarea vectorial funcioneaz bine numai pentru anumite clase de
probleme. Potrivit fiind problemelor tiinifice (multe operatii matriciale) i
procesare grafic. Nu este potrivit lucrului cu baze de date.
Tehnologia procesrii paralele este matur i poate fi exploatat comercial
O dezvoltare semnificativ au cunoscut-o i tehnologiile din zona reelelor lucru
care a dat posibilitatea dezvoltrii calculului eterogen.

Arhitecturi Hardware pentru Procesare Paralela


Bazate pe numrul de instruciuni i stream-urile
de date procesate simultan de CPU, sistemele de
calcul pot fi clasificate astfel:
Sisteme SISD(Single Instruction, Single Data)
Sisteme SIMD(Single Instruction, Multiple Data)
Sisteme MISD(Multiple Instruction, Single Data)
Sisteme MIMD(Multiple Instruction, Multiple Data)

Sisteme SISD
Este o main capabil s execute o singur instruciune
care opereaz un singur stream de date.
Instruciunile mainii SISD sunt procesate secvenial(de ici
denumirea de calculatoare secveniale)
Toate instruciunile i datele trebuie incarcate n memoria
primara. Viteza de procesare este limitat de rata de
transfer intern a informaiilor.
SSID este reprezentat de clasa IBM-PC, Macintosh i staii
de lucru.

Arhitectura SISD

Sisteme SIMD
Este o main multiprocesor capabil s execute aceiai instruciune pe toate
CPU dar opernd diferite stream-uri de date.
Masinile din aceast categorie sunt potrivite calculului tiinific din moment ce
efectueaz masive operatii cu vectori i matrici.
De exemplu o instruciune de tipul :
*
poate fi transferat tuturor elementelor de procesare(EP) cu datele organizate ca
vectori(A i B) divizai n multiple mulimi i unde fiecare EP poate procesa o
mulime de date.
Reprezentative pentru aceast categorie sunt sistemele Cray (masina cu
procesare vectorial) i Thinking Machine.

Arhitectura SIMD

Sisteme MISD

Sistemele de calcul MISD sunt sisteme multiprocesor capabile s execute


diferite instruciuni pe diferite EP, dar toate operaiile pe acelai set de date.
Pentru exemplificare considerm :
realizeaz operaii diferite pe acelai set de date.
Mainile din aceast categorie nu au avut o int comercial, fiind numai
importante cercetri n domeniul TCS.

Arhitectura MISD

Sisteme MIMD
Un sistem MIMD este o main multiprocesor capabil
s execute multiple instruciuni pe multiple seturi de
date. Pentru fiecare EP(elemente de procesare)
instruciunile i datele sunt separatet n procesare n
modelul MIMD, iar de aici rezult caracterul general
unde pot fi folosite aceste masini.

Spre deosebire de SIMD i MISD, MIMD lucreaz


asincron.
Sistemele MIMD se mpart n dou categorii mari:
o MIMD cu memorie-partajat
o MIMD cu memorie distribuit

Arhitectura MIMD

Forme de distribuire a memoriei


1. MIMD cu memorie-partajat
Toate EP sunt conectate la o singur memorie global pe care o partajeaz. Sistemele bazate pe
acest model sunt denumite TCMS(Tightly Coupled Multiprocessor System). Comunicarea ntre EP se
realizeaz prin intermediul memoriei partajate.
Caracteristice pentru acest tip de maina sunt: Silicon Graphics i Simetric Multi-Processor.

2. MIMD cu memorie-partajat
Toate EP au o memorie local.Sistemele de acest tip se mai numesc i LCMS(Loosely Coupled
Multiprocessor Systems). Comunicarea dintre EP este de tip reea(canalele de comunicare ntre
procesoare sau IPC(Interprocess Communication Chanell). Conexiunea EP-urilor poate fi configurat
de tip tree, mesh, cube,etc. Fiecare EP opereaz asincron. Dac comunicaia/sincronizarea
dintre task-uri este necesar se poate realiza prin schimbul de mesajedintre acestea.
Arhitectura MIMD este usor de programat dar este putin toleranta la erori si dificil de extins cu
respectarea memoriei distribuite. Erorile de la nivelul memoriei-partajate afecteaz ntregul sistem.
In varianta distribuit izolarea este mai uor de realizat, fapt care a facut sa-i creasca popularitatea.

Arhitecturi MIMD(distributia memoriei)

Implementarea Paralelismului
Viteza de calcul este proporional cu rdcina ptrat a costului sistemului.
Creterea nu este niciodat linear.
Viteza unui sistem paralel crete dup logaritmul numrului de
procesoare(y=k*log(N))

Calcul distribuit Tanenbaum


Un sistem distribuit este o colecie de calculatoare independente care apar
utilizatorului drept un unic sistem coerent(Tanenbaum).
Un sistem distribuit este rezultatul interaciunii dintre cteva componente ale
stivei destinata proceselor de calcul de la hardware la software

Nivelele de Distribuire
Nivelul de baz-hardware, calculatoare i reele-constituie infrastructura,
managementul acestor componente se realizeaz de ctre sistemul de
operare care furnizeaz serviciile pentru comunicarea ntre procese(IPC),
managementul si programarea proceselor, managementul sistemului de
fisiere i device-urile locale.
Utilizarea standardelor la nivelul sistemului de operare i chiar la nivelul
hardware si networking. La nivelul sistemului de operare serviciile IPC sunt
implementate la virful stivei de protocoale de comunicatie,
TCP/IP(Transmission Control Protocol/Internet Protocol), UDP(User Data Gram
Protocol)
Nivelul middleware grupeaz servicii pentru a crea un mediu unitar pentru
dezvoltarea i deployment-ul aplicaiilor distribuite.
La cel mai nalt nivel al stivei sistemului distribuit sunt plasate aplicaiile i
serviciile proiectate i dezvoltate sa utilizeze middleware-ul

Ex. Cloud Computing


IN CONTEXT CLOUD COMPUTING
TEHNOLOGIILE WEB SUNT
PRIORITARE

AWS prin IaaS este un bun exemplu n acest sens, care permite
crearea de masini virtuale organizndu-le ntr-un cluster i realiznd
deployment-ul aplicaiilor n vrful stivei.

UN SISTEM DISTRIBUIT PESTE CLOUD

Tehnologii pentru calcul


distribuit
o RPC(Remote Procedure Call-1976)-abstracie
fundamental care permite execuia unei
proceduri la solicitarea unui client.
o Extinde apelul procedurii dincolo de limitele
procesului si a unui singur spatiu de memorie
o Procedura apelat i cea care apeleaz se pot
gsi n acelasi sistem sau in sisteme diferite din
retea.
o Marshalling, Unmarchaling transmiterea
datelor ntre procese RPC
o RPC a fost o tehnologie dominant pentru IPC
suportat de majoritatea mrdiilor de programare
de programare. De exemplu JAVA-RMI, RPyC in
Pyton, XML-RPC.NET.

Obiecte Distribuite
o Programarea cu obiecte distribuite este un atribut n contextul utilizrii limbajelor de
programare C# i Java, semn al maturizrii acestei tehnologii.
o CORBA(Common Object Request Broker Arhitecture)-arhitectur introdus de OMG(Object
Management Grup) pentru a furniza interoperabilitate coss-language i cross-platform. O
componenta de baza a arhitecturii este ORB(Object Request Broker) o magistral central de
obiecte. Peste internet se utilizeaz protocolul Internet Inter-ORB(IIOP), care standardizeaz
interaciunea diverselor implementri ORB.
o DCOM/COM+ este soluia Microsoft la distribuia de obiecte. DCOM introduce o familie de
funcionaliti pentru distribuirea de obiecte n regim programabil nainte de tehnologia .NET i
care permite utilizarea COM dincolo de graniele proiectului. Arhitectura DCOM este
asemntoare CORBA. Un server de obiecte DCOM expune interfee reprezentnd diverse
comportamente ale obiectelor. Invocarea unei metode expuse de interfa implic obinerea
unui pointer de la interfat i utilizarea lui prin maparea la un pointer oferit de un obiect al
spatiului de adrese ale clientului. Solutia adoptata in industrie s-a transformat in Web Services.

V
mulumesc!

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