【发布时间】:2015-07-12 18:50:15
【问题描述】:
我从网上下载了一个 R 脚本,上面写着“必须在 MPI 环境中运行”。现在我对 MPI 几乎一无所知,只知道它用于并行计算,而且很难找到关于如何设置和使用它的简单教程。
谁能给我一个简单的分步指南,说明我应该安装什么来运行它、我应该如何做以及如何运行脚本?
提前致谢。
编辑,这是我尝试过的:
- 我安装了Microsoft MPI
- 我在 R 中安装并加载了 RMpi 包
具体问题:
> # number of available slots is passed via environment variable
> slots <- as.integer(Sys.getenv("NSLOTS"))
给NA_integer_。
如果我使用以下内容(即我用一些标量替换 Sys.getenv("NSLOTS"))
> slots <- as.integer(4)
> cl <- snow::makeMPIcluster(slots)
我得到了错误
mpi.comm.spawn 中的错误(slave = mpitask,slavearg = args,nslaves = count, : 其他 MPI 错误,错误堆栈: MPI_Comm_spawn(cmd="C:/PROGRA~1/R/R-31~1.0/bin/Rscript.exe", argv=0x0000000009A12CA8,maxprocs=4,MPI_INFO_NULL,root=0, MPI_COMM_SELF,对讲机=0x000000000A2FF8B0, errors=0x00000000100E3C70) failed 功能未实现
所以我怀疑我没有正确配置我的 MPI 环境。
【问题讨论】:
-
您必须在系统上安装 MPI。您可以通过 R 包连接到它,包括“默认”
parallel包。请参阅小插图here。 -
@RomanLuštrik 谢谢:)。该脚本确实使用了
parallel,所以我在R中安装了那个包。我应该在我的系统上安装什么MPI包?那是开放 MPI 吗?我在网站上看到你只能下载一些tar.gz文件,我该如何安装?除了我需要做的事情之外,还有其他事情吗?再次感谢:)! -
你也可以试试微软 MPI。你的问题对这个地方来说太宽泛了,我投票决定关闭它。周围有很多 MPI 教程,所有 MPI 实现都附带手册和安装说明。
-
NSLOTS是一个环境变量,由 Sun Grid Engine 设置为授予的插槽数。您没有在 SGE 下运行,因此环境变量不存在。 MS MPI 未实现 MPI-2.0 进程管理功能,因此出现错误消息。您应该搜索不同的 MPI 实现 - 不幸的是,我无法在这方面为您提供帮助,因为我自己不在 Windows 上使用 MPI。 -
MS MPI 不支持生成,这就是您收到错误的原因。如果您没有 spawn 支持,我相信您必须通过 mpiexec 执行 R 脚本。