美研究人員開發出更高效易操作的超算編程語言
超級計算機在解決科學領域重大挑戰方面具有優勢,但是編程操控這些“大傢伙”並非易事。美國研究人員新開發出一種程序語言,讓非計算機背景的人也能便捷利用超級計算機處理問題。如今的超級計算機比過去更為複雜,現有編程語言的發展卻不能與之匹配。前沿科學領域的研究人員需要使用超算來分析海量數據,但不可能每個研究人員都是計算機專家,編程的難度阻礙了對超算的應用。
目前廣泛使用來操控超算的仍是40多年前發明的C++語言,在當時主要的微處理器是中央處理單元(CPU),它可以一個接一個地計算,即串行處理。而現在的超算更多地使用另一種微處理器,也就是圖形處理單元(GPU),它可以同時處理多個相似的計算任務,即並行處理。
圖片來自於PxHere
美國斯坦福大學通信與網絡教授亞歷克斯·艾肯的團隊日前開發出了新的計算機程序語言“Regent”,這種用戶友好型語言在操作超算處理任務方面比C++更便捷高效。它能簡化超級計算機程序員的工作,例如將串行處理任務分配給CPU,而將並行處理任務分配給GPU。
程序員先使用Regent語言將自己的計算任務進行編譯,存入該團隊開發的名為“Legion”的第二個軟件層;Legion再據此生成機器代碼,也就是超算可以理解的指令,指揮計算機執行任務。Regent和Legion間的配合讓程序員可以更方便地做出一些決策,比如在哪兒存儲數據,這直接影響到計算的成本和速度。
美國能源部SLAC國家加速器實驗室科學家埃利奧特·斯洛特在使用了該新程序語言後表示,這一語言節省了程序員時間和成本,“現在我可以先對計算任務進行編程,隨後再安置數據,不需要重複寫代碼,非常簡單”。
儘管新程序語言的推行都需要克服慣性,研究者對Regent程序語言的推廣充滿信心。美國能源部目前正在大力推進百億億次級超級計算機項目,超算軟件正是其支持的研發重點之一。