丁香五月天婷婷久久婷婷色综合91|国产传媒自偷自拍|久久影院亚洲精品|国产欧美VA天堂国产美女自慰视屏|免费黄色av网站|婷婷丁香五月激情四射|日韩AV一区二区中文字幕在线观看|亚洲欧美日本性爱|日日噜噜噜夜夜噜噜噜|中文Av日韩一区二区

您正在使用IE低版瀏覽器,為了您的雷峰網(wǎng)賬號安全和更好的產(chǎn)品體驗,強烈建議使用更快更安全的瀏覽器
此為臨時鏈接,僅用于文章預覽,將在時失效
人工智能 正文
發(fā)私信給李尊
發(fā)送

1

MIT最新發(fā)布編程語言Milk,加速大數(shù)據(jù)時代并行運算

本文作者: 李尊 2016-09-14 17:36
導語:新的程序語言Milk在大數(shù)據(jù)方面能實現(xiàn)比現(xiàn)有語言快四倍的處理速度

導讀:本周MIT最新發(fā)布新編程語言Milk,新的程序語言在大數(shù)據(jù)方面能實現(xiàn)比現(xiàn)有語言快四倍的處理速度。

MIT最新發(fā)布編程語言Milk,加速大數(shù)據(jù)時代并行運算

在當下的計算機芯片中,內(nèi)存管理是基于計算機科學家所稱的局部性原理(principle of locality)來實現(xiàn)的:

如果一個程序需要某個內(nèi)存位置的數(shù)據(jù)塊,它可能也需要數(shù)據(jù)塊臨近位置的數(shù)據(jù)。

但是在大數(shù)據(jù)時代,這種假設已不再成立。如今的計算機程序更多地是在大型數(shù)據(jù)集中離散地獲取一點點數(shù)據(jù)。由于從主要內(nèi)存位中獲取數(shù)據(jù)已成了當下芯片的最大性能瓶頸,所以不得不更加頻繁地獲取數(shù)據(jù),這也明顯拖慢了程序運行的速度。

本周在國際并行體系結(jié)構(gòu)和編譯技術(shù)會議(International Conference on Parallel Architectures and Compilation Techniques)上,來自麻省理工學院計算機科學與人工智能實驗室(CSAIL)的研究人員發(fā)布了一種新的編程語言——Milk,它能讓應用程序開發(fā)者在處理大數(shù)據(jù)集里的離散數(shù)據(jù)點問題中更有效率地管理內(nèi)存。

通過測試幾種通用的算法,使用新語言Milk編寫的程序?qū)崿F(xiàn)了比現(xiàn)有編程語言快4倍的速度。但是研究者相信通過更進一步的研究可以實現(xiàn)更好地結(jié)果。

電氣工程和計算機科學教授Saman Amarasinghe 說,當下大數(shù)據(jù)集給已有的內(nèi)存管理技術(shù)帶來問題的原因不僅在于因為它們的規(guī)模巨大,更多的是因為它們是稀疏的(sparse)。也就是說,問題解決方案的規(guī)模并不一定是與問題的規(guī)模成正比增加。

“在社交環(huán)境中,我們通常傾向于注重更小的問題。” Amarasinghe說“如果你只關(guān)注在這種建筑[CSAIL]內(nèi)的人的話,你能發(fā)現(xiàn)我們都是朋友的。但是如果你以地球的層面來看待的話,朋友的數(shù)量并不會增加。整個地球有幾十億人口,但是我也僅僅只有幾百個朋友。這就是一個很明顯的稀疏性問題?!?/p>

同樣Amarasinghe提到,一個在線書店可能為其1000名顧客提供最流行的20本書籍的書單。但是但其顧客數(shù)增加到100萬時,它并不會相應地提供最流行的20000本書籍的書單。

局部思考(Thinking locally)

當下的計算機芯片并沒有專門針對稀疏數(shù)據(jù)進行優(yōu)化,而且可以說是完全相反。因為從芯片的主要內(nèi)存位讀取數(shù)據(jù)是緩慢的,當下的芯片中每個內(nèi)核或者每個處理器都有自己的“緩存”,一個相關(guān)的小型、本地、高速的內(nèi)存位。芯片中的內(nèi)核會一次讀取一個完整的數(shù)據(jù)塊,而不是在主內(nèi)存中每次提取一個單獨的數(shù)據(jù)。而讀取的數(shù)據(jù)塊是通過局部性原理來進行選擇的

通過圖像處理的例子可以很容易看清局部性原理的本質(zhì):

如果一個程序的目的是將視覺過濾器應用到圖像中,且它每次只作用在圖像的一個數(shù)據(jù)塊上。那么每次芯片內(nèi)核請求一個區(qū)塊數(shù)據(jù)時,它應該收到自身緩存能接受的所有臨近區(qū)塊數(shù)據(jù)。因此它可以一個一個區(qū)塊處理,且不再獲取更多的數(shù)據(jù)。

但是如果該算法的興趣是在線書店200萬數(shù)據(jù)庫中的20本書的話,該方式將不再適用。如果它請求與某一本書相鄰的數(shù)據(jù),很有可能其相鄰的100種書的數(shù)據(jù)都是沒有關(guān)聯(lián)的。

從主內(nèi)存中每次只讀取一個數(shù)據(jù)是非常低效的,這篇論文的第一作者Vladimir Kiriansky 提到

就像是每次你想要一勺食品時,你都需要打開冰箱、打開牛奶盒、倒出一勺牛奶、蓋上牛奶盒、將它放回冰箱。

他是電氣工程和計算機科學的博士生。Amarasinghe 和 Yunming Zhang 是他的論文合作者,Zhang 也是一位電氣工程和計算機科學的博士生。

批處理(Batch processing)

Milk簡單地增加了一些命令到OpenMP中。其中OpenMP 是一種能夠用在C或Fortran等語言中的擴展,可以用來更輕松地為多核處理器編寫代碼。使用Milk的話,程序員可以在任何指令附近插入幾行代碼,其可以在整個大數(shù)據(jù)集中進行迭代,尋找相對較少數(shù)量的項。Milk 的編譯器(將高級代碼轉(zhuǎn)換成低級指令的程序)可以據(jù)此找到管理內(nèi)存的方法。

使用 Milk 程序時,如果一個內(nèi)核發(fā)現(xiàn)它需要一項數(shù)據(jù)時,它并不會請求從主內(nèi)存中讀取它(以及相鄰的數(shù)據(jù))。它會將該數(shù)據(jù)的地址添加到一個本地存儲的地址列表中。當這個列表足夠長時

  • 芯片所有內(nèi)核將會池化(pool)它們的列表

  • 將這些地址按臨近排布的形式組合到一起

  • 重新分配給內(nèi)核

這樣一來,每個內(nèi)核都只請求了自己所需要的數(shù)據(jù)項,并且可以有效地進行檢索。

這樣描述的話層級較高,但實際上細節(jié)會復雜得多。事實上大部分現(xiàn)代計算機芯片都有多級緩存,且一級比一級大(但效率也因此更低)。Milk編譯器不僅必須跟蹤內(nèi)存地址表,還要跟蹤這些地址中存儲的數(shù)據(jù),而且它常常將這兩者在各級緩存之間進行切換。它也必須決定哪些地址應當被保留(可能需要再次訪問),哪些應當被丟棄。研究學者希望能夠進一步提升這種編排復雜數(shù)據(jù)的算法,從而進一步提升性能表現(xiàn)。

「當下許多重要的應用都是數(shù)據(jù)密集型的,但不幸的是,內(nèi)存和CPU之間的性能差距越來越大,這意味著當前的硬件還沒有發(fā)揮出它們的全部潛力?!顾固垢4髮W計算機科學助理教授 Matei Zaharia 說,「Milk 通過優(yōu)化常見編程架構(gòu)中的內(nèi)存訪問來幫助解決這一差距。這項成果結(jié)合了內(nèi)存控制器設計的詳細知識和相關(guān)編譯器的知識,能為當前的硬件實現(xiàn)良好的優(yōu)化。」

PS : 本文由雷鋒網(wǎng)獨家編譯,未經(jīng)許可拒絕轉(zhuǎn)載!

via MIT

雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。

MIT最新發(fā)布編程語言Milk,加速大數(shù)據(jù)時代并行運算

分享:
相關(guān)文章
最新文章
請?zhí)顚懮暾埲速Y料
姓名
電話
郵箱
微信號
作品鏈接
個人簡介
為了您的賬戶安全,請驗證郵箱
您的郵箱還未驗證,完成可獲20積分喲!
請驗證您的郵箱
立即驗證
完善賬號信息
您的賬號已經(jīng)綁定,現(xiàn)在您可以設置密碼以方便用郵箱登錄
立即設置 以后再說