[心得] doRedis, 可以動態管理worker的平行運算
[關鍵字]: parallel computing, redis, foreach
這是一個利用job queue實作平行化運算的套件,
並且利用redis*來進行process之間的溝通。
原理如下:
- worker可以自行去redis server註冊
- master將工作打包成數個task放到redis給worker領去計算
- master在運算結束後可以設定merger
和其他parallel computing的環境比較,doRedis有以下的特性:
- worker和master不一定需要process間的相依關係。以Rmpi來說,
一個點 crash ==> 所有worker 一定要關掉再開,但是doRedis不用。
master掛了,worker不用關,只要再註冊後就可以繼續運作。
我目前的環境,每次讀取資料就占了80%時間,所以這個特性對我很方便。
- worker可以在運算過程中,動態的加進去。Rmpi需要在分配工作前就要知道總worker
數,doRedis不用。所以你可以先用少量worker試試看,如果發現工作太多,可以直接
在開機器後註冊到redis server來增加worker。
redis*: 是一種memory database
實際運作請參考:
<http://cran.r-project.org/web/packages/doRedis/vignettes/doRedis.pdf>
--
歡迎到ptt R_Language版分享R 的相關知識
歡迎加入 Taiwan R User Group : http://www.facebook.com/Tw.R.User
聚會報名 http://www.meetup.com/Taiwan-R/
聚會影片 https://www.youtube.com/user/TWuseRGroup
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.137.111.239
R_Language 近期熱門文章
PTT數位生活區 即時熱門文章