gpt4 book ai didi

r - R中的并行while循环

转载 作者:行者123 更新时间:2023-12-03 16:06:52 24 4
gpt4 key购买 nike

我想知道是否/如何在R中并行化while循环。

如果不可能或很难做到这一点,我将不胜感激,可以使用并行的for循环。

最佳答案

您可以将future与任何循环的R构造一起使用,包括for()while()循环。 future 在future包中实现(我是作者)。

目前尚不清楚您希望在while循环中使用哪种条件。那将有助于给出更精确的答案。这是一个while条件不依赖于任何计算结果的示例:

library("listenv")
library("future")
plan(multiprocess, workers = 2L)

res <- listenv()

ii <- 1L
while (ii <= 5) {
## This is evaluated in parallel and will only block
## if all workers are busy.
res[[ii]] %<-% {
list(iteration = ii, pid = Sys.getpid())
}
ii <- ii + 1L
}

## Resolve all futures (blocks if not already finished)
res <- as.list(res)

str(res)
List of 5
$ :List of 2
..$ iteration: int 1
..$ pid : int 15606
$ :List of 2
..$ iteration: int 2
..$ pid : int 15608
$ :List of 2
..$ iteration: int 3
..$ pid : int 15609
$ :List of 2
..$ iteration: int 4
..$ pid : int 15610
$ :List of 2
..$ iteration: int 5
..$ pid : int 15611

如果您希望while条件取决于一个或多个并行结果的结果(在 res[[ii]]中),那么事情就变得复杂得多,因为这时您需要弄清楚如果将来(=并行任务)仍然存在,应该怎么办未解决;您应该稍后再进行5次迭代检查还是应该等待。那是并行算法的设计问题,而不是如何实现。世事皆可能。

PS。我不明白收到这个问题的不赞成票。可能是因为您的问题措辞不佳/不太清楚-记住要尽可能精确地尝试“帮助帮助者帮助您”。如果不赞成投票是由于while循环,我(显然)恳求不同意。

关于r - R中的并行while循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43121109/

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