1
我正在使用包parallel
來執行計算。這裏是一個玩具例子:並行計算的stdout和stderr在R
library(parallel)
m = matrix(c(1,1,1,1,0.2,0.2,0.2,0.2), nrow=2)
myFun = function(x) {
if (any(x<0.5)) {
write("less than 0.5", stderr())
return(NA)
} else {
write("good", stdout())
return(mean(x))
}
}
cl = makeCluster(2, outfile="/tmp/output")
parApply(cl, m, 2, myFun)
stopCluster(cl)
的問題是兩個標準輸出和標準錯誤將被重定向到/tmp/output
。該output
文件看起來像這樣:
starting worker pid=51083 on localhost:11953 at 11:37:12.966
starting worker pid=51093 on localhost:11953 at 11:37:13.261
good
good
less than 0.5
less than 0.5
有什麼辦法分別爲標準輸出和標準錯誤,安裝兩個單獨的文件?以及如何忽略「起始工人pid = ...」的前兩行?