當前位置:
首頁 > 新聞 > 數據壓縮演算法:對於程序員來說,這項新技術特別實用

數據壓縮演算法:對於程序員來說,這項新技術特別實用

雷鋒網註:【 圖片來源:

MIT CSAIL所有者:MIT CSAIL 】

數據壓縮技術之一,就是通過消除冗餘來釋放存儲容量,提高計算速度,或是帶來其他好處。

但是,在目前的計算機系統中,訪問主存的成本很大。因此,在存儲器中使用數據壓縮技術有助於減少提取數據的頻率和數量,提高設備的性能。

一般來說,現代設備以固定大小的塊(chunk)來進行管理和傳輸數據,傳統的壓縮技術必須在這些塊上運行。然而,軟體存儲數據並不使用固定大小的塊,而是使用對象(object),這種數據結構可以容納各種類型的數據,它的規模的也可大可小。

因此,傳統的數據壓縮技術很難處理對象。


首次亮相

本周ACM國際編程語言和操作系統架構支持會議上發表的一篇論文中,MIT的研究人員描述了第一種「跨存儲層次壓縮對象」的技術。這種技術可以降低內存使用率,同時也可以提高性能和效率。

研究人員用改進後的Java虛擬機做了實驗,結果表明,與傳統壓縮方法相比,這種新技術可以多壓縮兩倍的數據,還減少了一半的內存使用率。

CSAIL的研究生Po-An Tsai是這篇論文的第一作者,她表示,「我們試圖提出一種新的存儲層次結構,能夠進行對象壓縮,因為大部分現代編程語言都是以對象的形式管理數據的。」

合著者Daniel Sanchez是計算機科學和電子工程專業的教授,同時也是CSAIL的研究員,他補充道,「所有計算機系統都將從這項新技術中受益,程序的運行將變得更快,因為不再受制於內存帶寬。」

由於Java、Python和Go這些現代編程語言以對象的形式管理數據,所以對於程序員來說,這項新技術特別實用。在不久的將來,我們就會看到設備擁有更快的速度,或者能在同一時間運行更多應用程序。


存在局限

傳統的結構以塊的形式將數據存儲到緩存存儲器(Cache)中,最近受訪的塊會上升到這裡(上圖黃色層),雖然這裡空間小,但訪問速度快。而舊塊則會下降,最終回到主存(上圖藍色層)中。

雖然這種數據之間的調動十分靈活,但成本也不低。

在數據調動的過程中,如果目標數據不再Cache中,Cache就要訪問主存,並大範圍搜索數據的地址。入下圖所示,Cache訪問主存並返回的時間大約是100~300個周期。耗時太長,存在局限性。


推陳出新

Sanchez發現了傳統模式的局限性,他思考著,「既然現代編程語言中數據管理的單位是對象,那我們為什麼不建一個處理對象的存儲層次結構呢?」

於是,研究人員在之前的傳統存儲層次結構上進行改進,便於直接處理對象。

1.Hotpad/pad

在去年10月發表的一篇論文中,研究人員詳細介紹了一個名為Hotpad的系統,可以用來存儲對象。由於這個系統的各個層次之間關係緊密,也可稱為pad。

這整個結構基於一個晶元存儲器,效率高且不需要進行複雜的搜索,因為程序可以直接引用整個pad所有對象的位置。新分配的,或最近引用的對象,以及它們指向的對象,都停留在速度最快的層次,以便快速訪問。

當這個層被填滿時,系統就會開始「篩查」。篩查的過程會保留最近引用的對象,但較舊的對象會被下放到較慢的層,除此之外,系統還會刪除不再有用的對象,以釋放空間。隨後,每個對象的指針都會更新,指向新對象的位置。通過這種方式,程序訪問對象的成本比通過緩存層來搜索要低得多。

2.Zippad

研究人員還設計了一種名為Zippad的技術,利用Hotpad系統來壓縮對象。當對象第一次在較快的層次啟動時,它們會被解壓,但當它們被下放時又會被壓縮。另一方面,跨級別的所有對象都指向那些壓縮的對象,這使得它們很容易恢復到更快的級別,並且比傳統技術下存儲得更緊湊。

3.基礎對象

與以前的技術相比,這種新技術還提供了更多的壓縮機會,因為以前的技術僅限於在固定大小的塊中查找冗餘。首先,該演算法會選取幾個具有代表性的對象作為基礎對象。然後,只要有新對象加入,演算法就會對比基礎對象和新對象,然後把它們的之間不同的數據存儲起來。

卡耐基梅隆大學電子和計算機工程助教Brandon Lucia十分讚賞這個新技術,因為它利用編程語言的特性,更好地進行壓縮工作。他說:「這項工作的有趣之處在於,它利用對象的抽象性讓內存壓縮更有效,從而使系統更快、更高效,具有新的計算機體系結構特性。」

雷鋒網註:本文編譯自MIT CSAIL,部分內容來自網路,由雷鋒網整合


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 雷鋒網 的精彩文章:

高精地圖商業模式初顯:高德每輛車年費不超百元提供高精地圖
加拿大高等研究院宣布新的科研計劃,Bengio、LeCun 任 AI 項目負責人

TAG:雷鋒網 |