Milk誕生,據說比其他程式語言快四倍!

2021-09-23 04:34:13 字數 1236 閱讀 3007

文章講的是milk誕生,據說比其他程式語言快四倍

近日,milk語言誕生於麻省理工學院,主要針對大型分散資料集資料

記憶體管理的問題。現在,

記憶體管理足以成為傳統資料集的挑戰,當大資料時代到來,這一程序似乎又變得緩慢了。麻省理工學院本週宣布了一種新的程式語言,以期解決該問題,並宣布該語言相比於其他程式語言,在效率上提公升了4倍。

現在的記憶體管理基於「區域性性原理」,區域性性原理是指在大多數計算機晶元中控制記憶體管理,這意味著如果乙個程式需要在記憶體的某個位置儲存資料塊,通常假設需要相鄰的資料塊,然而大資料時代,並非總是如此。相反,程式經常只需要分散在大型資料集中的幾個資料項。

從主存中讀取資料是目前晶元面臨的主要效能瓶頸,所以必須頻繁讀取,這會導致執行相當緩慢。麻省理工學院電氣工程和電腦科學博士vladimir kiriansky說,「這就好像每次你想要一勺麥片時,你都會開啟冰箱,開啟包裝盒,取出一勺,然後封上包裝盒,關上冰箱。」kiriansky和其他來自麻省理工學院電腦科學與人工智慧實驗室(csal)的同學創造了這門新的程式語言milk,致力於讓開發人員更高效地處理大型資料集中的分散資料點。

從本質上說,milk對openmp增加了一些命令,openmp可以支援c語言和fortran,這使得多核處理器編寫**更加容易。程式設計師可以使用milk,在任何指令周圍加入幾行**,用於遍歷乙個大資料系,尋找相對少量的資料項。milk編譯器,將高階語言轉化成低階指令,然後搞清楚如何相應地管理記憶體。

用milk寫程式時,如果需要一塊資料,它並不會要求主存中的相鄰資料過來。相反地,它會將資料項的位址新增到本地儲存位址列表,當該列表變得足夠長時,所有晶元的核會將彼此鄰近的列表組合在一起,重新進行分配。這樣,每個核心只請求它需要的資料項,方便高效檢索資料項。

麻省理工學院表示,目前測試的幾種常見演算法,milk比其他已存在的程式語言效率提公升了四倍,milk編譯器不僅可以追蹤記憶體位址列表,也包括儲存在這些位址的資料。它必須決定哪個位址能夠被保留,因為他們必須被重新訪問,哪些需要丟棄不會在進行訪問,如果未來進一步優化,可能會達到更好的效果。本週,該團隊也在 international conference on parallel architectures and compilation techniques上發表了關於該項目的**。

程式語言的誕生與發展

本文講程式語言的誕生和發展,同樣我盡量把內容故事化。在講解程式語言的誕生之前先來解釋一下 程式 和 指令 這兩個詞彙。什麼是程式?我們知道,計算機只是乙個機器,它就是一堆物理零件的組成,它本身不會思考,不會自己行動。但計算機卻能完成很多很多的工作,這樣感覺好像計算機是萬能的。但事實上計算機的任何行為...

採用其他程式語言的 TensorFlow

背景 本文件旨在為那些想要用其他程式語言建立或開發 tensorflow 功能的人員提供指導。本文介紹了 tensorflow 的功能以及在其他程式語言中實現相同功能應採取的推薦步驟。海風教育退費 python 是 tensorflow 支援的第一種客戶端語言,目前支援的功能最多。該功能正逐步移植到...

第03講 Flink 的程式設計模型與其他框架比較

第01講 flink 的應用場景和架構模型 第02講 flink 入門程式 wordcount 和 sql 實現 第03講 flink 的程式設計模型與其他框架比較 本課時我們主要介紹 flink 的程式設計模型與其他框架比較。本課時的內容主要介紹基於 flink 的程式設計模型,包括 flink ...