R doMPI与簇
我有了第一次使用R和集群的经验。在谷歌上搜索,我发现了“doMPI”软件包。这个包允许我自动创建进程。然而,我对函数有点困惑 1-startMPIcluster和registerDOMPI之间有什么区别 2-StartMPCluster上传递的争论是什么 3-当我使用命令R doMPI与簇,r,parallel-processing,mpi,openmpi,dompi,R,Parallel Processing,Mpi,Openmpi,Dompi,我有了第一次使用R和集群的经验。在谷歌上搜索,我发现了“doMPI”软件包。这个包允许我自动创建进程。然而,我对函数有点困惑 1-startMPIcluster和registerDOMPI之间有什么区别 2-StartMPCluster上传递的争论是什么 3-当我使用命令mpirun-hn1,n2,n3-n1r--slave-fsincmpi.R,它是什么意思-n1 最后,假设我有4个集群,每个集群有60个CPU。我的代码是什么样子的?你读了吗?我试着用它来回答所有这些问题。我还建议您下载doM
mpirun-hn1,n2,n3-n1r--slave-fsincmpi.R
,它是什么意思-n1
最后,假设我有4个集群,每个集群有60个CPU。我的代码是什么样子的?你读了吗?我试着用它来回答所有这些问题。我还建议您下载doMPI源代码发行版,并查看其中包含的示例脚本
关于你的问题:
startMPIcluster
用于创建表示用于并行计算的一组进程的集群对象registerDoMPI
用于向foreach注册集群对象,以便用于执行并行foreach循环。这两种功能都必须使用-n1
选项通过mpirun执行R脚本,mpirun将只启动一个进程来执行R脚本(我称之为主进程),startMPIcluster
的第一个参数指定了主节点为执行foreach循环生成的任务而应启动的工作线程数。如果使用mpirun启动多个进程,则根本不需要指定count
值。我建议使用mpirun来启动所有工作进程(在您的示例中使用-n3
),并且不要为计数指定值
-n
选项指定应启动的工作进程/进程数。如果要生成工作进程,应使用-n1
,以便mpirun仅启动主进程,并使用startMPIcluster
count
参数控制要生成的工作进程数我真的不理解你的最后一个问题,但我认为这些小插曲和示例应该有助于你更好地理解所有这些概念。如果你以前从未使用过集群,MPI可能会有点难以理解。考虑使用并行包(用R来代替)。它的效率不如MPI,但使用起来要简单得多。@HongOoi parallel很容易在单个节点上使用,但如果您想在集群上使用多个节点,尤其是在批处理排队系统的上下文中,就不那么容易了。在这种情况下,MPI是并行运行的标准方式。在单个节点上开始比较容易,但是集群的真正好处是使用多个节点。