问题标签 [parallel-foreach]

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 回答
272 浏览

r - 在 R 中,当使用分配存储中间输出时,foreach 循环(doSNOW)之间是否存在通信危险?

我想创建一个使用赋值来存储中间输出 (p) 的函数。此中间输出用于以下语句。我希望使用 doSNOW 和 foreach 并行化所有内容,并且我不希望在 forarch 循环的迭代之间传递中间输出。我不想将中间输出存储在列表中(例如p[[i]]),因为那样我必须更改大量代码。

  • 问题 1: foreach 循环的另一次迭代将使用中间输出 (p) 是否存在危险?
  • 问题2:如果是,什么时候会发生这种情况以及如何预防?

这是我的意思的一个例子:

0 投票
1 回答
490 浏览

r - 设置“foreach”函数的形式参数

我正在尝试设置 foreach 函数的形式参数。我将给出一个使用 .combine 参数的简单示例。

我写了一个通用包装器来改变函数的形式(下面的代码)

所以,我改变了 foreach 函数的形式

当我检查我得到的新形式时(如预期的那样):

但是当我调用 foreach.bind 时,一切都像 .combine 变量一样没有设置!例如,声明:

并调用:

正如我所说,像 .combine 参数没有正式设置。

另一方面,如果我调用它的原始函数:

无论如何,谁能解释我在这种情况下发生了什么?或为我提供“绑定” foreach 函数的其他方法?

0 投票
2 回答
316 浏览

r - 使用 R foreach 的高音循环

我尝试将并行 R 包foreach用于高音 for 循环。out应该是一个 3-d 数组,我不断得到一个 2-d 矩阵。一个简单的例子:

0 投票
1 回答
261 浏览

r - 并行多核 plyr,错误时提前退出

.parallel=TRUE在对其中一个函数的调用中指定时plyr,即使第一次评估已经抛出错误,它也会顽固地评估所有实例:

上面的例子在我的机器上运行了将近一分钟,途中产生了一些进程。如果.parallel=TRUE省略,则立即退出。

有没有办法在llply遇到第一个错误时立即退出?

0 投票
1 回答
6187 浏览

r - 并行for循环R

我在 for 循环中调用一个函数。

我如何并行化这个循环。使用 foreach 和 dopar 会给我下标错误。

0 投票
3 回答
4649 浏览

r - R中的并行k均值

我试图了解如何使用 R 并行化我的一些代码。因此,在下面的示例中,我想使用 k-means 使用 2、3、4、5、6 个中心对数据进行聚类,同时使用 20 次迭代。这是代码:

我们如何同时并行迭代和中心?如何跟踪输出,假设我想在所有迭代和中心中保留 k-means 的所有输出,只是为了学习如何?

0 投票
1 回答
739 浏览

r - R 找不到 %do% 函数

我正在尝试学习如何在 R 中使用并行 foreach 循环:

我尝试运行以下代码:

(我从 Stackoverflow 上的另一篇文章中得到)但出现错误:

{ 中的错误:任务 1 失败 - “konnte Funktion “%do%” nicht finden”

这意味着“找不到函数 %do%”。有没有人见过这个错误?

0 投票
1 回答
902 浏览

r - Parallelization of merge by row.names of two large matrices

I am trying to merge two large matrices by row.names in R with merge, but it's taking quite some time. Is there a possibility to parallelize the merge method? Maybe somehow with foreach library? Or maybe there are faster solutions that do the job?

I have 8 cores and 24 GB of RAM. Both matrices are about 1.4 Gb and consist of ~900 rows and ~22000 columns.

Here is the code to reproduce a small example of my data set:

0 投票
1 回答
409 浏览

r - 在 R 中处理多核和稀疏矩阵

我正在研究一个需要具有大量零的大型矩阵的项目。不幸的是,由于这些矩阵中的一些可能有超过 1e10 个元素,因此由于 RAM 限制,不能使用“标准”R 矩阵。另外,我需要在多个内核上工作,因为计算可能需要很长时间,而且确实不应该。

到目前为止,我一直在使用该foreach包,然后将结果(以标准矩阵形式出现)转换为稀疏矩阵。我忍不住想,一定有更聪明的办法。

这是我到目前为止所做的一个最小示例:

lambda 都非常小,因此只有大约每 5 个元素不为零,因此将结果存储在稀疏矩阵中是明智的。

不幸的是,现在必须将迭代次数从 1e6 增加到至少 1e7,这样foreach循环生成的矩阵太大而无法存储在 8GB 的​​ RAM 中。我现在要做的是将任务拆分为每个具有 1e6 次迭代的步骤,并将它们组合成一个单一的稀疏矩阵。

我现在有以下想法:

It works fine, but I had to fix lambda to some value. For my application, I need the values in the ith row to come from a poisson distribution with mean equal to the ith element of the lambda vector. This obviously worked fine in the foreach loop., but I have yet to find a way to make it work in an apply loop.

My questions are:

  1. Is it possible to have the apply function "know" on which row it is operating and pass a corresponding argument to a function?
  2. Is there a way to work with foreach and sparse matrices without the need of creating a standard matrix and converting it into a sparse one in the next step?
  3. 如果以上都不是,我有没有办法手动将任务分配给 R 的从属进程 - 也就是说,我可以具体告诉一个进程在第 1 列上工作,另一个在第 2 列上工作,依此类推,每个创建一个稀疏向量,并且仅在最后一步中组合这些向量。
0 投票
1 回答
2285 浏览

r - 为什么 R for 循环比使用 foreach 慢 10 倍?

这真的让我大吃一惊。在我的计算机上,基本循环大约需要 8 秒:

而如果我foreach在非并行模式下使用,它只需要 0.7 秒!!!

结果是一样的,但foreach不知何故能够比基本 R 快得多!基本 R 的低效率在哪里?

这怎么可能?

事实上,与这个结果相比,我得到了完全相反的结果:为什么 foreach() %do% 有时比 for 慢?