作者f496328mm (为什麽会流泪)
看板R_Language
标题[问题] snow中使用parSapply 找不到函数
时间Fri May 6 23:17:53 2016
> sapply(c(1:10), function(x) actv_fun(data,bo_matrix,x))
[1] 0.5 0.5 0.5 3.0 1.5 17.5 9.0 0.5 2.5 2.5
> parSapply(cl,c(1:10), function(x) actv_fun(data,bo_matrix,x))
Error in checkForRemoteErrors(val) :
6 nodes produced errors; first error: 没有这个函数 "actv_fun"
http://imgur.com/nMZbBme
一样的东西 sapply都可以执行
但是为什麽用到parSapply
却会出现没有这个函数??
sapply不是可以用吗?
该不会parSapply只能用内定的函数吧?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 36.231.230.74
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/R_Language/M.1462547875.A.00E.html
1F:推 JackBaska: 这问题我上礼拜遇过,parallel的slave不会分享记忆区块 05/06 23:21
2F:→ JackBaska: 要重新载入或是重新定义 05/06 23:22
什麽意思?要怎麽做?
3F:推 JackBaska: package重新require/function重新定义或是用字串包在 05/06 23:27
4F:→ JackBaska: 传进去的资料list 使用 eval 重新宣告,虽然这样用eval 05/06 23:27
可以举例说明吗>< 谢谢
5F:→ JackBaska: 有点多余,复制贴上就好,但我比较懒...... 05/06 23:28
我是用自己写的function
※ 编辑: f496328mm (36.231.230.74), 05/06/2016 23:29:03
6F:→ JackBaska: 记得所有资料要包起来传进去,除非你的计算没有外部资料 05/06 23:28
7F:→ JackBaska: 我的意思是自己写的function,如果你懒得一个一个复制 05/06 23:29
8F:→ JackBaska: 贴进par里面让他重新在里面宣告,可以包成字串然後用eva 05/06 23:30
9F:→ JackBaska: 例子在我前几天问Rmpi回应到板上得文最下面,重新requir 05/06 23:31
恩恩
看到了
谢谢 研究中
※ 编辑: f496328mm (36.231.230.74), 05/06/2016 23:35:45
10F:推 JackBaska: 其实想法只是,你开平行其实就是多开好几个R,你R刚开 05/06 23:37
11F:→ JackBaska: 只会有你预载给他的变数还有function,所以全部重来 05/06 23:37
12F:→ JackBaska: 这样讲可能会比较好理解 05/06 23:38
13F:推 JackBaska: 可参考 Wush 大的系列平行文章 05/07 00:03
14F:→ celestialgod: clusterExport(cl, "actv_fun") 05/07 00:18
15F:→ celestialgod: 不用包进去eval,直接export出去就好 05/07 00:18
16F:→ celestialgod: 套件用clusterEvalQ去做library/require 05/07 00:19
17F:→ celestialgod: snow package的套件说明 建议全部浏览一次 05/07 00:19
感谢大大 成功了 也稍微了解SNOW了
多谢JackBaska 和celestialgod
※ 编辑: f496328mm (36.231.230.74), 05/07/2016 00:29:32
18F:推 JackBaska: 还在摸之中,感谢Ce大 05/07 00:29