问题标签 [doparallel]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2317 浏览

r - 找不到对象问题

在过去的几个小时里,我有一个问题一直让我发疯。

我在 R 中使用以下包:forecast、、、fracdiff等。我也有以下功能。doParallelforeach

...并且上述功能有效!

但是,如果我nnetar(training, 8, P=1, 5)fracdiff(training, 3, 1, h=0.00001)函数替换开始失败并出现以下错误。

这就是有趣的地方。它实际上并没有在编辑的行上失败。它实际上在下一行失败:forecast(fit, 1)$mean

换句话说,以下确实有效。

但是之后...

抛出前面提到的关于"object 'training' not found"

编辑:根据要求......一个可重现的例子......

编辑2:好的,这个问题与并行性无关。fracdiff这与和之间的交互有关forecast。以下功能也不起作用

它评估为以下

0 投票
1 回答
1236 浏览

r - 在 foreach 循环中运行 h2o 算法?

我天真地认为在 foreach 循环内并行多次调用 h2o.gbm 是直接的。但是遇到了一个奇怪的错误。

下面的代码

0 投票
0 回答
361 浏览

r - R doSnow/foreach 内存泄漏和太多迭代

未解决问题总结:

1. 内存不足 - 主进程需要太多内存,但不应该

我将尝试计算多种任意网络的组合,并使用 doparralel 和 foreach 遇到一些问题。对于一定规模的问题,即使使用 makeCluster(3),也只会启动一个进程。此外,我的内存不足(在 Mac 上使用 ~50GB - 错误:杀死 9 后)。奇怪的是,问题的规模已经很大了,它运行起来没有任何问题。我真的无法理解它,为什么它会填满内存而不是启动一个以上的进程。会不会是太大而无法计算?

代码:

这是我的活动监视器的屏幕截图,其中一个 R 进程占用更多内存(高达 55GB): 活动监视器

这是错误的屏幕截图:错误

编辑 09/22:

我已经更新了上面的代码。似乎使用 DoSNOW 包而不是 doParallel 解决了进程的问题。使用 DoSNOW 时,会启动正确数量的进程。但这带来了一个新问题。foreach 运行的迭代次数过多。

我已经添加到功能:

  1. bgg用函数计算adjmatrix

    /li>
  2. bzz用函数改变了计算matmult

    /li>

编辑 09/23: 已解决:DoSNOW 包:foreach 运行了太多迭代

原因是这部分代码:

以下更改导致正确的迭代次数(或结果):

更新了代码。

0 投票
3 回答
3420 浏览

r - R:如何在 foreach %dopar% 中拆分数据帧

这是一个非常简单的例子。

在实际情况下,我有 n=400000 行的数据框。我不知道如何一步发送每个集群的 nrow/ncluster 数据,i = ?

我尝试使用 library(itertools) 中的 isplitRows 没有成功。

0 投票
1 回答
323 浏览

r - 在 R 中并行打开图像文件

我正在尝试做的事情:使用 EBImage 打开一堆图像,处理它们,并将处理后的图像保存在一个新文件中。我正在使用包“doParallel”和“foreach”并行尝试这个。

问题:每当我为任务使用多个处理器内核时,R都会返回错误:

我不知道如何获得有关此错误的更多信息。如果我尝试使用相同的脚本但只有一个处理器内核,我不会遇到任何问题。

示例脚本:

该代码在 nCores = 1 时有效,但在 nCores 介于 1 和最大可用内核数之间时无效。

我希望它运行的系统是一个运行 CentOS 7 的具有 36 个内核的虚拟机。

单个工作人员应该根据文件 ID 访问唯一文件,因此我无法想象这是文件锁定或同时读取的问题,除非 linux 也存在同时读取和写入同一目录的问题。

老实说,我很高兴找到解决方法和解决方案。

谢谢!


我的会话信息:R 版本 3.3.1 (2016-06-21) 平台:x86_64-apple-darwin13.4.0 (64-bit) 运行条件:OS X 10.11.6 (El Capitan)

0 投票
0 回答
212 浏览

r - linux下插入符号训练模型中的doparallel包

当我在插入符号中运行带有并行处理的 train 函数时遇到问题,例如,当我运行一个简单的 R 代码时,例如:

我收到此错误消息

我在 R 3.3.0 下安装了插入符号的最后一个版本。

我在 Windows 上安装了 R 版本和插入符号版本,它可以工作。

有人对此有什么建议吗?

0 投票
0 回答
57 浏览

r - R无法找到源函数

我正在使用 doParallel 和 foreach 包在多个内核上运行我的代码。我的代码类似于

当我调用 fun1 时,fun2 的第一个实例已成功执行,但我使用 foreach 调用 fun2 的实例在 fun2 中出现错误(param4,param5,:任务 1 失败 - “找不到函数“fun2””

0 投票
1 回答
518 浏览

r - 将全局和函数环境中的对象导出到集群

我在下面的示例代码中使用了 foreach 和 doParallel。

在 clusterExport 的 envir 参数中,当我使用envir = .GlobalEnv时,出现错误

**"Error in get(name, envir = envir) : object 'param4' not found"**.

当我使用envir = environment()时,错误是

**"Error in fun2(i, param4, param5, param6) : task 1 failed - "could not find function "fun2"""**

我的问题是如何将全局和功能环境中的所有对象导出到集群。

0 投票
1 回答
1549 浏览

r - 在 R 中优化嵌套的 foreach dopar

我想了解我的以下代码的结构。想知道它是否需要以不同的方式组织以更快地执行。具体来说,我是否需要在嵌套循环中以不同的方式使用foreachdopar 。目前,内部循环是大部分工作(ddply 有 1-8 个细分变量,每个变量有 10-200 个级别),这就是我并行运行的。为简单起见,我省略了代码细节。

有任何想法吗?我的代码(如下所示)确实有效,但在 6 核、41gb 的机器上需要几个小时。数据集不是那么大(< 20k 条记录)。

0 投票
1 回答
1348 浏览

r - R 并行:错误“找不到函数“%do%””

这是一段 R 代码(函数“Kclust”),它尝试使用 library(doParallel) 并行执行任务。

代码运行良好:

R 版本 3.0.2 (2013-09-25) -- “飞盘航行”。平台:x86_64-pc-linux-gnu(64位)

但是,如果我运行代码:

R 版本 3.2.3 (2015-12-10)——“木制圣诞树”。平台:x86_64-w64-mingw32/x64(64 位)。

我明白了

{ 中的错误:任务 1 失败 -“找不到函数“%do%””调用:sapply -> lapply -> FUN -> Kclust -> %dopar% -> 执行暂停

可能是什么问题呢?