问题标签 [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.
r - R 仅在本地范围内加载库
是否有可能library()
只影响本地范围?
例如,我的脚本有一个lapply
循环,其他脚本中的 source() 代码;这些脚本加载自己的库,但我希望在执行这些脚本中的代码后清理命名空间,以便脚本 1 调用的包 A 中的函数不会屏蔽脚本 2 调用的包 B 中的函数。
我知道有像modules
andimport
包这样的完整解决方案,但我希望首先有一个更简单的基本 R 解决方案,以便仅在需要时进行扩展。
r - R furrr:在运行计算之前对每个未来进程的 API 进行身份验证
我正在使用furrr
R 运行并行计算。计算需要访问 Web API 并且需要进行身份验证。如果我运行并行进程,则每个进程都需要进行身份验证。在下面,我有 6 个进程。所以我需要先对这六个进程进行身份验证,然后再运行计算。我不知道如何使用furrr
. 所以我最终在每次运行中都进行了身份验证,这确实是低效的。
下面是一个用于说明目的的简单示例。它不起作用,因为我无法共享该api.configure
功能,但希望您能理解。
谢谢
r - future_map 中不可导出的引用
我是第一次尝试这个furrr
包,尤其是future_map
函数组。
即使具有非常基本的功能,我也无法理解如何避免遇到不可导出引用的问题。这是一个玩具示例:
如果我不设置错误选项,该函数确实会运行,但后台显然存在一些问题,因为错误显示为Detected a non-exportable reference (‘externalptr’) in one of the globals (<unknown>) used in the future expression
. 我真的不明白如何解决这个问题,有什么帮助吗?
附加信息:运行 Windows。R 是 4.0.2 版本,furrr 是 0.1.0 版本,future 是 1.19.1 版本
r - 有没有办法在使用 furrr 函数时修改集群资源分配的期货?
我在我的 R 脚本中使用了future、future.batchtools和furrr包,以便在slurm管理的远程机器上运行代码。
当我定义我的未来拓扑时,我将一个模板文件传递给future.bacthtools::batchtools_slurm()
并使用参数定义 slurm 作业的计算资源resources =
。
然后当我运行该furrr::future_pwalk()
函数时,每个未来都使用相同的资源进行评估,即我在batchtools_slurm()
.
有没有办法让作业使用不同的资源,具体取决于传递给的变量furrr::future_pwalk()
?
提前感谢您的帮助!
r - using future_lapply() inside future_lapply()
I am iterating over a function that uses future_lapply()
. I want to parallelize the outside lapply, for which I would use the following code:
Now, myfun()
has its own future_lapply()
inside. How do I configure the plan inside myfun()
so that it does not mess up with the outside plan?
Inside myFun()
, I am using
Is this the correct approach?
r - 使用 `future_lapply()` 时如何将消息打印到控制台?
我正在使用 R 在 R 中并行运行一个函数future_lapply()
,但我想向 R 控制台打印一条消息。
我有这样的事情:
但是每个进程的输出print()
只有在所有进程结束时才会显示。如何在生成它们后立即输出它们?
r - 在并行循环中将变量分配给全局环境
我正在做一些繁重的计算,我想通过在并行循环中执行它来加快速度。此外,我希望根据当前处理的数据名称将每个计算的结果分配给全局环境:
循环
在一个简单的 for 循环中,这将是以下内容,并且效果很好:
在这个函数中,我首先获取一些数据,对其进行循环,引用它(尽管不是必需的)以在函数调用中使用。实际上,这个函数名称也是动态的,这就是我这样做的原因。
前锋
现在,我想加快速度。我的第一个想法是使用该foreach
软件包(带有doParallel
后端):
将整个quote-call-eval 过程替换为简单地fun(data[i])
解决了错误,但仍然没有分配任何内容。
未来
为了确保包没有问题foreach
,我也尝试了future
包(虽然我不熟悉它)。
强制future
被评估 ( f <- future(...); value(f)
) 触发与使用相同的错误foreach
:Error in { : task 1 failed - "could not find function "fun""
概括
简而言之,我的问题是:
- 如何在并行循环中将变量分配给全局环境?
- 为什么函数查找失败?
parallel-processing - 在堆叠学习器(分类学习器的集合/堆栈)中重新采样的并行化不起作用
下面的代码工作正常,但是,我有兴趣并行运行它。我在内部尝试了不同的计划future
,future.apply
但无法管理。任何帮助表示赞赏。我在 Windows 操作系统上运行,8 个内核。
由reprex 包于 2020-12-15 创建(v0.3.0)
forecasting - 我是否需要使用 future_map 或 map 来并行化寓言预测?
我在本地机器上的 R Studio 中创建了一个约 75K 时间序列的 tsibble。
在将进程迁移到具有更多处理能力的 VM 之前,我正在寻找加快处理时间的方法。
Fable 是否在后台处理所有并行处理,或者是否有更多机会使代码更高效?
这是我的代码示例
先感谢您!
r - 如何为 future_map 拆分数据帧以获得最佳性能
我正在运行一个数据准备脚本,其中涉及将数据帧的行拆分为多个观察值的步骤。这一步需要相当长的时间,我正在尝试优化未来的使用以获得一些改进。我正在处理的数据框非常大(大约 300 万行),我正在尝试找到将其分成块以允许并行处理的最佳方法。我在 64 个内核上运行它,因此有可能加快速度,但我不确定如何不遇到内存问题或在哪里降低速度。
我做了一些小实验,结果让我很困惑。我尝试了嵌套的未来地图,我认为这不应该提高性能,因为第二级期货是连续运行的。但它确实加快了速度。
通常是否建议将数据帧拆分为尽可能小的位并将它们分配给不同的进程,或者是否有一个最佳数量可以传递给每个进程?在减少工人数量时,我的速度似乎有所提高。我应该减少数据框的拆分以匹配工人的数量吗?
我现在通常很困惑,非常感谢有用的解释。