[FR] Allow rfun to optionally run in parallel over iters

未关闭
#223 4 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
3-5 天
新手友好度
35/100
Issue 类型
功能
描述清晰度
基本清楚
活跃度
停滞
技术栈
r
领域
backend

调研方向

从 R/rvar-rfun.R 中的 rfun 开始,检查现有的 mapply 调用。在确定 future.mapply 和 parallel_args 如何适配函数接口之前,先阅读链接的 future package 开发者指南。完成的标准是:rfun 可以选择并行运行各次迭代,同时保留当前的串行行为。

由索引模型根据 Issue 内容生成。

描述

efficiency

Looking at the code for rfun and looking at the future dev guide I think that that we could allow users to optionally specify whether the rfun should be allowed to run over iterations in parallel.

plain(multicore)
my_fun = function(x, y) {
  return x + y
}
# parallel_args is a list of args for `future.mapply`
my_fun_rvar = rfun(my_fun, c("x", "y"), parallel = TRUE, parallel_args = list(...))

plain(multicore)
x = # ... 
y = # ...
z = my_fun_rvar(x, y)

I think we would just have to modify the signature like

rfun <- function (.f, rvar_args = NULL, ndraws = NULL, parallel = FALSE, parallel_args = list()) 

Then in the code when we call mapply we call future.mapply. I think for the parallel_args we would need to wrap future.mapply in a do.call as well but I can't remember rn

主要语言
R
星标
172
派生
27
平均合并
5 天 12 小时
30 天内合并 PR
5

环境准备

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

stan-dev/posterior 的其他 Issue

查看 stan-dev/posterior 的全部 Issue

相似的 Issue

更多 R Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。