Tím inžinierov z MIT vyvinul objektovo orientovanú hierarchiu pamäte, aby efektívnejšie pracoval s dátami. V článku sa zaoberáme tým, ako je to usporiadané.
/ / PD
Ako je známe, nárast výkonnosti moderných CPU nie je sprevádzaný zodpovedajúcim poklesom latencie pri prístupe k pamäti. Rozdiel v zmenách ukazovateľov z roka na rok môže dosiahnuť až 10-násobok (). Výsledkom je úzky bod, ktorý neumožňuje plne využiť dostupné zdroje a spomaľuje spracovanie dát.
Na výkon vplýva tzv. dekompresná latencia. V niektorých prípadoch môže príprava dekompresie dát zabrať až 64 procesorových cyklov.
Na porovnanie: sčítanie a násobenie čísel s pohyblivou desatinnou čiarkou maximálne desať cyklov. Problém spočíva v tom, že pamäť pracuje s blokmi dát pevnej veľkosti, zatiaľ čo aplikácie pracujú s objektmi, ktoré môžu obsahovať rôzne typy dát a líšiť sa veľkosťou. Na vyriešenie problému tím inžinierov z MIT vyvinul objektovo orientovanú hierarchiu pamäte, ktorá optimalizuje spracovanie dát.
Ako funguje technológia
Základom riešenia sú tri technológie: Hotpads, Zippads a algoritmus kompresie COCO.
Hotpads sú softvérovo riadená hierarchia superkritickej registračnej pamäte (). Tieto registre sa nazývajú pady a sú tri — od L1 po L3. Ukladajú objekty rôznych veľkostí, metadata a pole ukazovateľov.
Architektúra je v podstate systém cache, ale prispôsobený na prácu s objektmi. Úroveň padu, na ktorej sa objekt nachádza, závisí od toho, ako často sa používa. Ak je niektorá z úrovní „preplnená“, systém spúšťa mechanizmus podobný „zametačom odpadu“ v jazykoch Java alebo Go. Analyzuje, ktoré objekty sa používajú menej často ako ostatné a automaticky ich presúva medzi úrovňami.
Zippads funguje na základe Hotpads — archívuje a rozbaľuje dáta, ktoré prichádzajú alebo odchádzajú z dvoch posledných úrovní hierarchie — padu L3 a hlavnej pamäte. V prvom a druhom pade sú dáta uchovávané v nezmenenej podobe.

Zippads komprimuje objekty, ktorých veľkosť nepresahuje 128 bajtov. Väčšie objekty sú rozdelené na časti, ktoré sú potom umiestnené v rôznych oblastiach pamäte. Ako píšu vývojári, takýto prístup zvyšuje koeficient efektívne využívanej pamäte.
Na komprimáciu objektov sa používa algoritmus COCO (Cross-Object COmpression), o ktorom sa dozviete viac neskôr, aj keď systém dokáže pracovať aj s alebo . Algoritmus COCO je druhom diferenciálnej kompresie (). Porovnáva objekty s „základnými“ a odstraňuje opakujúce sa bity — pozrite si schému nižšie:

Podľa inžinierov z MIT je ich objektovo orientovaná hierarchia pamäte o 17 % výkonnejšia ako klasické prístupy. Je oveľa bližšie svojou štruktúrou k architektúre súčasných aplikácií, takže nová metóda má potenciál.
Očakáva sa, že technológiu najprv začnú používať spoločnosti, ktoré pracujú s veľkými dátami a algoritmami strojového učenia. Ďalším potenciálnym smerom sú cloudové platformy. IaaS poskytovatelia získajú možnosť efektívnejšie pracovať s virtualizáciou, systémami ukladania dát a výpočtovými zdrojmi.
Naše ďalšie zdroje a materiály:
![]()
![]()
![]()
![]()
![]()
![]()
Zdroj: habr.com
