gpt4 book ai didi

在R中运行异步功能

转载 作者:行者123 更新时间:2023-12-04 10:06:55 26 4
gpt4 key购买 nike

我有以下代码:

myfun <- function() {
fun2()

return(1+1)
}

我希望fun2()被调用,然后移到下一行而不等待结果。 fun2函数不返回任何内容,我也不在乎它何时完成,我只需要启动它即可。最好的方法是什么?并行进程,多线程,异步调用?任何代码示例,不胜感激。

最佳答案

future package(我是作者)提供了以下内容:

library("future")
plan(multiprocess)

myfun <- function() {
future(fun2())

return(1+1)
}

除非将 fun2()纯粹用作其副作用的函数,否则您通常希望检索该将来表达式的值,您可以这样做:
f <- future(fun2())
y <- fun3()
v <- value(f)
z <- v + y

一种替代方法是使用 %<-%运算符,如下所示:
v %<-% fun2()
y <- fun3()
z <- v + y

仅供引用,如果您使用
plan(cluster, workers = c("n1", "n3", "remote.server.org"))

然后在其中一台计算机上解析将来的表达式。使用
plan(future.BatchJobs::batchjobs_slurm)

将导致它通过Slurm作业计划程序队列来解决。

关于在R中运行异步功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41057849/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com