问题标签 [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.
r - doParallel 和 foreach 无法并行化合并操作
我正在尝试合并一个大data.frame
的和一个小的,并并行化计算。下面的代码完美运行,最大限度地利用了我机器的所有内核:
一旦我将向量更改dat
为包含 5 长的字符串,并行性就会崩溃,尽管没有错误或警告,但只有 1 个核心参与计算:
为什么会出现这种不一致,以及如何解决它?在特定示例中,如果有人索引dat
整数,则代码有效。但索引并不是所有情况下的答案。为什么弦的长度与所使用的核心数量有关?
r - doParallel,集群与核心
registerDoParallel
使用 doParallel 包时,集群和核心有什么区别?
我的理解是否正确,在单台机器上这些是可以互换的,我会得到相同的结果:
和
我看到的唯一区别makeCluster()
必须使用stopCluster()
.
r - R中doMC和doParallel的区别
关于功能,RdoParallel
和R有什么区别?支持windows,类unix,而仅支持类unix。换句话说,为什么不能直接替换?谢谢你。doMC
foreach
doParallel
doMC
doParallel
doMC
更新:
doParallel
基于parallel
,本质上是合并multicore
并snow
自动为您的系统使用适当的工具。这样一来,我们就可以使用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
r - 以函数名作为参数的并行处理
当为非并行版本传入函数名称或函数名称在并行版本中硬编码时,下面的代码可以正常工作。我需要进行哪些更改才能传入并行版本的函数名称(在 bpar 设置为 TRUE 时调用)?
我得到的错误是:
r - 使用 doParallel 在 R 中滚动回归 - 性能问题
我正在进行滚动回归分析,并希望使用我的 PC 的多个内核来提高执行速度。我尝试的代码如下所示:
代码执行并产生正确的结果。问题是,无论我在做什么,就花费的时间而言,我得到的结果大致相同,如果它是 2 个内核或 6 个内核,我已经使用 registerDoParallel() 注册。这与许多用户报告的类似任务形成鲜明对比。查看 Windows 中的 TaskManager,我可以看到所有 6 个内核都在做某事,并且与 2 个内核相比几乎没有加速(总共 60 秒的执行时间不到一秒)。任何想法我做错了什么?
mysql - 在 R 中并行化一个简单的 sql 查询
我正在通过 R 执行一个简单的 SQL 查询
这是永远的。有时我得到一个错误
我假设并行执行 sql 查询将解决这个问题,我想知道是否有人可以给我一些指示,如果他们遇到类似的问题。
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%
. 我究竟做错了什么?
r - 在 R 中使用 foreach() 创建随机森林时,出现错误,找不到 randomForest() 函数
尝试在 R 中执行并行处理以使用 3 个内核创建 51 棵树的随机森林时,我收到错误 “randomForest(x, y, ntree = ntree) 中的错误:任务 1 失败 -”找不到函数“randomForest””
请帮忙。我使用的代码如下:
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已满(但交换仍然可以)。
r - 更新:使用 R 的并行计算导致“尝试复制‘闭包’类型的对象”
我已经建立了 Metropolis-Hastings 算法,现在我正在尝试使用并行计算运行该算法。我已经设置了单链功能
,它返回一个p x iter矩阵,带有 p 个参数和iter迭代。
更新:当我试图简化问题时,代码突然似乎起作用了。尽管我故意尝试出错,但代码运行完美,结果符合预期。因此,不幸的是,对于其他有类似问题的人,我无法给出答案。
一个后续问题:我最初的目的是建立一个完整的功能,这样
但是 foreach 循环似乎没有读取所有必需的功能,例如:
谁能回答如何在foreach
循环中实现自定义函数?我要输入它MCmulti <- function(FUN,...) FUN()
并调用MCmulti(MCsingle,...)
吗?