Një ekip inxhinierësh nga MIT krijoi një hierarki kujtese të orientuar nga objektet për të punuar më efikas me të dhënat. Në këtë artikull shqyrtojmë se si funksionon ajo.
/ / PD
Siç dihet, rritja e performancës së CPU-ve moderne nuk shoqërohet me një ulje përkatëse të vonesës në qasje në kujtesë. Diferenca në ndryshimin e treguesve nga viti në vit mund të arrijë deri në 10 herë (). Si rezultat, krijohet një ngushticë që nuk lejon shfrytëzimin e plotë të burimeve të disponueshme dhe ngadalëson përpunimin e të dhënave.
Dëmtojnë performancën vonesat e quajtura dekrompresive. Në disa raste, mund të nevojiten deri në 64 cikle procesori për përgatitjen e dekrompresionit të të dhënave.
Për krahasim, mbledhja dhe shumëzimi i numrave me pikë flotante jo më shumë se dhjetë cikle. Problemi është se kujtesa punon me blloqe të dhënash me madhësi fikse, ndërsa aplikacionet operojnë me objekte që mund të përmbajnë lloje të ndryshme të të dhënave dhe të dallohet nga njëra-tjetra në madhësi. Për të zgjidhur këtë problem, inxhinierët e MIT krijuan një hierarki kujtese të orientuar nga objektet, e cila optimizon përpunimin e të dhënave.
Si funksionon teknologjia
Në thelb të zgjidhjes qëndrojnë tre teknologji: Hotpads, Zippads dhe algoritmi i kompresionit COCO.
Hotpads është një hierarki e menaxhuar me program të kujtesës së regjistrave hyper-operativë (). Këto regjistra quhen pads dhe janë tre — nga L1 në L3. Në to ruhet objekte me madhësi të ndryshme, metadata dhe matricat e treguesve.
Në esencë, arkitektura përbën një sistem cache, por të personalizuar për të punuar me objekte. Niveli i pad-it, ku ndodhet objekti, varet nga sa shpesh përdoret ai. Nëse një nga nivelet "mbushet", sistemi nis një mekanizëm të ngjashëm me "mbledhësit e mbeturinave" në gjuhët Java ose Go. Ai analizon se cilat objekte përdoren më rrallë se të tjerat dhe i zhvendos automatikisht ato midis niveleve.
Zippads funksionon mbi bazën e Hotpads — arkivon dhe dearkivon të dhënat që hyjnë ose dalin nga dy nivelet e fundit të hierarkisë — pad L3 dhe kujtesën primare. Në pad-in e parë dhe të dytë, të dhënat ruhen në formë të pandryshuar.

Zippads comprimon objekte që kanë një volum jo më të madh se 128 byte. Objektet më të mëdha ndahen në pjesë, të cilat më pas vendosen në zona të ndryshme të memories. Sipas zhvilluesve, ky qasje rrit koeficientin e përdorimit të efektshëm të memories.
Për kompresimin e objekteve përdoret algoritmi COCO (Cross-Object COmpression), për të cilin do të flasim më poshtë, megjithatë sistemi është në gjendje të punojë edhe me или . Algoritmi COCO paraqet një lloji kompresimi diferencial (). Ai krahasohet me objektet "bazë" dhe largon blloqet e përsëritura - shih skemën më poshtë:

Sipas inxhinierëve nga MIT, hierarkia e tyre e memories orientuar në objekte është 17% më produktive se qasje klasike. Ajo është shumë më e afërt me ndërtimin e arkitekturave moderne të aplikacioneve, prandaj metoda e re ka potencial.
Pritet që fillimisht teknologjinë të fillojnë ta përdorin kompanitë që punojnë me të dhëna të mëdha dhe algoritme të mësimit të makinerive. Një drejtime tjetër potenciale janë platformat e cloud. Ofruesit IaaS do të kenë mundësinë të punojnë më efektivisht me virtualizimin, sistemet e ruajtjes së të dhënave dhe burimet computativi.
Burimet dhe burimet tona shtesë:
![]()
![]()
![]()
![]()
![]()
![]()
Burimi: habr.com
