《大数据》第1期“专题”——大数据与高性能计算
大數據與高性能計算
陳文光
清華大學計算機科學與技術系 北京 100084
摘要:大數據和高性能計算都是計算機技術發展的產物。高性能計算主要采用模擬方法,被稱作科學發現的第三范式;大數據主要從數據中總結規律,即使在對研究對象缺乏深入理解的情況下也可以發現一定的相關性,被稱作科學發現的第四范式。從研究范式、主要應用類型以及計算機軟硬件系統的角度對大數據與高性能計算的關系展開闡述。
關鍵詞:大數據;高性能計算;并行與分布式計算;相關性
Big Data and High Performance Computing
Chen Wenguang
Department of Computer Science and Technology, Tsinghua University, Beijing 100084, China
Abstract: Both big data and high performance computing (HPC) are based on the computer technologies. The main methodology of HPC is simulation, which is called the third paradigm of scientific discovery. Big data explore data for correlations even without much knowledge on the object of study, which is called the fourth paradigm of scientific discovery. Big data and HPC with several aspects were compared, such as the research paradigm, main application domain and underlying hardware/software systems.
Key words: big data, high performance computing, parallel and distributed computing, correlation
1 引言
科學發現是改善人類生活最重要的基礎,例如對動植物的馴化和耕作技術使人類能夠獲得穩定的食物來源,數學和力學的發展使人類可以構建房屋,抗生素的發現和雙盲測試使得人類擺脫了傳統醫學,DNA的發現更標志著人類對自身的了解達到了新的高度。由重大科學發現引發或推動的現代科學技術發展,正以超出想象的速度改善著人類的生存條件,促進社會進步。例如,平均預期壽命是人類社會發展程度的一個標志性指標,如圖1所示[1]。可以看出,20世紀初,全球平均預期壽命僅有約30歲;2010年,全球預期壽命已達到67.2歲,許多發達國家的平均預期壽命已超過80歲。
科學發現對人類如此重要,那么是什么因素導致了這些科學發現,科學發現是否有“模式”?數千年來,人們逐漸總結出科學發現的若干范式:第一范式是實驗方法,即通過實驗驗證假說是否成立的科學發現方法,實驗方法的一個非常重要的地方是控制實驗條件,以排除各種非實驗因子的干擾;第二范式是理論方法,即通過數學方法進行分析得出結論;隨著計算機技術的出現,人們開始通過計算對復雜系統進行模擬,從而產生了科學發現的第三范式,對大規模科學工程問題的模擬催生了高性能計算;大數據則提供了進一步的科學發現機會,JimGray將直接從數據中總結規律的方式,稱作科學發現的第四范式[2]。
高性能計算和大數據都是計算機技術發展的產物,它們之間既有區別又存在緊密的聯系,本文將從研究范式、主要應用類型以及計算機軟硬件系統的角度對大數據與高性能計算的關系展開闡述。
2 高性能計算
高性能計算主要面向挑戰性的科學與工程問題,例如飛行器設計、氣象預報、全球氣候變化模擬、核聚變模擬、新材料設計、藥物設計以及人類基因組等[3]。
高性能計算主要采用數值模擬的方法,即科學發現的第三范式。以氣象預報為例,首先氣象科學家將氣象預報問題抽象為地球表面、云和太陽等實體之間的物理過程和相互關系(如圖2所示),然后將問題描述為流體力學和熱力學方程組,利用各種氣象觀測數據取得初始條件(經過數據同化),再使用計算機用數值模擬的方法求解方程組,獲得預報值。藥物設計則是使用分子動力學方法對大量的藥物分子進行篩選,計算候選藥物對特定靶點的活性,篩選其中活性較高的藥物再進入實驗篩選。
可以看出,面向科學與工程的高性能計算是在對所需求解的科學或工程問題已經有相當了解的情況下展開的,即已經能夠為研究對象建立數學模型,并了解相應的物理、化學過程的原理。由于系統的復雜性,這些方程通常無法得到解析解,因此需要數值模擬方法求解方程組。
數值模擬方法的重要性顯而易見,對很多無法進行實驗的復雜問題,數值模擬方法提供了一種研究問題的新手段,例如天氣預報和氣候變化研究,科學家無法在地球上進行控制條件的實驗來驗證相關猜想。對新藥篩選這類問題,雖然可以通過實驗的方法得到候選藥物對靶點的活性,但大量篩選藥物的成本非常高,時間也非常長,數值模擬可以有效地降低藥物篩選的成本,加快篩選速度。
解決重大挑戰問題所需數值模擬的計算量和內存量通常非常大。以氣候模擬為例,云層模型的網格粒度需要精細到1.5km以下,模擬時間達到真實時間的1/1 000以下,才能滿足氣候模擬研究者對精度和速度的要求。要達到這一要求,需要200 PFLOPS(1 P = 1015,FLOPS為每秒浮點運算次數)的峰值性能和10TB以上內存,這遠遠超出了現有單臺計算機的性能和內存容量。
因此,聚合多臺計算機能力的并行計算成為高性能計算的基本模式。相應地,高性能計算需要解決并行性引入的一系列問題:算法收斂性、執行的不確定性、負載平衡、容錯能力、功耗、編程性以及通信開銷等。高性能計算機一般采用高質量服務器結點和高速專用網絡,對系統的絕對性能有很高要求,有代表性的軟件包括并行編程模型MPI和OpenMP、用于GPU加速器編程的CUDA和OpenCL、并行文件系統Lustre和PVFS等。
截至2015年4月,世界上最快的高性能計算機是中國的天河2號。該系統由國防科學技術大學研制,目前安裝在廣州超級計算中心。系統由16000個結點組成,每個結點有2個通用處理器和3塊加速卡,共有1.4 PB內存和12.4 PB外存系統,互聯網絡采用國防科學技術大學自主研制的高速專用網絡THExpress-2,系統峰值速度達到了5.49 PFLOPS,整機功耗達到24 MW(包括冷卻部分)。可以看出,即使是天河2號計算機這樣的世界最大的超級計算機,其運算能力與高精度全球氣候模擬的要求仍然存在很大差距。
3 大數據
大數據近年來得到了各行各業的廣泛關注,其定義多種多樣,其中Gartner的3V定義是最為流行的定義之一,即大數據大在數據量(volume)、產生速度(velocity)以及多樣性(variety)。對大數據定義的討論已有較多,本文不再贅述。
當前大數據的應用主要以數據挖掘算法和機器學習算法(如關聯規則挖掘、LR回歸、決策樹、神經元網絡等)為主,廣泛應用于政府、商業、金融等領域,并正在向工業、農業領域擴散。
本文主要討論大數據的一個重要特征,即基于數據的規律發現,也就是科學發現的第四范式。需要說明的是,盡管大數據強調“大”,但基于數據的規律發現并不一定要求數據量非常大,而且這一方法甚至不一定需要計算機。例如,開普勒從第谷對行星的觀測數據中總結出了開普勒三定律,為幾十年后牛頓發現萬有引力定律提供了基礎,這是從數據中發現規律的經典案例。隨著信息技術的發展,特別是近年來互聯網和物聯網的飛速發展,大量的數據被產生、收集、存儲,亟待有效的分析方法從數據中挖掘有意義的規律,從數據中發現規律的可能性和重要性大大增加了,這也是大數據在近年出現并流行的重要原因。
這種從數據中挖掘規律的方法有兩個明顯特點。
(1)觀測到的規律可能是概率的而非決定性的。例如,通過對基因和乳腺癌之間的關系進行研究,從數據中發現“BRCA1基因突變的人發生乳腺癌的風險是55%~65%”,這是個非常有意義的規律,因為沒有相關基因突變的人患乳腺癌的風險要低得多,實際上著名影星安吉麗娜·朱莉檢測出自己的BRCA1基因突變后,通過手術切除了自己的乳房。但是,這一規律并非是決定性的,即使攜帶了BRCA1突變基因的人,仍然有40%左右的概率不會發病。
(2)從數據中總結的規律很多時候僅是相關性規律,而非因果性。例如,通過分析歷史數據發現,全球平均氣溫與當時的二氧化碳濃度成正相關,即二氧化碳濃度高的時候,全球氣溫也高。但是僅憑氣溫與二氧化碳濃度的數據分析,不能得出二氧化碳導致氣溫升高的結論,因為還有一種可能性是氣溫升高導致二氧化碳濃度升高。如果沒有進一步的研究工作說明二氧化碳導致溫度升高的機理,僅能得出相關性,而不能得出因果性。當然,很多時候僅有相關性就夠了,比如超市通過數據分析發現,購買電筒的人經常會購買蛋撻,雖然不知道其原因,但仍然可以將這兩種商品放在一起,增加銷售額。因此,關注相關性而非因果性是大數據的一個顯著特征。然而,在具體使用大數據分析得出的相關性時,需要注意相關性成立的條件。例如,如果數據都是春天的數據,那么得到的相關性是否適用于秋天?
可以看出,基于大數據的第四范式與基于高性能計算的第三范式有明顯區別。第三范式通常對研究對象已經有了深入理解,可以用方程組描述其行為,模擬僅是為了求解復雜方程組;第四范式則可能對研究對象不是非常了解,僅有一些觀測數據,但希望從這些數據中能夠發現相關性規律。
從大數據定義中的3V可以看出,單臺計算機一般也是很難支撐大數據分析所需要的計算能力、內存容量和存儲容量的,因此大數據分析平臺也很自然地利用分布式系統進行并行計算,同樣會遇到高性能計算也會遇到的算法收斂性、執行的不確定性、負載平衡、容錯能力、功耗、編程性以及通信開銷等問題。與高性能計算不同的是,大數據最初是由Google、Yahoo等互聯網公司主要推動的,其硬件平臺多由廉價的服務器通過普通以太網連接起來,而不像高性能計算機采用高質量的服務器和高速專用網絡連接。因此與高性能計算相比,大數據處理軟件更注重系統的擴展性和容錯性,對系統的絕對性能關注相對較少。其代表性的軟件平臺是Google的GFS和MapReduce/BigTable/Spanner等以及開源的Hadoop、Spark系統等。
4 大數據與高性能計算的相互借鑒與融合
表1從研究范式、應用領域、硬件平臺、軟件平臺的角度比較了大數據與高性能計算。
表1 大數據與高性能計算的比較
大數據 | 高性能計算 | |
研究范式 | 從數據中總結規律(第四范式) | 數值模擬(第三范式) |
主要應用領域 | 政府、商業、金融 | 科學與工程 |
主要硬件平臺 | 廉價的商用服務器和普通以太網,網絡延遲 100 μs,帶寬100 Mbit/s~1 Gbit/s | 高性能服務器結點和高速專用網絡,網絡延遲 1 μs,帶寬40~56 Gbit/s |
主要軟件平臺 | 著重容錯與擴展性Hadoop、Spark等 | 著重執行效率MPI、OpenMP、Lustre等 |
盡管表1列出了大數據與高性能計算在多個方面的顯著區別,但這兩個領域也存在許多共同點,存在著相互借鑒與融合的趨勢。
從研究范式來講,科學發現往往是多范式的結合,大數據分析發現的相關性盡管不包含因果性,卻為進一步發現因果性提供了基礎。例如,在BRCA1基因突變可能導致乳腺癌后,進一步的研究就可以集中在BRCA1基因突變所導致的生物過程上,為研究乳腺癌的機理提供了更為明確的途徑。另一方面,在JimGray關于第四范式的介紹中,認為第四范式實際上融合了實驗、理論和模擬這前3個范式,即數據可以通過實驗,也可以是通過模擬得到,大數據算法本身就會用到理論,特別是統計學[2]。
從硬件平臺上來看,現有普通服務器和網絡在處理通信較為頻繁的大數據問題時效率不高,而高性能計算機由于其高性能計算結點和高速專用網絡,對這類問題的處理更為高效。例如,大數據平臺仍然廣泛使用吉比特網,只有少數使用萬兆網,而高性能計算機早已開始使用帶寬為40~56Gbit/s的InfiniBand,并在廣播、多播、規約等操作上提供了硬件優化,還提供了基于RDMA(遠程直接內存訪問)的快速通信機制。因此,大數據處理也開始借鑒高性能計算機的硬件平臺技術。例如,Oracle推出了大數據一體機Exadata,其內部采用了高性能結點、高速專用網絡InfiniBand和高速存儲。
在軟件層面,許多大數據算法可以表達為稀疏矩陣運算,并通過GPU等加速器進行加速,而高性能計算在稀疏矩陣的CPU和GPU加速方面都有很好的軟件庫,可以用來加速大數據算法。許多研究者發現,基于MapReduce和Spark的大數據算法實現效率過低,某些情況下甚至不如經過良好優化的單機并行程序,采用高性能計算的思路優化大數據算法,也是一個重要的研究方向[4]。
另一方面,MapReduce、Spark等大數據編程系統所具有的良好容錯性也為解決極大規模高性能計算的容錯問題提供了新的思路。在天河2號這樣的P級系統中,全系統的平均無故障時間一般不超過10h,但傳統高性能計算(MPI)編程模型的容錯代價太大,常用的保存檢查點方法通常會帶來巨大的I/O量,不僅開銷大,還影響了系統穩定性,提高了系統故障率。利用編程系統和算法進行更高效的容錯,是高性能計算發展的重要方向。更進一步,利用大數據的方法分析高性能計算系統運行時產生的事件記錄,可以有效預測系統中可能發生故障的部件,從而采取主動容錯的方式,在故障還未發生時就采取措施,降低故障給程序運行帶來的開銷[5]。
5 結束語
大數據與高性能計算雖然起源于不同的研究范式,但都是利用計算進行規律發現和預測的方法,盡管它們在研究范式、應用領域、硬件平臺、軟件平臺上有所區別,但面臨類似的技術挑戰,兩個領域也存在相互借鑒、共同發展和融合的趨勢。大數據和高性能計算的融合可望為人類提供更加強有力的科學發現工具,改善人類的生活,促進社會的發展。
參考文獻
[1] GoklanyI M. The Improving State of the World: Why We’re Living Longer, Healthier, MoreComfortable Lives on a Cleaner Planet. Washington: Cato Institute, 2006
[2] HeyH, Tansley S, Tolle K. The Fourth Paradigm: Data-Intensive ScientificDiscovery. Washington: Microsoft Research, 2009
[3] NationalScience Foundation Advisory Committee for Cyber infrastructure Task Force onGrand Challenges Final Report. https://www.nsf.gov/cise/aci/taskforces/TaskForceReport_randChallenges.pdf,2011
[4] KyrolaA, Blelloch G, Guestrin C. GraphChi: large-scale graph computation on just aPC. Proceedings of the 10th USENIX Symposium on Operating Systems Design andImplementation, Hollywood, CA, USA, 2012
[5] Xu W, Huang L, Fox A, et al. Detecting large-scale systemproblems by mining console logs. Proceedings of the 22nd ACM Symposium onOperating Systems Principles, Big Sky, Montana, USA, 2009
了解詳情或下載文章請點擊閱讀原文(安卓用戶請選擇“在瀏覽器中打開”)
總結
以上是生活随笔為你收集整理的《大数据》第1期“专题”——大数据与高性能计算的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 当map遇上range
- 下一篇: go语言中append函数的使用