相关疑难解决方法(0)

使用%dopar%时如何打印

我有一个foreach使用循环%dopar%使用doSNOW作为后端.如何在每次迭代中打印循环?

我下面的代码是我目前使用的,但它不打印任何东西.

foreach(ntree=rep(25,2),.combine=combine,.packages='randomForest',
    .inorder=FALSE) %dopar% {
        print("RANDOM FOREST")
        randomForest(classForm,data=data,na.action=na.action,do.trace=do.trace,ntree=ntree,mtry=mtry)
    }   
Run Code Online (Sandbox Code Playgroud)

parallel-processing foreach r

63
推荐指数
4
解决办法
3万
查看次数

是否有可能获得带有foreach的进度条和后端的"多核类型"

使用foreachdoMC后端使用"多核"并行性时(我使用doMC时,我调查了其他包不允许从我想要获取进度条,使用进度包,但任何进度)这适用于Linux终端,即没有tcltk弹出窗口).

鉴于它使用分叉,我可以想象它可能不可能,但我不确定.

预期用途是指示并行加载连接100个文件时的进度(通常在#!Rscript中)

我看过几个帖子,比如在R中使用"foreach()"函数时如何创建进度条?.很高兴为此奖励.

编辑

为有人向我展示500分的赏金

  1. 使用foreach和多核(分叉)类型的并行性
  2. 得到一个进度条
  3. 使用futile.logger获取日志记录

Reprex

# load packages                                                                                                        
library("futile.logger")                                                                                               
library("data.table")                                                                                                  
library("foreach")                                                                                                     
# create temp dir                                                                                                      
tmp_dir <- tempdir()                                                                                                   
# create names for 200 files to be created                                                                             
nb_files <- 200L                                                                                                       
file_names <- file.path(tmp_dir, sprintf("file_%s.txt", 1:nb_files))                                                   
# make it reproducible                                                                                                 
set.seed(1L)                                                                                                           
nb_rows <- 1000L                                                                                                       
nb_columns <- 10L                                                                                                      
# create those 200 files sequentially                                                                                  
foreach(file_i = file_names) %do%                                                                                      
{                                                                                                                      
    DT <- as.data.table(matrix(data = runif(n = nb_rows * nb_columns), nrow …
Run Code Online (Sandbox Code Playgroud)

r domc progress-bar parallel-foreach

12
推荐指数
1
解决办法
1189
查看次数