• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    大數(shù)據(jù)技術(shù)發(fā)展的十個(gè)前沿方向(中)

    2015-03-17 02:53:34吳甘沙
    大數(shù)據(jù) 2015年3期
    關(guān)鍵詞:內(nèi)存架構(gòu)優(yōu)化

    大數(shù)據(jù)技術(shù)發(fā)展的十個(gè)前沿方向(中)

    Ten Fronties for Big Data Technologies (Part B)

    吳甘沙,男,現(xiàn)任英特爾中國(guó)研究院院長(zhǎng)。2000年加入英特爾,先后在編程系統(tǒng)實(shí)驗(yàn)室與嵌入式軟件實(shí)驗(yàn)室承擔(dān)了技術(shù)與管理職位,期間參與或主持的研究項(xiàng)目有受控運(yùn)行時(shí)、XScale微架構(gòu)、眾核架構(gòu)、數(shù)據(jù)并行編程及高生產(chǎn)率嵌入設(shè)備驅(qū)動(dòng)程序開發(fā)工具等。2011年晉升為首席工程師,共同領(lǐng)導(dǎo)了公司的大數(shù)據(jù)中長(zhǎng)期技術(shù)規(guī)劃,主持大數(shù)據(jù)方面的研究,工作重點(diǎn)為大數(shù)據(jù)內(nèi)存分析與數(shù)據(jù)貨幣化。在英特爾工作期間,發(fā)表了10余篇學(xué)術(shù)論文,有23項(xiàng)美國(guó)專利(10余項(xiàng)成為國(guó)際專利),14項(xiàng)專利進(jìn)入審核期。

    6 前沿方向四:軟硬兼施

    大數(shù)據(jù)計(jì)算的一個(gè)核心要義是軟硬兩手抓,從具體應(yīng)用出發(fā),仔細(xì)選擇軟硬件架構(gòu)實(shí)現(xiàn),并且在運(yùn)行過(guò)程中持續(xù)不斷地協(xié)同優(yōu)化。

    首先,從大數(shù)據(jù)應(yīng)用角度出發(fā),硬件架構(gòu)重點(diǎn)體現(xiàn)在計(jì)算、存儲(chǔ)、互聯(lián)。

    6.1 計(jì)算硬件架構(gòu)

    在計(jì)算這一塊,首先要選擇的是大小核。brawny cores是大核,主要是至強(qiáng)服務(wù)器芯片,wimpy cores是小核,F(xiàn)AWN(fast array of wimpy nodes)最早展示了小核陣列在特定計(jì)算和I/O輪廓下的數(shù)據(jù)密集型應(yīng)用中具有一定的能耗優(yōu)勢(shì),其所指的核是Atom或ARM這種級(jí)別的核。小核往往需要跟閃存存儲(chǔ)結(jié)合才能體現(xiàn)系統(tǒng)級(jí)的能耗效率提升。對(duì)于絕大多數(shù)的大數(shù)據(jù)應(yīng)用,大核系統(tǒng)優(yōu)于小核,谷歌公司基礎(chǔ)設(shè)施的領(lǐng)導(dǎo)者Urs Holzle[21]和亞馬遜公司AWS的主要架構(gòu)師James Hamilton[22]在相關(guān)文獻(xiàn)中有所論述。另外,基于小核的系統(tǒng)還面臨其他一些挑戰(zhàn),比如需要軟件做額外的優(yōu)化、串行部分變慢影響了整體并行加速比、調(diào)度無(wú)法保證很多小核的高利用率等。

    第二,硬件架構(gòu)方面,要從同構(gòu)計(jì)算到異構(gòu)計(jì)算進(jìn)行多方面考慮。數(shù)據(jù)中心成本戰(zhàn)略已經(jīng)從虛擬化(提高IT設(shè)備利用率)向每瓦特性能轉(zhuǎn)移,其中,對(duì)運(yùn)行負(fù)載做特化(specialization)、走向異構(gòu)計(jì)算是必然趨勢(shì)。首先是集成異構(gòu)多核,英特爾公司的E3級(jí)服務(wù)器芯片在一個(gè)芯片上同時(shí)集成了CPU和GPU,兩者通過(guò)LLC(last level cache,三級(jí)緩存)進(jìn)行數(shù)據(jù)交互,相比基于PCIe加速器或其他高速互聯(lián)的異構(gòu)架構(gòu)更為高效。第二類是獨(dú)立GPGPU,分立GPU卡做計(jì)算加速,比如深度學(xué)習(xí)框架Caffe就有針對(duì)GPGPU的優(yōu)化。類似地,英特爾公司的Xeon Phi(應(yīng)用在超級(jí)計(jì)算機(jī)天河2號(hào)上,并且?guī)椭@得世界排名第一的計(jì)算加速芯片和板卡)將對(duì)Caffe做深度的優(yōu)化。目前來(lái)說(shuō),GPGPU和Xeon Phi都是插在PCIe插槽上的加速器,它們的加速性能都受到PCIe帶寬的限制。2016年Xeon Phi的新版本Knights Landing可以獨(dú)立啟動(dòng)系統(tǒng),因此PCIe的限制就不存在了,相對(duì)GPGPU方案來(lái)說(shuō),其可以消除PCIe瓶頸。

    另外,F(xiàn)PGA(field-programmable gate array,現(xiàn)場(chǎng)可編程門陣列)加速也是現(xiàn)在廣為采用的一種方法,美國(guó)自然科學(xué)基金會(huì)最近的一個(gè)報(bào)告6http://insidehpc. com/2014/08/ nsf-studyprobeadvantages-f/指出,對(duì)于深度學(xué)習(xí)(比如卷積神經(jīng)網(wǎng)絡(luò)),F(xiàn)PGA比GPGPU更有效。百度公司和微軟公司都明確聲稱在生產(chǎn)集群中利用FPGA加速深度神經(jīng)網(wǎng)絡(luò),傳言谷歌公司也在做類似嘗試。另外,微軟公司的Catapult項(xiàng)目還將FPGA應(yīng)用于Bing搜索引擎網(wǎng)頁(yè)排名的加速,在功耗增加10%的情況下得到了95%的性能提升7http://research. microsoft.com/ pubs/212001/ Catapult_ ISCA_2014.pdf。如果英特爾公司對(duì)Altera公司的收購(gòu)順利完成,這一技術(shù)路線將有更多的想象空間。目前來(lái)說(shuō),F(xiàn)PGA一般用于已訓(xùn)練模型的分類,還不適合對(duì)訓(xùn)練過(guò)程的加速(比如不容易實(shí)現(xiàn)對(duì)參數(shù)的更新)。

    還有一種技術(shù)路線是ASIP(application specific instruction processor,專用指令集處理器),最典型的是NPU(neural processing unit,神經(jīng)處理單元)??傮w來(lái)說(shuō),NPU分兩大類:人工神經(jīng)網(wǎng)絡(luò)的加速器和類腦芯片(neuromorphic architecture)。前者如中國(guó)科學(xué)院計(jì)算技術(shù)研究所DianNao芯片系列[23]和已經(jīng)商業(yè)化的Teradeep(來(lái)源于Yann LeCun的工作NeuFlow,一種基于數(shù)據(jù)流的卷積神經(jīng)網(wǎng)絡(luò)加速器);對(duì)于類腦芯片,常常見諸媒體的有IBM的TrueNorth芯片和高通的Zeroth芯片,兩者都基于更類似于生物神經(jīng)網(wǎng)絡(luò)的尖峰神經(jīng)網(wǎng)絡(luò)(spike neural network)。TrueNorth展示了在100 mW功耗下模擬復(fù)雜的循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural network)的能力,體現(xiàn)了這一架構(gòu)的獨(dú)特之處(但也有人指出功耗優(yōu)勢(shì)來(lái)自較低的主頻)。Zeroth的商業(yè)試用并不成功,目前已轉(zhuǎn)向人工神經(jīng)網(wǎng)絡(luò)加速器。雖然類腦芯片的商用化還需多年,但它所代表的新型處理范式——計(jì)算與記憶的一體化、復(fù)雜互聯(lián)、遞歸、時(shí)空編碼、異步、低精度、隨機(jī)性等特征,有很高的研究?jī)r(jià)值。目前的努力方向?yàn)槠骷图軜?gòu)兩個(gè)方面。美國(guó)DARPA的多個(gè)項(xiàng)目在架構(gòu)上做出了有益的探索,包括SyNAPSE(IBM的TrueNorth即來(lái)源于此)和Cortical Processor(基于hierarchical temporal memory算法)。在器件方面,DARPA UPSIDE基于模擬芯片,另外還有一些工作基于憶阻器(memristor)。

    第三,大數(shù)據(jù)跟經(jīng)典高性能計(jì)算的區(qū)別在于計(jì)算和數(shù)據(jù)的關(guān)系。不同于傳統(tǒng)意義上的并行計(jì)算,大數(shù)據(jù)以數(shù)據(jù)密集型應(yīng)用為主,計(jì)算依附于數(shù)據(jù),以至于從效率出發(fā),數(shù)據(jù)必須全部放在內(nèi)存。由此一個(gè)很重要的架構(gòu)上的變化就是讓內(nèi)存跟處理器能夠更加靠近,比如利用eDRAM,使得處理器跟內(nèi)存之間有更大的緩存;或者把內(nèi)存和處理器做2.5D/3D堆疊,獲得更大的帶寬;或者把處理器反過(guò)來(lái)放到內(nèi)存里面去,即內(nèi)存計(jì)算(computing in memory)。多年以前學(xué)術(shù)界曾經(jīng)嘗試主動(dòng)式存儲(chǔ)(active storage),把一些特定的計(jì)算置入磁盤控制器,從而更靠近數(shù)據(jù)。隨著閃存和3D XPoint這樣的新型非易失內(nèi)存的普及,內(nèi)存計(jì)算可能得到更多的應(yīng)用。

    6.2 存儲(chǔ)和互聯(lián)的優(yōu)化

    大數(shù)據(jù)存儲(chǔ)體系中,大內(nèi)存加非易失性塊存儲(chǔ)是性能提升的首選架構(gòu)。

    首先,大內(nèi)存服務(wù)器成為主流。2014年9月,英特爾開發(fā)者峰會(huì)展示了2U服務(wù)器可以容納1.5 TB內(nèi)存和100 TB硬盤,使高密度部署更上臺(tái)階。而同年發(fā)布的Intel E7 v2系列處理器,能夠支持高達(dá)32-socket的高端服務(wù)器,單服務(wù)器最高內(nèi)存容量可達(dá)48 TB。這推動(dòng)了高端大數(shù)據(jù)一體機(jī)的發(fā)展。微軟在10月份宣布的Azure G系列虛擬機(jī)能夠提供單虛擬機(jī)448 GB內(nèi)存。與之對(duì)應(yīng)的內(nèi)存計(jì)算需要解決容錯(cuò)的問(wèn)題,比如Spark的lineage、傳統(tǒng)的checkpoint、多數(shù)據(jù)冗余、基于日志的容錯(cuò)機(jī)制等。大內(nèi)存時(shí)代來(lái)臨以后,這些技術(shù)成為了在PC級(jí)硬件條件下保障大規(guī)模計(jì)算的可靠性、大規(guī)模計(jì)算的成本控制的必不可少的技術(shù)基礎(chǔ)。

    大數(shù)據(jù)應(yīng)用同樣引導(dǎo)永久性塊存儲(chǔ)軟硬件技術(shù)路線產(chǎn)生了重大改變。從SSD(solid state drives,固態(tài)硬盤)到PCIe SSD到閃存存儲(chǔ),這一路的發(fā)展經(jīng)歷了硬件局部變革、軟件進(jìn)步、軟硬件共同演進(jìn)的3個(gè)階段歷程。

    硬件局部變革:SSD是以硬件為主的進(jìn)步,傳統(tǒng)的硬盤文件系統(tǒng)架構(gòu)基本保留。

    軟件進(jìn)步:PCIe SSD開始觸及塊設(shè)備管理和文件系統(tǒng)軟件棧,各種輕量級(jí)、多任務(wù)優(yōu)化的文件系統(tǒng)軟件棧蓬勃發(fā)展。傳統(tǒng)文件系統(tǒng)針對(duì)毫秒級(jí)訪問(wèn)時(shí)延優(yōu)化,而閃存將時(shí)延縮短到微秒級(jí),并且支持1 000 000/s讀寫操作以上的并發(fā)度,勢(shì)必需要新的文件系統(tǒng)設(shè)計(jì)。

    軟硬件共同演進(jìn):全閃存存儲(chǔ)開始出現(xiàn),同時(shí)文件系統(tǒng)發(fā)生巨大變革甚至被放棄,許多新型應(yīng)用系統(tǒng)可以讓應(yīng)用直接操作閃存里面的數(shù)據(jù)塊,實(shí)現(xiàn)相當(dāng)程度的DRAM和flash的統(tǒng)一尋址,最大化性能提升。未來(lái)的NVRAM(nonvolatile random access memory,非易失隨機(jī)存取存儲(chǔ)器)[24],能夠兼具數(shù)據(jù)永久性和數(shù)據(jù)動(dòng)態(tài)訪問(wèn)性能,所以數(shù)據(jù)靜態(tài)保存和動(dòng)態(tài)使用的狀態(tài)徹底統(tǒng)一,文件系統(tǒng)需求降低,序列化和反序列化重要程度下降,整個(gè)系統(tǒng)棧會(huì)更淺、更簡(jiǎn)單,性能更優(yōu)異。在這些NVRAM中,英特爾公司的3D XPoint最受矚目,其性能和耐用性都將達(dá)到目前NAND閃存的1 000倍,接近于DRAM,這將進(jìn)一步模糊內(nèi)存和存儲(chǔ)的界限。該技術(shù)預(yù)期2016年上市,可以用在幾乎所有存儲(chǔ)用途——主內(nèi)存、緩存或塊存儲(chǔ)。如果該技術(shù)性價(jià)比按照摩爾定律降低,勢(shì)必引導(dǎo)大數(shù)據(jù)服務(wù)器設(shè)計(jì)發(fā)生重大變革。

    大數(shù)據(jù)中常見的聚合(aggregation)、置換(shuffle)等操作對(duì)互聯(lián)帶寬和通信時(shí)延提出了很高的要求。物理層面,如今節(jié)點(diǎn)和節(jié)點(diǎn)之間的網(wǎng)絡(luò)帶寬已經(jīng)達(dá)到40 Gbit/s,未來(lái)基于全光交換結(jié)構(gòu)的設(shè)計(jì)能達(dá)到數(shù)百Gbit/s甚至Tbit/s,比如英特爾公司的硅光(silicon photonics)技術(shù)。分立的高性能NIC將逐漸消失,處理器(板)與其他節(jié)點(diǎn)處理器(板)的內(nèi)存直接通信。軟硬件界面上,為了發(fā)揮內(nèi)存計(jì)算的效用,需要更便宜、更高擴(kuò)展性的RDMA互聯(lián)解決方案。純軟件部分,一些新的網(wǎng)絡(luò)協(xié)議被應(yīng)用于數(shù)據(jù)中心,比如data center TCP(DCTCP)針對(duì)Fork-Join結(jié)果的網(wǎng)絡(luò)流量進(jìn)行了優(yōu)化。另外,Spark采用了類似BitTorrent的協(xié)議來(lái)減少shuffle產(chǎn)生的節(jié)點(diǎn)間網(wǎng)絡(luò)流量。

    6.3 軟硬件協(xié)同優(yōu)化

    隨著硬件的巨大進(jìn)步,軟件架構(gòu)逐漸成為瓶頸,軟硬件架構(gòu)協(xié)同的優(yōu)化成為必然。數(shù)據(jù)中心出現(xiàn)了重新垂直化(reverticalization)的趨勢(shì)。各家大廠都針對(duì)硬件特點(diǎn)優(yōu)化軟件棧,而做法各有不同。

    (1)把硬件特性暴露給軟件棧

    相比于過(guò)去逐步抽象隔離的多層次架構(gòu)設(shè)計(jì),新發(fā)展方向強(qiáng)調(diào)核心信息上下溝通,這體現(xiàn)了螺旋上升的技術(shù)發(fā)展模式。一個(gè)值得注意的趨勢(shì)是一些互聯(lián)網(wǎng)和大數(shù)據(jù)巨頭都建立了自有編譯器團(tuán)隊(duì),甚至是自有Java虛擬機(jī)團(tuán)隊(duì)。流行的Hadoop、Spark等開源分布式系統(tǒng)都運(yùn)行在Java虛擬機(jī)上面。經(jīng)典的Java虛擬機(jī)具有對(duì)軟件隔離硬件細(xì)節(jié)的特性,實(shí)現(xiàn)了軟件架構(gòu)的平臺(tái)無(wú)關(guān)的巨大優(yōu)勢(shì),但同時(shí)這個(gè)特性也大大削弱了軟件針對(duì)硬件優(yōu)化的潛力。當(dāng)大數(shù)據(jù)從以推廣為主過(guò)渡到以性能應(yīng)用為主的階段后,就需要通過(guò)一種方式來(lái)打破這個(gè)界限。比如英特爾公司嘗試的NativeTask[25],把MapReduce中間結(jié)果的重排過(guò)程從Java代碼轉(zhuǎn)移到原生代碼,并且針對(duì)系統(tǒng)緩存架構(gòu)進(jìn)行優(yōu)化,MapReduce的總體系統(tǒng)效能提升了30%~50%。Spark最近創(chuàng)造了Terasort的世界紀(jì)錄,其中網(wǎng)絡(luò)通信也通過(guò)Netty利用了原生代碼優(yōu)化庫(kù)?,F(xiàn)在很多基于Java的大數(shù)據(jù)計(jì)算系統(tǒng),都選擇利用底層特殊優(yōu)化的線性代數(shù)原生庫(kù)來(lái)提升性能。

    即使不采用原生代碼,仍需要對(duì)軟件進(jìn)行內(nèi)存訪問(wèn)模式的優(yōu)化,盡量使隨機(jī)訪問(wèn)發(fā)生在CPU緩存,內(nèi)存訪問(wèn)量盡可能降低,而對(duì)塊設(shè)備的操作基本是順序讀寫。另外,Java虛擬機(jī)帶來(lái)的另一個(gè)開銷是內(nèi)存管理,在大內(nèi)存模式下垃圾回收器(garbage collector)效率降低,管理開銷可能占總體運(yùn)行時(shí)間的10%以上,應(yīng)對(duì)方案除了虛擬機(jī)采用針對(duì)大內(nèi)存高度優(yōu)化的并行、并發(fā)回收算法,還出現(xiàn)了硬件加速的垃圾回收8http://link. springer.com/ar ticle/10.1007% 2Fs11227-010-0493-0。另外,應(yīng)用本身也必須采用如Tachyon這樣的并發(fā)存儲(chǔ)管理的內(nèi)存文件系統(tǒng),多個(gè)應(yīng)用自主把共享的數(shù)據(jù)放入Tachyon,從而有效減少單個(gè)應(yīng)用內(nèi)存的堆需求,降低管理開銷。

    最新的例子是Spark從2014年開始的Tungsten項(xiàng)目9https:// databricks.com/ blog/2015/04/28/ projecttungstenbringing-sparkcloser-to-baremetal.html。Databricks公司在項(xiàng)目中為性能目標(biāo)引入3項(xiàng)重大改進(jìn):自主內(nèi)存管理,以降低Java對(duì)象管理和垃圾回收機(jī)制的開銷;CPU Cache-aware Computation,從數(shù)據(jù)結(jié)構(gòu)和算法上針對(duì)處理器緩存作優(yōu)化;直接代碼生成,更好地利用現(xiàn)代編譯器的硬件優(yōu)化功能。

    (2)重新設(shè)計(jì)軟件棧

    如前文所述的全閃存存儲(chǔ)和NVRAM,或者從更高角度,以硬盤為代表的塊設(shè)備也正在IP化、對(duì)象存儲(chǔ)化,傳統(tǒng)的塊設(shè)備軟件棧正在重新設(shè)計(jì)。

    (3)多服務(wù)器范圍或者機(jī)架范圍的一體機(jī)設(shè)計(jì)

    現(xiàn)在服務(wù)器商業(yè)模式不再是簡(jiǎn)單地銷售服務(wù)器硬件或者單純銷售軟件,而是把軟件、硬件打包成一體機(jī),推出一個(gè)以應(yīng)用為導(dǎo)向的整體解決方案。最有名的一體機(jī)就是SAP的HANA。一體機(jī)方案是從某個(gè)具體應(yīng)用出發(fā),以機(jī)架為單位,對(duì)服務(wù)器單機(jī)配置、塊設(shè)備、網(wǎng)絡(luò)互聯(lián)、單機(jī)操作系統(tǒng)、分布式管理系統(tǒng)、分布式應(yīng)用等進(jìn)行大深度和大廣度的優(yōu)化定制。比如HANA的B+樹是針對(duì)高速緩存優(yōu)化的,單機(jī)上它能用SSE對(duì)數(shù)據(jù)進(jìn)行流式、在線的壓縮和解壓縮,多機(jī)上能夠高效地執(zhí)行任務(wù)分配和結(jié)果匯總。IBM的Netezza一體機(jī)則從高性能在線數(shù)據(jù)分析出發(fā),采用了基于FPGA的軟硬件協(xié)同設(shè)計(jì)。

    (4)從傳統(tǒng)數(shù)據(jù)中心大數(shù)據(jù)機(jī)群建設(shè)轉(zhuǎn)向私有云/公有云為基礎(chǔ)的大數(shù)據(jù)服務(wù)

    這代表一種行業(yè)發(fā)展方向。以Hadoop基礎(chǔ)架構(gòu)為例,在早期各個(gè)公司普遍致力于建設(shè)自有數(shù)據(jù)中心內(nèi)的大規(guī)模Hadoop機(jī)群,這里面有早期Hadoop套件對(duì)多租戶支持差的原因。隨著云平臺(tái)商業(yè)模式的發(fā)展和Hadoop套件的進(jìn)化,各種以“Hadoop as Servive”為主打賣點(diǎn)的云端大數(shù)據(jù)基礎(chǔ)設(shè)施服務(wù)成為行業(yè)新熱點(diǎn),極大地降低了新興公司利用大數(shù)據(jù)技術(shù)的門檻。而后來(lái)者主推Spark的Databricks公司從一開始就認(rèn)識(shí)到云服務(wù)模式,Databricks Cloud是該公司的主要運(yùn)作模式之一。

    大數(shù)據(jù)云化發(fā)展中,除了商業(yè)模式創(chuàng)新,還包括大數(shù)據(jù)平臺(tái)技術(shù)和云端虛擬平臺(tái)技術(shù)的深度整合。因?yàn)閺囊话阋饬x上來(lái)說(shuō),大數(shù)據(jù)平臺(tái)如Hadoop、HDFS和虛擬技術(shù)是性能不兼容的,其中涉及虛擬化本地?cái)?shù)據(jù)I/O接口的效率問(wèn)題。各家公司都為此做出了不懈努力,如VMWare公司開發(fā)了Hadoop virtual extensions10http://www. vmware.com/ files/pdf/ techpaper/ Virtualized-Hadoop-Performancewith-VMwarevSphere6.pdf技術(shù),專門解決Hadoop軟件棧的效率;Hadoop和Spark社區(qū)都和Docker社區(qū)緊密合作,提高協(xié)同效率。

    第二個(gè)大方向是硬件可重構(gòu)。最初的硬件可重構(gòu)是從塊存儲(chǔ)設(shè)備開始逐步發(fā)展的。傳統(tǒng)硬盤機(jī)柜只能在SAN、NAS、DAS 3種模式靜態(tài)選擇一種固定配置,由于傳統(tǒng)高性能計(jì)算和大數(shù)據(jù)計(jì)算本質(zhì)不同,兩種平臺(tái)不能運(yùn)行時(shí)共享單一硬件。SeaMicro開發(fā)的freedom fabric storage技術(shù)允許動(dòng)態(tài)劃分硬盤組,從而解決這個(gè)問(wèn)題,極大地提高了硬件利用率。

    工業(yè)界繼續(xù)推廣數(shù)據(jù)中心硬件重構(gòu)的概念。英特爾公司推出了Rack Scale Architecture,鼓勵(lì)機(jī)群設(shè)計(jì)人員把眼光從服務(wù)器單機(jī)放寬到全機(jī)架,從3個(gè)突破口出發(fā),根據(jù)應(yīng)用對(duì)硬件進(jìn)行橫向整合。第一個(gè)突破口是按類別構(gòu)建資源池。傳統(tǒng)服務(wù)器設(shè)計(jì)單機(jī)內(nèi)部集成計(jì)算、內(nèi)存、存儲(chǔ)和網(wǎng)絡(luò)各個(gè)模塊。重構(gòu)以后單機(jī)只保留最基礎(chǔ)的啟動(dòng)系統(tǒng)的硬件,盡可能把大內(nèi)存、大容量塊設(shè)備、大型加速器等單獨(dú)組成模塊,并且為機(jī)架內(nèi)所有服務(wù)器所用。第二個(gè)突破口是提升高速互聯(lián)的速度和層級(jí),互聯(lián)帶寬從萬(wàn)兆提高到100 Gbit/s以上,并且革新協(xié)議棧,使RDMA成為標(biāo)準(zhǔn)配置。從單機(jī)互聯(lián),發(fā)展到各個(gè)資源模塊通過(guò)新型技術(shù)直接互聯(lián)。第三個(gè)突破口是用軟件對(duì)資源池動(dòng)態(tài)劃分、動(dòng)態(tài)掛載到各個(gè)應(yīng)用的虛擬服務(wù)器,從而實(shí)現(xiàn)大數(shù)據(jù)應(yīng)用的核心需求,在機(jī)架尺度上針對(duì)應(yīng)用負(fù)載進(jìn)行動(dòng)態(tài)優(yōu)化。

    在當(dāng)下的大數(shù)據(jù)應(yīng)用中,軟硬件協(xié)同優(yōu)化的最成功、最普及的范例是基于神經(jīng)網(wǎng)絡(luò)的深度學(xué)習(xí)系統(tǒng)。各個(gè)業(yè)內(nèi)著名互聯(lián)網(wǎng)公司紛紛構(gòu)建了大規(guī)模的機(jī)群,專用于針對(duì)視覺和語(yǔ)音的深度學(xué)習(xí)。而后在系統(tǒng)運(yùn)營(yíng)過(guò)程中紛紛進(jìn)行軟硬件協(xié)同優(yōu)化提升學(xué)習(xí)系統(tǒng)的效率。英特爾公司資助參與了GraphLab和Petuum的開源系統(tǒng)。

    7 前沿方向五:多、快、好、省

    “多、快、好、省”就是在實(shí)現(xiàn)數(shù)據(jù)量(多)和計(jì)算性能(快)的前提下,易于編程和管理(好),追求資本和運(yùn)維成本最低(?。?/p>

    7.1 垂直化優(yōu)化

    實(shí)現(xiàn)“多、快、好、省”的方式,首先是垂直打通技術(shù)棧、做跨層次的優(yōu)化。第6節(jié)舉例說(shuō)明了基于閃存塊設(shè)備的軟硬件協(xié)同設(shè)計(jì),這里以內(nèi)存計(jì)算為例描述一個(gè)新方向。它不是對(duì)技術(shù)棧的單獨(dú)某一層技術(shù)進(jìn)行改造或者革新,而是從下到上的“大手術(shù)”。

    在硬件平臺(tái)層,主張配置大容量?jī)?nèi)存(DRAM),搭配大容量SSD甚至全閃存,未來(lái)采用3D XPoint內(nèi)存,將大容量非易失存儲(chǔ)器的內(nèi)存直接可尋址化,板級(jí)之間用RDMA互聯(lián),支持NVM express over fabrics。

    在系統(tǒng)軟件的數(shù)據(jù)管理和存儲(chǔ)層,主流方案是內(nèi)存數(shù)據(jù)庫(kù)、內(nèi)存文件系統(tǒng)和具有內(nèi)存緩存的分布式文件系統(tǒng)(如Tachyon、HDFS),特點(diǎn)是優(yōu)化的內(nèi)存緩存、基于堆外大內(nèi)存的Java虛擬機(jī)優(yōu)化、基于內(nèi)存文件系統(tǒng)的進(jìn)程間文件數(shù)據(jù)交換。

    在系統(tǒng)軟件的計(jì)算框架層面,強(qiáng)調(diào)應(yīng)用全新的分布式內(nèi)存計(jì)算平臺(tái)。所謂的內(nèi)存計(jì)算,術(shù)語(yǔ)是in memory computing,初始主要指那些優(yōu)化數(shù)據(jù)存儲(chǔ)方式,在內(nèi)存(DRAM)中完成數(shù)據(jù)存儲(chǔ)、檢索、分析的數(shù)據(jù)庫(kù)技術(shù),最新的發(fā)展方向被稱為內(nèi)存中的數(shù)據(jù)網(wǎng)格(in memory data grid)技術(shù)。Spark進(jìn)一步發(fā)展了這個(gè)概念,除了在內(nèi)存中完成SQL/HQL計(jì)算以外,Spark能夠綜合利用分布式機(jī)群的所有內(nèi)存來(lái)完成復(fù)雜機(jī)器學(xué)習(xí)計(jì)算。

    在應(yīng)用層面,尤其是數(shù)據(jù)可視化層面,重新設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)、注重?cái)?shù)據(jù)模型創(chuàng)新,是實(shí)現(xiàn)“多、快、好、省”的主要措施。在數(shù)據(jù)實(shí)時(shí)查詢和可視化領(lǐng)域,一個(gè)代表性的例子是NanoCube。通過(guò)獨(dú)創(chuàng)的基于樹的數(shù)據(jù)存儲(chǔ)和查詢算法,對(duì)于上百萬(wàn)甚至上億的數(shù)據(jù)集,NanoCube可以在普通筆記本電腦的內(nèi)存中完成索引,空間利用率很高。在數(shù)據(jù)分析領(lǐng)域,一個(gè)鮮明的例子是圖計(jì)算框架GraphChi。GraphChi的目標(biāo)是在單機(jī)上實(shí)現(xiàn)大數(shù)據(jù)計(jì)算,其技術(shù)基礎(chǔ)為:新的分層的圖計(jì)算架構(gòu),支持流式圖計(jì)算;支持實(shí)時(shí)更新的圖計(jì)算。

    7.2 降低空間和時(shí)間的復(fù)雜度

    7.2.1 降低空間復(fù)雜度

    降低空間復(fù)雜度最直觀的做法就是把大數(shù)據(jù)變小。變小的方式有很多,具體如下。

    (1)對(duì)數(shù)據(jù)壓縮幾乎已經(jīng)是所有大數(shù)據(jù)架構(gòu)的標(biāo)配,除了Hadoop采用的幾種壓縮算法,2013年初谷歌公司開源了Zopfli,在最大壓縮率下的數(shù)據(jù)比zlib小3%~8%。壓縮率與消耗的CPU時(shí)間相關(guān),Zopfli消耗的CPU時(shí)間比zlib大2~3個(gè)數(shù)量級(jí),所以更適合變化性較小的數(shù)據(jù)(壓縮一次即可)。多數(shù)系統(tǒng)的壓縮解壓縮發(fā)生在內(nèi)存和I/O之間,也就是說(shuō)內(nèi)存里已經(jīng)是解壓的數(shù)據(jù)。也有少數(shù)系統(tǒng),如IBM的Netezza,數(shù)據(jù)在內(nèi)存中仍保持壓縮狀態(tài),F(xiàn)PGA配合CPU實(shí)時(shí)地邊解壓邊處理,進(jìn)一步提升了內(nèi)存空間效率。

    (2)列式存儲(chǔ),例如Apache Parquet,能夠使壓縮率獲得數(shù)量級(jí)的提升,而它本身也是舍大得小的辦法,因?yàn)橥樵儾⒉恍枰L問(wèn)所有列,所以數(shù)據(jù)加載時(shí)無(wú)須讀入不相干的列。當(dāng)然,好的SQL優(yōu)化器也對(duì)行存儲(chǔ)進(jìn)行修剪。

    (3)多維度存儲(chǔ)的緩存機(jī)制,找出最重要的大數(shù)據(jù)并放在內(nèi)存和閃存里面,以加速計(jì)算主體。

    (4)采用稀疏的結(jié)構(gòu),比如在進(jìn)行商品推薦應(yīng)用時(shí),用戶和購(gòu)買商品的映射矩陣是核心數(shù)據(jù)結(jié)構(gòu),通過(guò)采用各種稀疏存儲(chǔ)結(jié)構(gòu)就能夠把映射矩陣的空間復(fù)雜度下降。

    (5)在大數(shù)據(jù)規(guī)模下,處理所產(chǎn)生的中間數(shù)據(jù)是比較困難的問(wèn)題。比如MapReduce和Spark在shuffle操作中如果粒度不當(dāng),可能產(chǎn)生大量的中間數(shù)據(jù)。除了采用合適的粒度外,Spark采取了一種新的shuffle機(jī)制,從基于散列的分桶變成了基于sort的分桶,極大地提高了內(nèi)存使用效率。無(wú)論是Terasort創(chuàng)造世界紀(jì)錄,還是在實(shí)際應(yīng)用場(chǎng)景,如大規(guī)模的廣告分析邏輯回歸(logistics regression),Spark的新機(jī)制都扮演了重要角色。

    7.2.2 降低時(shí)間復(fù)雜度

    另外一方面是時(shí)間復(fù)雜度的降低。

    (1)嘗試“簡(jiǎn)單”、高可變(high variance)的模型。這些模型雖然計(jì)算上較為簡(jiǎn)單,但特征較為復(fù)雜,在小數(shù)據(jù)場(chǎng)景下,往往會(huì)過(guò)擬合。但更多的數(shù)據(jù)解決了這一問(wèn)題,使得模型的功效急劇增長(zhǎng)。比如谷歌公司Peter Norvig的文章[26]指出,數(shù)據(jù)賦予了簡(jiǎn)單模型不可名狀的魔力,以Web文本處理為例,n-gram相當(dāng)簡(jiǎn)單,但這類模型具有較大的特征空間(詞匯表里每一個(gè)單詞作為一個(gè)特征),經(jīng)過(guò)大量的數(shù)據(jù)訓(xùn)練,機(jī)器翻譯有了一個(gè)質(zhì)的提升。同時(shí),相比較而言,簡(jiǎn)單模型的計(jì)算復(fù)雜度較低,計(jì)算效率提升很顯著。

    (2)使用簡(jiǎn)單模型的組合。模型組合(ensemble)是一個(gè)機(jī)器學(xué)習(xí)的專業(yè)領(lǐng)域。例如,Netflix曾經(jīng)通過(guò)競(jìng)賽,百萬(wàn)美元獎(jiǎng)勵(lì)推薦有效性提升10%的創(chuàng)新。很多團(tuán)隊(duì)參加這個(gè)競(jìng)賽,但是沒有單個(gè)團(tuán)隊(duì)能達(dá)到10%;后來(lái)若干個(gè)團(tuán)隊(duì)之間進(jìn)行模型的組合,一舉超越10%。在美國(guó)版開心辭典Jeopardy上打敗人類冠軍的IBM Watson系統(tǒng),采用了一百多種模型的組合。當(dāng)數(shù)據(jù)增大時(shí),ensemble公司往往也能獲得更好的邊際效益。值得一提的是模型組合要考慮計(jì)算復(fù)雜性問(wèn)題,Netflix公司就是因?yàn)楂@獎(jiǎng)?wù)呓M合模型計(jì)算量太大而放棄了它的實(shí)際應(yīng)用。但一般而言,假設(shè)每種模型是O(N2)復(fù)雜度,當(dāng)N非常大時(shí),多個(gè)模型的組合遠(yuǎn)遠(yuǎn)比一個(gè)O(N3)的復(fù)雜模型更高效。

    (3)采樣和近似。采樣是統(tǒng)計(jì)工具中重要的數(shù)據(jù)處理方法,在大數(shù)據(jù)里面它被賦予更多含義。大數(shù)據(jù)處理中,因?yàn)閿?shù)據(jù)體量的問(wèn)題,查詢處理基本只能以批處理方式進(jìn)行,實(shí)時(shí)響應(yīng)在理論上是不可能的。工業(yè)界大膽引入采樣技術(shù)以應(yīng)對(duì)實(shí)時(shí)要求,依靠精心設(shè)計(jì)的針對(duì)具體應(yīng)用場(chǎng)景優(yōu)化的原始數(shù)據(jù)采樣算法,可以實(shí)現(xiàn)TB級(jí)別數(shù)據(jù)規(guī)模下秒級(jí)時(shí)延的不精確結(jié)果的查詢響應(yīng),比如BlinkDB。近似則用在另外一個(gè)領(lǐng)域。如果能夠確保應(yīng)用對(duì)輸入精度不敏感,就可以在數(shù)據(jù)處理中有意識(shí)地放寬條件、引入誤差,從而通過(guò)降低復(fù)雜度或提升并行性來(lái)大幅度降低處理時(shí)間。經(jīng)典的廣告應(yīng)用場(chǎng)景有Bloom filter、CountMinSketch算法等。

    (4)降維和混合建模??紤]到在多數(shù)應(yīng)用中大數(shù)據(jù)有兩個(gè)特點(diǎn)經(jīng)常同時(shí)出現(xiàn):高緯度和稀疏數(shù)據(jù)點(diǎn),所以如果能共同應(yīng)用各種稀疏數(shù)據(jù)結(jié)構(gòu)的優(yōu)化,必將能夠極大地提升計(jì)算效率。

    所有這些方法都能降低機(jī)器學(xué)習(xí)的復(fù)雜度,需要從應(yīng)用出發(fā)靈活運(yùn)用。

    7.3 分布式和并行化

    大數(shù)據(jù)中分布式優(yōu)化的經(jīng)典案例是從ACID到BASE(basically available, soft state,eventually consistent)11http://queue. acm.org/detail. cfm?id=1394128的變化。ACID是傳統(tǒng)關(guān)系數(shù)據(jù)庫(kù)事務(wù)特性的必然條件,但是其代價(jià)高昂,成為數(shù)據(jù)庫(kù)規(guī)模和性能雙提升的致命瓶頸。BASE只選中其最終一致性,結(jié)果NoSQL數(shù)據(jù)庫(kù)的規(guī)模和性能實(shí)現(xiàn)雙贏,后者實(shí)現(xiàn)了并行的可能。

    對(duì)于迭代計(jì)算,計(jì)算數(shù)學(xué)上有許多例子,經(jīng)典的是線性方程求解的兩種常用近似方法,雅可比(Jacobi)迭代法和高斯—賽德爾(Gauss-Seidel)迭代法。對(duì)于Jacobi方法,當(dāng)前迭代必須基于上一迭代的結(jié)果數(shù)據(jù),這就給分布式優(yōu)化帶來(lái)巨大困難,因?yàn)槊總€(gè)迭代的結(jié)果數(shù)據(jù)分布在許多節(jié)點(diǎn)上,細(xì)粒度的計(jì)算同步和數(shù)據(jù)同步抵消了分布式優(yōu)化的收益。對(duì)于Gauss-Seidel方法,當(dāng)前迭代可以不依賴最新數(shù)據(jù),結(jié)果同樣收斂,只是理論上的收斂速度會(huì)下降,但是輔以分布式優(yōu)化,整體的計(jì)算時(shí)間反而大大節(jié)省。因此,很多新開發(fā)的機(jī)器學(xué)習(xí)算法能夠容忍模糊性,能夠基于本地節(jié)點(diǎn)上過(guò)時(shí)的數(shù)據(jù)(不一定是其他節(jié)點(diǎn)發(fā)送過(guò)來(lái)的最新數(shù)據(jù))進(jìn)行計(jì)算,打破迭代之間數(shù)據(jù)的依賴。這樣使所有節(jié)點(diǎn)能夠盡可能快地并行計(jì)算,但同時(shí)算法依然能夠收斂。深度學(xué)習(xí)領(lǐng)域在這個(gè)方面迅猛發(fā)展,谷歌公司采用了參數(shù)服務(wù)器(parameter server)的方式,CMU既有參數(shù)服務(wù)器,也有更通用的SSP(stale synchronous parallel)[27]。CMU的Petuum進(jìn)一步發(fā)展了SSP的思想,針對(duì)超大模型的機(jī)器學(xué)習(xí)實(shí)現(xiàn)數(shù)據(jù)并行、模型并行和調(diào)度層面的任務(wù)并行。

    并行化是分布式的必須手段。分布式機(jī)器學(xué)習(xí)依賴于一種并行方法或者幾種并行方法的組合。首先是數(shù)據(jù)并行,然后是圖并行或者模型并行。模型并行需要基于模型或圖結(jié)構(gòu)進(jìn)行數(shù)據(jù)劃分、任務(wù)調(diào)度,使用比較廣泛的是GraphLab,較為新穎的是Petuum。

    總體來(lái)說(shuō),并行化和分布式的核心訴求就是減少通信、減少同步、提高效率。從分布式系統(tǒng)實(shí)踐出發(fā),一定會(huì)碰到許多問(wèn)題,諸如緩存問(wèn)題、一致性問(wèn)題、本地化問(wèn)題、劃分問(wèn)題、調(diào)度問(wèn)題、同步粒度問(wèn)題等。這些問(wèn)題有多種解決方式,需要針對(duì)具體問(wèn)題實(shí)際考慮。比如同步問(wèn)題就有BSP全同步、GraphLab異步或者SSP的半同步等多種選擇;狀態(tài)更新可以批量進(jìn)行,也可以個(gè)別進(jìn)行;數(shù)據(jù)通信可以單次傳輸全部數(shù)據(jù),也可以只傳輸改變的數(shù)據(jù)。

    總結(jié)起來(lái),“多、快、好、省”有賴于軟硬件的協(xié)同優(yōu)化、時(shí)空復(fù)雜度的降低以及分布化和并行化。

    8 前沿方向六:天下三分

    在傳統(tǒng)計(jì)算時(shí)代,系統(tǒng)研究者常常希望能夠設(shè)計(jì)出一套軟硬件架構(gòu)覆蓋盡可能多的問(wèn)題領(lǐng)域。2000年后,Michael Stonebraker提出要針對(duì)不同的計(jì)算需求提供不同的計(jì)算引擎,效果會(huì)更好(database is not a one-size-fits-all category),他因?yàn)樵谶@一方向上的長(zhǎng)期實(shí)踐獲得了2015年的圖靈獎(jiǎng),由此出現(xiàn)了數(shù)據(jù)和計(jì)算的分野。

    (1)數(shù)據(jù)類型

    大數(shù)據(jù)時(shí)代的主流特征是提升優(yōu)化了很多原來(lái)傳統(tǒng)高性能計(jì)算不太關(guān)注的數(shù)據(jù)類型。首先,最被關(guān)注的數(shù)據(jù)結(jié)構(gòu)是表格——鍵值對(duì)(key-value)?;陉P(guān)系型數(shù)據(jù)庫(kù)的表格是結(jié)構(gòu)化數(shù)據(jù),利于并行。各種長(zhǎng)度未知的相關(guān)性未知的鍵值對(duì)序列,就欠缺結(jié)構(gòu)化。大數(shù)據(jù)NoSQL數(shù)據(jù)庫(kù)專門優(yōu)化鍵值對(duì)查詢。其次,圖結(jié)構(gòu)也被重視,比如圖計(jì)算,大數(shù)據(jù)大大提升了圖計(jì)算的重要性,把它提升到一種編程語(yǔ)言、分布式處理框架的高度來(lái)解決問(wèn)題。再如矩陣和數(shù)組,大數(shù)據(jù)大大拓展了對(duì)不規(guī)則矩陣和不規(guī)則多緯數(shù)組的支持,比如SciDB。

    (2)計(jì)算范式

    大數(shù)據(jù)的興起是源于計(jì)算范式的突破。

    首先是MapReduce編程模型的創(chuàng)新、推廣和改進(jìn)。MR是一種批處理計(jì)算,主要出發(fā)點(diǎn)有:數(shù)據(jù)規(guī)模太大,把計(jì)算任務(wù)發(fā)送到數(shù)據(jù)節(jié)點(diǎn);簡(jiǎn)化任務(wù)間通信模型,去掉底層顯示的同步編程,用抽象的數(shù)學(xué)范式來(lái)重構(gòu)整個(gè)并行計(jì)算,降低學(xué)習(xí)門檻,簡(jiǎn)化分布式支撐平臺(tái)設(shè)計(jì)。

    其次是以圖結(jié)構(gòu)為基礎(chǔ)的計(jì)算范式。

    (3)編程模型

    大數(shù)據(jù)平臺(tái)的成熟激發(fā)了大數(shù)據(jù)編程模型的繁榮,目前主流的編程模型有:數(shù)據(jù)并行、流式計(jì)算的任務(wù)并行、圖并行。

    尤其值得一提的是,大數(shù)據(jù)為圖計(jì)算帶來(lái)的機(jī)會(huì)是圖并行,因?yàn)閳D結(jié)構(gòu)的稀疏性,多數(shù)頂點(diǎn)只有較小的鄰域,這樣,在一個(gè)迭代中整個(gè)圖可以劃分為很多并行處理的鄰域。圖并行中的計(jì)算依賴必須有一致性保證,如GraphLab的可變一致性模型。

    目前的最新發(fā)展方向又要求在圖結(jié)構(gòu)上支持關(guān)系操作,比如加入一張表,Spark的GraphX最早實(shí)現(xiàn)了這一能力,接著一些圖計(jì)算編程模型(如GraphLab)也加入了這種特性。還有一種概率編程模型12http:// probabilisticprogramming. org/wiki/Home,適用于一些基于概率圖的機(jī)器學(xué)習(xí),它的未來(lái)趨勢(shì)有待觀察。

    大數(shù)據(jù)領(lǐng)域的另外一個(gè)特殊領(lǐng)域是reactive programming或事件驅(qū)動(dòng)編程模型,主要面向?qū)Υ笠?guī)模并發(fā)事件有實(shí)時(shí)響應(yīng)要求的場(chǎng)景,比如海量廣告點(diǎn)擊、海量金融交易等。一個(gè)非常流行的范式叫reactive范式。最早在Erlang里,叫actor模式。如今在Scala Akka語(yǔ)言里面優(yōu)化了異步處理邏輯,有更好的可擴(kuò)展性?;谶@一模型,英特爾中國(guó)開發(fā)了一個(gè)新的開源項(xiàng)目GearPump,目前獲得廣泛好評(píng)13http:// downloads. typesafe. com/website/ presentations/ GearPump_Final. pdf。

    總體而言,針對(duì)應(yīng)用特性選擇特殊定制方案是當(dāng)前大數(shù)據(jù)實(shí)現(xiàn)3V的主要思路。

    9 前沿方向七:分久必合

    大數(shù)據(jù)爆發(fā)以來(lái),各種新編程語(yǔ)言編程方式層出不窮、百家爭(zhēng)鳴。經(jīng)過(guò)一段時(shí)間積淀,各種編程語(yǔ)言之間發(fā)生了融合。

    Big Dawg14http://istcbigdata.org/ index.php/ building-a-newapplicationto-hardwaremanagementstack-for-bigdata/是英特爾公司在MIT最近支持的研究工作,Stonebraker也參與了這一工作。Big Dawg提出了普適的編程模型,一種叫做BQL的語(yǔ)言,它支持關(guān)系和線性代數(shù)、復(fù)雜數(shù)據(jù)模型、迭代計(jì)算、并行計(jì)算。這種語(yǔ)言能夠把計(jì)算映射到底層的不同計(jì)算和存儲(chǔ)引擎。

    Twitter Summingbird是在編程接口層面融合,同時(shí)支持批量(MapReduce,Spark)和流式(Storm)的計(jì)算。

    Lambda架構(gòu)則是在應(yīng)用框架層面的融合,嘗試用一個(gè)編程框架把實(shí)時(shí)流計(jì)算和批量計(jì)算統(tǒng)一,以高效率的批處理為基礎(chǔ),輔以流處理實(shí)現(xiàn)增量計(jì)算,綜合起來(lái)幾乎形成一個(gè)完美的大數(shù)據(jù)框架15http://lam bdaarchitecture. net/。Nathan Marz聲稱這一模型可以突破CAP理論的限制。

    Spark則是在實(shí)現(xiàn)框架層面的融合,如圖1所示。

    微軟的REEF則是通過(guò)資源管理層(如YARN)來(lái)實(shí)現(xiàn)多計(jì)算模型的融合。YARN在大數(shù)據(jù)不同計(jì)算范型的融合上起到了至關(guān)重要的作用。

    Databricks公司以Spark為核心,雄心勃勃地開發(fā)BDAS軟件棧,目的是實(shí)現(xiàn)一個(gè)多層面、多模型融合的面向多種應(yīng)用的統(tǒng)一大數(shù)據(jù)處理平臺(tái)?;A(chǔ)性的底層構(gòu)件是HDFS,它負(fù)責(zé)永久性存儲(chǔ),在HDFS之上搭建Tachyon內(nèi)存文件系統(tǒng),以提升訪問(wèn)效率。在計(jì)算框架上,以Spark內(nèi)存計(jì)算框架為核心,重大改進(jìn)是引入Velox的模型管理,這可以看作數(shù)據(jù)并行和模型并行的一種嘗試。框架之上,就是各種計(jì)算范式的支持模塊,比如流計(jì)算有Spark streaming的流計(jì)算、關(guān)系數(shù)據(jù)庫(kù),NonSQL應(yīng)用有SparkSQL,圖計(jì)算有GraphX,機(jī)器學(xué)習(xí)有MLlib等。

    圖1 Spark架構(gòu)

    除了Databricks,Cloudera也不甘人后,Hadoop創(chuàng)始人Doug Cutting在以“The One Platform Initiative”為副標(biāo)題的網(wǎng)絡(luò)演講中提出引入Spark作為Hadoop下一個(gè)通用處理框架,以補(bǔ)充MapReduce。更宏觀地講,就是促使BDAS和Hadoop的融合。

    傳統(tǒng)的大規(guī)模并行編程(MPP)和Hadoop/MapReduce各有擅長(zhǎng),現(xiàn)在也在融合。早期的混合架構(gòu),用MPP處理大規(guī)模的結(jié)構(gòu)化數(shù)據(jù),用Hadoop/MR處理海量的半結(jié)構(gòu)化、非結(jié)構(gòu)化數(shù)據(jù)。最新的趨勢(shì)是兩者開始融合,高性能計(jì)算/超算跟大數(shù)據(jù)開始朝向統(tǒng)一平臺(tái)發(fā)展,出現(xiàn)了高性能數(shù)據(jù)分析(high performance data analysis)和數(shù)據(jù)密集型計(jì)算(data intensive supercomputing)等新的子領(lǐng)域。英特爾公司已經(jīng)開始推動(dòng)“one single system for HPC and big data”。

    在基礎(chǔ)設(shè)施層面,hyper-converged infrastructure更是勢(shì)不可擋。

    天下三分之后,分久必合。這個(gè)合與分并不矛盾,基于負(fù)載特性在應(yīng)用層劃分,再在總體架構(gòu)層面汲取共性、打通彼此來(lái)“合”,是符合事物的發(fā)展規(guī)律的。

    [21] Holzle U. Brawny cores still beat wimpy cores, most of the time. IEEE Micro, 2010, 30(4)

    [22] Hamilton J. Cooperative expendable micro-slice servers (CEMS): low cost, low power servers for Internet scale services. http://mvdirona.com/jrh/ TalksAndPapers/JamesHamilton_CEMS.pdf, 2009

    [23] Chen T S, Du Z D, Sun N H,et al. Diannao: a small-footprint highthroughput accelerator for ubiquitous machine-learning. ACM Sigplan Notices, 2014, 49(4): 269~284

    [24] Mittal S, Vetter J S, Li D J. A survey of architectural approaches for managing embedded DRAM and non-volatile onchip caches. IEEE Transactions on Parallel and Distributed Systems, 2014, 26(6): 1524~1537

    [25] Dong Y, Yin X S, Lian C,et al. Unleash the architecture power to accelerate big data processing. Journal of Computer Science and Technology, 2014

    [26] Halevy A, Norvig P, Pereira F. The unreasonable effectiveness of data. IEEE Intelligent Systems, 2009, 24(2): 8~12

    [27] Ho Q R, Cipar J, Cui H,et al. More effective distributed ml via a stale synchronous parallel parameter server. Advances in Neural Information Processing Systems, 2013: 1223~1231 □

    10.11959/j.issn.2096-0271.2015034

    猜你喜歡
    內(nèi)存架構(gòu)優(yōu)化
    基于FPGA的RNN硬件加速架構(gòu)
    超限高層建筑結(jié)構(gòu)設(shè)計(jì)與優(yōu)化思考
    民用建筑防煙排煙設(shè)計(jì)優(yōu)化探討
    關(guān)于優(yōu)化消防安全告知承諾的一些思考
    一道優(yōu)化題的幾何解法
    功能架構(gòu)在電子電氣架構(gòu)開發(fā)中的應(yīng)用和實(shí)踐
    汽車工程(2021年12期)2021-03-08 02:34:30
    “春夏秋冬”的內(nèi)存
    LSN DCI EVPN VxLAN組網(wǎng)架構(gòu)研究及實(shí)現(xiàn)
    一種基于FPGA+ARM架構(gòu)的μPMU實(shí)現(xiàn)
    基于內(nèi)存的地理信息訪問(wèn)技術(shù)
    大邑县| 柞水县| 南昌市| 唐河县| 新建县| 大竹县| 天津市| 浦江县| 博白县| 邢台市| 绩溪县| 竹山县| 曲沃县| 乌鲁木齐县| 综艺| 铜山县| 高雄市| 长治市| 蚌埠市| 凤冈县| 左云县| 淮北市| 壤塘县| 长泰县| 巴南区| 隆化县| 乐亭县| 亚东县| 略阳县| 苗栗县| 平山县| 元氏县| 广水市| 张家口市| 通河县| 军事| 镇康县| 罗田县| 宁南县| 革吉县| 富顺县|