不學C++也能玩轉超算編程,斯坦福大學推出超算編程語言Regent
選自Standford Engineering
作者:Tom Abate
機器之心編譯
參與:韓放、張倩
超級計算機在很多前沿領域都有非常重要的應用,但其編程所需的軟體過於複雜,令非程序員出身的科學家非常頭疼。近日,斯坦福大學的計算機科學家開發出了一種新的編程語言,旨在降低超級計算機的編程門檻。
只有超級計算機才最有能力應對科學面臨的巨大挑戰,但是這些機器的編程難度卻阻礙了發展。
個人電腦革命曾經改變了一切,為我們大多數人提供了易於獲取、更便宜、更小、更快、更易於使用的計算機。科學家們也受益匪淺。他們開發了相應的計算機技術來研究細胞的內部運作、遙遠恆星的軌道以及曾經遠遠超出他們觀察能力的其他現象。
但是對於前沿的研究人員來說,一個具有諷刺意味的現象出現了:新的、複雜的儀器開始產生越來越多的數據,因此需要超級計算機來分析實驗結果。編程這些硬體所需的軟體過於複雜,以至於試圖分析如此龐大的數據集的科學家們常常很難掌握。
因此,Regent 出現了,它是由斯坦福大學計算機科學家 Alex Aiken 領導的小組開發的新編程語言,它使超級計算機更容易使用。阿爾卡特朗訊通信和網路教授、粒子物理學和天體物理學以及光子科學教授 Aiken 說:「我們希望創造一個編程環境,讓那些不是計算機科學家的研究人員也能使用。」
Regent 幫助解決了超級計算中最大的挑戰之一:今天的超級計算機比以往任何時候都要複雜得多,現有的編程語言一直在努力跟上。在人們的想像中,超級計算機可能是一台巨大的機器,但事實上,它是由數千個微處理器組成的陣列。科學家通常用 C++來編程這些數組,C++是 40 年前的一種編程語言,在當時那個年代,主要的微處理器是中央處理單元,即 CPU。CPU 以編程人員所稱的串列方式,快速地解決大問題,一個接一個地進行計算。
然而,最近,第二種微處理器已經成為超級計算的重要組成部分,它就是圖形處理單元(GPU)。GPU 開始主要用於控制計算機屏幕上的數百萬像素,以提高電子遊戲的視覺效果,它可以像程序員所說的那樣同時或並行地執行許多類似的計算。事實證明,並行處理在機器學習等應用中非常有用。C++已經升級,以跟上這些硬體變化。不幸的是,補丁的增加使得該語言越來越難以使用。然而,Regent 使得超級計算機程序員面臨的一些問題變得更加簡單,比如將串列處理任務分配給 CPU,將並行處理任務分配給 GPU。
一旦 Regent 在概念層面上構建了程序,程序員的意圖就會被轉換——或者,使用技術術語,編譯——成第二個軟體層,叫做 Legion,Aiken 也開發了這個軟體層。Legion 生成機器代碼,即指導超級計算機硬體如何執行程序的精確指令。Regent 和 Legion 之間的緊密集成使得程序員更容易做出其他重要的決定,特別是超級計算機必須分析的數據存儲在哪裡。
SLAC 國家加速器實驗室的科學家 Elliott Slaughter 說,這兩個層的集成節省了程序員的金錢和時間,他幾乎從 Regent 和 Legion 誕生之初就開始研究這兩個層。計算機消耗能量,這是有代價的。但是移動數據的能源成本可能是對該數據進行計算的 100 倍。此外,大型實驗往往依賴於收集大量數據的儀器。Slaughter 說,一些儀器每秒可以收集相當於 20 張視頻 DVD 的數據,用於持續 15 分鐘的實驗。即使以光速在光纖上移動,從儀器到超級計算機獲取大量數據也可能產生滯後,這可能會破壞分析。「你把數據放在哪裡,是程序員做出的最重要的決定之一,」Slaughter 說。Regent 和 Legion 通過在等待計算時存儲數據,給程序員帶來了前所未有的控制權,也節省了金錢和時間。
他說:「你可以先編程計算任務,然後再定位數據,這非常容易,而且不需要重新編寫代碼。」
Regent 會廣泛使用?研究人員說,新語言必須克服很大的惰性。「Regent 是一種非常不同的編程方式,」Aiken 說。「研究人員需要一段時間才能適應其所需的思維方式。」
但有兩個因素對其有利。首先,超級計算硬體在不斷改進。美國能源部(U.S.Department of Energy)正在推動其 Exascale 計算項目的發展,該項目的目標是在 2021 年左右將超級計算能力提高 50 倍。能源部正在支持軟體項目,包括 Regent,以幫助編程跟上進度。
此外,許多想使用超級計算機的科學家不熟悉當前的工具,也不清楚編程大型實驗所需的陡峭學習曲線。即使是經驗豐富的超級計算機程序員也可能會覺得當前的系統很麻煩,並懷疑是否有更好的方法。Aiken 說:「我們經常與那些意識到 Regent 讓他們生活更輕鬆的科學家交談。」
原文鏈接:https://engineering.stanford.edu/magazine/article/new-more-user-friendly-language-programming-supercomputers
※論文想法跟別人撞車了,我還要不要繼續?
※計算機視覺不是智能,只是記憶:CVPR 2019程序主席開炮
TAG:機器之心 |