Debugging 如何确保MPI程序中没有活动传输?

Debugging 如何确保MPI程序中没有活动传输?,debugging,mpi,Debugging,Mpi,我有一个MPI程序,它很可能有一个导致发送和接收在某处不同步的错误。因此,一个进程接收的数据不是其他进程发送的数据。由于我不想在购买时失去一只胳膊和一条腿,我想知道是否有可能使用普通MPI确定“正在传输”的传输数或字节数,以便将其打印到终端。(我有几个地方的数字应该是零。) 我已经尝试了MPI\u Get\u count(),但这似乎是针对单个传输的,而不是返回接收的总字节数。另外,MPI\u Barrier()对我的情况没有帮助,因为我的进程到达相同的代码位置,但接收到的数据仍然不同步。这在很

我有一个MPI程序,它很可能有一个导致发送和接收在某处不同步的错误。因此,一个进程接收的数据不是其他进程发送的数据。由于我不想在购买时失去一只胳膊和一条腿,我想知道是否有可能使用普通MPI确定“正在传输”的传输数或字节数,以便将其打印到终端。(我有几个地方的数字应该是零。)


我已经尝试了
MPI\u Get\u count()
,但这似乎是针对单个传输的,而不是返回接收的总字节数。另外,
MPI\u Barrier()
对我的情况没有帮助,因为我的进程到达相同的代码位置,但接收到的数据仍然不同步。

这在很大程度上取决于您使用的实现,但是
MPIT
接口可能是您想要的。它公开了许多性能变量,您可以使用这些变量来查询系统的内部状态。我不是
MPIT
方面的专家,但我的理解是,公开的变量是特定于实现的