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