Parameter Server研究之ps-lite源碼分析與開發(fā)

文章也同時在個人博客 http://kimihe.com/更新

引言

Parameter Server (PS) [1] 是一種目前主流的分布式機(jī)器學(xué)習(xí)范式器躏。其中,李沐 提出的第三代PS [2] 影響力甚大捐顷,可以在Github找到其core-sources:ps-lite
基于上述ps-lite换棚,MXNet [3] 應(yīng)運(yùn)而生蚂维,發(fā)展為目前最“熱門”的Deep Learning 軟件庫之一。
注意:本文將主要著眼于ps-lite悔叽。

ps-lite安裝

如果你只是想使用ps-lite构韵,而不是做二次開發(fā)周蹭。根據(jù)官方文檔進(jìn)行下載及編譯即可趋艘。

切入根目錄下tests
執(zhí)行> ./local.sh [serverNumber] [workerNumber] [chooceTestApp]凶朗,例如:

> ./local.sh 2 2 ./test_kv_app

上述命令可以執(zhí)行測試example瓷胧。

ps-lite源碼開發(fā)的準(zhǔn)備工作

ps-lite項目基于cmake和makefile,你可以直接通過shell的make命令進(jìn)行編譯棚愤,也可以利用cmake來實現(xiàn)跨平臺和使用IDE開發(fā)搓萧。這里我們將使用CLion來幫助源碼的分析與開發(fā)。

下載CLion

可以直接下載CLion宛畦。也可以使用Toobox App來管理你的JetBrains大禮包瘸洛。另外,如果你是學(xué)生次和,教育優(yōu)惠不可錯過反肋!

導(dǎo)入ps-lite工程

選擇openimport source都可以,CLion默認(rèn)使用CMake來配置C工程踏施。
首次導(dǎo)入源碼后囚玫,CMakeList會運(yùn)行一次,不出意外读规,會出現(xiàn)如下報錯:

································································
/Applications/CLion.app/Contents/bin/cmake/bin/cmake -DCMAKE_BUILD_TYPE=Debug -G "CodeBlocks - Unix Makefiles" /Users/qihuazhou/Desktop/ps-lite-clion
-- Could NOT find ZMQ (missing: ZMQ_LIBRARY ZMQ_INCLUDE_DIR)

CMake Error at /Applications/CLion.app/Contents/bin/cmake/share/cmake-3.10/Modules/FindPackageHandleStandardArgs.cmake:137 (message):
  Could NOT find Protobuf (missing: Protobuf_LIBRARIES Protobuf_INCLUDE_DIR)
  
Call Stack (most recent call first):
  /Applications/CLion.app/Contents/bin/cmake/share/cmake-3.10/Modules/FindPackageHandleStandardArgs.cmake:378 (_FPHSA_FAILURE_MESSAGE)
  /Applications/CLion.app/Contents/bin/cmake/share/cmake-3.10/Modules/FindProtobuf.cmake:543 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
  cmake/ProtoBuf.cmake:4 (find_package)
  CMakeLists.txt:22 (include)

-- Configuring incomplete, errors occurred!
································································

這里需要注意,直接run工程根目錄下的makefile文件(右鍵點擊run即可)燃少,是可以使用make命令自動去下載依賴束亏,并編譯的。
只不過上述make操作只是編譯工程(編譯完也可以運(yùn)行tests下的example)阵具,并不能幫助CLion分析項目各文件的依賴關(guān)系(例如函數(shù)跳轉(zhuǎn)等)碍遍。
為了能夠方便地進(jìn)行源碼開發(fā),必須搞定CMakeList的問題阳液。

其實方法很簡單怕敬,手動安裝protobuf即可。
Mac命令如下:brew install protobuf帘皿。
Ubuntu命令如下:sudo apt-get install libprotobuf-dev protobuf-compiler东跪。
安裝完protobuf后,再次刷新CLion中的CMakeList鹰溜,即可正確解析虽填,只會各源文件中的依賴關(guān)系也正確得到分析,可以函數(shù)跳轉(zhuǎn)了曹动!

ps-lite源碼開發(fā)流程

之后斋日,在CLion中分析及修改代碼;然后運(yùn)行使用makefile來編譯墓陈;最后通過terminal運(yùn)行測試程序恶守;當(dāng)然你也可以打斷點Debug第献。

更多內(nèi)容待后續(xù)更新

后續(xù),筆者會更新一些ps-lite的源碼分析和開發(fā)技巧兔港。
未完待續(xù)庸毫。

Reference

[1] A. Smola et al. "An architecture for parallel topic models." In VLDB. 2010.
[2] M. Li et al. "Scaling distributed machine learning with the parameter server." In OSDI. 2014.
[3] T. Chen et al. "MXNet: A Flexible and Efficient Machine Learning Library for Heterogeneous Distributed Systems." In NIPS. 2016.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市押框,隨后出現(xiàn)的幾起案子岔绸,更是在濱河造成了極大的恐慌,老刑警劉巖橡伞,帶你破解...
    沈念sama閱讀 217,185評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件盒揉,死亡現(xiàn)場離奇詭異,居然都是意外死亡兑徘,警方通過查閱死者的電腦和手機(jī)刚盈,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評論 3 393
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來挂脑,“玉大人藕漱,你說我怎么就攤上這事≌赶校” “怎么了肋联?”我有些...
    開封第一講書人閱讀 163,524評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長刁俭。 經(jīng)常有香客問我橄仍,道長,這世上最難降的妖魔是什么牍戚? 我笑而不...
    開封第一講書人閱讀 58,339評論 1 293
  • 正文 為了忘掉前任侮繁,我火速辦了婚禮,結(jié)果婚禮上如孝,老公的妹妹穿的比我還像新娘宪哩。我一直安慰自己,他們只是感情好第晰,可當(dāng)我...
    茶點故事閱讀 67,387評論 6 391
  • 文/花漫 我一把揭開白布锁孟。 她就那樣靜靜地躺著,像睡著了一般茁瘦。 火紅的嫁衣襯著肌膚如雪罗岖。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,287評論 1 301
  • 那天腹躁,我揣著相機(jī)與錄音桑包,去河邊找鬼。 笑死纺非,一個胖子當(dāng)著我的面吹牛哑了,可吹牛的內(nèi)容都是我干的赘方。 我是一名探鬼主播,決...
    沈念sama閱讀 40,130評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼弱左,長吁一口氣:“原來是場噩夢啊……” “哼窄陡!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起拆火,我...
    開封第一講書人閱讀 38,985評論 0 275
  • 序言:老撾萬榮一對情侶失蹤跳夭,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后们镜,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體币叹,經(jīng)...
    沈念sama閱讀 45,420評論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,617評論 3 334
  • 正文 我和宋清朗相戀三年模狭,在試婚紗的時候發(fā)現(xiàn)自己被綠了颈抚。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,779評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡嚼鹉,死狀恐怖贩汉,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情锚赤,我是刑警寧澤匹舞,帶...
    沈念sama閱讀 35,477評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站线脚,受9級特大地震影響赐稽,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜酒贬,卻給世界環(huán)境...
    茶點故事閱讀 41,088評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望翠霍。 院中可真熱鬧锭吨,春花似錦、人聲如沸寒匙。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽锄弱。三九已至考蕾,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間会宪,已是汗流浹背肖卧。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留掸鹅,地道東北人塞帐。 一個月前我還...
    沈念sama閱讀 47,876評論 2 370
  • 正文 我出身青樓拦赠,卻偏偏與公主長得像,于是被迫代替她去往敵國和親葵姥。 傳聞我的和親對象是個殘疾皇子荷鼠,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,700評論 2 354

推薦閱讀更多精彩內(nèi)容