MITi insenerite meeskond on töötanud vÀlja objektipÔhise mÀluhierarhia, et andmetega tÔhusamalt töötada. Artikliks uurime, kuidas see toimib.
/ / PD
Nagu teada, ei kaasne kaasaegsete CPUde tootlikkuse tÔusuga samaaegne mÀlu juurde pÀÀsemise viibimise vÀhenemine. Aastaste nÀitajate muutuste erinevus vÔib ulatuda kuni 10 korda (). Selle tulemusel tekib kitsaskoht, mis ei vÔimalda tÀiel mÀÀral olemasolevaid ressursse kasutada ja aeglustab andmete töötlemist.
Tootlikkusele avaldab negatiivset mĂ”ju nn dekompressiooniviivitus. MĂ”nel juhul vĂ”ib andmete ettevalmistav dekompressioon vĂ”tta kuni 64 protsessoritsĂŒklit.
VĂ”rdluseks: ujukomaarvude mitte rohkem kui kĂŒmme tsĂŒklit. Probleem seisneb selles, et mĂ€lu töötab fikseeritud suurusega andmeplokkidega, samas kui rakendused töötavad objektidega, mis vĂ”ivad sisaldada erinevat tĂŒĂŒpi andmeid ja erineda suuruse poolest. Probleemi lahendamiseks on MIT-i insenerid vĂ€lja töötanud objektorienteeritud mĂ€luhierarhia, mis optimeerib andmete töötlemist.
Kuidas tehnoloogia töötab
Lahenduse aluseks on kolm tehnoloogiat: Hotpads, Zippads ja COCO tihendamisalgoritm.
Hotpads on programmide kaudu juhitav ĂŒlivĂ”imeka registermĂ€lu hierarhia (). Need registreid nimetatakse padjadeks (pads) ja neid on kolm â L1-st L3-ni. Neis hoitakse erineva suurusega objekte, metaandmeid ja viidete massiive.
Sisuliselt kujutab arhitektuur endast vahemĂ€lu sĂŒsteemi, kuid kohandatud objektidega töötlemiseks. Padja tase, kus objekt asub, sĂ”ltub sellest, kui sageli seda kasutatakse. Kui ĂŒks tasanditest Â«ĂŒle tĂ€itub», kĂ€ivitab sĂŒsteem mehhanismi, mis sarnaneb Java vĂ”i Go keeles olevate «prĂŒgikogujatega». See analĂŒĂŒsib, milliseid objekte kasutatakse harvemini kui teisi ja liigub automaatselt nende tasemete vahel.
Zippads töötab Hotpadsâi alusel â arhiveerib ja de-arhiveerib andmeid, mis sisenevad vĂ”i vĂ€ljuvad kaheastmelise hierarhia viimastest tasemest â padi L3 ja pĂ”hismĂ€lu. Esimeses ja teises padrunis salvestatakse andmed muutumatuna.

Zippads tihendab objekte, mille maht ei ĂŒleta 128 baiti. Suuremad objektid jagatakse osadeks, mis paigutatakse seejĂ€rel erinevatesse mĂ€lukohtadesse. Nagu arendajad kirjutavad, suurendab see lĂ€henemine efektiivselt kasutatava mĂ€lu koefitsienti.
Objektide tihendamiseks kasutatakse algoritmi COCO (Cross-Object COmpression), millest me rÀÀgime hiljem, kuigi sĂŒsteem suudab töötada ka vĂ”i . Algoritm COCO on erinevustihenduse () tĂŒĂŒp. See vĂ”rreldab objekte "baasobjektidega" ja eemaldab korduvad bitid â vt skeemi allpool:

MIT inseneride sÔnul on nende objektorienteeritud mÀluhierarhia 17% tootlikum kui traditsioonilised lÀhenemisviisid. See on palju lÀhemal kaasaegsete rakenduste arhitektuurile, seega on uuel meetodil potentsiaali.
Eeldatakse, et esimesena hakkavad tehnoloogiat kasutama ettevĂ”tted, mis tegelevad suurte andmete ja masinĂ”ppe algoritmidega. Veel ĂŒks potentsiaalne suund on pilveplatvormid. IaaS-teenusepakkujad saavad vĂ”imaluse tĂ”husamalt töötada virtualiseerimise, andmesalvestussĂŒsteemide ja arvutusressurssidega.
Meie tÀiendavad ressursid ja allikad:
![]()
![]()
![]()
![]()
![]()
![]()
Allikas: habr.com
