【并行计算程序是如何解决高性能计算系统复杂性日益增加的问题?】
? ? ? ?在弗羅多,走出家門是很危險的。當你踏上大路時,如果你不邁穩腳步,真不知道你會被帶到
哪里去。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?——比爾博.巴金斯《魔戒》
? ? ? ?我無法預見并行計算之旅會將我們帶向何方。使用“我們”這個詞是因為多年來有許多同事與我共同走過這段旅程。我的并行計算之旅始于20世紀90年代初,當時我還在新墨西哥大學。我寫了一些可壓縮流體動力學代碼來模擬激波管實驗,并在我能接觸到的系統上運行這些代碼。結果,我和Brian SmithJohn Sobolewski以及Frank Gilfeather被要求提交一 個關于高性能計算中心的案。最終我們贏得了這筆資金,并于1993年建立了毛伊高性能計算中心。在這個項目中,我負責在位于阿爾伯克基市的新墨西哥大學開設課程,并帶領20名研究生開發并行計算程序。
? ? ? ?20世紀90年代是并行計算的形成時期。我記得并行虛擬機(PVM)的創始人之一、MPI 標準委員會成員AI Geist的一次談話,他談到了即將發布的MPI標準(1994年6月)。他說MPI的前景不佳,因為它過于復雜。他對其復雜性的看法是正確的,但盡管如此,MPI 還是迅速發展起來,在幾個月內,幾乎所有并行應用程序都在使用它。MPI 成功的一個原因是, 有一些實現已經準備就緒。
Argonne 一直在開發Chameleon,這是一個可移植工具,可以在當時的消息傳遞語言包括P4、PVM、MPL和許多其他語言之間進行翻譯。該項目很快被更改為MPICH,成為第一個高質量的MPI實現。?十多年來,MPI成為了并行計算的代名詞。幾乎每個并行應用程序都是建立在MPI庫之上的。
? ? ? 現在讓我們快進到2010年,隨著圖形處理器的出現。我偶然看到Dobb博士關于使用kahan sum
來補償GPU上唯一可用的單精度算法的文章,我認為這種方法可能有助于解決并行計算中一個長
期存在的問題,即數組的global sum取決于處理器的數量。為了測試這一點,我想到了我兒子Jon
在高中時寫的一個流體動力學代碼。他測試了問題中的質量和能量是否隨時間的變化而保持守恒,
如果程序的變化超過了規定的量,程序就會停止運行并退出。當他在大一的春假從華盛頓大學回家
時,我們嘗試了這種方法,并驚喜地發現質量守恒有了很大的改善。對于產品代碼,這種簡單技術
的影響被證明是非常重要的。《并行計算與高性能計算》5.7節將介紹用于并行global sum的增強精度版求和算法。
? ? ? ?2011年,我與Neal Davis、David Nicholaeff和Dennis Trujillo三個學生組織了一個暑期項目,
看看我們是否可以得到更復雜的代碼,比如在GPU上運行自適應網格細化(AMR)和非結構化任意
拉格朗日-歐拉(ALE)應用程序。我們的最終結果是CLAMR, 一個完全在GPU上運行的AMR迷你應用程序。應用程序的大部分都很容易移植。最困難的部分是確定每個單元的臨近單元。最初的
CPU代碼使用了k~D樹算法,但是基于k-D樹的算法很難移植到GPU.上。這個夏季項目開始兩周
后,拉斯康查斯大火在洛斯阿拉莫斯的山上爆發,整個小鎮的居民被疏散。學生也被疏散了,于是我們去了圣達菲。在疏散期間,我在圣達菲市中心與David Nicholaef見面,討論GPU端口的問題。他建議我們嘗試使用一種哈希算法代替基于樹的代碼來尋找臨近單元。當時,我看著大火在小鎮上燃燒,想著它是否已經燒到我家了。盡管如此,我還是同意嘗試一下, 哈希算法最終讓整個代碼在GPU上成功運行。這種哈希算法是由David和我當時還在上高中的女兒Rachel,及我自己完成的。這些哈希算法構成了第5章中介紹的許多算法的基礎。
? ? ? ? 在接下來的幾年里, Rebecka Tumblin、Peter Ahrens和Sara Hartse開發了壓縮哈希技術。當Gerald Collom和Colin Redman高中剛畢業的時候,他們解決了在CPU和GPU上重新映射操作的壓縮哈希問題。GPU并行算法的這些突破使得許多科學應用程序在GPU上運行的障礙逐漸瓦解。
? ? ? ?2016年,我和我的聯合創始人Hai Ah Nam和Gabe Rockefeller 一起啟動了洛斯阿拉莫斯國家實驗室(Los Alamos National Laboratory, LANL)并行計算暑期研究實習(PCSRI)項目。并行計算程序的目標是解決高性能計算系統復雜性日益增加的問題。該項目是一個為期10周的暑期實習,包括各種并行計算主題的講座,隨后是一個由洛斯阿拉莫斯國家實驗室工作人員指導的研究項目。參加這個暑期項目的學生有12到18名不等,許多人把它作為他們職業生涯的跳板。通過這個項目,我們一直致力于解決并行和高性能計算面臨的最新挑戰。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?——Robert Robey
?
節選自《并行計算與高性能計算》一書作者序
想了解?《并行計算與高性能計算》更多內容,請點擊:
多快好省,購物上京東
總結
以上是生活随笔為你收集整理的【并行计算程序是如何解决高性能计算系统复杂性日益增加的问题?】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SystemVerilog HVL:子程
- 下一篇: 《软件过程管理》 第八章 软件过程集成管