中微子是宇宙中數(shù)量最多的基本粒子之一,是構(gòu)造宇宙中一切的基本元素。中微子又是最輕的物質(zhì)粒子,迄今還未能測出它的確切質(zhì)量,但至少比電子還要輕100萬倍。如果能探測到中微子,我們就找到回答人類最難解之謎——宇宙如何誕生的鑰匙。[1]
為了探索中微子的奧秘,科學家們建立了神岡中微子探測實驗項目 KamLAND,其中涉及到大量復雜的科學計算,比如有若干變量的線性或非線性方程組、復雜的微積分公式等等。想要找到答案,需要具備強大算力的計算機,以及支持科學計算的編程語言和程序庫,Numpy 就是其中的核心庫之一,而且用在 KamLAND 項目中。[2]Numpy 主要的功能是支持海量多維數(shù)組——即張量與矩陣的運算。然而,隨著機器學習、深度學習的研究不斷深入,應用持續(xù)落地,大家發(fā)現(xiàn) Numpy 難以實現(xiàn)高效的并行計算。
為了解決 Numpy 的問題,阿里巴巴大數(shù)據(jù)計算平臺 MaxCompute 團隊研發(fā)了 Mars ——基于張量的統(tǒng)一分布式計算框架,同時使用英特爾® 傲騰™ 持久內(nèi)存,加速了數(shù)據(jù) I/O 過程,極大提升了分布式科學計算的運算效率。
突破傳統(tǒng)大數(shù)據(jù)計算引擎模式,并行化 Mars 更高效
Mars 的出現(xiàn),是為了解決科學運算庫 Numpy 的下列主要問題:
1 |
Numpy 中大部分函數(shù)無法并行化,因此不能利用 CPU 的多核能力提高計算效率; |
2 |
實現(xiàn) Numpy 并行化,需要手工編寫多線程、分布式的代碼,不但難度大,而且效率低,尤其是遇到大規(guī)模數(shù)據(jù)集時,根本無法下手; |
3 |
目前的主流分布式計算引擎的上層接口無法匹配科學計算任務,難以使用常見的 SQL 和 MapReduce 編寫,同時引擎本身沒有針對科學計算的優(yōu)化,計算效率低下。 |
作為基于張量的統(tǒng)一分布式計算框架,Mars 突破了現(xiàn)有大數(shù)據(jù)計算引擎以關(guān)系代數(shù)為主的計算模型,將分布式技術(shù)引入科學計算/數(shù)值計算領(lǐng)域,極大擴展了科學計算的計算規(guī)模和效率,目前已應用于阿里巴巴及其云上客戶的業(yè)務和生產(chǎn)場景。
Mars 的核心能力包括:
1 |
符合使用習慣的接口,易于上手;以往的 Numpy 代碼無需修改,就能直接移植到 Mars,獲得比原來大數(shù)萬倍規(guī)模,同時處理能力提高數(shù)十倍的能力; |
2 |
支持 GPU 加速; |
3 |
支持二維稀疏矩陣; |
4 |
易于擴展:支持單機和集群之間的輕松遷移; |
5 |
內(nèi)存計算支持溢出控制,保證計算安全。 |
傲騰持久內(nèi)存助力,Mars 超越磁盤 I/O 瓶頸
不過在實際運行過程中,Mars 卻受到傳統(tǒng)磁盤,I/O 速度的限制。因為 Mars 主要在內(nèi)存中完成計算,數(shù)據(jù)也在內(nèi)存中,如果內(nèi)存不夠,暫時不用的數(shù)據(jù)就會放在磁盤中。而科學任務的大量中間過程會導致大量磁盤 I/O,從而拉低整個系統(tǒng)性能。如果添加更多內(nèi)存,又會使得硬件成本激增。那么,如何才能既控制總體擁有成本 TCO,又可以提高 Mars 性能?
阿里與英特爾深度合作,將英特爾® 傲騰™ 持久內(nèi)存安裝在 Mars 服務器上,英特爾® 傲騰™ 持久內(nèi)存容量大,延遲低,可為 Mars 計算提供大容量共享內(nèi)存,從而提升了科學計算的性能。
英特爾® 傲騰™ 持久內(nèi)存顛覆了傳統(tǒng)內(nèi)存技術(shù),它基于 3DXpoint 介質(zhì),速度快,延遲低,容量大,可以持久化數(shù)據(jù),既能充當 DRAM 內(nèi)存,又可作為傳統(tǒng)存儲。與第二代英特爾® 至強® 可擴展處理器一起使用,英特爾® 傲騰™ 持久內(nèi)存不但可以提供類似于 DRAM 內(nèi)存的性能,而且能像 SSD 一樣持久存儲數(shù)據(jù),同時容量比 DRAM 內(nèi)存更大,價格也更便宜。
Mars 使用英特爾® 傲騰™ 持久內(nèi)存完成科學計算,不再出現(xiàn)數(shù)據(jù)輸入的巨大開銷,降低了數(shù)據(jù)延遲,讓 Mars 運算效率大大提升。
經(jīng)過測試發(fā)現(xiàn),針對兩個矩陣相乘的科學計算,當數(shù)據(jù)集規(guī)模不斷變大時,使用 DRAM 的服務器會將數(shù)據(jù)存入 SSD,而使用英特爾® 傲騰™ 持久內(nèi)存的方案就沒有這個問題,同時性能相對 DRAM 方案提升 11% 。
科學計算的未來,是星辰大海
無論是探測中微子這樣的高能物理,還是氣候研究、基因測序、金融工程、天文學模擬,所有這些都離不開科學計算。有了英特爾® 傲騰™ 持久內(nèi)存加持的 Mars,將會在科學計算領(lǐng)域中大展身手,以更多、更新、更重要的科學發(fā)現(xiàn),造福人類,讓我們有更強大的能力去探索宇宙的奧秘。
[1] 中微子,關(guān)乎宇宙起源之謎
http://www.cas.cn/kx/kpwz/202004/t20200421_4741952.shtml
[2] Suppression of Cosmic Muon Spallation Backgrounds inLiquid Scintillator Detectors Using ConvolutionalNeural Networks
https://arxiv.org/pdf/1812.02906.pdf