[問題] for 迴圈的平行運算
[問題類型]:
程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來)
[軟體熟悉度]:
新手(沒寫過程式,R 是我的第一次)
[問題敘述]:
目前有一個數學模型,每次要跑20秒,懲罰係數大約為16*16種組合
想利用版上所說的RMPI來優化程式,但我是用雙for迴圈來代入懲罰係數的
目前是想平行運算各組合,將各組合結果儲存到一個陣列,
再去找出最小的AIC
[程式範例]:
wn = seq(0.25,1,0.05)
wn1 = seq(0.25,1,0.05)
AIC0 = 10^6
for(i in 1:length(wn)){
for(j in 1:length(wn1)){
list[AIC,BIC] = Model(wn[i],wn1[j]);
if(AIC < AIC0){
finalAIC = AIC
finalBIC = BIC
}
}
}
[環境敘述]:
Win7 32bit R3.2.2
[關鍵字]:
Parallel Computing、RMPI
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.195.74.150
※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1445428297.A.5AF.html
另外想請教一下這個錯誤要怎麼解決?
Error in mpi.comm.spawn(slave = mpitask, slavearg = args,
nslaves = count, :
Other MPI error, error stack:
RMPI不知道為何在我的電腦會出現這個錯誤 所以我就改用parallel這個函式庫
library(parallel)
inputs <- 1:256
processInput <- function(i){
wn = seq(0.25,1,0.05)
wn1 = seq(0.25,1,0.05)
wnpair <- data.frame("wn0" = double(), "wn1" = double(),
stringsAsFactors=FALSE)
for(i in 1:length(wn)){
for(j in 1:length(wn1)){
wnpair[nrow(wnpair) + 1,] <- c(wn[i],wn1[j])
}
}
wnpair$wn0[i] * wnpair$wn1[i]
}
numCores <- detectCores()
c1 <- makeCluster(numCores)
results = parLapply(c1,inputs,processInput)
stopCluster(c1)
所得出的results變成256個0.25 而不是兩兩相乘 版上各位大大可以教學一下嗎?
→
10/21 21:36, , 1F
10/21 21:36, 1F
→
10/21 21:36, , 2F
10/21 21:36, 2F
→
10/21 21:39, , 3F
10/21 21:39, 3F
→
10/21 21:42, , 4F
10/21 21:42, 4F
→
10/21 21:43, , 5F
10/21 21:43, 5F
→
10/21 21:43, , 6F
10/21 21:43, 6F
感謝 有試了expand.grid 但不知道代入function後要如何分別用兩個參數
library(parallel)
inputs <- 1:256
wn = seq(0.25,1,0.05)
wn1 = seq(0.3,1,0.05)
processInput <- function(i) {
i$Var1 + i$Var2
}
inputs <- expand.grid(wn,wn1)
numCores <- detectCores()
# results = mclapply(inputs, processInput, mc.cores = numCores)
# the above won't work on Windows, but this will:
cl <- makeCluster(numCores)
results = parLapply(cl, inputs, processInput)
stopCluster(cl)
會得到錯誤
Error in checkForRemoteErrors(val) :
2 nodes produced errors; first error: $ operator is invalid for atomic
vectors
※ 編輯: tony255034 (123.195.74.150), 10/21/2015 22:28:29
→
10/22 00:58, , 7F
10/22 00:58, 7F
→
10/22 00:58, , 8F
10/22 00:58, 8F
討論串 (同標題文章)
R_Language 近期熱門文章
PTT數位生活區 即時熱門文章