盧譽(yù)聲 Autodesk資深系統(tǒng)研發(fā)工程師,從事平臺(tái)架構(gòu)方面的研發(fā)工作。曾在思科系統(tǒng)(中國(guó))研發(fā)中心云產(chǎn)品研發(fā)部工作多年,全程參與了海量數(shù)據(jù)實(shí)時(shí)處理、分析系統(tǒng)的構(gòu)建與實(shí)施,并參與了大規(guī)模分布式系統(tǒng)的服務(wù)器后端、前端以及SDK的設(shè)計(jì)與研發(fā)工作,在分布式系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)、性能調(diào)優(yōu)、高可用性和自動(dòng)化等方面積累了豐富的敏捷實(shí)踐與開發(fā)經(jīng)驗(yàn)。譯有《Storm實(shí)時(shí)數(shù)據(jù)處理》《高級(jí)C/C++編譯技術(shù)》《JavaScript編程精解(原書第2版)》。 在分布式計(jì)算系統(tǒng)中,最早也是最有名的就是Hadoop。Hadoop利用MapReduce模型讓我們開始有能力將大量的數(shù)據(jù)分布在不同的廉價(jià)機(jī)器集群中完成運(yùn)算。但是Hadoop的致命問題是必須將所有數(shù)據(jù)處理完成后才能得到最后的輸出,但如果是在視頻流這種處理場(chǎng)景下,實(shí)時(shí)性非常重要,Hadoop完全無法滿足要求,因?yàn)槲覀儫o法將所有數(shù)據(jù)處理完然后返回結(jié)果。 這種情況下Storm應(yīng)運(yùn)而生。Apache Storm采用了類似的計(jì)算模型,將所有的處理流程劃分成一個(gè)個(gè)的組件,然后將這些組件組合成一臺(tái)永不停息的網(wǎng)絡(luò)機(jī)器,隨時(shí)等待數(shù)據(jù)流入,處理完數(shù)據(jù)馬上返回對(duì)應(yīng)的結(jié)果,有效地解決了大部分問題。而最近開源的Twitter Heron則是Apache Storm的后繼者(或者說是強(qiáng)有力的改進(jìn)版),采用了和Storm一樣模型和接口,但在平臺(tái)架構(gòu)、易用性和性能上都做出了非常大的改進(jìn),相信不久之后就能成為Storm的有力競(jìng)爭(zhēng)者。 但這些計(jì)算系統(tǒng)基本都局限在一個(gè)通用的計(jì)算平臺(tái)上,在應(yīng)付某些特定問題上需要開發(fā)者做出相當(dāng)多的工作,比如機(jī)器學(xué)習(xí)。目前機(jī)器學(xué)習(xí)技術(shù)得到了越來越廣泛的應(yīng)用,在圖像處理、模式識(shí)別、決策支持等領(lǐng)域發(fā)揮了很大作用,已經(jīng)成為了最重要的計(jì)算機(jī)技術(shù)之一。近幾年非?;鸬纳疃葘W(xué)習(xí)(Deep Learning)更將機(jī)器學(xué)習(xí)提高了一個(gè)層次,而深度學(xué)習(xí)對(duì)浮點(diǎn)數(shù)的運(yùn)算性能提出了非常高的要求。這么冷不丁的把深度學(xué)習(xí)這個(gè)概念擺上來,可能有些突兀,我們這里就先了解一下不久之前大熱的Google AlphaGo,AlphaGo使用了大量的機(jī)器學(xué)習(xí)算法,包括傳統(tǒng)的機(jī)器學(xué)習(xí)算法和深度學(xué)習(xí),其中深度學(xué)習(xí)是提高AlphaGo機(jī)器學(xué)習(xí)能力的關(guān)鍵。因此,分布式的多機(jī)多GPU運(yùn)算很可能會(huì)成為一個(gè)新趨勢(shì)。而就目前來說,除了這些通用計(jì)算系統(tǒng)以外,在深度學(xué)習(xí)中,大家會(huì)使用特殊的機(jī)器學(xué)習(xí)框架來完成訓(xùn)練等計(jì)算任務(wù),但大多數(shù)此類框架在分布式上還并不成熟(比如Caffe和MXNet等),要不就是難以將訓(xùn)練結(jié)果直接用到產(chǎn)品中,往往需要大量的裁剪和移植工作。而許多框架也與CUDA完全耦合,完全沒有CPU和AMD顯卡的市場(chǎng),而在某些特定應(yīng)用場(chǎng)景,這是不切實(shí)際的。 Hurricane實(shí)時(shí)處理系統(tǒng)(目前還處于原型和初期開發(fā)階段,最新版本號(hào)為0.5)是一個(gè)使用C++開發(fā)的分布式實(shí)時(shí)計(jì)算系統(tǒng),其架構(gòu)上仿效了Apache Storm,保持了接口的高度一致,并期望能夠在實(shí)時(shí)數(shù)據(jù)處理、機(jī)器學(xué)習(xí)訓(xùn)練預(yù)處理和高性能運(yùn)算方面做些工作。同時(shí),為了應(yīng)付新的應(yīng)用場(chǎng)景,比如VR的云渲染問題,正計(jì)劃開發(fā)一個(gè)Hurricane的子項(xiàng)目——sewedBLAS——這是一個(gè)BLAS(Basic Linear Algebra Subprograms,即基礎(chǔ)線性代數(shù)子程序)庫(kù)的高層抽象,希望整合現(xiàn)有BLAS庫(kù),比如使用CPU的MKL/OpenBLAS,使用GPU的CUDA(來自于NVIDIA)和ACML,構(gòu)建一個(gè)易于使用、跨平臺(tái)的高性能線性代數(shù)庫(kù),并與Hurricane進(jìn)行原生C++層級(jí)的深度整合,期望能夠在分布式和科學(xué)計(jì)算、深度學(xué)習(xí)、VR渲染中找到一個(gè)切合點(diǎn),減少?gòu)目蒲械疆a(chǎn)品的轉(zhuǎn)換難度。與此同時(shí),還希望能夠幫助開發(fā)者更輕松地提高工作單元的運(yùn)算能力。 說了這么多,其實(shí)Hurricane實(shí)時(shí)處理系統(tǒng)v0.5已經(jīng)開源啦(訪問http://github.com/samblg/hurricane了解詳情),而且還把其中的設(shè)計(jì)細(xì)節(jié)、架構(gòu)設(shè)計(jì)以及思想融入了《分布式實(shí)時(shí)處理系統(tǒng):原理、架構(gòu)和實(shí)現(xiàn)》(由機(jī)械工業(yè)出版社華章于2016年7月上市,訪問http://product./4970346了解詳情)一書當(dāng)中。本書由多位大數(shù)據(jù)專家聯(lián)袂推薦,資深研發(fā)工程師撰寫,參透大規(guī)模分布式實(shí)時(shí)處理系統(tǒng)。抽絲剝繭,從概念、原理到分布式實(shí)時(shí)計(jì)算框架實(shí)現(xiàn),兼顧理論與實(shí)踐,帶領(lǐng)讀者逐步實(shí)現(xiàn)一個(gè)高性能、基于C++11的分布式實(shí)時(shí)處理系統(tǒng)Hurricane。 另外,開源中國(guó)(www.oschina.net)還有一個(gè)你問我答活動(dòng)正在火熱進(jìn)行中(7月13日- 7月22日),提問有機(jī)會(huì)免費(fèi)獲得新書,還等什么?趕緊掃一掃
近期精彩活動(dòng)(直接點(diǎn)擊查看): 福利 · 閱讀 | 免費(fèi)申請(qǐng)讀大數(shù)據(jù)新書 第10期 |
|