gpt4 book ai didi

linux - 如何在 Linux 集群上的 R 中使用 Rmpi​​ 来增加 DEoptim 可用的内核?

转载 作者:太空狗 更新时间:2023-10-29 11:18:26 26 4
gpt4 key购买 nike

我正在使用在 R 中开发的代码使用 DEoptim(旨在最小化目标函数的函数)校准具有 8 个参数的水文模型。 DEoptim 代码使用“parallel”包来检测使用“DetectCores()”可用的核心数。在我的 PC 上,我有 4 个内核,每个内核有 2 个线程,因此它检测到 8 个内核,然后将水文模型发送到具有不同参数值的内核,并将结果返回到中心。它会执行数百或数千次并迭代参数以尝试找到最佳设置。因此可用的内核越多,它的运行速度就越快。

我在大学里,可以访问 Linux 计算集群。他们的服务器最多有 12 个内核(即不是线程),如果我使用它,它的工作速度将比我的 PC 快两到三倍。伟大的。然而,理想情况下,我会将代码分布在其他服务器上,这样我就可以访问更多核心,并将所有信息发回主服务器。

因此,我的问题是如何在我的代码中包含 Rmpi​​ 以有效地增加可用内核。您可能会说,我对使用集群还很陌生。

非常感谢,安东尼

最佳答案

如果要执行DEoptim在 Linux 集群的多个节点上,我相信你需要使用 foreach通过指定 parallelType=2control争论。您可以使用 doMPI并行后端或 doParallel带有 MPI 集群对象的后端。例如:

library(doParallel)
library(Rmpi)
cl <- makeCluster(mpi.universe.size()-1, type='MPI')
registerDoParallel(cl)

# and eventually...
DEoptim(fn=Genrose, lower=rep(-25, n), upper=rep(25, n),
control=list(NP=10*n, itermax=maxIt, parallelType=2))

您需要拥有 snow除了其他包之外还安装了包。此外,请确保您使用 -np 1 使用 mpirun 执行脚本。选项。如果您不使用 mpirun,worker 将全部在本地机器上生成。

关于linux - 如何在 Linux 集群上的 R 中使用 Rmpi​​ 来增加 DEoptim 可用的内核?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31452018/

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