r - 使用并行时如何 `print`或 `cat`

标签 r io parallel-processing

如果我使用 parSapply 调用函数,则该函数内的 printmessagecat 语句不会t 似乎输出到控制台。

我的过程需要很长时间,因此我需要某种方式来查看进度并在完成时获取结果输出。是否有任何特殊命令允许我从并行进程打印到控制台?

示例:

library(parallel)

oneloop = function(x) {
  for(i in 1:50) {
    a = rnorm(100000)
    a = sort(a)
  }
  print(x)
  message(x)
  cat(x)
}

cl <- makeCluster(5)
output = parSapply(cl, 1:10, oneloop)
stopCluster(cl)

最佳答案

makeCluster 中使用 outfile 参数,您可以将输出重定向到一个文件,然后检查该文件以了解程序的进展情况。

有趣的是,在 Linux 计算机上将其设置为 "" 输出到控制台,但这在 Windows 计算机上对我不起作用。文件输出适用于两者。

关于r - 使用并行时如何 `print`或 `cat`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16717461/

相关文章:

haskell - 如何测量 Haskell 程序的顺序和并行运行时间

r - 为具有相同 'tidy' 格式和大小的不断变化的输入 csv 文件有效地创建 data.frames

r - 如何以 Shiny 的方式加载 csv 文件的文件夹

r - 为 R 项目创建文档

c# - 从另一个程序读取标准输出

parallel-processing - 将矩阵的每一行乘以随机数的最佳方法

r - 从 R 中的 t 检验输出 p 值

ruby - 在不读取IO的情况下如何知道IO是否为空?

.net - 在与 ActiveSync 同步的同时读取 PDA 目录的内容

c# - Parallel.ForEach 会阻塞吗?