问题标签 [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 投票
2 回答
790 浏览

r - doParallel 和 foreach 无法并行化合并操作

我正在尝试合并一个大data.frame的和一个小的,并并行化计算。下面的代码完美运行,最大限度地利用了我机器的所有内核:

一旦我将向量更改dat为包含 5 长的字符串,并行性就会崩溃,尽管没有错误或警告,但只有 1 个核心参与计算:

为什么会出现这种不一致,以及如何解决它?在特定示例中,如果有人索引dat整数,则代码有效。但索引并不是所有情况下的答案。为什么弦的长度与所使用的核心数量有关?

0 投票
3 回答
6734 浏览

r - doParallel,集群与核心

registerDoParallel使用 doParallel 包时,集群和核心有什么区别?

我的理解是否正确,在单台机器上这些是可以互换的,我会得到相同的结果:

我看到的唯一区别makeCluster()必须使用stopCluster().

0 投票
1 回答
15858 浏览

r - R中doMC和doParallel的区别

关于功能,RdoParallel和R有什么区别?支持windows,类unix,而仅支持类unix。换句话说,为什么不能直接替换?谢谢你。doMCforeachdoParalleldoMCdoParalleldoMC

更新: doParallel基于parallel,本质上是合并multicoresnow自动为您的系统使用适当的工具。这样一来,我们就可以使用doParallel来支持多系统了。换句话说,我们可以使用doParallel替换doMC

参考: http: //michaeljkoontz.weebly.com/uploads/1/9/9/4/19940979/parallel.pdf

registerDoParallel(ncores=3)顺便说一句,和有什么区别

似乎registerDoParallel(ncores=3)可以自动停止集群,而第二个不会自动停止并且需要stopCluster(cl)

参考:http ://cran.r-project.org/web/packages/doParallel/vignettes/gettingstartedParallel.pdf

0 投票
0 回答
142 浏览

r - 以函数名作为参数的并行处理

当为非并行版本传入函数名称或函数名称在并行版本中硬编码时,下面的代码可以正常工作。我需要进行哪些更改才能传入并行版本的函数名称(在 bpar 设置为 TRUE 时调用)?

我得到的错误是:

0 投票
0 回答
182 浏览

r - 使用 doParallel 在 R 中滚动回归 - 性能问题

我正在进行滚动回归分析,并希望使用我的 PC 的多个内核来提高执行速度。我尝试的代码如下所示:

代码执行并产生正确的结果。问题是,无论我在做什么,就花费的时间而言,我得到的结果大致相同,如果它是 2 个内核或 6 个内核,我已经使用 registerDoParallel() 注册。这与许多用户报告的类似任务形成鲜明对比。查看 Windows 中的 TaskManager,我可以看到所有 6 个内核都在做某事,并且与 2 个内核相比几乎没有加速(总共 60 秒的执行时间不到一秒)。任何想法我做错了什么?

0 投票
0 回答
330 浏览

mysql - 在 R 中并行化一个简单的 sql 查询

我正在通过 R 执行一个简单的 SQL 查询

这是永远的。有时我得到一个错误

我假设并行执行 sql 查询将解决这个问题,我想知道是否有人可以给我一些指示,如果他们遇到类似的问题。

0 投票
0 回答
605 浏览

r - foreach R:在我自己的包中调用函数

我正在编写一个 R 包。我的一个函数采用另一个函数和其他一些与数据相关的参数,并使用foreach包运行一个%dopar%循环。这个使用 foreach 的功能在我的包的主要功能之一中使用。

当我从另一个文件调用主函数时,在加载了我的包后,我收到了消息

some_function我的包中的一些功能在哪里。.export当我将调用中的参数设置为以下任何一项时,我收到此消息,其中缺少不同的功能foreach

  • ls(as.environment("package:mypackagename"))
  • ls(.GlobalEnv)
  • ls(environment())
  • ls(parent.env(environment()))
  • ls(parent.env(parent.env(environment()))

甚至是上述的串联。我还尝试将我的包名称传递给.package参数,这只会产生错误消息

我觉得我几乎尝试了所有东西,我真的需要这段代码才能工作。我应该注意,如果我使用%do%而不是%dopar%. 我究竟做错了什么?

0 投票
0 回答
1268 浏览

r - 在 R 中使用 foreach() 创建随机森林时,出现错误,找不到 randomForest() 函数

尝试在 R 中执行并行处理以使用 3 个内核创建 51 棵树的随机森林时,我收到错误 “randomForest(x, y, ntree = ntree) 中的错误:任务 1 失败 -”找不到函数“randomForest””

请帮忙。我使用的代码如下:

0 投票
0 回答
303 浏览

r - 加载来自不同会话的数据集后,%dopar% 不起作用

我在带有 doParallel 和 foreach 包(OpenMP)的集群节点上使用 R。

我运行了第一个脚本,它给了我两个对象作为结果并将它们保存为 RData。

在一个单独的脚本上,我加载了包含两个要进一步处理的对象的 RData,但是当我并行使用 foreach 循环时,我得到一个“任务 1,无法打开连接”。我怀疑加载的 RData 可能有问题。

我决定在我的台式计算机上尝试这个简单的工作示例:

1/ 我首先运行这个简单的代码:

一切正常

2/然后我加载我之前保存在集群上的 RData

这两个对象在那里。

3/如果我尝试再次运行 1,这与 2 完全无关,那么我得到错误:

mcfork() 中的错误:无法分叉,可能的原因:无法分配内存

实际上,使用并行包的所有东西都不再起作用了。尝试注册核心不起作用,有时甚至挂起。

显然,某些东西必须从集群环境导入到导致问题的 RData 中。但是我不知道为什么,如果我直接在集群上执行相同的步骤,问题仍然存在。

信息:

加载数据集之前的 ls():

加载数据集后的 ls():ls()

trandom_list* 是加载的两个对象,每个都是 8.7Gb(集群节点有 47Gb,我的计算机有 32Gb RAM)

dput(xxx.RData) 给出一个以 list(structure(c(0, 0, 0, 0, 0.1, 0, 0, 5.2

并以奇怪的方式结束

那是没有“)”..也许de dput没有完全完成,因为该过程完成时RAM已满(但交换仍然可以)。

0 投票
0 回答
432 浏览

r - 更新:使用 R 的并行计算导致“尝试复制‘闭包’类型的对象”

我已经建立了 Metropolis-Hastings 算法,现在我正在尝试使用并行计算运行该算法。我已经设置了单链功能

,它返回一个p x iter矩阵,带有 p 个参数和iter迭代。

更新:当我试图简化问题时,代码突然似乎起作用了。尽管我故意尝试出错,但代码运行完美,结果符合预期。因此,不幸的是,对于其他有类似问题的人,我无法给出答案。

一个后续问题:我最初的目的是建立一个完整的功能,这样

但是 foreach 循环似乎没有读取所有必需的功能,例如:

谁能回答如何在foreach循环中实现自定义函数?我要输入它MCmulti <- function(FUN,...) FUN()并调用MCmulti(MCsingle,...)吗?