这是我第一次使用R和集群。在谷歌上搜索,我发现了"doMPI"包。这个包允许我自动化流程的创建。然而,我对函数有点困惑。
1 - startMPIcluster和registerDOMPI的区别是什么?
2 -传递给startMPIcluster的参数是什么?
3—当我使用命令mpirun -H n1,n2,n3 -n 1 R --slave -f sincMPI.R
时,-n 1
是什么意思?
4—最后,假设我有4个集群,每个集群有60个cpu。怎么可能是我的代码?
您看过doMPI的小短文吗?我试着在里面回答所有的问题。我还建议您下载doMPI源代码发行版,并查看其中包含的示例脚本。
关于你的问题:
-
startMPIcluster
用于创建一个集群对象,该对象表示一组用于并行计算的进程;registerDoMPI
用于用foreach注册集群对象,因此它将用于执行并行foreach循环。 -
如果你用
-n 1
选项通过mpirun执行你的R脚本,mpirun将只启动一个进程来执行你的R脚本(我称之为主进程),startMPIcluster
的第一个参数指定主进程应该启动的工人数量,以便执行由foreach循环生成的任务。如果使用mpirun启动多个进程,则根本不需要指定count
值。我建议使用mpirun启动所有工作程序(在您的示例中使用-n 3
),并且不指定count
值。 -
mpirun
-n
选项指定它应该启动的工作进程/进程的数量。如果你想生成工人,你应该使用-n 1
,这样mpirun只启动主进程,并使用startMPIcluster
count
参数来控制要生成的工人的数量。
我真的不明白你的最后一个问题,但我认为小插图和例子应该帮助你更好地理解所有这些概念。