PRELUCRAREA VOLUMELOR MARI DE DATE CURS 4 SCALABILITATE
PRELUCRAREA VOLUMELOR MARI DE DATE CURS 4: SCALABILITATE: ALGORITM + DATE + HARDWARE Conf. Univ. Dr. Habil. Marc FRÎNCU marc. frincu@e-uvt. ro
SCALABILITATE Abilitatea unui sistem de a gestiona un volum tot mai mare de muncă Capacitatea unui sistem de a crește pentru a procesa volume mari Ideal dublând resursele unui sistem se dublează volumul de lucru procesat per unitatea de timp λ - panta
SCALABILITATE Orizontală (in/out) Adăugarea mai multor noduri de procesare în paralel cu cele existente � Commonity clusters � � Set de calculatoare interconectate prin tehnologii gen Gigabit, Infiniband, Myrinet Necesită replicarea datelor și software adecvat pentru sincronizare, comunicare Verticală (up/down) Adăugarea mai multor resurse pe noduri existente � Virtualizare � � Alocarea de mai multe core-uri, RAM, disc, etc. unei mașini virtuale Calculul pe cloud (resurse la cerere) Limitată de capacitatea fizică a unui nod
VIRTUALIZAREA Crearea unei versiuni virtuale (nu fizice) a unui SO, server, dispozitiv de stocare, rețea Permite partajarea aceleiași resurse fizice între mai mulți utilizatori (multi-tenancy) Permite instalarea de software independent de hardware Permite configurarea de imagini de mașini virtuale, instalabile pe o gamă largă de servicii (dispozitive) Mașinile virtuale sunt gestionate de un hypervisor (VMM) Abstracție hardware � SO-ul preia controlul întregului hardware prin intermediul VMM-ului �
VIRTUALIZAREA Stivă software clasică Stivă software virtualizată
CONTAINERE Mașini virtuale lightweight Emulează interfața SO-ului prin interfața nativă Nu există VMM � SO-ul Exemple: � Linux oferă suportul necesar containers, Solaris containers, BSD jails Avantaje � Alocare rapidă � Performanța asemănătoare cu rularea direct pe OS � Lightweight
CONTAINERE
DOCKER Extensie Linux containers (LXC) Numit anterior dot. Cloud namespace � Restricționează ce poate un container să vadă cgroups � Restricționează cât poate un container să folosească dintr-o resursă
SCALABILITATE Scalabilitate tare � Fluctuația timpului de execuție când menținem același volum de date dar creștem numărul de procesoare Scalabilitate slabă � Fluctuația timpului de execuție când creștem numărul de procesoare dar păstrăm volumul de muncă per procesor constant
SCALABILITATE Mit � Cu cât paralelizăm mai mult un cod cu atât el va rula mai repede � Ideal 2 x resurse = 2 x mai repede � În realitate Codul nu este 100% paralelizabil Există comunicare și I/O Resursele sunt limitate Adăugând resurse există o îmbunătățire dar este limitată σ – procentul de cod neparalelizabil
LEGEA SCALABILITĂȚII UNIVERSALE Pe măsură ce un sistem primește mai mult de lucru (load) el va procesa un volum de muncă mai mic (work) k – coeficientul de penalizare a comunicării Punctul critic Dincolo de el nu are rost să mai adăugăm resurse pentru că impactul comunicării este prea mare
EXEMPLE Determinarea comunităților în rețele sociale Predicții meteorologice pe cloud
PREȚUL COMUNICĂRII Comunicare speedup redus Prețul comunicării: mai multe procesoare speedup-ul scade Avantajul procesării hibride Prețul comunicării
AVANTAJUL COMUNICĂRII Exemplu: înmulțirea matricilor � Open. MP � Pentru dimensiuni reduse: memoria partajată are avantaje Pentru dimensiuni mari: aplicația nu mai scalează MPI Pentru dimensiuni reduse: prețul comunicării Pentru dimensiuni mari: scalabilitate (throughput, speedup)
IMPACTUL DATELOR ȘI ALGORITMULUI Pentru aceeași problemă date diferite pot influența scalabilitatea algoritmului Exemplu: procesarea grafurilor � Platformă Amazon EC 2 m 3. large (2 Intel Xeon E 5 -2670 cores, 7. 5 RAM, 100 GB SSD, 1 GB Ethernet) � 2 seturi de date: CARN, WIKI � Numpăr noduri: 3, 6, 9 � 3 algoritmi: Hashtag Aggregation La fiecare pas calculează o statistică a apariției unui hashtag in graf Meme Tracking Analiza răspândirii ideilor sau meme-lor întro rețea socială TDPS (Time Dependent Shortest Path) Folosit în routing La fiecare pas calculează drumul cel mai scurt dintr-un nod la restul considerând ca ponderea unei muchii variază (cu pașii)
IMPACTUL DATELOR ȘI ALGORITMULUI CARN � Diametru mare � Gradul nodurile: uniform WIKI � Diametru mare � Gradul nodurilor: power law Idee � Partiționează graful pe mai multe procesoare Numărul de muchii interprocesor determină impactul comunicării Cu cât numărul de partiții crește cu atât speedup-ul scade dacă algoritmul necesită cumunicare intensă (TPDS, MEME)
IMPACTUL DATELOR ȘI ALGORITMULUI Inițializare I/O Procesare (% paralel) Oprire Exemplu: detecția răspândirii influenței în paralel în rețele sociale
IMPACTUL API-ULUI PARALEL Diverse implementări MPI
IMPACTUL PLATFORMEI HARDWARE Exemplu: predicții meteorologice (WRF) Bluegene scalează bine Raportul nr. procesoare/speedup
SURSE CURS https: //www. slideshare. net/vividcortex/quantifyingscalability-with-the-usl http: //www 1. chapman. edu/~radenski/research/pape rs/mergesort-pdpta 11. pdf https: //arxiv. org/pdf/1012. 2273. pdf http: //serc. iisc. ernet. in/~simmhan/pubs/simmhanipdps-2015. pdf https: //books. google. ro/books? id=Jtha 3 w. RWCk. QC &pg=PA 485&lpg=PA 485 http: //lass. cs. umass. edu/~shenoy/courses/spring 16/ lectures/Lec 06. pdf https: //robinsystems. com/blog/containers-deep-dive -lxc-vs-docker-comparison/
CURSUL VIITOR Analiza datelor � Independente � Dependente Grafuri � Fluxurilor de date Platforme de procesare � Map. Reduce � Spark Streaming � Spark Graph. X
- Slides: 21