【问题标题】:MPI on single process单个进程的 MPI
【发布时间】:2014-10-17 23:19:17
【问题描述】:

我是集群技术的新手,我正在为我的公司测试 MPICH2 集群解决方案。

我们有一个实际以这种方式运行的 c 程序:

  • 有一个主进程连接到数据库并准备数据
  • 主进程创建一些具有不同命令行参数的子进程(从进程使用 fork() 命令创建)

是否可以不加修改地在 MPICH2 集群上运行这些进程? 否则,在集群上运行这个程序需要做哪些修改?

谢谢大家

【问题讨论】:

    标签: mpi


    【解决方案1】:

    不要混淆单台机器上的并行进程和分布式进程(通过 MPI),因为它们不是一回事。今天又问了一个问题,也有同样的问题,所以我会向你推荐那个答案:https://stackoverflow.com/a/26428033/491687。

    调用fork() 只会在与主进程相同的机器上创建更多进程。如果您只打算使用共享内存和几个进程,那很好。但是,如果您需要使用大量进程(大致进程数 > 内核数)来处理大量数据,那么 MPI 会很有帮助,因为它允许您将多台机器连接在一起并在它们之间传递数据。

    所以简短的回答是:不,你不能在没有修改的情况下使用 MPI。将 fork/join 程序转换为 MPI 程序需要进行大量修改。这是设计使然。他们不会尝试解决相同的问题。

    【讨论】:

    • 谢谢,您的回复很有帮助
    猜你喜欢
    • 2018-05-16
    • 2011-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-14
    • 2013-12-07
    相关资源
    最近更新 更多