满核运行集合通信(i)osu_alltoall(v)/(i)osu_scatter(v)/(i)osu_gather(v)节点卡住挂死
现象描述
在满核下运行 (i)osu_alltoall(v)/(i)osu_scatter(v)/(i)osu_gather(v),当使用默认的max_message_size(1MB)时,节点会卡住挂死。
可能原因
运行集合通信需要的内存超出节点实际内存。下图给出了不同OSU版本部分集合通信占用内存的情况。
图1 不同OSU版本节点内占用内存分析


- PPN -- 每个节点的进程数。
- np -- 总进程数。
- max_msg_size -- 指定集合通信最大包长。
恢复步骤
根据单节点实际内存,代入不同OSU版本的(i)osu_alltoall(v)/(i)osu_scatter(v)/(i)osu_gather(v)内存占用公式中计算max_msg_size,在mpirun命令中通过-m参数指定最大包长的值。
父主题: FAQ