使用#define IDXTYPEWIDTH 64订购大型图形时出现问题

尊敬的ParMETIS开发人员:,
我们目前正在尝试在MUMPS解算器中使用64位整数为ParMETIS(ParMETIS_V3_NodeND)提供支持。不幸的是,我们遇到了以下问题:

当对一个非常大的图形(~12M个节点和~5G个边)排序时,在2个MPI进程上执行ParMETIS_V3_NodeND会被以下消息中断:

MPI_Irecv(165):MPI_Iecv(buf=0x7f631704b010,count=-1763562296,MPI_LONG_LONG_INT,src=0,tag=1,comm=0x84000004,request=0x135ba00)失败
MPI_Irecv(107):负数,值为-1763562296
MPI_Irecv中的致命错误:计数无效,错误堆栈:
MPI_Irecv(165):MPI_Iecv(buf=0x7f397c625250,count=-1781792296,MPI_LONG_LONG_INT,src=1,tag=1,comm=0x84000004,request=0x15585c4)失败
MPI_Irecv(107):负数,值为-1781792296

这使我们认为,计数超过32位整数容量的消息在ParMETIS中交换。当使用更多进程时(可能是因为消息大小变小),相同的代码在相同的图上运行良好。我们还使用了pt-scotch包(通过pt-scotch中的ParMETIS接口),它运行良好。

我们成功地在一个独立的程序中重现了该问题,该程序可以通过此链接与相关数据一起下载:

https://cloud.irit.fr/index.php/s/Es7KhbEXU9yzY0j

该代码需要一个64位整数的ParMETIS版本,并且必须在两个进程上运行

mpirun-np 2/主堡垒2

你能就这个问题给我们一些见解吗?

谨致问候,
MUMPS团队