又是第一次! 11月中旬,在美國鹽湖城召開的全球超級計算大會上,由中國科學院軟件研究所研究員楊超等人完成的“千萬核可擴展大氣動力學全隱式模擬”獲得了2016年度的高性能計算應用最高獎——“戈登·貝爾”獎。 這是近30年來,中國超算應用團隊第一次獲得這一被譽為“超級計算機應用領域諾貝爾獎”的獎項。 戈登·貝爾獲獎證書 楊超研究員在SC大會現場介紹項目工作成果 這個獎項有多大的意義,獲獎課題到底做出了什么樣杰出的成就,它跟我們的生活又有什么樣的關系? 從不靠譜的雪說起 最近你的朋友圈有沒有被賣萌的中國氣象局刷屏? 盡管這次老天爺搗亂,但不得不說,絕大部分時候氣象局和天氣預報還是靠譜的。細想一下,不覺得天氣預報很神奇嗎?足不出戶,也不用掐指去算,我們就能知道明天、后天乃至一周內的天氣變化,這豈不是諸葛再世,孔明重生。 獲獎工作跟天氣預報有著密切的關系,你瞧,名稱中的“大氣動力學”,這可正是氣象學家預測天氣的法寶之一。要了解獲獎工作的意義,我們先得來了解一下科學家們是怎么用計算機來進行天氣預報的。 氣象學家的登場 如果現在在你頭頂有一片黑壓壓的雨云,而天上又正刮著北風,把雨云往南吹,那你是不是可以預測南方某個地方即將迎來一場大雨? 這是人們依據生活經驗或常識的天氣預報,但要準確的說出這場雨的具體時間、地點、雨量大小、延續的時間,這就遠超出人們的經驗和常識了,需要科學家出場“施法”。 首先出場的是氣象科學家,他們需要發現天氣變化的真正奧秘所在,并把這個奧秘清晰的呈現出來。用科學的語言說,那就是氣象學家需要分析出天氣變化與哪些因素有關,并用一些數學方程描述出這些因素和天氣變化的內在關系。 獲獎成果中的“大氣動力學”方程組就是氣象氣候中最重要的奧秘之一,它研究的方程長得就像下面圖示一樣,看起來很復雜。不同的符號代表了不同的物理量,包括速度、氣壓、濕度等。不同物理量可以千變萬化,但不管怎么變化都必須遵循這個方程所限定的規律——是不是有孫悟空翻不出如來佛手掌心的感覺? 獲獎成果所針對的大氣動力學方程組 氣象學家給出了上面這樣的方程,但計算機可沒法去理解這個,這個時候就需要計算數學家出場了。 計算數學家出場 計算數學家的最主要任務是給出求解上面這個方程的計算方法,也就是算法。首先要做的是離散化。離散化?!蝦米 如果我們現在要對北京城區的天氣情況進行計算預測,需不需要對每一個位置進行預報呢?例如需要具體到自己前腳掌和后腳跟兩個不同位置的天氣情況,或者小區大門和后門的天氣情況? 顯然我們不需要這么“精確”的天氣預報。所以通常需要對北京地域進行打網格,劃分成一個個小格子,每一個小格子內的天氣是一樣的,這樣要對北京進行天氣預報,其實就是對下面的每一個小格子進行預報。這就是離散化的過程。 對北京地域的離散化/網格化 大家自然可以知道,網格越密,那就意味著預測的精度越高。那為了更精確的預報,是不是越密越好呢?確實是越密越準確,但密到一定程度以后要更密,那就只能是——臣妾做不到呀。為什么做不到,咱們待會兒細說。 那么北京現在的網格大小是多大呢?度娘說啦,現在是3公里,力爭5年到1公里。也就是說,在每個3公里×3公里的網格區域里,氣象局認為天氣是一樣的。 回到計算數學家的工作上來,離散化或者網格化是他們工作的第一步,但需要注意的是,實際的網格可不是像上面地圖一樣是二維的哦,而是包含了高度的三維網格。想想也是呀,刮風下雨全在天上呢,研究天氣問題,哪能盯著地面呀。 離散化之后,每一個小方格/立方體就是一個獨立的個體,有自己的壓力、速度、溫度、濕度等數值信息。其中有些點的數值是我們現在知道的,這主要是通過氣象站、氣象衛星、氣象氣球等多種途徑采集的數據,根據這些已知點的信息,然后默念氣象學家給出的大氣動力學、大氣熱力學等方程口訣,就可以計算推演一段時間以后,所有網格點的參數信息。這就是數值天氣預報,也就是用計算機算出來的未來天氣情況。 計算數學家最主要的工作,就是將上面的方程翻譯成小方格/立方體之間的計算關系。這里有差分法、有限元法、有限體積法等多種方法,幾乎每一種方法都凝聚了全世界大量數學家的智慧,因為一個好的方法,它必須滿足正確、可靠、穩定、精確、高效等多個條件。 具體的方法我們就不在這里說了,你只要記住,現在,計算數學家將氣象學家的神秘的方程口訣變成了可以在計算機上處理的算法了。那下一個出場的,就該是“程序猿”了。 程序猿來了 程序猿或者計算機科學家面臨的任務,是將算法寫成可以在計算機上執行的程序。這聽起來好像很簡單—— 打斷一下,你聽說過天河、神威的大名嗎?比如說天河二號,神威·太湖之光?如果沒有聽過,那你就OUT了。 如果聽說了,你覺得在這些計算機上寫程序是簡單的事情嗎?要知道,這些可是傳說中的超級計算機,而且還是當前世界上最快的兩臺計算機。什么?有多快,神威·太湖之光相當于普通家用電腦的200萬倍!在這樣的電腦上寫程序,跟在普通電腦上能一樣嘛,難度沒有200萬倍,也得有個2萬倍。 超級計算機為什么有那么強大的能力呢?其實很簡單,那就是“人多力量大”、“團結就是力量”!每臺超級計算機都由大量的計算核心(計算節點)組成,計算處理問題時,這些計算核心團結協作,一起努力工作,這就是所謂的“并行計算”。 計算機科學家的主要任務,就是將計算數學家給出的算法,寫成能在超級計算機上高效執行的并行程序。這可不是簡單的工作。 你現在可以想一件需要完成的工作,例如寫一本小說、抄寫生字1萬遍、造一輛汽車等等,然后設想把這件事情交給1個人做、10個人做、100個人做、1萬個人做,會是什么情形?10個人做一定是1個人做的效率的10倍嗎?當中有人偷懶不干活怎么辦?又或者有人生病了該怎么辦? 計算機科學家面臨的挑戰和這個類似,他們需要指揮、協調眾多計算核心,讓它們齊心協力,不僅要把工作做對,還要做得快、做得好。 還記得獲獎課題的名稱嗎? “千萬核可擴展大氣動力學全隱式模擬”,這次楊超和他的小伙伴們使用了超過10000000個核來計算一個問題,驚呆了沒? 最后需要補充的是,這三類科學家可都不是獨善其身、明哲保身的人哦,他們通常身兼多職。例如楊超研究員的工作既屬于計算數學領域,又屬于計算機軟件領域。事實上,只有身兼多職才有更開闊的視野,才更利于合作、研究以及取得成就。 了不起的“千萬核可擴展大氣動力學全隱式模擬” 首先,從成果名稱上,我們就能清晰的看到多領域科學家的協作: 氣象學家貢獻了大氣動力學; 計算數學家負責全隱式模擬算法; 而計算機科學家實現千萬眾核可擴展計算。 當然,還是剛剛所說的,這三個部分不是獨立的,每一部分都需要多領域專家的通力協作。 我們首先來了解一下他們到底做了什么工作吧。這可是我辛辛苦苦閱讀了他們長達12頁的論文之后才領悟的奧妙。 楊超和他的小伙伴們這次完成的是一次氣候的數值仿真。注意哦,這里是氣候,而不是氣象。 通常氣候是指某一地區長時期內(30年或更長)的天氣狀態的綜合表現。氣候和前面所說的天氣預報針對的是同一個問題,只是氣候通常研究的區域更大,計算的時間更長。它不是用來對某一天的天氣進行預報,而是對整個地區乃至全球未來的地理、氣象等因素進行推演預測。 所以換句話說,對氣候而言,氣象關心的那都是小事情。當然,問題本質以及如前面所述的數值計算的過程那都是一樣一樣兒的。 但正因為氣候和氣象關心問題的尺度不一樣,它們兩者之間沒法對接:氣象模擬的網格需要精細到幾公里乃至1公里以內,而氣候模擬網格通常為幾十乃至幾百公里;氣象模擬的時間精度要求到小時乃至分鐘,而氣候模擬通常到天、月、年。 如果能將氣候模擬和氣象模擬對接起來,那就可以大幅提升彼此預測的準確度,為國計民生乃至全人類的發展有著重大的意義。美國、歐洲、日本、中國……,全世界的科學家們都在為這個目標而努力著。 獲獎成果的現實或科學意義正體現于此,它在打通氣象和氣候模擬之路上邁出了標志性的一步。 獲獎成果計算的區域是北緯18度至北緯72度之間,在地球儀上沿著兩條線各畫一個圓,計算的就是這兩個圓之間的帶狀區域,差不多占了整個地球表面積的1/3。然后,記得是三維問題哦,從地面往上30公里都在研究范圍內,超出這個范圍,就認為對地表的的氣候沒有影響啦。所以,最后實際計算機需要處理的網格區域大小為40000公里×6000公里×30公里。 在算法層面,他們提出了一個新的全隱式計算方法,可以快速、正確的求解氣象學家給出的那個方程組。和已有的其他算法相比,這個算法最大的優勢在于其高效性,使得更精細的網格成為可能。 事實上,他們測試的最小網格已經到了488米,這比現在北京天氣預報的網格還要小! 也就是說,這個新的算法完全可以用來解決氣象和氣候模擬不能打通的問題。這個算法比美國的同類下一代大氣模擬系統的計算效率提升近一個數量級(接近10倍或幾十倍)。 計算結果的呈現:溫度在不同模擬日的變化 這么厲害的算法到底是怎么實現的呢?拜托,這是一篇科普文章,不是科學研究論文,要感興趣的話,去聯系獲獎團隊的成員們吧,他們可有12人呢。不過,不管他們的算法再精深高妙,本質上,可以用兩個字來形容,那就是“偷懶”!哦,說錯了,其實是“聰明的偷懶”——干的少,可還干得好! 用科學的語言來描述呢,那就是“在不降低計算結果正確性的前提下,盡可能的減少計算工作量”!計算量少了,計算效率可不就高了嘛。不過看看他們算法的一些關鍵詞,“DD-MG預條件子”、“GP-ILU分解”,這是多么的高大上呀。 除了新的厲害算法之外,成果的另一個主要突破是前面提及的,在高達一千萬個計算核心的超級計算機上實現了算法,并實現了高效的并行計算。 聽起來好厲害!具體是什么呢? 就是在40000公里×6000公里×30公里區域上,網格大小是488米(為什么是488而不是500呢,我也疑惑中),總共是1000多億網格,每個網格有6個未知數,最終的未知數個數約7700億!這樣的問題,也只有世界最快的超級計算機和我國最優秀的一群年輕科學家們能夠勝任! 記得前面說的臣妾做不到的事情嗎,為什么把網格的尺寸縮小或者說把計算的精度提高這么困難呢?這是因為,如果網格尺寸縮小一半,例如從1公里大小縮減到500米,由于處理的網格是三維的,那就是把原來1公里×1公里×1公里的立方塊剖分成了500米×500米×500米的小立方塊,1個變成了……8個! 這樣計算機要求解的未知數的個數也是原來的8倍,而求解過程的工作量可是比未知數的平方還要大,也就是說,網格精度每增加一倍,計算機的工作量是原來的一個數量級以上! 這下,大家能更好的理解這次獲獎成果的意義了吧,那就是在前所未有的超級計算機上用出色的算法和高效的程序進行了一次氣候問題前所未有復雜的計算! 未來,這項研究不僅可以用于高分辨率氣候模擬和高精細數值天氣預報,也有助于提升我國應對極端氣候事件和自然災害時的減災防災能力,還能在航空、地學、能源等科學計算領域有著廣闊的應用前景或重要的參考價值。 最后要提出的是,他們的論文還報告了從氣象科學家角度關心的模擬能力。比如3公里網格分辨率下是1.01模擬年/天(Simulated–Years-Per-Day,SYPD),比美國下一代大氣動力框架FV3的0.16SYPD提高了好幾倍。 但是,即便是這么厲害的算法,這么快的計算機,要實際解決超高分辨率模擬的問題還得計算很長時間。我們在為楊超和他的小伙伴們歡呼的同時,也期待著更多的氣象氣候、計算數學和計算機科學家早日攻克這一難題。 到那個時候,我們就可以徹底告別那些不靠譜的雪和不正經的風了! 拿到國際上去參評會泄露核心技術? 中國科學家斬獲這一獎項后,不少人為之興奮,但也有網友提出疑問 : 中國人自己的科研項目,拿到國際上去參評,會不會因此泄露核心技術? 楊超研究員對此給出如下回應: ACM Gordon Bell(戈登貝爾)獎的評審,的確需要發表論文并作答辯報告,這是事實,但并不會因此泄露所謂的核心技術。 技術的發展是不斷演進的,尤其是像超算這種高技術領域。戈登貝爾獎在超算領域享有盛譽,但是該獎項設立近30年來,一直被美日等國壟斷。 今年,中國入圍了3個項目,并最終有一個奪獎,這不但展示了我們在技術上取得的突破,也更充分展示了我們在技術上的自信。中國的強大需要這種自信。 |
|