问题标签 [r-future]

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 投票
0 回答
205 浏览

r - 使用带有检查点的 foreach 时未找到 R 包的内部函数

这是这个问题的后续问题:How to set .libPaths (checkpoint) on workers when running parallel computing in R

根据答案,我将以下代码(简化示例)放入名为“test1”的 R 包中:

然后我调用checkpoint::checkpoint("2018-07-24")并将包安装到检查点库中。然后下面的代码产生了这个错误:

工作人员使用的初始库路径(PID 16880):-'C:/Programme/R-3.5.1/library'

工作人员使用的库路径(PID 16880):-'.../.checkpoint/2018-07-24/lib/x86_64-w64-mingw32/3.5.1'

工作人员使用的初始库路径(PID 3916):-'C:/Programme/R-3.5.1/library'

工作人员使用的库路径(PID 3916):-'.../.checkpoint/2018-07-24/lib/x86_64-w64-mingw32/3.5.1'

{ 中的错误:任务 1 失败 - “找不到函数“h””

test1:::g()当我在通话中明确调用foreach时,它可以工作。有人可以解释一下,为什么我必须在 foreach 循环中显式调用我自己的包的函数:::?看起来g()好像找到了,但h()后来没有?

0 投票
1 回答
770 浏览

r - R包未来:计划()的初始化失败

尝试此代码

我得到的错误:Initialization of plan() failed, because the test future used for validation failed. The reason was: Unexpected result (of class ‘NULL’ != ‘FutureResult’) retrieved for ClusterFuture future (label = ‘<none>’, expression = ‘NA’)

我试图重现我的真实问题的示例的解释:

  • 我在两个步骤中循环了很多次(这里是 5 次)
  • 第一步很容易与 foreach 并行
  • 第二步不容易并行化,依赖于第一步

所以我的想法是在所有可用集群上并行化第一步,并仅使用一个集群异步运行第二步。在此异步作业完成之前,此集群将不再可用。然后下一步将减少一个可用的集群,依此类推。当第一步没有可用的集群时,它会等待一些异步作业完成并释放一些集群。

0 投票
0 回答
482 浏览

r - R 未来、doSNOW、并行和 foreach 用于异步执行

我正在努力为外部程序使用 R 并行异步执行脚本选择合适的包(R 脚本还提供输入和聚合输出),我知道四个流行的包:future、doSNOW、parallel 和 foreach,但是为此选择哪个任务 ?我有大约 30 个独立任务,需要在 Windows 上的本地计算机上并行运行其中的 5 个

0 投票
1 回答
441 浏览

r - 将来指定多进程计划的惯用、灵活的方式是什么?

我刚刚遇到了 R 包 furrr 和 future。我很想用它们来编写灵活的代码,如果在运行 Windows 或 OSX 的机器上可用,这些代码将使用多个内核。我希望默认的“可用”核心数量类似于parallel::detectCores()-1,而不是detectCores().似乎plan(multiprocess)是几乎可以做到这一点的流线型、惯用的方式,但它默认使用机器上的所有核心。我遇到了更明确的方式来指定“计划”。主要使用默认行为的惯用方法是什么plan(multiprocess),但也将核心数量限制为比返回的任何数量少 1 detectCores()

编辑 根据上面@HernikB 的评论,我相信这个问题的合理答案将是options(future.plan="multiprocess",mc.cores = parallel::detectCores() - 1L).

编辑 我发现这种方法经常不使用多进程计划(或至少不与 并行future_map_dfr),而它似乎可以。相比之下

nc<-detectCores()-1 plan(strategy=multiprocess, workers=nc)

似乎让它并行。留下这个问题没有答案。

0 投票
1 回答
154 浏览

r - 有没有办法用`future.apply::future_apply`手动附加包和全局变量

我正在使用 R 的优秀未来包。在文档中它提到%global%%packages%分配全局变量和包以在未来环境中进行评估。但那些似乎只适用于%<-%.

我的问题是:是否也可以这样做future_apply。我试过了

它不起作用

0 投票
1 回答
414 浏览

r - `future.apply::future_apply()` 中的 `purrr::map()` 之类的函数是否也在并行运行?

抱歉,如果这些是愚蠢的问题,但我对并行处理在实践中的工作原理几乎一无所知。

我的问题是:
- Q1。类似 inside 的函数是否purrr::map()future.apply::future_apply()并行运行?
- Q2。如果我在函数furrr::future_map()内部运行会发生什么future.apply()
- 第三季度。假设我做了上述,我会plan(multiprocess)在之前加入另一个电话furrr::future_map()吗?

0 投票
1 回答
149 浏览

r - 在同一个对象上并行化多个函数

感谢DAVID SCHOCH,我利用他的功能并稍作修改以创建以下内容。它工作得很好。

现在,我只需要计算这些变量,即在图形对象 H 上并行运行函数,可能使用 purrr 或 furrr,以更快地运行。我的真实数据很大,还有 30 多个函数。输出应该与下面代码最后一行中显示的 H_indices 相同。

0 投票
1 回答
206 浏览

r - 如何在 tidygraph 对象上使用 furrr 应用映射函数?

使用 furrr 对 tidygraph 中心性函数进行并行计算会引发错误:

“mutate_impl(.data, dots) 中的错误:评估错误:不应直接调用此函数。”

这是我的代码:

我应该如何解决这个问题?

0 投票
1 回答
607 浏览

r - furrr 没有找到自己的包

我目前正在开发一个包,假设它被称为 myPack。我有一个名为 myFunc1 的函数和另一个名为 myFunc2 的函数,它看起来像这样:

现在,如果我在不并行时调用 myFunc2,它会起作用。但是,如果我用 parallel = TRUE 调用它,我会收到以下错误:

有谁知道为什么 myFunc2 在顺序模式下工作,而不是并行工作,以及如何阻止此错误出现?

可重现的例子:

(注意:这不是完整的功能,但它基本上是它在缩短版本中所做的)

0 投票
1 回答
456 浏览

r - R中的异步编程

概述

我正在编写一个程序(在 R 中),它在某些指定时间进行 API 调用。API 调用需要一段时间,但我需要计时器(主循环)在进行 API 调用时继续计数。为此,我需要将 API 调用“外包”给另一个 CPU 线程。我相信这是可能的,并且已经研究了futurepromises包,但还没有找到解决方案。

可重现的例子

让我们运行一个for从 0 计数到 100 的循环。当计数器 ( i) 达到 50 时,它必须完成一个资源密集型过程(调用函数sampler,该函数对 100 万个正态分布进行 10,000 次采样以占用计算空间)。sampler()希望计数器在另一个线程上工作时继续计数。

我尝试过的(不成功)