运行Alltoallv算法2报错:gatherv phase don't support displs >= 2^31 bytes

现象描述

运行Alltoallv算法2(node-aware plummer)报错如下:

1
Alltoallv node-aware plummer gatherv phase don't support displs >= 2^31 bytes

可能原因

算法不支持节点内所有进程sendcounts总和超过2^31的场景,详见场景十五:Alltoallv集合操作节点内所有进程sendcounts总和超过2^31

例如,运行osu应用时,进程数为128,节点数为2,每节点64进程,节点内所有进程sendcounts总和为128*64*count(count为每个sendcounts的值,即发送数据个数,osu中所有sendcounts都相同),当count到达256K时,sendcounts总和为2G,超过2^31,此场景会报出错误日志并退出作业。

恢复步骤

sendcounts不能超过Alltoallv算法2的限制,或者改用Alltoallv算法1(Ladd)。