作者Wush978 (拒看低质媒体)
看板R_Language
标题[心得] doRedis, 可以动态管理worker的平行运算
时间Sun Jun 30 01:06:08 2013
[关键字]: 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