數(shù)字世界的發(fā)展離不開(kāi)各種各樣的數(shù)字工具,Mars則是推動(dòng)科學(xué)計(jì)算的強(qiáng)力武器。
在現(xiàn)代科技的演進(jìn)中,伴隨著計(jì)算環(huán)境的復(fù)雜以及數(shù)據(jù)量的大規(guī)模爆發(fā),使得科研人員和開(kāi)發(fā)者往往要面對(duì)十分龐大的計(jì)算量。比如在金融工程、基因測(cè)序、氣候研究等領(lǐng)域,不僅需要強(qiáng)大的計(jì)算力支持,還要保證數(shù)學(xué)理論上的抽象與嚴(yán)謹(jǐn),并兼顧程序設(shè)計(jì)上的實(shí)用與實(shí)踐。
基于此,阿里巴巴推出基于張量的分布式計(jì)算框架Mars,并與英特爾合作,借助英特爾傲騰持久內(nèi)存提供的更大內(nèi)存容量與低時(shí)延特性,大幅加速科學(xué)計(jì)算任務(wù)中產(chǎn)生的中間過(guò)程的數(shù)據(jù)I/O,明顯提升分布式科學(xué)計(jì)算的運(yùn)算效率。
分布式計(jì)算難以應(yīng)用于科學(xué)計(jì)算
基因序列、大自然、宇宙充滿了未知的秘密,科學(xué)計(jì)算就是人類揭開(kāi)一些隱藏信息的鑰匙。在數(shù)字化發(fā)展逐漸成熟的當(dāng)下,除了科學(xué)研究外,科學(xué)計(jì)算也為金融、交通、氣象等一些工程技術(shù)提供了可行方案。
科學(xué)計(jì)算的過(guò)程往往伴隨著龐大的數(shù)據(jù)量以及高計(jì)算力需求,因此也誕生了一些專為科學(xué)計(jì)算而發(fā)展的工具,如SciPy。從誕生日起,SciPy已經(jīng)經(jīng)歷了二十年的發(fā)展,作為面向Python的開(kāi)源科學(xué)計(jì)算庫(kù),SciPy一直是科學(xué)計(jì)算的核心,并代表著Python的一個(gè)行業(yè)標(biāo)準(zhǔn)。在SciPy提供的基本算法中,涵蓋了現(xiàn)有的數(shù)學(xué)軟件分類系統(tǒng),可以為微分、積分方程等計(jì)算提供完整流程,這也使得SciPy在數(shù)學(xué)、工程、科學(xué)計(jì)算等領(lǐng)域發(fā)揮著十分重要的作用。
在整個(gè)SciPy體系中,Numpy是各種工具的基礎(chǔ),它不僅提供了多維數(shù)組的數(shù)據(jù)結(jié)構(gòu),還支持SciPy體系中的各種計(jì)算。多維數(shù)組又叫張量,這個(gè)概念在近幾年被廣泛傳播,它是深度學(xué)習(xí)的基礎(chǔ)。張量擁有很多優(yōu)勢(shì)特性,相比于二維表/矩陣,張量能夠創(chuàng)造更高緯度的矩陣和向量,因此其具有更加強(qiáng)大的表達(dá)能力。
在AI創(chuàng)新的驅(qū)動(dòng)下,掀起了一股機(jī)器學(xué)習(xí)和深度學(xué)習(xí)的熱潮,張量的使用也逐漸增加。Numpy由于簡(jiǎn)潔易用且性能強(qiáng)大,在企業(yè)中被廣泛應(yīng)用。不過(guò),Numpy還只適用于單機(jī)條件,對(duì)于大部分函數(shù)都無(wú)法進(jìn)行并行化操作,也不能利用CPU的多核心處理能力來(lái)提高計(jì)算效率,從而使得Numpy不能突破現(xiàn)有的規(guī)模瓶頸。
在這樣的背景下,分布式計(jì)算引擎的出現(xiàn)為處理海量數(shù)據(jù)的工作提供了另一種思路。分布式計(jì)算是一個(gè)十分高效且具備高性價(jià)比的方案,在應(yīng)對(duì)大數(shù)據(jù)集的計(jì)算任務(wù)中,不僅可以均衡任務(wù)調(diào)度,還能大幅提高計(jì)算效率。
但值得注意的是,分布式計(jì)算引擎在科學(xué)計(jì)算領(lǐng)域并不能發(fā)揮太大作用,其原因就是前者的誕生與后者沒(méi)有必然關(guān)系,而分布式計(jì)算引擎的上層接口不匹配,導(dǎo)致科學(xué)計(jì)算任務(wù)很難用傳統(tǒng)的SQL/MapReduce編寫(xiě)。且在執(zhí)行過(guò)程中,計(jì)算引擎本身沒(méi)有對(duì)科學(xué)計(jì)算進(jìn)行針對(duì)性優(yōu)化,使得后者的計(jì)算效率同樣難以滿足行業(yè)發(fā)展需求。
基于此,阿里巴巴推出開(kāi)源分布式科學(xué)計(jì)算引擎Mars,將分布式技術(shù)引入科學(xué)計(jì)算領(lǐng)域,突破大數(shù)據(jù)計(jì)算引擎以關(guān)系代數(shù)為主的計(jì)算模型,將大規(guī)模的科學(xué)計(jì)算任務(wù)從MapReduce的上千行代碼降低到Mars的數(shù)行代碼,使得科學(xué)計(jì)算的效率大幅提升。
Mars增強(qiáng)科學(xué)計(jì)算核心
Mars在科學(xué)計(jì)算領(lǐng)域的應(yīng)用是突破性的。作為新一代大規(guī)??茖W(xué)計(jì)算引擎,Mars讓大數(shù)據(jù)可以進(jìn)行高效的科學(xué)計(jì)算,并將其帶入到分布式時(shí)代。目前,Mars已經(jīng)在阿里巴巴及其云上客戶的業(yè)務(wù)和生產(chǎn)場(chǎng)景中廣泛應(yīng)用,幫助用戶探索數(shù)據(jù)背后的價(jià)值。
具體來(lái)看,Mars具備以下幾個(gè)獨(dú)特的優(yōu)勢(shì)和特點(diǎn),使得其在科學(xué)計(jì)算領(lǐng)域擁有廣闊前景:
第一,符合使用習(xí)慣的接口,容易上手。Mars通過(guò)內(nèi)部的tensor模塊提供兼容Numpy的接口,用戶只需要通過(guò)import Mars就能將已有的基于Numpy編寫(xiě)的代碼移植到Mars中,直接獲得比原來(lái)擴(kuò)大數(shù)萬(wàn)倍的運(yùn)算規(guī)模。
在實(shí)際移植過(guò)程中可以發(fā)現(xiàn),代碼只需要有少量改變,一是將import numpy改成import mars.tensor;二是通過(guò)execute來(lái)觸發(fā)執(zhí)行。目前,Mars 實(shí)現(xiàn)了大約 70% 的常見(jiàn) Numpy 接口。據(jù)悉,在Mars后續(xù)的升級(jí)迭代中,將逐漸把SciPy技術(shù)棧中的工具分布式化,比如提供完全兼容的pandas接口,從而完善整個(gè)Mars應(yīng)用生態(tài)。
第二,支持GPU加速,這也是Mars在科學(xué)計(jì)算領(lǐng)域十分突出的一個(gè)優(yōu)勢(shì)。用戶可以十分簡(jiǎn)便地設(shè)置GPU加速:創(chuàng)建張量時(shí),通過(guò)指定gpu=True就可以讓后續(xù)計(jì)算在GPU上執(zhí)行,進(jìn)一步提升計(jì)算效率。
第三,支持二維稀疏矩陣。通過(guò)設(shè)定sparse=True,用戶可在Mars創(chuàng)建稀疏矩陣,這樣的好處是可以節(jié)省存儲(chǔ)空間,有利于計(jì)算效率的提升。
第四,可擴(kuò)展性。Mars可以向內(nèi)擴(kuò)展到單機(jī),也可以向外擴(kuò)展到有數(shù)千臺(tái)計(jì)算機(jī)的服務(wù)器集群。由于本地和分布式版本都共享相同的代碼,因此隨著數(shù)據(jù)的增加從單機(jī)遷移到集群也是十分便利的。
粗粒度圖
也是基于這些特性和獨(dú)特的優(yōu)勢(shì),Mars支持多種調(diào)度方式,如多線程模式、分布式、單機(jī)集群模式,這保證了Mars的擴(kuò)展性,也讓其可以支持更多科學(xué)計(jì)算的場(chǎng)景。與Numpy相比,Mars可以看成是包含粗粒度圖與細(xì)粒度圖的計(jì)算圖,給定一個(gè)張量,Mars會(huì)將其在各個(gè)維度劃分為小的chunk,然后對(duì)這些chunk進(jìn)行處理,將其調(diào)度到多核或者分布式集群中來(lái)執(zhí)行。
這主要是因?yàn)镸ars不會(huì)在客戶端進(jìn)行真正的運(yùn)算操作,當(dāng)用戶寫(xiě)下代碼時(shí),這些數(shù)據(jù)會(huì)在內(nèi)存中用圖的形式來(lái)記錄下來(lái),并在用戶使用execute觸發(fā)執(zhí)行后,將圖提交到Mars的分布式執(zhí)行環(huán)境中。本質(zhì)來(lái)看,Mars是一個(gè)對(duì)細(xì)粒度、異構(gòu)圖的執(zhí)行調(diào)度系統(tǒng)。
Mars chunk級(jí)別的執(zhí)行圖
值得注意的是,盡管在Mars矩陣運(yùn)算中輸入和輸出的數(shù)據(jù)量并不大,但在chunk之后的運(yùn)行過(guò)程會(huì)產(chǎn)生大量的中間過(guò)程,在上圖中,紅色框內(nèi)部的就是產(chǎn)生的中間過(guò)程。毫無(wú)疑問(wèn),這些過(guò)程的產(chǎn)生會(huì)占用大量?jī)?nèi)存資源。為此,阿里巴巴在Mars中加入了數(shù)據(jù)溢出控制手段,將暫時(shí)不用或用不到的數(shù)據(jù)放到磁盤(pán)中存儲(chǔ),防止內(nèi)存溢出,保證計(jì)算安全。
英特爾傲騰助力Mars突破計(jì)算瓶頸
數(shù)據(jù)溢出控制手段會(huì)有效減少M(fèi)ars運(yùn)行時(shí)內(nèi)存資源不必要的消耗,但與此同時(shí),在TCO相當(dāng)?shù)臈l件下,內(nèi)存系統(tǒng)的構(gòu)建會(huì)成為制約Mars計(jì)算效率的又一瓶頸。
傳統(tǒng)硬盤(pán)價(jià)位低,且可以提供大量存儲(chǔ)空間,但在可靠性、物理空間要求、散熱等因素上會(huì)帶來(lái)新的應(yīng)用成本。且在I/O速度方面,從硬盤(pán)訪問(wèn)數(shù)據(jù)會(huì)伴隨著嚴(yán)重的延遲,在這一點(diǎn)上,DRAM擁有明顯優(yōu)勢(shì),可以減少千倍的延遲時(shí)間,但在容量方面又會(huì)有新的困擾。
在此背景下,阿里巴巴與英特爾合作,在運(yùn)行Mars的服務(wù)器上配置英特爾傲騰持久內(nèi)存,通過(guò)其容量大、低延遲的特點(diǎn)為Mars提供足夠的共享內(nèi)存,保證Mars科學(xué)計(jì)算效率的高水平實(shí)現(xiàn)。
英特爾傲騰持久內(nèi)存擁有兩種操作模式,內(nèi)存模式和應(yīng)用直接模式(AD),前者適用于大內(nèi)存容量,后者具備非易失性,應(yīng)用可直接在內(nèi)存中進(jìn)行運(yùn)算,大幅降低堆棧中的復(fù)雜程度。不僅如此,英特爾傲騰持久內(nèi)存可以提供128G、256G、512G容量,與傳統(tǒng)DRAM相比每GB的內(nèi)存成本也更低,可以滿足Mars大規(guī)模應(yīng)用的需求。
Mars需要滿足不斷多樣化的科學(xué)計(jì)算環(huán)境,為此,英特爾對(duì)傲騰持久內(nèi)存進(jìn)行了兩個(gè)調(diào)優(yōu),一個(gè)是內(nèi)存啟用Snoop for AD模式,一個(gè)是Plasma在持久內(nèi)存中實(shí)現(xiàn)共享。前者可以保證傲騰持久內(nèi)存保持較高的I/O水平,后者讓內(nèi)存資源應(yīng)用更為合理,從而有效提升Mars的計(jì)算性能。
在實(shí)驗(yàn)環(huán)境下,使用兩個(gè)矩陣相乘的科學(xué)計(jì)算為Mars的工作負(fù)載,分別采用裝配有英特爾傲騰持久內(nèi)存的服務(wù)器和搭載DRAM內(nèi)存的服務(wù)器來(lái)執(zhí)行,在對(duì)Mars進(jìn)行不同數(shù)據(jù)集的工作負(fù)載測(cè)試后可以發(fā)現(xiàn),當(dāng)數(shù)據(jù)集規(guī)模較小時(shí),數(shù)據(jù)是可以被DRAM緩存的,持久內(nèi)存的性能接近于DRAM;當(dāng)數(shù)據(jù)集規(guī)模不斷上升后,持久內(nèi)存的優(yōu)勢(shì)開(kāi)始顯現(xiàn),當(dāng)數(shù)據(jù)集規(guī)模增大到SF=0.5時(shí),使用傲騰持久內(nèi)存的性能就有相對(duì)于DRAM 1.11倍的提升。
可以說(shuō),利用英特爾傲騰持久內(nèi)存,Mars的計(jì)算性能會(huì)得到有效提升,尤其是面向大規(guī)模數(shù)據(jù)集時(shí),英特爾傲騰持久內(nèi)存不僅能解決數(shù)據(jù)緩存溢出問(wèn)題,還能大幅降低數(shù)據(jù)延遲,從而讓科學(xué)計(jì)算更為高效。
免責(zé)聲明:此文內(nèi)容為第三方自媒體作者發(fā)布的觀察或評(píng)論性文章,所有文字和圖片版權(quán)歸作者所有,且僅代表作者個(gè)人觀點(diǎn),與極客網(wǎng)無(wú)關(guān)。文章僅供讀者參考,并請(qǐng)自行核實(shí)相關(guān)內(nèi)容。投訴郵箱:editor@fromgeek.com。
- 蜜度索驥:以跨模態(tài)檢索技術(shù)助力“企宣”向上生長(zhǎng)
- 技術(shù)領(lǐng)先的美國(guó)為何在六代機(jī)研發(fā)上落后了?制造業(yè)基礎(chǔ)薄弱是主因
- 國(guó)產(chǎn)手機(jī)玩田忌賽馬,舊款旗艦降價(jià)超千元,不敢與蘋(píng)果硬拼
- 在人群里,看見(jiàn)「鯤鵬開(kāi)發(fā)者」
- 游戲體驗(yàn)天花板,一加 Ace 5 系列售價(jià) 2299 元起
- 為創(chuàng)意和管理提效,新廣告投放(3.0)驅(qū)動(dòng)消費(fèi)品商家高效增長(zhǎng)
- 榮耀Magic7系列全面升級(jí)大王影像,首發(fā)AI超級(jí)長(zhǎng)焦拍遠(yuǎn)更清晰
- 2024過(guò)去了,留下十個(gè)科技記憶
- 年貨節(jié)如何大爆單?別錯(cuò)過(guò)巨量千川這三波紅利
- 中國(guó)六代機(jī)首飛成功,還是兩款,宣告全球戰(zhàn)機(jī)技術(shù)將由中國(guó)引領(lǐng)
- 美國(guó)無(wú)人機(jī)禁令升級(jí)?當(dāng)?shù)乜茖W(xué)家率先“喊疼”:我們離不開(kāi)大疆
免責(zé)聲明:本網(wǎng)站內(nèi)容主要來(lái)自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請(qǐng)進(jìn)一步核實(shí),并對(duì)任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對(duì)有關(guān)資料所引致的錯(cuò)誤、不確或遺漏,概不負(fù)任何法律責(zé)任。任何單位或個(gè)人認(rèn)為本網(wǎng)站中的網(wǎng)頁(yè)或鏈接內(nèi)容可能涉嫌侵犯其知識(shí)產(chǎn)權(quán)或存在不實(shí)內(nèi)容時(shí),應(yīng)及時(shí)向本網(wǎng)站提出書(shū)面權(quán)利通知或不實(shí)情況說(shuō)明,并提供身份證明、權(quán)屬證明及詳細(xì)侵權(quán)或不實(shí)情況證明。本網(wǎng)站在收到上述法律文件后,將會(huì)依法盡快聯(lián)系相關(guān)文章源頭核實(shí),溝通刪除相關(guān)內(nèi)容或斷開(kāi)相關(guān)鏈接。