Računarski model danas je takav da su svi resursi (RAM, IO/DISK, GPU) direktno fizički povezani na CPU preko zajedničke matične ploče. Ovo ima svoje prednosti, kao što su jednostavno deljenje resursa, direktan pristup resursima preko magistrale i generalna samostalnost računarskog sistema bez mrežne konekcije.
Međutim, ovo ima i svoje značajne nedostatke koji danas sve više dolaze do izražaja:
- Neujednačena iskorišćenost resursa (jedan od resursa može postati usko grlo – npr. RAM memorija zauzeta skoro 100% dok je CPU i/ili disk vrlo malo iskorišćen – što onemogućava pokretanje novih aplikacija).
- Svaki otkaz je fatalan. U slučaju otkaza bilo koje pojedinačne komponente (CPU, matična ploča, ..), ceo sistem prestaje sa radom iako su preostale komponente funkcionalne.
- Smanjena fleksibilnost u pogledu proširenja kapaciteta. Mogućnosti proširenja su iz tehničkih i ekonomskih razloga ograničene i uglavnom se svode na proširenje radne memorije i eventualno diska. U praksi, većina mašina se zapravo zamenjuje posle nekoliko godina novim sistemom.
Ideja disagregacije je da se svaki resurs odvoji u zasebnu jedinicu i da one budu međusobno povezane preko deljene mreže koja menja magistralu(e) na matičnoj ploči. Ovime se koncept specijalizacije dovodi do ekstrema sa idejom da svaka komponenta postigne maksimalnu efikasnost u svom domenu (cena po GB za kapacitet, cena po Mbps za bandwidth i sl.).
Različiti sistemi se mogu izgraditi na ovaj način, tj. različiti scenariji su mogući: udaljeni pristup memoriji (iz pogleda procesora), deljeni storage akcelerator i diskovi, deljeni GPU klaster itd.
Možda se pitate zašto se o ovome uopšte razmišlja? Iz prostog razloga što pod pritiskom eksponencijalnog rasta količine podataka i sve veće potrebe da se podaci procesiraju (analitika, treniranje ML/DL modela i donošenje odluka), klasični računarski sistemi sve više pokazuju svoja (gore navedena) ograničenja. Jasno je da će se trend eksplozije podataka i daljeg omasovljenja primene ML algoritama neumoljivo nastaviti. Problem je počeo da nastaje sa sporim ali sigurnim zamiranjem “Moore-ove zakonitosti” što je dovelo do značajnog sporijeg napretka novih generacija procesora – umesto dupliranja performansi svakih ~2 godine imamo 10-15% ubrzanje*. Između ostalog zato i koristimo GPU za ML/DL aplikacije, namenske akceleratore (TPU za ML/DL, ali i druge kao što su storage, mrežni akceleratori i sl.). Disagregiranu hardversku arhitekturu (DHA) treba shvatiti kao alternativni sistemski dizajn u tom kontekstu.
Prednosti DHA sistema možemo sagledati naspram (gore navedenih) izazova klasičnih računarskih sistema:
- Problem: Neujednačena iskorišćenost resursa.
Rešenje: Veća efikasnost se postiže pomoću agregacije (engl. pooling) i deljenja resursa. - Problem: Svaki otkaz je fatalan.
Rešenje: Otkaz jedne komponente ne utiče na ostatak sistema. Ne dolazi do otkaza kompletnog sistema, nego se samo smanjuje kapacitet jednog resursa sistema. - Problem: Smanjena fleksibilnost u pogledu proširenja kapaciteta.
Rešenje: Omogućena je kompozicija heterogenog hardvera u jednu sistemsku celinu. Ovime je omogućeno korišćenje raznorodnog hardvera i optimalno proširenje samo neophodnih resursa. Takođe je povećana fleksibilnost sistema, što dugoročno omogućava evoluciju hardvera bez potrebe za periodičnim zamenama kompletnog sistema.
Izazovi ovakvog sistemskog dizajna stavljaju mrežu u “centar pažnje” i zahtevaju od nje pre svega nisku latencu i adekvatnu propusnu moć. Ethernet mreže koja “prva pada na pamet”, ima latencu na nivou mikrosekundi (što nije adekvatno za sve scenarije, npr. CPU-RAM komunikaciju), može se koristiti i InfiniBand koji ima latencu na nivou (nekoliko stotina) nanosekundi. Naravno, namenski HPC interkonekti (npr. Cray Shasta) su “prava stvar” :), ali o tome nekom drugom prilikom. Možda čak i optičko (engl. photonic) komutiranje.
Pored mrežnog, suštinski izazov je kako obezbediti koherentan pristup kešu kada je memorija deljena i fizički udaljena od procesora (množina), kao i u slučajevima kada akceleratori lokalno keširaju podatke od udaljene memorije. Za tu svrhu je nastao sijaset novih protokola kao što su CXL, CCIX, Gen Z, …
Standardi su još uvek u nastajanju, ali čini se da je CXL (Compute Express Link) prevladao, barem za sada. CXL je zapravo skup protokola koji funkcionišu “iznad” PCIe magistrale i omogućavaju različite DHA scenarije.
Za kraj, umesto zaključka kojeg nema, osim “živi bili pa videli” da li će i kako DHA zaživeti – skrenimo pažnju na jedan (pre)ambiciozan i “plemenit” inženjerski poduhvat od strane HP-a, “THE MACHINE“. To je za sada najsveobuhvatniji pokušaj praktične realizacije DHA sistema, koji uključuje inovacije (ili makar pokušaj) na skoro svim HW/SW nivoima. Projekat uskoro puni deceniju života, što je prilično mnogo u našoj industriji i govori u prilog hrabrosti HP-a da zauzme radikalan pristup u dizajnu novih računarskih sistema. Da, zaboravih da kažem da je projekat (gle čuda) prilično propao. 🙂 🙁 Verovatno je nastao pre svog vremena. No, to nas ne sprečava da uživamo u konceptima i novim rešenjima …
*Valja napomenuti da svi glavni CPU proizvođači imaju namenske instrukcije za “AI aplikacije” (npr. SIMD za vektorske operacije), koje ukoliko kompajler zna da iskoristi mogu pružiti znatno veća ubrzanja od navedenih 10-15%.
Zanimljivi linkovi:
- https://engineering.purdue.edu/WukLab/disaggregate.html
- https://itigic.com/cxl-vs-ccix-two-consistency-protocols-for-accelerators/
- https://www.hpl.hp.com/research/systems-research/themachine/
Ako želiš da budeš u toku sa mitovima, trendovima i (bajatim) novostima iz čarobnog sveta računarstva, prijavi se dole na Bilten!
Izvori ilustracija: http://lastweek.io/notes/resource-disaggregation-spectrum/