Windows 的并行 mapply();像 mcmapply()
Parallel mapply() for Windows; like mcmapply()
我想知道是否有 mapply()
的版本可以与 Windows 并行工作。 parallel
包有很好的并行化 apply
函数的选项,但它似乎遗漏了 mapply()
的 Windows 选项。 parallel
包为非 Windows 用户(即 mcapply()
、mclapply()
、mcmapply()
等)和 parApply
为 Windows 用户提供的功能(即 parApply()
、parLapply()
等)。但是没有parLapply()
。
Windows是否有等价于mcmapply()
的东西?
这里有两个列表:
list1 <- list(elem1 = 1:3, elem2 = 4:6, elem3 = 7:9)
list2 <- list(elem1 = 10:12, elem2 = 13:15, elem3 = 15:17)
我想把它们加在一起;
(result <- mapply(FUN = function(x, y){
x + y
}, list1, list2, SIMPLIFY = FALSE))
如何为 Windows 用户并行重新创建此内容?
注意:parApply
函数不是像 mcapply
函数那样的直接替换。有关如何使用它们的良好文档,请参阅 link。
https://dept.stat.lsa.umich.edu/~jerrick/courses/stat701/notes/parallel.html
(免责声明:我是作者)
future.apply package provides one-to-one parallel versions of all of R's apply functions. Since it operates on top of the future 框架,它基本上适用于 R 中所有已知的并行后端。
library(future.apply)
plan(multicore) ## forked processing
list1 <- list(elem1 = 1:3, elem2 = 4:6, elem3 = 7:9)
list2 <- list(elem1 = 10:12, elem2 = 13:15, elem3 = 15:17)
(result <- future_mapply(FUN = function(x, y){
x + y
}, list1, list2, SIMPLIFY = FALSE))
上面使用了fork处理,和parallel::mcmapply()
一样。要使用 MS Windows 也支持的 PSOCK 集群工作程序,请设置 end-user:
plan(multisession)
有了上面的内容,您就不必像这样进行条件编码了:
if (parallel == "forks") {
...
} else if (parallel == "this") {
...
} else if (parallel == "that") {
...
} else {
...
}
您只需要一个 future_mapply()
电话。
我想知道是否有 mapply()
的版本可以与 Windows 并行工作。 parallel
包有很好的并行化 apply
函数的选项,但它似乎遗漏了 mapply()
的 Windows 选项。 parallel
包为非 Windows 用户(即 mcapply()
、mclapply()
、mcmapply()
等)和 parApply
为 Windows 用户提供的功能(即 parApply()
、parLapply()
等)。但是没有parLapply()
。
Windows是否有等价于mcmapply()
的东西?
这里有两个列表:
list1 <- list(elem1 = 1:3, elem2 = 4:6, elem3 = 7:9)
list2 <- list(elem1 = 10:12, elem2 = 13:15, elem3 = 15:17)
我想把它们加在一起;
(result <- mapply(FUN = function(x, y){
x + y
}, list1, list2, SIMPLIFY = FALSE))
如何为 Windows 用户并行重新创建此内容?
注意:parApply
函数不是像 mcapply
函数那样的直接替换。有关如何使用它们的良好文档,请参阅 link。
https://dept.stat.lsa.umich.edu/~jerrick/courses/stat701/notes/parallel.html
(免责声明:我是作者)
future.apply package provides one-to-one parallel versions of all of R's apply functions. Since it operates on top of the future 框架,它基本上适用于 R 中所有已知的并行后端。
library(future.apply)
plan(multicore) ## forked processing
list1 <- list(elem1 = 1:3, elem2 = 4:6, elem3 = 7:9)
list2 <- list(elem1 = 10:12, elem2 = 13:15, elem3 = 15:17)
(result <- future_mapply(FUN = function(x, y){
x + y
}, list1, list2, SIMPLIFY = FALSE))
上面使用了fork处理,和parallel::mcmapply()
一样。要使用 MS Windows 也支持的 PSOCK 集群工作程序,请设置 end-user:
plan(multisession)
有了上面的内容,您就不必像这样进行条件编码了:
if (parallel == "forks") {
...
} else if (parallel == "this") {
...
} else if (parallel == "that") {
...
} else {
...
}
您只需要一个 future_mapply()
电话。