Я использую пакет 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
Есть ли способ установка два отдельных файлов для стандартного вывода и стандартного потока ошибок, соответственно? и как игнорировать первые две строки «start worker pid = ...»?