天天看點

【雲栖大會】阿裡雲如何“計算”地震?

我們的祖先凝望星河閃耀,卻花費萬年時間才摸索出天體運作規律。我們的前輩坐看潮湧潮平,卻曆經千秋萬代才能航行到大洋彼岸。而我們自己,在這片土地上繁衍至今,卻仍舊對腳下的大地懵然無知。從觀察記錄到規律預測,幾乎是人類科學史的全部邏輯。但每次我們拼盡全力記下的資料,都隻是擡高知識瀚海的涓涓細流。當我們提筆開始繁複演算的時候,期待的是阿基米德跳出浴缸、牛頓舉起蘋果的那一刻。王偉濤博士正是這樣計算的執筆人,他來自中國地震局。他想知道的,是我們腳下大地的每個細節。

【雲栖大會】阿裡雲如何“計算”地震?

【王偉濤】

我們經曆的每一次地震,都在提醒自己預測和預警這種災害的迫切性。但是,我們距離這個目标還很遠。為更好的認識地震這一實體現象,需要極其的詳細的地殼結構影像,而為了繪制這張地下地圖,又需要詳盡的資料計算。目前為止人類打到地下最深的井是前蘇聯鑽探的科拉超深井,約12.2公裡,但是地震的震源深度往往在地下十幾到幾十公裡,目前的科技根本無法在震源深度開展直接觀測。是以我們需要依靠分布在全國的數千個地震台來對地震波進行探測,震波在地下的傳播特性,受到地質結構的影響,這也是地震波可以用來繪制地底圖像的原理。這些地震台可以感覺地震的“大震波”,也同樣可以捕捉日常的“大地噪聲”,例如海潮拍擊大陸的震動。王偉濤說。

【雲栖大會】阿裡雲如何“計算”地震?

【根據地震波進行地底成像的原理/圖檔由王偉濤博士提供】

王偉濤說,像他這樣的地球實體科學家幾乎都是半個程式員。因為從地震波到地底成像,中間要經過超越一般人想象的大規模程式計算。他的計算模型是這樣的:每一次震動都會由近至遠依次傳遞到各個地震台,是以理論上來說,每個地震台都會對同一次震動做出自己的記錄,這些資料既有差異有又聯系。利用這些資料,可以計算出一些“虛拟地震”。用每兩個地震台之間進行資料互相關對比計算,就可以擷取研究中國地下的總體結構所需要的寶貴資料。

【雲栖大會】阿裡雲如何“計算”地震?

【虛拟地震可以模拟出和真實地震一樣的資料,是以可以用于本來沒有發生地震的地區的地底成像】

每個地震波資料都有  e,n,z(東西,南北,垂直)三個向度的分量,全國2000多個永久和臨時地震台就是 6000 個分量,每年的資料量大概是 30tb,而我們的總資料量已經到了 pb 級别。由于我們要互相對比每一個地震台每個時間點的每個分量資料,這些計算量是呈指數級增長的。王偉濤的智慧和經驗,恰恰表現在他所設計的程式和算法之上。但耗費很大心力完成這個算法的王偉濤博士發現,他才踏上了萬裡長征的第一步,還有一個巨大的困難橫亘在面前。

【雲栖大會】阿裡雲如何“計算”地震?

【圖中每兩個地震台之間的連線(灰色)都是需要計算的資料,總計算量極其龐大圖檔由王偉濤博士提供】

如果使用單機對這些資料進行計算,大概需要七年時間。按照一個人的職業生涯二十年計算的話,我在退休前隻能完成三次計算。在這種情況下,大規模分布式的雲計算似乎成為了唯一的選擇。然而,雲計算的機理絕不像聽起來這麼輕盈。阿裡雲是中國地震局的合作夥伴,在這些童鞋們看來,雲計算和科學研究一樣,集合了人類最頂尖的智慧。

【雲栖大會】阿裡雲如何“計算”地震?

【所需存儲空間、計算量和預計單機計算所需的時間/資料由王偉濤博士提供】

“雲存儲就像一個大的農場,每個伺服器就像一個勞工,而你的資料就是羊。”阿裡雲存儲進階專家承宗說。看來他是個牧場達人。“分布式存儲”,可以看作分布式計算的基礎條件。也就是說,你的羊要先放進阿裡雲的“農場”,它的勞工才會幫你照料、喂養、剪毛、紡線。對于王偉濤博士的資料來說,僅僅是存儲在雲端,就需要無數“黑科技”。

在将要進行的計算中,計算系統會對存儲系統進行大規模的通路。而這些通路必須要平均地打到伺服器上,絕不能存在熱點。而這還不夠,由于伺服器的硬體故障在大規模叢集中會變成一個常态事件,是以必須做好資源的實時排程和提供故障容忍能力。例如保證在摘掉一塊硬碟的時候,其餘的硬碟要迅速用備份資料把存儲追齊。承宗舉了以上兩個例子。這兩個例子換成農場的比喻,大概是如下表述:農場對于勞工的工作量要平均配置設定,絕不能出現“對着一個羊薅羊毛”的情況發生。另外,農場每天都有勞工病倒、請假,要在最短的時間把他的工作合理配置設定給很多人,這樣别的勞工也不至于負荷過大。

整個阿裡雲的分布式檔案系統,被命名為盤古。在承宗心裡,盤古還有很多智能化的“黑科技”。他舉例了一個例子:我們人類看到的磁盤都一樣,但是盤古看到的磁盤各不相同。它會根據曆史通路資料的積累,例如寫入的速度和效率,對每一塊磁盤的健康度進行打分。對于健康狀況不好的磁盤,就相應減輕一些工作配置設定。這些底層的技術,都可以為王偉濤博士下一步真正的計算做準備。

承宗說,在分布式計算中,資料帶寬成為了一個重要的參數。從王偉濤博士的角度來看,如果把資料存儲在自己的伺服器上,僅僅利用阿裡雲的計算能力進行結果輸出,是不能實作的。原理很簡單,分布式計算的所有伺服器都向一個存儲機關發送資料讀取請求,帶寬會被瞬間堵死,再強大的算力都無法發揮。至于具體資料,百兆光纖的帶寬一般是 100mb/s,而硬碟的帶寬最高可達幾gb/s,而阿裡雲存儲内網通路帶寬(雲計算系統内部)可以高達tb/s級别。

接下來,王偉濤博士的資料就會進入最終計算的環節。我熟悉了自己習慣的 linux 系統,所有的計算代碼都是在這個環境中完成的,如何讓我的代碼在雲計算的環境中發揮作用,是一個很重要的問題,王偉濤說。

【雲栖大會】阿裡雲如何“計算”地震?

【王偉濤博士地底成像資料的計算流程】

在地震科學研究方面,阿裡雲顯然沒辦法提出算法建議,是以他們需要做的是,提供一個通用的接口,讓王偉濤可以使用自己機房中的電腦、界面和linux 系統,來對雲上的計算進行控制。阿裡雲提供的相容和适配能力,是阿裡計算專家林河山頗為驕傲的地方。王博士在此之前沒有使用過分布式叢集,也沒有使用過“超算”,是以直接跨越到雲上,從操作和控制層面來說,對他來說會是個挑戰。我們提供的計算接口可以讓單機程式不做修改就高效執行在雲環境下。使用者通過幾句簡單的指令就能在雲上調動大規模的計算資源進行分析,而不需要學習複雜的分布式計算知識。其實很多從其他地方過渡到雲計算的人都會有這樣的問題,是以不僅是王博士,很多其他使用者也會用到我們的通用計算接口,他說。這個時候,大規模計算的障礙基本被掃清了。不過,雲計算真正的核心技術,還在于批量計算的算力排程之上。

【雲栖大會】阿裡雲如何“計算”地震?

【大規模計算的加速流程和模式】

計算規模擴大之後,就會造成對存儲資源的通路非常頻繁,這時,對于通路的并發量的控制就要非常“小心”了。王博士的應用有非常多的小i/o請求,如果每一次i/o請求都直接通路雲存儲,由此帶來的延時會對計算效率造成影響。為了進一步優化計算性能,批量計算采取了“分布式緩存”的政策,把有可能會用到的資料,提前緩存到計算節點周圍。這樣,就可以讓計算能力不受叢集規模的限制,林河山說。

而即使是這樣,還遠遠不夠,對于資料通路究竟采取多大“粒度”,是考驗系統智能的重要時刻。如果一次讀取過多,可能造成帶寬擁堵,如果一次讀取過少,又會造成頻繁通路。而針對不同類型的資料,都要做出合理的預判,自動地讀取,是一項艱巨的任務。打個比方:這如同建造一座金字塔,數萬名“奴隸”要分工合作。工程師要決定:是犧牲速度一次性運輸多個石塊到現場,還是犧牲數量,一次快速運輸一塊石頭到現場。同樣,面對浩瀚的金字塔工程,每時每刻要配置設定多少奴隸來攪拌砂漿,配置設定多少奴隸來搬運石塊,分别配置設定多少奴隸來負責建造各個區塊,這個即使是工程師都需要仔細考量才能完成的任務,都要交給系統自動完成,難度可想而知。

【雲栖大會】阿裡雲如何“計算”地震?

當然,如此繁複的計算過程,出錯是經常會發生的。林河山舉了一個例子:在渲染追光動畫的卡通片《小門神》時,阿裡雲的容錯機制就發揮了作用。(當時在峰值有 2000台伺服器參與了大規模批量計算。)一般情況下, 對于視訊的渲染工作是一個連續的長流程。如果某一幀渲染中哪怕隻有一個節點出問題,都會造成通路的大規模延時,造成邏輯上的擁堵,産生“熱點”。林河山說:“阿裡雲的做法是,在計算出錯之後,在最短的時間内重跑,如果在跑的過程中确認節點存在問題,還會自動排程到另一個地方,這些對于使用者來說都是沒有感覺的,但是在背後,我們必須做出大量的努力。

原本需要一年計算時間的整個中國數千個地震台兩兩之間的五年資料的計算任務,在雲計算中狂飙,48小時之内就計算完成了。

【雲栖大會】阿裡雲如何“計算”地震?

【地球内部成像,恰似人體的b超】

這在雲計算時代來臨以前是無法想象的。從科學研究的角度來看,這些資料是原始的地震觀測資料的資料産品,同時也是後續科學研究所依賴的重要資料,可以很好地支撐王偉濤進行接下來的研究。從外界看來計算過程非常順利,而剛才我們所感受的一切艱辛,都隻發生在背後的代碼世界。

【雲栖大會】阿裡雲如何“計算”地震?

【各個步驟耗時統計/圖檔由王偉濤博士提供】

借用阿裡雲産品總監李津的話:當計算結果輸出的時候,我們所有的技術人員都沉默了。我們多麼渴望這樣的資料早幾十年被計算出來,這樣我們就能為人類認識地震這一自然災害争取寶貴的時間。抛開商業的雲霧,可以看到雲計算真正的的鋒利所在。王偉濤的研究并沒有停止,他說:目前為止,我隻做了2011年到2015年的一個向度上的資料分析,未來還會繼續把更多向度和頻率上的資料進行計算。科學研究的精确度是可以一直提高的。越來越精确的地底資料,會為礦産勘探、防震減災和地震科學研究提供非常強的支援。

科學的有趣之處,正是在于不斷地嘗試。有可能一覺醒來想到新的方法,就要重新改寫公式和代碼,通過計算進行驗證。也許有一天,屬于王偉濤的那隻蘋果會悄然落下。那一刻,是王偉濤的勝利,也同樣是人類計算力的勝利。我們傾盡全力提高算力,把資料的涓涓細流彙聚成洪荒之力,隻是因為我們不願對腳下的大地懵然無知。

【雲栖大會】阿裡雲如何“計算”地震?

感謝 雷鋒網 對2016杭州雲栖大會的精彩分享!

繼續閱讀