问题标签 [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.

0 投票
1 回答
353 浏览

r - isplitVector 和 foreach 索引问题

我是 R 并行计算的初学者。我最近开始使用 foreach 和使用 doParallel 包的并行计算。当我在将迭代器拆分为块后尝试索引列表时遇到问题。

我得到错误

当我不将迭代向量分成块时,我没有收到错误。我不确定 isplitVector 究竟返回了什么以及如何索引列表。这对我有用

由于我有很多迭代,我认为加快 foreach 的最佳方法是将迭代分块到集群中。在这个方向上的任何帮助都会非常有帮助。提前致谢。

0 投票
0 回答
105 浏览

r - 在 R 中运行 sql 查询时如何显示消息?

我正在研究 R 中的一些代码,这些代码大量使用了包 rpostgresql。我正在使用的一些查询需要很长时间才能下载,所以我想定期向用户显示一条消息(例如“正在下载,请耐心等待..”),以便清楚该程序没有崩溃。

理想情况下,我想将代码编写为函数的通用包装器,以便它在整个过程中向用户提供反馈(正在下载,经过的时间等)

例如,如果我们有一个示例函数:

我想做一个表格的包装

其中 some_wrapper_function 在包装代码运行时提供定期更新。

看起来这需要并行编码,但集群需要至少相互通信一次。

有什么想法吗?或者是否有一个现有的功能可以做到这一点?

0 投票
0 回答
98 浏览

r - foreach 可以同时选择性地使用多个后端(doParallel 和 doRedis)吗?

我正在处理大小约为 1 Gb 的文件。处理可以分为两个步骤,一个取决于大文件,第二个取决于较小的数据量。我可以为 doParallel 后端排队一些 foreach 命令,同时用 doRedis 后端排队其他 foreach 命令吗?

这里的目标是由于内存和网络 IO 限制而使远程作业保持较小,同时还利用我拥有的几个本地内核进行预处理/后处理。

0 投票
0 回答
611 浏览

r - 在 R 中结合并行 randomForest - Foreach (DoSNOW)

Microsoft R Open 3.2.3 - Windows Server 2008 R2 Enterprise - 64 位、8 核和大量内存。

我使用 4 个内核执行 randomForest,一切正常(大约比单线程快 4 倍),除了我无法组合结果。

我用不同的代码尝试了两次:

1)我运行foreach,然后再组合结果:

2)这里我尝试在foreach函数中使用.combine参数

在两者中,我都收到了相同的错误消息:“由于命名冲突重命名了 consolidate(),combine() 被贬低”

当我在笔记本电脑上使用虹膜数据运行“相同”代码时,一切正常。

此外,当我加载 doSNOW 库时,我收到一条警告消息:“在 R 版本 3.3.1 下构建”.. 但是 combine() 函数属于 randomForest 包,所以我认为这不是问题..

有任何想法吗?!

谢谢!!

0 投票
2 回答
76 浏览

r - 为什么我的 doRedis 工作人员不开始处理,直到所有作业都在 redis 服务器中

使用 foreach 和 doRedis 时,doRedis 工作人员会等到所有作业都到达 redis 服务器后再开始处理。是否可以在所有预处理完成之前让它们开始?

我正在使用一个运行良好的迭代器 - 预处理“及时”发生,并且随着迭代器的运行,作业数据开始到达服务器。不过,我似乎无法利用这种行为,因为工作人员只是等到所有工作都上传完毕。

示例代码:

在这个例子complex.iter中需要一段时间,并且有很多元素需要迭代。process.function()因此,如果工作人员在所有预处理完成之前开始运行,那就太好了。不幸的是,他们似乎要等到complex.iter在所有元素上运行。

我已经设置了.inorder=F

关于如何实现这种期望行为的任何建议?谢谢。

0 投票
1 回答
1926 浏览

r - 使用 foreach 时如何记录(print 或 futile.logger)

我想将该foreach包与日志记录结合使用。我通常使用这个futile.logger包。当工作分配给工作人员时,日志信息丢失(这很奇怪,因为您需要指出 foreach 日志包)

我看过这篇文章,但它不使用 foreach

我并不真正关心并行后端,可以是任何东西,但我怎样才能让日志记录正常工作

0 投票
1 回答
49 浏览

r - Iist 怎么能只有函数和那些来自包的函数

我使用这个foreach包来并行化一些东西,我厌倦了.export每次需要使用它时都指示 5 个函数。

我知道我可以做到foreach(...,.export=ls(.GlobalEnv)),但这会将大量数据传输给工作人员并减慢我的速度(可以定义大表)。

所以问题是我怎样才能只列出.GlobalEnv

我这样做了:

但这很丑陋(并给出了一切),我敢肯定有一种惯用的方式

0 投票
1 回答
39 浏览

r - 高效且有选择地组合 R 中的列

我有以下数据

我想创建一个新列 country_final_str ,该列按以下偏好顺序填充国家数据:

我还使用以下方法来描述国家收入水平:

我有以下 for 循环,但由于我有超过一百万条记录,它需要很长时间:

有什么提高效率/摆脱 for 循环的想法吗?我想不出办法apply/lapply/tapply,而且我在 Windows 上,所以我使用并行化代码的努力doParallel失败doSNOW了。

有关列问题的正确答案,请参见@thelatemail 下面的内容。对于国家收入水平,我执行了:

0 投票
1 回答
297 浏览

r - 了解并行 TSQL 连接

我设法使用以下代码在 R 中创建到 TSQL 服务器的并行连接:

我希望看到所有连接都在并行下载,但实际情况是一次只有一个或两个连接处于活动状态(见下图)。
即使有 32 个连接,总下载时间也减少了 1/2 以上(理论上应该更接近 1/32,对吧?)。连接活动之间也有很大的停顿。 为什么是这样?

连接利用率

要记住的一些注意事项:

  • TSQL服务器和R都在同一台服务器上,因此网络延迟不是问题。
  • TSQL 服务器最多允许约 32k 连接,因此我们不会遇到会话限制问题。

更新 2017 年 7 月 26 日 再次尝试解决这个问题,它现在可以工作(代码未更改)。不确定从现在到最初发布之间发生了什么,但可能对 MS SQL 服务器设置进行了一些更改(不太可能)。

提取 790 万行的时间遵循下图中的曲线。

时间与 SQL 连接

0 投票
0 回答
857 浏览

r - 带有foreach的并行randomForest在R中没有并行运行任何东西

我正在尝试在我的笔记本电脑上的 4 个内核上并行安装一个 randomForest,并使用以下代码使用 foreach 包来获取一些数据 x 和响应 y:

但是,即使集群设置如下,它也不起作用,因此安装了 randomForest 但只有 200 棵树而不是 600 棵。

我想知道如何解决这个问题,或者我是否必须更改设置以允许 R 访问多个内核?如果有帮助,我有一台 Windows 10 笔记本电脑。

谢谢你的帮助!