foreach
ロギングと組み合わせてパッケージを使用したい。私は通常futile.logger
パッケージを使用します。ワーカーに作業が与えられると、ログ情報が失われます (ログ パッケージを foreach に指定する必要があるため、これは奇妙です)。
この投稿を見たことがありますが、foreach を使用していません
library(foreach)
library(futile.logger)
library(doParallel)
flog.threshold(DEBUG)
cluster <- makeCluster(8)
registerDoParallel(cluster)
doStuff <- function(input){
flog.debug('Doing some stuff with %s', input)
return(input)
}
res <- lapply(FUN=doStuff, X=seq(1,8,1))
# >> this prints
res2 <- foreach(input = seq(1,8,1)) %do% doStuff(input)
# >> this prints
res3 <- foreach(input = seq(1,8,1), .packages='futile.logger') %dopar% doStuff(input)
# >> this does not
identical(res,res2) && identical(res,res3)
パラレルバックエンドについてはあまり気にしません。何でもかまいませんが、ログを機能させるにはどうすればよいですか