MPI 程序的断言函数



我必须验证MPI程序中某些数据的状态。该程序将在具有分布式内存系统的超级计算机上运行。对 C Standard 的 assert 函数的快速研究表明,assert 在内部使用 abort(( 函数来终止程序。我还没有找到太多关于abort((如何在多进程程序上工作的信息,特别是在MPI的上下文中 - 它与POSIX环境非常不同。abort(( 是只终止调用它的进程,还是可以终止所有进程?

最后,当条件失败时,我将如何真正终止 MPI 程序的所有进程?MPI 库中是否有内置断言?

abort()仅终止调用它的 MPI 任务。

很可能会被mpirun和/或资源管理器检测到,并在此之后终止所有 MPI 作业(例如所有节点上的所有 MPI 任务(。

话虽如此,这取决于库/系统,您应该先仔细检查一下。

终止 MPI 作业的正确方法是

MPI_Abort(MPI_COMM_WORLD, errorcode)

errorcode是一个int,通常被分配一个严格的正值。

相关内容

  • 没有找到相关文章

最新更新