中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

特性支持与功能回退说明

Hyper MPI中并不是每一个算法都支持所有的场景,以下几种场景属于部分算法支持:

场景一:节点进程不均衡(即ppn不均衡)

Mpirun提交任务不指定ppn或者使用rankfile等情况下,可能出现节点进程不均衡的场景,Hyper MPI中仅Allreduce算法1、2、4,Bcast算法1、2,Barrier算法1、2支持节点支持进程不均衡场景,当指定其他算法时,将自动切换至支持的算法。

场景二:socket进程不均衡

所有的Socket-aware算法都要求socket进程数均衡;指定Socket-aware算法且socket进程数不均衡时,会切换到Node-aware算法。

场景三:非对弈操作

MPI标准支持用户在MPI_Allreduce内进行自定义数学操作,即不局限于求和(MPI_SUM)、乘积(MPI_PROC)等MPI内置的数学操作;用户在自定义数学操作时会出现操作本身不对弈的情况,如矩阵乘法。Allreduce算法1和算法4支持此类操作。

当用户指定算法不是算法1或算法4时,Hyper MPI会根据数据包大小切换成算法1(中小包)或者算法4(大包)。

场景四:超大数据类型

MPI支持自定义数据类型,用户自定义的数据类型过长有可能导致出错。Allreduce算法1和算法4支持此类操作。

场景五:Allreduce算法8,socket内仅有一个进程

由于算法8实现的特殊性,当指定算法8且socket内仅有一个进程时,会被切换成算法7。

场景六:使用拓扑感知算法,但感知单元内进程号不连续

只有非拓扑算法、Allreduce算法2和Bcast算法2支持此场景;当指定算法不在这几个算法之列时,自动切换算法。