问题标签 [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.
r - 如何使用 foreach 在并行处理中使用共享数据帧
我想使用 foreach 包来并行 for 循环:
原始代码如下所示:
我使用索引 i 作为行号,从数据帧中获取数据并将数据存储回另一个数据帧。
但是,如果我改变:
至
它确实运行得非常快,但结果似乎只存储在数据框中的一列中。如何将两列保存在一起?
为了并行,我应该如何编写共享数据帧?
data_df 的样本数据
r - R foreach 包中的慢 %dopar%
下面只是一个玩具示例,用于代表可重现代码的问题,但我的数据和作用于数据的后续函数涉及更多,并且实际上将从并行运行中受益。
我遇到的问题是,下面的循环在 %do% 和 %dopar% 下都按预期运行,但是 %dopar% 相对于 %do% 非常慢。
我已经将问题缩小到我正在搜索一个非常大的列表,通过索引到子集然后对其进行处理来从该列表中获取数据。
有人可以提供有关如何改进 %dopar% 的见解吗?在我的实际数据中,我需要对已经存储在列表中的数据框进行子集化,然后将该 df 传递给 4 个不同的函数。
也很抱歉,我确实在 R-Help 上发布了这个问题,但在 Stack Exchange 上看到了更多关于 foreach 的活动。
r - R无法找到源函数
我正在使用 doParallel 和 foreach 包在多个内核上运行我的代码。我的代码类似于
当我调用 fun1 时,fun2 的第一个实例已成功执行,但我使用 foreach 调用 fun2 的实例在 fun2 中出现错误(param4,param5,:任务 1 失败 - “找不到函数“fun2””
r - 将全局和函数环境中的对象导出到集群
我在下面的示例代码中使用了 foreach 和 doParallel。
在 clusterExport 的 envir 参数中,当我使用envir = .GlobalEnv时,出现错误
**"Error in get(name, envir = envir) : object 'param4' not found"**
.
当我使用envir = environment()时,错误是
**"Error in fun2(i, param4, param5, param6) :
task 1 failed - "could not find function "fun2"""**
我的问题是如何将全局和功能环境中的所有对象导出到集群。
r - 嵌入 foreach() 时,nlminb() 无法识别输入数据
我想使用 LINUX 机器,使用 foreach 包与包 doMC 提供的多核设施进行蒙特卡罗重采样方案。在每次迭代中,自制函数使用 data.frame 中包含的替换数据重新采样X
。结果,我得到了一个包含伪样本的新 data.frame ,它用作使用(target function= )X.i
优化过程的输入数据。使用标准命令我没有问题:nlminb()
F_1
for()
但是,我无法申请foreach()
,因为它似乎nlminb()
无法识别输入数据X.i
,或者至少无法以与嵌入时相同的方式管理它for()
:
我不知道问题出在哪里,但我想它一定是与 howforeach()
和nlminb()
interact 相关的东西,因为如果我foreach()
用一个简单的函数运行,比如说,测量 Xi 中的行数,我完全没有问题:
我对foreach
包不熟悉,也未能在包帮助中找到解决方案,因此非常感谢您的建议。
我在这里用过:
R版本3.3.0(2016-05-03);doMC 版本 1.3.4;foreach 1.4.3 版;平台:x86_64-pc-linux-gnu(64位)
r - 将列并行分配给 data.table
我想将许多(最多 2000+)列分配给data.table
; 这个过程给我留下了深刻的印象,因为它非常可并行化,但似乎通过将相同的过程分data.table
发给许多工人来处理这个过程并没有得到很好的处理。
我希望以下工作:
但是,这会产生一个模糊的错误:
错误
checkForRemoteErrors(val)
:2 个节点产生错误;第一个错误:内部错误,请sessionInfo()
向 datatable-help 报告(包括结果):oldtncol (0) < oldncol (1) 但标记了类的 tl。
我想这是由于引用分配的工作原理。分配发生在每个线程上,但这不会DT
在全局环境中传回。
有没有办法data.table
并行添加列?
r - 为什么我在 R 中的并行 foreach 循环比简单的 for 循环花费更多时间?
我是 R 新手,我正在尝试使用 foreach 循环和 doSNOW 包并行化嵌套的 for 循环,但是 foreach 循环比 for 循环花费更多时间
她是我的代码:
初始化变量
for 循环
并行 foreach 循环
结果
警告信息:
r - 如何为 %dopar% 中使用的自定义函数返回 null?
我想使用并行foreach
循环中使用的自定义函数返回 NULL。用法是,如果某些结果不符合某些标准,则该结果将不会被存储,并且会作为后处理步骤被过滤掉。
但是,我的程序返回
任务 1 失败 - “替换长度为零”
可以使用以下代码重现该问题:
r - 使我的 R 包中的函数可并行化的最佳实践是什么?
我开发了一个包含令人尴尬的并行函数的 R 包。
我想以对用户透明的方式实现这些功能的并行化,而不管他/她的操作系统如何(至少理想情况下)。
我环顾四周,看看其他包作者是如何导入基于 foreach 的 Parallelism 的。例如,Max Kuhn 的caret
包导入foreach
使用%dopar%
,但依赖 于用户指定并行后端。(几个示例使用doMC
,它在 Windows 上不起作用。)
注意到doParallel适用于 Windows 和 Linux/OSX 并使用内置parallel
包(有关有用的讨论,请参阅此处的评论),每当用户指定为参数时导入doParallel
并调用我的函数是否有意义?registerDoParallel()
parallel=TRUE
r - 在 foreach %dopar% 循环中写入文件
我有这段代码,我想并行但是我似乎无法让它工作。这个想法是,对于每个值 chr,snp_sel(geno_data,k, bl) 给我一个由 k 列组成的矩阵,这些列随后被一一写入文件。我怎样才能 %dopar% 这个循环?