Re: [問題] 關於平行運算
※ 引述《b10009047 (Nicklee)》之銘言:
: [問題敘述]:
: 大家好,最近接觸到'snow'這個用於平行運算的package後覺得十分有趣,剛好目前在做
: 的事情十分需要加快計算速度,因此嘗試使用parRapply, parSapply這些function
: 突然發現,若是我在parRapply當中在包一個apply,或是parRapply function都會產生
: 問題,例如 :
: library(snow)
: library(Rmpi)
: data <- matrix(1:6, ncol = 2)
: target <- 11:16
: cl <- makeCluster(2, type = 'MPI')
: parRapply(cl = cl, data, function(x) {
: x <- t(as.matrix(x))
: parRapply(cl = cl, x, function(x){
: target[x]
: })
: })
: stopCluster(cl)
: 會回報錯誤訊息:
: Error in checkForRemoteErrors(val) :
: 2 nodes produced errors; first error: 找不到物件 'cl'
: 唯一能想像的到的可能為,cl可能是在某個cpu下被定義的,但其他cpu並不知道cl的定義
: 因此產生以下錯誤訊息,此外也想不到其他可能的原因,想請教是否有人有碰過相同的
: 問題呢?
: 謝謝各位!
: [軟體熟悉度]:
: 使用者(對R的基本使用還算熟悉)
大家好,最近也遇到相同的問題。
主要是想了解一個概念性的問題:平行運算究竟能否包兩層以上。
我用的套件是parallel
函數也是parlapply
在實作時有一個四層迴圈的程式
最內層用平行運算處理速度確實快很多。
但當我想將第二層(最內層算第一層最外層算第四層)也化成平行運算時就會遇到跟上面一樣的問題。
嘗試過各種方法
例如每一層的CPU重新定義(第一層指派為cl第二層指派為dl)
或是不同層用不同的套件執行平行運算。
但都會發生上述的錯誤訊息。
因此猜測平行運算本來就不能像迴圈一樣包好幾層。
請問是否有高手熟悉這方面的實作呢?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.231.201.186 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1596070272.A.28B.html
推
07/30 14:18,
4年前
, 1F
07/30 14:18, 1F
→
07/30 14:23,
4年前
, 2F
07/30 14:23, 2F
→
07/30 14:24,
4年前
, 3F
07/30 14:24, 3F
→
07/30 14:25,
4年前
, 4F
07/30 14:25, 4F
→
07/30 14:26,
4年前
, 5F
07/30 14:26, 5F
R_Language 近期熱門文章
PTT數位生活區 即時熱門文章