gpt4 book ai didi

mpi - MPI 进程是如何启动的?

转载 作者:行者123 更新时间:2023-12-03 23:23:28 29 4
gpt4 key购买 nike

使用 mpirun 启动 MPI 作业时或 mpiexec ,我可以理解人们如何开始每个单独的过程。但是,如果没有任何编译器魔法,这些包装器可执行文件如何将安排(MPI 通信器)传达给 MPI 进程?

我对细节感兴趣,或者关于在哪里看的指针。

最佳答案

有关单个进程如何建立 MPI 领域的详细信息是特定于实现的。您应该查看特定库的源代码以了解其工作原理。不过,有两种几乎通用的方法:

  • 命令行参数:MPI 启动器可以将参数传递给生成的进程,指示连接的方式和位置以建立 Universe。这就是为什么必须通过调用 MPI_Init() 来初始化 MPI。与 argcargv在 C 中 - 因此库可以访问命令行并提取所有用于它的参数;
  • 环境变量:MPI 启动器可以设置特定的环境变量,其内容可以指示连接的位置和方式。

  • 例如,Open MPI 设置环境变量,并在同一节点上运行的所有进程都知道的磁盘位置写入一些 Universe 状态。您可以通过执行类似 mpirun -np 1 printenv 的命令轻松查看其运行时组件 ORTE(OpenMPI 运行时环境)使用的特殊变量。 :
    $ mpiexec -np 1 printenv | grep OMPI
    ... <many more> ...
    OMPI_MCA_orte_hnp_uri=1660944384.0;tcp://x.y.z.t:43276;tcp://p.q.r.f:43276
    OMPI_MCA_orte_local_daemon_uri=1660944384.1;tcp://x.y.z.t:36541
    ... <many more> ...

    (出于安全原因更改了 IP)

    一旦远程启动子进程和 MPI_Init()MPI_Init_thread()被调用,ORTE 启动并读取这些环境变量。然后它使用“home” mpirun 连接回指定的网络地址。/ mpiexec进程然后协调所有产生的进程以建立 MPI 宇宙。

    其他 MPI 实现以类似的方式工作。

    关于mpi - MPI 进程是如何启动的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10912793/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com