gpt4 book ai didi

c - 在集群上调试 MPI 程序时出现问题

转载 作者:太空宇宙 更新时间:2023-11-04 04:46:09 24 4
gpt4 key购买 nike

我有一个在机器集群上运行的 MPI 程序。但是,程序没有运行完成,我无法确定原因。 main 函数由两个主要子句(一个 if 子句和一个 else 子句)组成:

#define SERVER 0

if(my_rank == SERVER)
{
//do something
}
else
{
//do something else
}

问题似乎出在“做其他事情”部分,我想用 gdb 调试它。当我使用 gdb 运行可执行文件时,我只能进入 if 子句,因为 MPI 似乎自动将 0 级分配给主进程(启动程序的进程)。我查看了环境变量,但没有找到可以预先确定主进程等级的标志。如何调试 else 子句?

最佳答案

如果不看代码就很难知道发生了什么(如果你把代码缩减到 MWE,只能发布代码),但通常当你在 MPICH 内的进度引擎中挂起时,这是因为你的匹配不正确。根据您在评论中提出的内容,我的猜测是您并没有在所有级别上调用 MPI_INIT。确保你这样做并且你所有的发送/接收调用匹配(和你的集体)。如果这仍然不起作用,请将其缩减到 MWE 并在此处发布。

关于c - 在集群上调试 MPI 程序时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20757649/

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