Purley平台Linpak测试,从踏坑开始一步步优化
#记2017年11月第一次踏坑事件
测试平台配置:
6nodes
CPU: Intel Gold 6132 @2.6GHz 14C
RAM: 8G *12 @2666MHz
NET: Infiband FDR
OS: centos7.2
mpi: Intel-mpi
hpl: xhpl.intel
开始踏第一坑
现象:运行单机Linpack,一颗CPU主频699MHz,另一颗3299MHz。当然效率很低啦。
原因分析:此现象原因是CPU节能模式造成。需要关闭CPU节能。
解决方法一:内核启动参数加入“intel_idle.max_cstate=0 processor.max_cstate=1 intel_pstate=disable idle=nomwait”,
然后开机执行cpupower -c all frequency-set -g performance,可以写入/etc/rc.local开机自动执行,注意/etc/rc.d/rc.local要给执行权限。
查看CPU是否为“performance”模式了
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
解决方法二:有时重启cpupower服务也有效
systemctl restart cpupower
结果:CPU运行频率平稳。Linpack效率提升显著。280(12%) > 提升到930(40%)
turbostat 查看cpu频率(Linpack测试时,基本稳定在2200MHz)
但是40%的效率,还是太低啊,需要提高
原因分析:我们注意到Purley平台支持了AVX512指令集,需要打开才能发挥最高性能。
操作方法:在Linpack测试脚本里加入“export MKL_ENABLE_INSTRUCTIONS=AVX512”
perf top 查看avx512指令集有没有生效
结果:性能提升也很明显,达到64%,基本满足要求。930(40%) > 1500(64%)
下面开始整机测试,又出现问题啦。
但是又有问题来了。
每个节点占用内存不同,进程数也不同。也导致效率极低。
原因分析:从故障描述也看出来了,需要绑定进程。
结果:可以跑出一个正常的结果了。虽然效率一般般。