袁國興
假如沒有計算機,很多事情就沒有辦法開展。高性能計算可以做許多特別困難的事情,提升研究能力,縮短研究進程,節約研究經費。
目前科研的一般做法是:首先用計算來模擬,然后才做必要的實驗
關于高性能計算叫法很多,比如數值計算、數值模擬,它在不同的領域也有不同的叫法,例如在核武器領域叫虛擬試驗,在工程領域叫仿真,實際上都是一回事。2005年,美國總統信息技術咨詢委員會給布什總統的報告《計算科學:確保美國競爭力》中對計算科學有這樣的提法:計算科學是利用先進的計算能力去理解和解決復雜問題。
高性能計算可以解決理論或實驗難以解決的問題,特別是一些沒有辦法解決的科學問題。這里的“難”包括大型、復雜的工程,也包括微細、很難做的實驗,甚至是一些不可重復和危險的事情。目前科研的一般做法是:首先用計算來模擬,然后才做必要的實驗。
簡單地說,高性能計算可以做許多特別困難的事情,提升研究能力,縮短研究進程,節約研究經費。
打仗既要靠人也要靠武器,搞科研同樣也需要武器,科研的武器就是計算機
2011年日本發生大地震,海嘯摧毀核電站事故發生之后,安全問題引起人們前所未有的關注。從高性能計算的角度來看,完全可以在事故發生前,利用數值模擬方法評估該核電站的運行是否正常,哪些地方可能會出問題。這樣,通過預報可以提前把問題消滅掉,避免后續災害的發生。
美國1945年7月16日爆炸第一顆原子彈,而后開展氫彈研究,直到1952年11月1日爆炸第一顆氫彈。從原子彈到氫彈,研發時間歷時7年3個月,期間一共做了32次核爆試驗。每一次試驗的花費以億美元計算,氫彈的研究成本可想而知。
中國的情況怎么樣呢?中國1964年10月16日成功爆炸了第一顆原子彈,1967年6月17日成功爆炸了第一顆氫彈,從原子彈到氫彈,僅僅花了2年8個月的時間,只做了7次試驗。中國人用的時間不足美國人的一半,其中重要原因之一是使用了計算機。打仗既要靠人也要靠武器,搞科研同樣也需要武器,科研的武器就是計算機。
1952年誕生了世界上第一臺計算機,那時候美國氫彈研究已近完成。但是我國的氫彈研究直接受益于計算機強大的計算能力。在氫彈的研發過程中前后有7臺計算機投入使用,大大提高了計算速度,減少了現場實驗次數,有效提高了研發進度,并大幅度降低了研究成本。如此,計算機對于科學研究的貢獻可見一斑。
高性能計算已經與傳統的理論研究和實驗室實驗共同成為“21世紀科學研究的三大支柱”
高性能計算始于1911年,當時英國氣象學家為了研究氣象預報提出使用計算的方法。經過一百多年的發展,高性能計算已經與傳統的理論研究、實驗室實驗共同成為“21世紀科學研究的三大支柱”。總體來說,高性能計算對提升國家自主創新能力、增強國家競爭力、保障國家安全、促進國民經濟建設發展、豐富精神文化生活、推動社會進步,都具有十分重要的現實意義。
如何實現高性能計算,需要兩方面的支撐,一個是高性能計算機,俗稱硬件,另外一個是高性能預言性軟件。我國目前在硬件研發領域已經取得了好的成績,例如實現了芯片的自主研發,搭建了“神威·太湖之光”,我國研制使用的計算機已連續8次蟬聯全球超級計算機TOP500排行榜第1名。
雖然從大的角度來說這些設備都可以被稱為高性能計算系統,但是在實際的使用過程中,針對不同的計算需求,國際上對高性能計算系統有不同的分類。這里簡單舉幾個例子說明一下。
定制能力型(Capability) MPP超級計算機系統
這一類計算機的應用領域為納米技術、燃燒模擬、核聚變、氣候模擬、空間物理等。它們的特點是數據往返交換多、計算量大、計算時間長,對應的數據具有精度高、分辨率高的特點,因此需要通過高主頻CPU和定制或特制網絡滿足計算要求。這種計算的任務要求計算機具有非常高的穩定性、可靠性、易用性。這種計算機是用來解決科研、國家建設、國防安全中最具挑戰性的問題。設備的特點是:建造困難、研制周期長、造價高;數量有限,國家專項投資、研制。為了逐步滿足高端計算不斷提出的對計算機系統性能的要求,它的研制能驅動計算技術的全面提升,也能推動普適性計算機(如集群)技術的提高。國際上一些進行重大科學問題研究的科研院所使用這種類型的計算機。
容量型(Capacity)計算機系統
這一類計算機的應用領域主要是社會計算和信息處理、數據處理,如石油、天氣預報和氣候預測、生物醫藥、電訊、物流、金融、高端制造,數字媒體與動漫渲染等。這類設備的特點是所有的構件均是商品化的標準器件,如處理器、互聯網、標準的Linux系統、管理軟件等,可以滿足很多人同時使用。由于采用標準化構件,因此建造周期相對較短,建造成本更便宜,與定制能力型計算機相比相差數倍。這種計算機由于使用的CPU、存儲和網絡的不同,差異很大。多核處理器和加速部件構成的混合異構型系統,也是這種類型的計算機,公用云計算中心、數據中心,大都安裝這類計算機系統。
軟件研發包括:物理建模,數學模型的離散,離散模型的程序設計
從軟件研發的流程來分,可以分為三個環節,首先是物理建模,然后是數學模型的離散,最后是離散模型的程序設計。
物理建模的過程是一個將現實的物理問題對應為數學表達的過程,換言之就是用數學方程來描述實際的物理問題,如問題適用的環境、各個物理事件之間涉及的空間、時間次序、彼此之間存在的交叉耦合等。在現實條件下,是不可能把研究對象的所有相關因素都考慮進去,這時就需要根據情況做出假設和簡化,它可以決定模型的成敗,也可以影響模型的復雜程度。一個好的假設或簡化,可以使問題突出,也可以節約很多計算量,同時取得很好的結果。
數學模型的離散過程說起來比較抽象。整個過程中需要將描述物理問題的偏微分方程/方程組變成離散模型,即將涉及到的方程從時間和空間上離散,將初始條件和邊界條件離散,同時將待解區域和邊界離散。離散之后微積分問題換成了算術問題,即不同條件下加減乘除等的算術運算。算術問題才是計算機語言可以處理的問題。
離散模型的程序設計直接結果是將現實的物理問題“搬”到計算中。通過模塊化的設計,用戶只需要輸入一定的初始信息,就可以通過軟件的計算預知結果,從而體現它的預言性。當然,預言結果的準確性需要通過實驗驗證,而一個好的程序的評價標準也就可想而知,同樣,軟件的預言作用或意義也就不言自明。
在軟件的研發過程中,如果一個人同時具備建模、離散和編程的能力,則可以獨立完成一個軟件的研發工作。但現實中,一個大的軟件往往是很多人共同完成的,分別完成建模、離散和編程的工作,但彼此之間相互合作,每一環都很重要。大科學應用軟件的研發過程是一個非常復雜的工程,往往需要十幾年或者更長時間,需要從事物理、數學、計算機等多方面的科研人員的共同努力。長期以來,我國在軟件開發方面的積累較少,加之很多客觀原因,因此軟件研發能力一直相對較弱,只能大量使用進口商業軟件和開源軟件。進口軟件既經費支出巨大,又受制于外國,因此我國的軟件研發工作,依然任重道遠。
將硬件的發展與軟件相結合,二者相互促進是我國高性能計算發展的最佳出路。堅持高性能計算應用軟件和高性能計算機系統的統籌規劃、均衡投資、協調發展,是高性能計算與應用發展的關鍵。但是發展過程中一定要注重有計劃的發展。高性能集群的使用壽命一般是五年左右,所以一定要進行調研、分析,合理估算應用需求。