Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R doMPI与簇_R_Parallel Processing_Mpi_Openmpi_Dompi - Fatal编程技术网

R doMPI与簇

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

我有了第一次使用R和集群的经验。在谷歌上搜索,我发现了“doMPI”软件包。这个包允许我自动创建进程。然而,我对函数有点困惑

1-startMPIcluster和registerDOMPI之间有什么区别

2-StartMPCluster上传递的争论是什么

3-当我使用命令
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
    ),并且不要为
    计数指定值

  • mpirun
    -n
    选项指定应启动的工作进程/进程数。如果要生成工作进程,应使用
    -n1
    ,以便mpirun仅启动主进程,并使用
    startMPIcluster
    count
    参数控制要生成的工作进程数


  • 我真的不理解你的最后一个问题,但我认为这些小插曲和示例应该有助于你更好地理解所有这些概念。

    如果你以前从未使用过集群,MPI可能会有点难以理解。考虑使用并行包(用R来代替)。它的效率不如MPI,但使用起来要简单得多。@HongOoi parallel很容易在单个节点上使用,但如果您想在集群上使用多个节点,尤其是在批处理排队系统的上下文中,就不那么容易了。在这种情况下,MPI是并行运行的标准方式。在单个节点上开始比较容易,但是集群的真正好处是使用多个节点。