作者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/m.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