framework pentru aplicaţii de calcul distribuit
DESCRIPTION
Framework pentru aplicaţii de calcul distribuit. Framework-ul DCalc. Reducerea timpului de evaluare a unei probleme Maximizarea performanţelor prin execuţie paralelă şi distribuită Folosirea resurselor puţin utilizate în companii / instituţii Minimizarea costurilor - PowerPoint PPT PresentationTRANSCRIPT
Framework pentru aplicaţii de calcul distribuit
Framework-ul DCalc
Scopul proiectului Premise de implementare
Reducerea timpului de evaluare a unei probleme
Maximizarea performanţelor prin execuţie paralelă şi distribuită
Folosirea resurselor puţin utilizate în companii / instituţii
Minimizarea costurilor Alte sisteme distribuite
asemănătoare: JPPF (Java Paralel
Programming Framework) LAM (Local Area
Multicomputer)
Structură de tip framework
Stabilitate Flexibilitate Extensibilitate Simplu integrabil
Sisteme de calcul paralel
Sisteme multi-procesor Sisteme multi-computer
Distribuţie Paralelism
PROBLEMĂ
CALC CALC
CPU CPU CPU CPU
Platformă şi tehnologii
Framework-ul .NET .NET Reflection .NET CodeDom TCP Sockets HTTP XML
Algoritmi Probleme acceptate
Interfaţa IScript Interfaţa
IAlgorithm Interfaţa
IAlgorithmProvider Clasa ScalarSet Tipuri de date
acceptate
Probleme natural paralelizabile
Preferarea funcţiilor pure
Principiul “divide and conquer”
Compilarea dinamică
Interfaţa IScriptAssembler Interfaţa ICompileScript Clasa CSharpScriptAssembler Clasa DotNetCompiledScript Utilizarea unui nou Application
Domain
Evaluarea datelor Distribuţia
Interfaţa IRunner
Clasa LocalMachineRunner
Cozile de execuţie Interfaţa IWorkQueue Clasele WorkQueue şi
ThreadedWorkQueue
Clasa RemoteMachineRunner
Conceptul de “poartă” şi interfeţele IRemoteGateClient, IRemoteGateServer
Comunicarea prin protocolul HTTP
Comunicarea prin protocolul TCP
Împachetarea datelor
Module de echilibrare Dispecerul ale încărcării
Echilibrarea cozilor de execuţie
Echilibrarea între calculatoare
Interfaţa ILoadBalancer
Metoda Round-Robin Metoda “corectă” Metoda “corectă” cu
puncte de penalizare
Mod simplificat de acces a facilităţilor oferite de framework
DataPlanner – planificatorul de date
Firul de auto-reglare Moduri de rulare:
Doar local Doar la distanţă Combinat
Principiul de funcţionare client
Algorithm Provider
Algorithm
Dispatcher
Data Planner
Load Balancing
Runner (Http)
Runner (Local)
Threaded Work Queue
Queue
Queue
Remote machine
Script Assembler
Load Balancing
Threaded Work Queue
Queue
Queue
Script Assembler
Load Balancing
Listener Service
Client Output Queue
Runner(Local)
Client registration data store
Principiul de funcţionare server
Avantajele sistemului DCalc Distribuţia algoritmilor în forma “cod sursă”
permite utilizarea unui mediu ne-omogen Posibilitatea implementării unui număr larg de
module de asamblare specifice fiecărui limbaj Execuţia algoritmului compilat într-un Application
Domain separat ce sporeşte robusteţea sistemului Framework-ul poate fi extins pentru un număr mai
larg de probleme, cum ar fi grupul de probleme MapReduce
Adăugarea noilor probleme sub formă de “plug-in” Posibilitatea implementării unui server DCalc cu
câteva linii de cod Practic orice componentă din framework poate fi
schimbată sau rescrisă
Dezavantajele sistemului DCalc
Securitatea scăzută în cadrul comunicării pe reţea, se recomandă utilizarea unei reţele închise;
Are sens utilizarea acestui framework doar pentru evaluarea problemelor intensiv computaţionale;
Necesită o reţea ce permite viteze mari de transfer;
Nu poate fi utilizat în cazul problemelor ce necesită comunicare nod la nod.
Concluzii
Framework-ul DCalc oferă toate facilităţile necesare rezolvării problemelor natural paralelizabile doar prin adăugarea unor noi “plug-in”-uri;
DCalc poate fi extins şi pentru rezolvarea problemelor mai complexe;
DCalc permite creşterea vizibilă a performanţelor de calcul prin adăugarea unui nod nou în reţea;
DCalc are sens utilizarea framework-ului doar pentru probleme intensiv computaţionale.