问题标签 [domc]

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

r - R foreach :线程数减少到1

考虑一个示例代码

当我使用 top 时,启动时线程数为 6。每个线程的工作量很大。但是,线程数迅速下降到 5、4、3、2,然后是 1。我猜从那时起执行是串行的。我不明白为什么?

干杯

0 投票
2 回答
207 浏览

r - R中网格上大型模拟的并行化

我正在网格上运行一系列大型模拟。我正在按行执行模拟,我发现我的采样函数是一个瓶颈。我尝试使用 foreach 和 doMC 库来加速该过程,但我发现并行方法较慢,或者我无法编写将由 foreach 正确解释的函数。

查看其他一些帖子,看来我使用 foreach 的方法可能会被误导,因为我尝试的作业数量大大超过了可用处理器的数量。我想知道人们是否会对如何在我的情况下最好地实现并行化提出一些建议。我的模拟通常有两种类型。在第一个中,我计算一个矩阵,其中包含我正在处理的网格行中每个元素的采样间隔(行)。然后我使用 runif 进行采样(在实际模拟中,我的行包含 ~ 9000 个单元格,并且我正在执行 10000 个模拟)。

在第二种情况下,我试图从一组按矩阵中的列索引的经验分布中进行抽样。grid-row 元素的值对应于要采样的列。

在第二个示例中,我能够利用foreach()%dopar%并行运行,但模拟花费的时间比串行代码长得多。在上面的第一个示例中,我无法编写适当的函数来利用 foreach 并行化。我将把我在第二种情况下使用的代码只是为了展示我的想法——但我现在意识到我的方法在开销上太昂贵了。

我很感激一些关于一种方法(和一些代码!)的建议,这将有助于我有效地利用并行化。同样,我正在处理的行通常包含大约 9000 个元素,我们对每个元素进行 10000 次模拟。所以我的输出模拟矩阵一般在 10000 X 9000 的量级。谢谢你的帮助。

0 投票
2 回答
919 浏览

r - 具有复杂功能的tryCatch和R中的plyr

我有一个复杂而冗长的函数,我用它来进行模拟。它可能会产生错误,主要与以零方差相等的值结束的随机向量有关,被输入 PCA 或逻辑回归。

我正在使用doMCand的集群上执行它plyr。我不希望tryCatch函数内部的每一件小事,因为错误的可能性很多,而且每个错误的概率都很小。

我如何尝试每次运行,而不是tryCatch每条小线?代码是这样的:

大约一年后编辑:foreach软件包使这比使用该软件包要容易得多plyr

0 投票
5 回答
13726 浏览

r - R多核mcfork():无法分叉:无法分配内存

我收到了名义上的错误:

在尝试使用 mcapply 运行函数后,但top说我在 51%

这是在 EC2 实例上,但我确实有最新的 R。

有谁知道还有什么可能导致此错误?

谢谢,

-N

0 投票
1 回答
1123 浏览

r - R 检查重复项非常缓慢,即使使用 mclapply

我有一些数据涉及重复销售一堆具有唯一 ID 的汽车。一辆车可以卖不止一次。

但是,有些 Id 是错误的,所以我正在检查每个 Id 的大小是否在多次销售中记录为相同。如果不是,那么我知道 Id 是错误的。

我正在尝试使用以下代码执行此操作:

但在我的四核 i5 上,它的速度非常缓慢、非常缓慢。

谁能看出瓶颈在哪里?我是 R 优化的新手。

谢谢,-N

0 投票
2 回答
2186 浏览

r - Linux 上的多核不使用多个 CPU

我在 Linux 上使用 R 2.14.0 64 位。我继续使用此处描述的示例。然后我运行这个例子 -

但是,我在顶部看到它只使用一个 CPU 内核。以另一种方式证明这一点,如果我检查一个使用所有内核的进程,我会看到 -

但在这种情况下,我看到 -

我怎样才能让它使用多个核心?我正在使用多核而不是 doSMP 或其他东西,因为我不想为每个进程都拥有我的数据副本。

0 投票
3 回答
25233 浏览

r - 软件包 doMC 不适用于 R 版本 3.0.0 install.packages 中的警告

对于 doMC 和 doSMP 等某些软件包,我收到警告和无法库(doMC)。如下所示,我对子选择没有问题,因此没有文件/目录权限问题。还尝试了 repo= http://cran.us.r-project.org和其他,没有运气。请指教。

ps:对于突如其来的日文字符,我不知道;我认为这是一个可分离的问题;support.rstudio.org/help/discussions/problems/6009-japanese-characters-show-unexpectedly 尚未回复

0 投票
1 回答
496 浏览

r - 如何将 biglm 与 doMC 和 foreach 一起使用

是否可以在并行模式下运行 biglm?我尝试使用 doMC,然后将 biglm 嵌入到 foreach 循环中,但似乎所有内核都将同时处理相同的数据块。我如何并行化这个?

0 投票
1 回答
507 浏览

r - R 不再并行运行

我运行 (k)Ubuntu 12.04.2 和 R 3.0.1

我写了一堆过去并行运行的代码,但现在不再并行了。甚至这不再并行运行:

这绝对应该。我认为破坏它的是 R 3.0.1 更新或-dev, -devel我安装的 BLAS 包。(我认为是openBLAS)

我已经system(sprintf("taskset -p 0xffffffff %d", Sys.getpid()))按照其他地方的建议进行了尝试,并得到了这个结果:

我还尝试使用以下命令运行 R:

然而,在运行这些步骤中的任何一个之后,循环仍然只使用一个内核。

我想要并行处理!我怎么才能得到它?

0 投票
1 回答
759 浏览

r - 允许 foreach 工作人员注册子任务并将其分发给其他工作人员

我有一个 R 代码,其中涉及多个 foreach 工作人员以并行执行一些任务。为此,我正在使用 foreach 和 doMC。我想让每个 foreach 工作人员招募一些新工作人员并将其代码的某些部分(可并行化)分发给他们。

当前代码如下所示:

我正在寻找一个理想的代码,如下所示:

我在这里看到了一个使用 doSNOW 和 doMC 的多范式并行示例(https://www.rmetrics.org/files/Meielisalp2009/Presentations/Lewis.pdf#page=17)。但是,我不知道它是否符合我的要求。

此外,似乎嵌套 foreach不适用,因为它需要合并两个循环(请参见此处),而在我的情况下,这不是首选;第二个循环只帮助第一个循环的一部分代码。如果我错了,请纠正我。

谢谢。