【问题标题】:doMPI and ClustersdoMPI 和集群
【发布时间】:2017-03-18 14:00:12
【问题描述】:

我第一次体验使用 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。怎么会是我的代码?

【问题讨论】:

  • 如果您以前从未使用过集群,那么 MPI 可能会有点不知所措。考虑改用并行包(R 附带)。它不如 MPI 高效,但使用起来要简单得多。
  • @HongOoi 并行在单个节点上很容易使用,但如果您想在集群上使用多个节点,尤其是在批处理排队系统的上下文中,则不是那么容易。在这种情况下,MPI 是并行运行的标准方式。在单个节点上开始更容易,但集群的真正好处是使用多个节点。

标签: r parallel-processing mpi openmpi dompi


【解决方案1】:

你读过doMPI vignette吗?我试图在其中回答所有这些问题。我还建议您下载 doMPI 源代码分发并查看其中包含的示例脚本。

至于你的问题:

  1. startMPIcluster 用于创建一个集群对象,该对象代表一组用于并行计算的进程; registerDoMPI 用于向 foreach 注册一个集群对象,因此它将用于执行并行 foreach 循环。这两个函数都必须使用。

  2. 1234563为了执行 foreach 循环生成的任务,master 应该启动的 worker 数量。如果使用 mpirun 启动多个进程,则根本不需要指定 count 值。我建议使用 mpirun 启动所有工作程序(在您的示例中使用 -n 3),而不是为 count 值指定值。
  3. mpirun -n 选项指定它应该启动的工人/进程的数量。如果你想生成worker,你应该使用-n 1这样mpirun只启动master,并使用startMPIclustercount参数来控制生成worker的数量。

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

【讨论】:

    猜你喜欢
    • 2016-05-30
    • 2021-03-28
    • 2019-03-05
    • 1970-01-01
    • 2014-09-11
    • 2011-08-12
    • 1970-01-01
    • 1970-01-01
    • 2015-03-14
    相关资源
    最近更新 更多