算法爲王:且看Mac Mini如何超越1636節點的Hadoop

摘要:1636節點Hadoop集羣需處理7個小時的工作量,Mac Mini只用一個小時就完成了,聽起來有些天方夜譚,然而涉及到算法問題,似乎一切都有可能。

小小的Mac Mini計算性能可以超過由1636個節點組成的Hadoop集羣,即使是在某些用例下聽起來也更像天方夜譚,然而近日GraphChi卻聲稱做到了這一點。長話短說,在看這個壯舉之前,我們有必要先了解一下GraphLab的GraphChi。

GraphChi由卡耐基梅隆大學計算機科學家設計,可以在個人計算機上高效進行大規模計算的框架,多用於社交媒體或網絡搜索分析類任務,比如推薦引擎。我們都知道推薦引擎專注的是圖譜計算(graph computation),分析社交媒體用戶之間的關係;但是這類計算通常需要海量的內存,通常出現在由大量計算機組成的集羣上。

區別於將圖譜儲存在內存中,GraphChi利用了個人計算機上的海量硬盤,將圖譜儲存在硬盤上。通過實驗室主任Carlos Guestrin瞭解到,爲了彌補硬盤與內存之間的速度差距,他們設計了更快速的,減少隨機讀寫的硬盤訪問方法。同時,GraphChi還能處理“流圖譜”(streaming graphs),流圖譜能通過顯示關係隨時間的變化建立起精確的大型網絡模型。

對同一個具有15億邊緣的Twitter圖譜(2010年以後)進行處理(三角形計數),GraphChi通過1個小時完成了1636個Hadoop節點7個小時的工作。近日,通過Rangespan的數據科學家Christian Prokopp,我們瞭解了這項超越得以實現的原理——對算法的極致優化,以及單臺機器對集羣設置的優勢。

運行環境

GraphChi的首個優勢在於可以簡化許多假設以及後續的算法,不需要進行分佈式處理。有了這個優勢,並理解單機器的性能進行總體上的評估(優勢和劣勢),整個處理過程將非常容易設計。單機器通常具備兩個特徵:1,大的圖譜問題不會被塞進RAM(Random Access Memory);2,擁有很大的磁盤,可以處理所有數據。

傳統的磁盤通常不會有隨機讀取優化,他們只針對連續性讀取。新時代計算機可能都會具備更快隨機讀寫的SSD,雖然它們還是會比RAM慢許多。因此,任何在單商用機器磁盤上運行的算法仍然需要儘可能避免隨機訪問數據。

分而治之

卡耐基梅隆大學的博士生Aapo Kyrola使用這個原理來改善GraphLab,一個分佈式圖譜計算框架。他的想法是將圖譜劃分成不同的分片,每一個都可以通過這臺機器的內存處理。隨後這些分片可以並行的在內存中處理,其它分片需要做的更新則通過隨後的連續寫入完成。這樣將最小化磁盤上的隨機操作,合理的使用機器的內存做一些並行操作。

Aapo發明了 PSW(Parallel Sliding Window)算法來解決關鍵的性能提升問題,針對磁盤的連續讀寫。PSW通過source shards對1個分片中所有的頂點進行排序,這意味着每個分片本質上都被分割成由頂點組成的塊,同時這些頂點又會與其它分片關聯。

舉個例子,在interval 1中(上圖)shard 1正在內存中進行處理,它是頂點到目的頂點邊長一個子集。這些目標頂點是餘下分片中排序源值的連續塊,因此可以連續的讀取。所有的更新都會被計算,並在內存中爲shard 1進行存儲,隨後則被連續的寫入其它分片,修改會在讀取之前進行。最終,內存中更新後的版本會被連續的寫入磁盤。在interval 2中,shard 2被加載;當然,同樣的方法會被應用於其它分片。

這個方法充分利用了新型商用計算機的架構特徵,正如原始論文中的一些特性說明。比如,對不同磁盤中數據的拆分;同時,使用SSD代替傳統磁盤對性能將不再有雙倍的提升,因爲算法已經大幅度的提升高永久存儲性能。即使是增加分片的數量,對CraphChi的吞吐量影響也不大,這樣將保證更大圖的可靠性能。值得注意的是,另一個算法高效性證明是——將計算徹底的移到內存,對比SSD計算時間只有1.1到2.5(因素)的提升。

GraphChi的性能對比( 源出處

GraphChi公佈了模式轉變後的性能獲益,其中包括與類似Hadoop、Spark等通用解決方案,升值還包括了高優化的圖計算框架GraphLab、PowerGraph。後者屬於高優化的分佈式並行解決方案,同樣做Twitter三角計數的處理只需1.5分鐘。然而,它使用了64個節點,每個8核心,總計512個核心。粗略的算,性能提升了40倍,但是卻耗費了256倍的計算資源(核心)。

1. LibFM: 項目主頁

2. Svdfeature: 項目主頁

3. Libsvm和Liblinear: libsvm項目主頁、 liblinear項目主頁、 初次使用必讀、 libsvm的開發心得by林智仁

4. rt-rank: 項目主頁

5. Mahout: 項目主頁

6. MyMediaLite: 項目主頁

7. GraphLab 和 GraphChi: GraphLab項目主頁、 GraphChi項目主頁、 GraphChi的下載地址、 GraphChi介紹、 CF for GraphChi

以“應用驅動的架構與技術”爲主題的第七屆中國大數據技術大會(Big Data Technology Conference 2013,BDTC 2013)將於2013年12月5日-6日在北京世紀金源大酒店召開。屆時將設有《智能交通與大數據》分論壇,物聯網將是其中重要環節,歡迎參加討論!

本文爲CSDN原創文章,未經允許不得轉載,如需轉載請聯繫market#csdn.net(#換成@)

您還沒有登錄! 請 登錄  註冊
sizheng0320 7小時前
嗯,當初試過一下,GraphChi的確讓人眼前一亮,不過現在好像又有比它還好些的了,是叫X-Stream還是什麼的
數據搬運工 2013-11-21 12:39
小編,其實我花5分鐘把一個東西藏好,2000個你在50個小時未必能找得着.你明白我意思嗎?
_IdleMind 2013-11-21 08:45
總是發這種二逼的文章。什麼都跟Hadoop比,比毛啊。
hejisan 2013-11-20 20:46
看的雲裏霧裏的。 。
HotWill 2013-11-20 18:30
垃圾,聳人聽聞罷了
pcdqc 2013-11-16 23:24
評論拿積分
vansacer 2013-11-16 20:27
Eddy_ 2013-11-15 13:51
看的雲裏霧裏的。 。
shang1010 2013-11-15 10:43
看到標題 我進來了 沒看懂 我又出去了
yylovejdp 2013-11-14 23:02
好!!!!!!!!!!!!!!!!!!!!!!!!!
yylovejdp 2013-11-14 23:02
好!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Clojure 2013-11-14 09:14
優化磁盤讀寫可以幹掉內存集羣?算法好牛逼!
xtremeaud 2013-11-14 01:15
標題有點唬人了,其實就是把本來要分佈到多個節點的任務在本地完成了,如果這種任務並非是CPU需求很高的,在分佈式網絡傳輸上的開銷將會遠遠大於多個節點同時計算帶來的好處,通過硬盤和內存分片處理解決了內存裝不下那麼多數據的問題之後,即使是隻有一個CPU的mac mini也能算的比Hadoop集羣快,因爲,這些任務本來就沒有必要分配到多個節點上(如果內存足夠大的情況下)。
kasn 2013-11-13 23:44
這個圖也太不清晰了吧
律師原來也喜愛權貴 2013-11-13 23:25
減少低速網絡設備帶來的性能問題,是個不錯的主意。
Melody0119 2013-11-13 14:00
標題有譁衆取寵的嫌疑
shuishouhcd 2013-11-13 13:23
基礎研究啊
hua_yi 2013-11-13 12:44
heitiantan 2013-11-13 11:26
真心2,我敢說LZ上面的項目一個都不會。
suprman 2013-11-13 10:59
可以寫得再清晰些
zenny_chen 2013-11-13 10:27
俺自己就有款Mac Mini,09年版的。速度確實快,1GB內存,跑64位的OS X Snow Leopard照樣十分流暢~
sniffer12345 2013-11-13 20:13
哥們你確定嗎?。。我手頭的mac mini 2G內存 xcode別想打開
zenny_chen 2013-11-13 20:41
回覆@sniffer12345:當然確定。OS X Snow Leopard
wzjin 2013-11-13 10:23
有價值,留名、標記!
acm_er6 2013-11-13 10:04
inspire_xg 2013-11-13 09:42
評論有積分?
sirnuo 2013-11-13 09:42
mark nuo
tf1008 2013-11-13 09:21
怎麼感覺不明覺厲呢。。。
文武大帝 2013-11-13 09:17
machine learnning 和 分佈式計算 比性能 也可以的嗎?
DashBird 2013-11-13 09:14
不明覺厲,致敬研究者。只是覺得,科技文章不應淪爲標題黨,它的這種超越對具體應用有特殊要求嗎?
wxq3d 2013-11-13 09:07
西瓜一片 2013-11-13 08:56
不能超越Mac mini的Hadoop不是好app
Leon__碼蟻 2013-11-13 08:49
Mac mini在哪
windcloudno1 2013-11-13 08:35
整篇都在講算法和Mac mini有啥關係?只是因爲Mac min使用SSD硬盤?Mac mini是個小型主機,Hadoop是一種分佈式計算的解決方案,這兩個東西可以比較嗎?太爛了!
twiker 2013-11-14 19:44
說的是,我就不信有在Mac mini上能完成的任務在其他機器上完不成的
我是你爸爸啊1 2013-11-13 07:07
真心不錯啊啊!寫的!!!!!!!!!!!!!!!!!!!
我是你爸爸啊1 2013-11-13 07:07
真心不錯啊啊!寫的!!!!!!!!
xueda120 2013-11-12 23:42
評論有積分?
chenzhizdt 2013-11-12 22:51
沒看懂。。。不過感覺應該不錯
vurteon 2013-11-12 22:31
mxlmhgzw 2013-11-12 22:08
mac mini是個神馬概念
u012815044 2013-11-12 21:33
評論有積分?
blacklaw0 2013-11-12 19:44
這個可以有,把算法優化到極致,相對的適用性應該比不上hadoop,如果能把整個運用到hadoop單機上,再吧hadoop的集羣加上去,那提高的效率可就不止7倍了,應該是7*1636。。太屌了:)
u012812796 2013-11-12 18:04
看了很多還是不怎麼懂
windows1989 2013-11-12 17:03
請編輯認真校對一遍,文章裏有多處寫錯的地方。
potency 2013-11-12 17:00
是mac mini還是Marc Mini ??
仲浩 2013-11-12 17:02
Mac Mini
mzule 2013-11-12 16:57
標題黨,這個Mac Mini有毛關係。
請您注意
  • ·自覺遵守:愛國、守法、自律、真實、文明的原則
  • ·尊重網上道德,遵守《全國人大常委會關於維護互聯網安全的決定》及中華人民共和國其他各項有關法律法規
  • ·嚴禁發表危害國家安全,破壞民族團結、國家宗教政策和社會穩定,含侮辱、誹謗、教唆、淫穢等內容的作品
  • ·承擔一切因您的行爲而直接或間接導致的民事或刑事法律責任
  • ·您在CSDN新聞評論發表的作品,CSDN有權在網站內保留、轉載、引用或者刪除
  • ·參與本評論即表明您已經閱讀並接受上述條款
發佈了10 篇原創文章 · 獲贊 21 · 訪問量 14萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章