gpt4 book ai didi

mpi - 为什么 MPI_Init 之前应该有最少的工作?

转载 作者:行者123 更新时间:2023-12-02 09:12:21 24 4
gpt4 key购买 nike

MPICH 和 OpenMPI 的文档都提到,在 MPI_Init 之前或 MPI_Finilize 之后应该完成最少的工作:

The MPI standard does not say what a program can do before an MPI_INIT or after an MPI_FINALIZE. In the MPICH implementation, you should do as little as possible.

这背后的原因是什么?

对我来说,进程在开始相互通信之前进行大量计算似乎是完全合理的。

最佳答案

我相信这样的措辞是为了允许 MPI 实现在 MPI_Init 中产生其等级。这意味着并非所有等级在技术上都保证在 MPI_Init 之前存在。如果您打开了文件描述符或执行了其他对进程状态有副作用的操作,那么它会变得一团糟。

据我所知,当前没有主要的 MPI 实现可以做到这一点,但是 MPI 实现可能会将此要求用于其他技巧。

编辑:我没有发现任何证据,只是从很久以前就记得这一点,所以我不确定。我似乎找不到您从 MPICH 引用的 MPI 标准中的表述。但是,MPI 标准规定了您可以在 MPI_Init 之前调用哪些 MPI 函数:

The only MPI functions that may be invoked before the MPI initialization routines are called are MPI_GET_VERSION, MPI_GET_LIBRARY_VERSION, MPI_INITIALIZED, MPI_FINALIZED, and any function with the prefix MPI_T_.

关于mpi - 为什么 MPI_Init 之前应该有最少的工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50763956/

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