最佳答案
在 MPI 中,type map
是一个重要但令人困惑的概念。我想一个例程显示或打印一个类型地图为我。
例如(取自 MPI-3标准) ,
MPI_TYPE_CREATE_RESIZED(MPI_INT, -3, 9, type1)
结果为类型图
{(lb_marker, -3), (int, 0), (ub_marker, 6)}.
再次使用这种类型:
MPI_TYPE_CONTIGUOUS(2, type1, type2)
打印地图是
{(lb_marker, -3), (int, 0), (int,9), (ub_marker, 15)}
我想要一种自动显示该类型地图的方法。
当然可以使用 MPI_Type_get_contents
和 MPI_Type_get_envelope
并递归下降,直到碰到内置类型。这是一个相当大的痛苦,我会认为20年的一些工具将存在为我做这一点。
一些工具很有前途,但不是很有效:
我找到了来自 ~ 2001 给你的 MPIMAP。首先,它需要为现代的 Tcl/TK 进行更新,并进行修补以解决一些内存错误,然后,您将得到一个无响应的 GUI。相反,我正在寻找一个可以在运行时调用的库/例程。
MPIDU_Datatype_deubg
是 MPICH 特有的内部类型转储例程。它不显示类型映射(它确实显示了数据循环表示,再次关闭)
曾经有一个名为 XMPI 的调试器,它在其特性中列出了显示 MPI 类型映射的能力。这个调试器似乎是特定于 LAM-MPI 的,并且不使用 get _ content/get _ credit。