(可选)安装knem组件
knem是MPI节点内通信的一个增强组件,在部分HPC应用中,对于MPI通信中单次发送数据量较大的场景,安装使能该组件后在时会有一些性能提升。
检查knem使能情况
安装knem组件前,可以先检查knem使能情况,如果可以使能成功则无需再安装knem。
- 检查是否已安装osu_latency,如果未安装则需要安装osu_latency。
- 确认能否正常指定knem:运行osu_latency,mpi命令中指定 -x UCX_TLS=posix,knem,同时确保UCX_LOG_LEVEL保持默认级别,运行后如果日志打印中没有UCX WARN transport 'knem' is not available,执行步骤3,否则直接安装knem。
- 确认knem是否正常生效:运行osu_latency,mpi命令中指定 -x UCX_TLS=posix,knem,运行前后分别通过“cat /dev/knem” 命令查看文件的内容,主要关注其中的Requests submitted参数在运行前后是否有变化,如果有变化,则说明已正常生效。
如果knem未正常使能,可以尝试安装knem后,再次使用上述方法确认使能情况。
安装knem
- 可使用以下两种方法中的一种获取knem安装包“knem-master.tar.gz”。
- 以root用户登录服务器,进入安装包存储的目录,执行以下命令解压安装包,并进行编译安装。
tar -zxvf knem-master.tar.gz
cd knem-master
./autogen.sh
./configure --prefix=/path/to/install
make -j && make install -j
/path/to/install表示安装knem的路径。
- 安装knem内核。
insmod /path/to/install/lib/modules/[kernel_version]/knem.ko
- [kernel_version]可以通过 uname -r 命令查询。
- /path/to/install表示安装knem的路径。
- 检查knem内核。lsmod | grep knem
1knem 57344 4
- 检查knem安装是否成功,能正常运行knem的示例程序 knem_pingpong 即说明已安装成功。
/path/to/install/bin/knem_pingpong
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1024: 25.705 us 39.84 MB/s 37.99 MiB/s 2048: 25.869 us 79.17 MB/s 75.50 MiB/s 4096: 29.301 us 139.79 MB/s 133.32 MiB/s 8192: 30.902 us 265.09 MB/s 252.81 MiB/s 16384: 35.213 us 465.28 MB/s 443.73 MiB/s 32768: 45.170 us 725.44 MB/s 691.83 MiB/s 65536: 69.500 us 942.96 MB/s 899.28 MiB/s 131072: 62.795 us 2087.30 MB/s 1990.61 MiB/s 262144: 91.160 us 2875.64 MB/s 2742.43 MiB/s 524288: 158.172 us 3314.67 MB/s 3161.12 MiB/s 1048576: 216.383 us 4845.93 MB/s 4621.44 MiB/s 2097152: 310.549 us 6753.05 MB/s 6440.21 MiB/s 4194304: 329.018 us 12747.96 MB/s 12157.40 MiB/s 8388608: 615.082 us 13638.19 MB/s 13006.40 MiB/s 16777216: 1232.287 us 13614.70 MB/s 12983.99 MiB/s
父主题: 安装卸载HPCKit