问题标签 [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 - 工作节点上的 ROracle 连接 // 使用 R Markdown 自动报告
在尝试加速大型数据集的一些自动报告生成时,我遇到了几个不同的问题。我正在使用 R + markdown -> HTML 来生成报告,并循环访问约 10K 不同的分组,以便报告访问来自 Oracle 的数据。
该系统主要由两部分组成
- 一个主脚本
- 一个降价模板文件
主脚本设置计算环境和并行处理后端:
这里似乎出现了第一个问题。R 抛出一个异常,指出工作人员上的连接无效但是当我在 Oracle 上监视实时会话时,它们似乎很好......
接下来,main 调用循环生成报告。
如果我按顺序运行 foreach 循环,即 %do% 而不是 %dopar%,一切似乎都运行良好。没有错误,然后整套运行正确(我只测试了约 400 组,将在一夜之间完成所有 10k 的完整运行)。
但是,如果我尝试并行运行循环,“pandoc”在转换文件时总是会抛出错误 #1。如果我多次运行损坏的循环,循环中的“任务”(或集群,不确定在此上下文中指的是哪个任务)会导致错误发生变化。
模板文件非常基本,它接受组参数,在为集群工作者定义的连接上运行 SQL 查询,并利用 ggplot2 + dplyr 生成结果。由于模板似乎在不通过集群时运行,我认为问题一定与来自 ROracle 的集群节点中的连接对象有关,尽管我对主题的了解还不够,无法真正查明问题。
如果有人有类似的经历,或者对正在发生的事情有预感,任何建议都将不胜感激!
如果我能澄清什么,请告诉我...
谢谢
r - R并行计算:选择将哪些对象分配到核心中
我有一个与 r 并行计算有关的问题。我正在使用类似的东西:
如何识别当前环境中的某些特定对象以分配到处理器内核中并用于某些功能?我不需要 R 将环境中的整个对象复制到不同的核心中,而只需要复制一些选定的对象。在我的项目中,我有很大的 R 对象,我不需要将它们复制/分发到核心中,以避免 ram 问题。有解决方案吗?
谢谢
r - foreach-loop(R/doParallel 包)因大量迭代而失败
我有以下 R 代码:
如果我从 1:5 运行该代码,它将成功完成。如果我从 106000 - 106800 运行该代码,也会发生同样的情况。但如果我运行完整的向量 1-106800,甚至 100000-106800(这些不是我正在使用的非常精确的数字,但更好的可读性),则会出现此错误信息:
我不知道为什么会收到此错误消息。不幸的是,我无法提供一个运行示例,因为我无法使用一些简单的代码来重现它。单项工作会失败吗?如果是,我怎样才能找到哪一个失败了?或任何其他想法如何解决?
r - doParallel / doMC 不仅与 foreach 包一起使用
到目前为止,我发现的所有官方教程doParallel、doParallel-Vignette、doMC和doMC-Vignette仅涵盖如何将并行计算与foreach
. 有没有办法加快“顺序”代码的速度?
想象一下,它就像将一个文件拆分为多个文件并使用不同的R
. 例如
提前致谢!
(R v.3.2.1
,R工作室v.0.99.451
)
r - R 中并行执行的速度改进不一致?
我正在用 R 中的并行编程尝试一些基本的东西。结果非常不一致。
我的第一个技巧是使用“并行”库中的 parSapply() 函数。结果是一致的。随着我在并行进程中添加更多内核,速度显着提高:
但是,我的第二种方法使用“foreach”包中的 foreach() 函数。其结果并不一致。当我使用 2 个内核而不是 1 个内核时,速度会提高。但是,当我使用 3 或 4 核时,没有任何改进。为什么会这样?
我通过更改“no_cores”值进行测试。(即no_cores <- detectCores() - x
)。列表大小对此没有影响。
r - R:如何在 R 3.2.1 中使用 lattice 并行化多面板绘图?
我是 R 编程的新手,想知道如何plot
在12 个用package制作的格子对象上并行运行。lattice
基本上,经过大量的预处理步骤,我有以下命令:
问题是,虽然上述命令有效,但它们在 Mac OSX 上需要很长时间(> 4 小时)才能生成如下图:
由于我的 Mac 有 8 个内核,我想我应该尝试将绘图命令拆分到不同的内核上,以加快绘图速度。
在搜索了其他并行化问题后,我找到了该doParallel
包,并认为我可以在其中实现该 parLapply
功能,如下所示:
但是,我不确定如何使用split
上述parLapply
命令中的参数将绘图放置在网格上的不同位置。
我一定需要单独放置而不是叠加的12个地块,那么怎么做呢?
感谢您完成我的查询,我期待您的提示和解决方案。
r - foreach 中的导出变量
我无法将数据框导出到%dopar%
foreach 包中。如果我与 with%do%
一起使用,它会起作用registerDoSEQ()
,但registerDoParallel()
我总是得到:
kyphosis
这是一个使用包中的数据的可重现示例rpart
。我正在尝试将逐步回归并行化一点:
r - R: caret 在使用并行后端时不使用 PSOCKcluster 的主节点
我正在尝试使用并行后端在超参数网格上caret
训练模型。xgboost
下面是一些代码,它使用Give Me Some Creditcaret
数据来演示为的超参数网格搜索设置并行后端。
我检查了所有核心hosts
都被用于训练,但在master
节点上,没有使用任何进程。这是预期的行为吗?有什么方法可以改变这种行为并利用主节点上的核心进行处理?
r - 使用“doParallel”包在 R 中进行并行处理
我有一个从 2 迭代到指定值(即,columnCount)的循环。i 的值至关重要,因为循环内发生的所有计算都取决于 i 的值。
循环片段:
注意:Y 列始终保持不变,而 x 列在每一步中迭代 1(实际数据框有 250 多列)。我如何将其转换为以便我可以使用:
r - 并行计算:每个线程只加载一次包
我目前正在处理一些大型数据集,因此并行化工作流程是唯一的方法。
我需要在开始时将一些包加载到每个线程(即:for(this.thread in threads) { #load some packages }
.
不幸的是,我不知道该怎么做。
以下代码进一步说明了我的问题,我试图magrittr
在 a中使用管道运算符%dopar%
:
.
.
有任何想法吗?