1
本文作者: 史中 | 2016-10-20 14:30 |
我們的祖先凝望星河閃耀,卻花費(fèi)萬年時(shí)間才摸索出天體運(yùn)行規(guī)律。
我們的前輩坐看潮涌潮平,卻歷經(jīng)千秋萬代才能航行到大洋彼岸。
而我們自己,在這片土地上繁衍至今,卻仍舊對(duì)腳下的大地懵然無知。
從觀察記錄到規(guī)律預(yù)測(cè),幾乎是人類科學(xué)史的全部邏輯。但每次我們拼盡全力記下的數(shù)據(jù),都只是抬高知識(shí)瀚海的涓涓細(xì)流。當(dāng)我們提筆開始繁復(fù)演算的時(shí)候,期待的是阿基米德跳出浴缸、牛頓舉起蘋果的那一刻。
王偉濤博士正是這樣計(jì)算的執(zhí)筆人,他來自中國地震局。他想知道的,是我們腳下大地的每個(gè)細(xì)節(jié)。
【王偉濤】
我們經(jīng)歷的每一次地震,都在提醒自己預(yù)測(cè)和預(yù)警這種災(zāi)害的迫切性。但是,我們距離這個(gè)目標(biāo)還很遠(yuǎn)。為更好的認(rèn)識(shí)地震這一物理現(xiàn)象,需要極其的詳細(xì)的地殼結(jié)構(gòu)影像,而為了繪制這張地下地圖,又需要詳盡的數(shù)據(jù)計(jì)算。
目前為止人類打到地下最深的井是前蘇聯(lián)鉆探的科拉超深井,約12.2公里,但是地震的震源深度往往在地下十幾到幾十公里,當(dāng)前的科技根本無法在震源深度開展直接觀測(cè)。
所以我們需要依靠分布在全國的數(shù)千個(gè)地震臺(tái)來對(duì)地震波進(jìn)行探測(cè),震波在地下的傳播特性,受到地質(zhì)結(jié)構(gòu)的影響,這也是地震波可以用來繪制地底圖像的原理。這些地震臺(tái)可以感知地震的“大震波”,也同樣可以捕捉日常的“大地噪聲”,例如海潮拍擊大陸的震動(dòng)。
王偉濤說。
【根據(jù)地震波進(jìn)行地底成像的原理/圖片由王偉濤博士提供】
王偉濤告訴雷鋒網(wǎng),像他這樣的地球物理科學(xué)家?guī)缀醵际前雮€(gè)程序員。因?yàn)閺牡卣鸩ǖ降氐壮上?,中間要經(jīng)過超越一般人想象的大規(guī)模程序計(jì)算。他的計(jì)算模型是這樣的:
每一次震動(dòng)都會(huì)由近至遠(yuǎn)依次傳遞到各個(gè)地震臺(tái),所以理論上來說,每個(gè)地震臺(tái)都會(huì)對(duì)同一次震動(dòng)做出自己的記錄,這些數(shù)據(jù)既有差異有又聯(lián)系。利用這些數(shù)據(jù),可以計(jì)算出一些“虛擬地震”。用每?jī)蓚€(gè)地震臺(tái)之間進(jìn)行數(shù)據(jù)互相關(guān)對(duì)比計(jì)算,就可以獲取研究中國地下的總體結(jié)構(gòu)所需要的寶貴數(shù)據(jù)。
【虛擬地震可以模擬出和真實(shí)地震一樣的數(shù)據(jù),所以可以用于本來沒有發(fā)生地震的地區(qū)的地底成像】
每個(gè)地震波數(shù)據(jù)都有 E,N,Z(東西,南北,垂直)三個(gè)向度的分量,全國2000多個(gè)永久和臨時(shí)地震臺(tái)就是 6000 個(gè)分量,每年的數(shù)據(jù)量大概是 30TB,而我們的總數(shù)據(jù)量已經(jīng)到了 PB 級(jí)別。由于我們要相互對(duì)比每一個(gè)地震臺(tái)每個(gè)時(shí)間點(diǎn)的每個(gè)分量數(shù)據(jù),這些計(jì)算量是呈指數(shù)級(jí)增長的。
王偉濤的智慧和經(jīng)驗(yàn),恰恰表現(xiàn)在他所設(shè)計(jì)的程序和算法之上。但耗費(fèi)很大心力完成這個(gè)算法的王偉濤博士發(fā)現(xiàn),他才踏上了萬里長征的第一步,還有一個(gè)巨大的困難橫亙?cè)诿媲啊?/p>
【圖中每?jī)蓚€(gè)地震臺(tái)之間的連線(灰色)都是需要計(jì)算的數(shù)據(jù),總計(jì)算量極其龐大圖片由王偉濤博士提供】
如果使用單機(jī)對(duì)這些數(shù)據(jù)進(jìn)行計(jì)算,大概需要七年時(shí)間。按照一個(gè)人的職業(yè)生涯二十年計(jì)算的話,我在退休前只能完成三次計(jì)算。
在這種情況下,大規(guī)模分布式的云計(jì)算似乎成為了唯一的選擇。然而,云計(jì)算的機(jī)理絕不像聽起來這么輕盈。雷鋒網(wǎng)也采訪到了中國地震局的合作伙伴阿里云的童鞋們,在他們眼里,云計(jì)算和科學(xué)研究一樣,集合了人類最頂尖的智慧。
【所需存儲(chǔ)空間、計(jì)算量和預(yù)計(jì)單機(jī)計(jì)算所需的時(shí)間/數(shù)據(jù)由王偉濤博士提供】
“云存儲(chǔ)就像一個(gè)大的農(nóng)場(chǎng),每個(gè)服務(wù)器就像一個(gè)工人,而你的數(shù)據(jù)就是羊?!?/p>
阿里云存儲(chǔ)高級(jí)專家承宗說??磥硭莻€(gè)牧場(chǎng)達(dá)人。
“分布式存儲(chǔ)”,可以看作分布式計(jì)算的基礎(chǔ)條件。也就是說,你的羊要先放進(jìn)阿里云的“農(nóng)場(chǎng)”,它的工人才會(huì)幫你照料、喂養(yǎng)、剪毛、紡線。對(duì)于王偉濤博士的數(shù)據(jù)來說,僅僅是存儲(chǔ)在云端,就需要無數(shù)“黑科技”。
在將要進(jìn)行的計(jì)算中,計(jì)算系統(tǒng)會(huì)對(duì)存儲(chǔ)系統(tǒng)進(jìn)行大規(guī)模的訪問。而這些訪問必須要平均地打到服務(wù)器上,絕不能存在熱點(diǎn)。
而這還不夠,由于服務(wù)器的硬件故障在大規(guī)模集群中會(huì)變成一個(gè)常態(tài)事件,所以必須做好資源的實(shí)時(shí)調(diào)度和提供故障容忍能力。例如保證在摘掉一塊硬盤的時(shí)候,其余的硬盤要迅速用備份數(shù)據(jù)把存儲(chǔ)追齊。
承宗舉了以上兩個(gè)例子。這兩個(gè)例子換成農(nóng)場(chǎng)的比喻,大概是如下表述:
農(nóng)場(chǎng)對(duì)于工人的工作量要平均分配,絕不能出現(xiàn)“對(duì)著一個(gè)羊薅羊毛”的情況發(fā)生。
另外,農(nóng)場(chǎng)每天都有工人病倒、請(qǐng)假,要在最短的時(shí)間把他的工作合理分配給很多人,這樣別的工人也不至于負(fù)荷過大。
整個(gè)阿里云的分布式文件系統(tǒng),被命名為盤古。在承宗心里,盤古還有很多智能化的“黑科技”。他舉例了一個(gè)例子:
我們?nèi)祟惪吹降拇疟P都一樣,但是盤古看到的磁盤各不相同。它會(huì)根據(jù)歷史訪問數(shù)據(jù)的積累,例如寫入的速度和效率,對(duì)每一塊磁盤的健康度進(jìn)行打分。對(duì)于健康狀況不好的磁盤,就相應(yīng)減輕一些工作分配。這些底層的技術(shù),都可以為王偉濤博士下一步真正的計(jì)算做準(zhǔn)備。
承宗說,在分布式計(jì)算中,數(shù)據(jù)帶寬成為了一個(gè)重要的參數(shù)。從王偉濤博士的角度來看,如果把數(shù)據(jù)存儲(chǔ)在自己的服務(wù)器上,僅僅利用阿里云的計(jì)算能力進(jìn)行結(jié)果輸出,是不能實(shí)現(xiàn)的。原理很簡(jiǎn)單,分布式計(jì)算的所有服務(wù)器都向一個(gè)存儲(chǔ)單位發(fā)送數(shù)據(jù)讀取請(qǐng)求,帶寬會(huì)被瞬間堵死,再強(qiáng)大的算力都無法發(fā)揮。
至于具體數(shù)據(jù),百兆光纖的帶寬一般是 100Mb/s,而硬盤的帶寬最高可達(dá)幾Gb/s,而阿里云存儲(chǔ)內(nèi)網(wǎng)訪問帶寬(云計(jì)算系統(tǒng)內(nèi)部)可以高達(dá)Tb/s級(jí)別。
接下來,王偉濤博士的數(shù)據(jù)就會(huì)進(jìn)入最終計(jì)算的環(huán)節(jié)。
我熟悉了自己習(xí)慣的 Linux 系統(tǒng),所有的計(jì)算代碼都是在這個(gè)環(huán)境中完成的,如何讓我的代碼在云計(jì)算的環(huán)境中發(fā)揮作用,是一個(gè)很重要的問題。
王偉濤說。
【王偉濤博士地底成像數(shù)據(jù)的計(jì)算流程】
在地震科學(xué)研究方面,阿里云顯然沒辦法提出算法建議,所以他們需要做的是,提供一個(gè)通用的接口,讓王偉濤可以使用自己機(jī)房中的電腦、界面和Linux 系統(tǒng),來對(duì)云上的計(jì)算進(jìn)行控制。
阿里云提供的兼容和適配能力,是阿里計(jì)算專家林河山頗為驕傲的地方。
王博士在此之前沒有使用過分布式集群,也沒有使用過“超算”,所以直接跨越到云上,從操作和控制層面來說,對(duì)他來說會(huì)是個(gè)挑戰(zhàn)。我們提供的計(jì)算接口可以讓單機(jī)程序不做修改就高效執(zhí)行在云環(huán)境下。用戶通過幾句簡(jiǎn)單的命令就能在云上調(diào)動(dòng)大規(guī)模的計(jì)算資源進(jìn)行分析,而不需要學(xué)習(xí)復(fù)雜的分布式計(jì)算知識(shí)。
其實(shí)很多從其他地方過渡到云計(jì)算的人都會(huì)有這樣的問題,所以不僅是王博士,很多其他用戶也會(huì)用到我們的通用計(jì)算接口。
他說。
這個(gè)時(shí)候,大規(guī)模計(jì)算的障礙基本被掃清了。不過,林河山告訴雷鋒網(wǎng),云計(jì)算真正的核心技術(shù),還在于批量計(jì)算的算力調(diào)度之上。
【大規(guī)模計(jì)算的加速流程和模式】
計(jì)算規(guī)模擴(kuò)大之后,就會(huì)造成對(duì)存儲(chǔ)資源的訪問非常頻繁,這時(shí),對(duì)于訪問的并發(fā)量的控制就要非?!靶⌒摹绷?。
王博士的應(yīng)用有非常多的小I/O請(qǐng)求,如果每一次I/O請(qǐng)求都直接訪問云存儲(chǔ),由此帶來的延時(shí)會(huì)對(duì)計(jì)算效率造成影響。為了進(jìn)一步優(yōu)化計(jì)算性能,批量計(jì)算采取了“分布式緩存”的策略,把有可能會(huì)用到的數(shù)據(jù),提前緩存到計(jì)算節(jié)點(diǎn)周圍。這樣,就可以讓計(jì)算能力不受集群規(guī)模的限制。
林河山說。
而即使是這樣,還遠(yuǎn)遠(yuǎn)不夠,對(duì)于數(shù)據(jù)訪問究竟采取多大“粒度”,是考驗(yàn)系統(tǒng)智能的重要時(shí)刻。如果一次讀取過多,可能造成帶寬擁堵,如果一次讀取過少,又會(huì)造成頻繁訪問。而針對(duì)不同類型的數(shù)據(jù),都要做出合理的預(yù)判,自動(dòng)地讀取,是一項(xiàng)艱巨的任務(wù)。
打個(gè)比方:
這如同建造一座金字塔,數(shù)萬名“奴隸”要分工合作。工程師要決定:是犧牲速度一次性運(yùn)輸多個(gè)石塊到現(xiàn)場(chǎng),還是犧牲數(shù)量,一次快速運(yùn)輸一塊石頭到現(xiàn)場(chǎng)。
同樣,面對(duì)浩瀚的金字塔工程,每時(shí)每刻要分配多少奴隸來攪拌砂漿,分配多少奴隸來搬運(yùn)石塊,分別分配多少奴隸來負(fù)責(zé)建造各個(gè)區(qū)塊,這個(gè)即使是工程師都需要仔細(xì)考量才能完成的任務(wù),都要交給系統(tǒng)自動(dòng)完成,難度可想而知。
當(dāng)然,如此繁復(fù)的計(jì)算過程,出錯(cuò)是經(jīng)常會(huì)發(fā)生的。林河山舉了一個(gè)例子:
在渲染追光動(dòng)畫的動(dòng)畫片《小門神》時(shí),阿里云的容錯(cuò)機(jī)制就發(fā)揮了作用。(當(dāng)時(shí)在峰值有 2000臺(tái)服務(wù)器參與了大規(guī)模批量計(jì)算。)
一般情況下, 對(duì)于視頻的渲染工作是一個(gè)連續(xù)的長流程。如果某一幀渲染中哪怕只有一個(gè)節(jié)點(diǎn)出問題,都會(huì)造成訪問的大規(guī)模延時(shí),造成邏輯上的擁堵,產(chǎn)生“熱點(diǎn)”。
林河山說:“阿里云的做法是,在計(jì)算出錯(cuò)之后,在最短的時(shí)間內(nèi)重跑,如果在跑的過程中確認(rèn)節(jié)點(diǎn)存在問題,還會(huì)自動(dòng)調(diào)度到另一個(gè)地方,這些對(duì)于用戶來說都是沒有感知的,但是在背后,我們必須做出大量的努力。
原本需要一年計(jì)算時(shí)間的整個(gè)中國數(shù)千個(gè)地震臺(tái)兩兩之間的五年數(shù)據(jù)的計(jì)算任務(wù),在云計(jì)算中狂飆,48小時(shí)之內(nèi)就計(jì)算完成了。
【地球內(nèi)部成像,恰似人體的B超】
這在云計(jì)算時(shí)代來臨以前是無法想象的。
從科學(xué)研究的角度來看,這些數(shù)據(jù)是原始的地震觀測(cè)數(shù)據(jù)的數(shù)據(jù)產(chǎn)品,同時(shí)也是后續(xù)科學(xué)研究所依賴的重要數(shù)據(jù),可以很好地支撐王偉濤進(jìn)行接下來的研究。從外界看來計(jì)算過程非常順利,而剛才我們所感受的一切艱辛,都只發(fā)生在背后的代碼世界。
【各個(gè)步驟耗時(shí)統(tǒng)計(jì)/圖片由王偉濤博士提供】
借用阿里云產(chǎn)品總監(jiān)李津的話:
當(dāng)計(jì)算結(jié)果輸出的時(shí)候,我們所有的技術(shù)人員都沉默了。我們多么渴望這樣的數(shù)據(jù)早幾十年被計(jì)算出來,這樣我們就能為人類認(rèn)識(shí)地震這一自然災(zāi)害爭(zhēng)取寶貴的時(shí)間。
拋開商業(yè)的云霧,可以看到云計(jì)算真正的的鋒利所在。
王偉濤的研究并沒有停止,他說:
目前為止,我只做了2011年到2015年的一個(gè)向度上的數(shù)據(jù)分析,未來還會(huì)繼續(xù)把更多向度和頻率上的數(shù)據(jù)進(jìn)行計(jì)算??茖W(xué)研究的精確度是可以一直提高的。越來越精確的地底數(shù)據(jù),會(huì)為礦產(chǎn)勘探、防震減災(zāi)和地震科學(xué)研究提供非常強(qiáng)的支持。
科學(xué)的有趣之處,正是在于不斷地嘗試。有可能一覺醒來想到新的方法,就要重新改寫公式和代碼,通過計(jì)算進(jìn)行驗(yàn)證。
也許有一天,屬于王偉濤的那只蘋果會(huì)悄然落下。那一刻,是王偉濤的勝利,也同樣是人類計(jì)算力的勝利。
我們傾盡全力提高算力,把數(shù)據(jù)的涓涓細(xì)流匯聚成洪荒之力,只是因?yàn)槲覀儾辉笇?duì)腳下的大地懵然無知。
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。