服务器性能调优
-
课题组服务器node01-node04计算节点配置:英特尔® 至强® Gold 6240 处理器 x 2,内核数 18 x 2,处理器基本频率 2.60 GHz,最大睿频频率 3.90 GHz,缓存 24.75 MB,UPI链接数 3,最大内存通道数 6,内存16 Gb x 8(24插槽)。
-
node05-node06计算节点配置:英特尔® 至强® Gold 6242R 处理器 x 2,内核数 20 x 2,处理器基本频率 3.10 GHz,最大睿频频率 4.10 GHz,缓存 35.75 MB,UPI链接数 2,最大内存通道数 6,内存64 Gb x 4(24插槽)。
问题
有些VASP任务,在6242R节点运行比6240慢,但前者纸面参数更高。
调优分析
复现问题
使用sysbench
工具测试cpu多核性能,类似的还有Phoronix Test Suite
。
- 进入管理节点,下载
sysbench
,
|
|
- 查看
sysbench
依赖,
|
|
- 下载
sysbench
依赖,
|
|
- 将
sysbench
及依赖转移到计算节点的新建目录并安装,
|
|
- 在计算节点node01和node05上测试
|
|
其中,$(nproc)
会被替换成系统上可用的处理器核心数。cpu指定了要运行的测试类型。--cpu-max-prime=1000000
设置了计算素数的上限。
6242R的cpu性能比6240高些。
|
|
6242R的内存性能也比6240高些。
那会是什么原因导致某些第一性原理计算任务变慢呢?猜测可能是cpu或者内存的问题。
cpu检查
lshw -class cpu
显示空载时6242R的size是1200 MHz,而6240为2600 MHz。前者的动态调频引起了我的关注。
之后,使用lscpu
观察sysbench
调用时,时钟频率的变化,发现6242R满载时,会跑到最大睿频。是否动态调频会拖慢多核计算性能存疑。
此外,对比参数发现6240的UPI链接数为3,而6242R仅为2。低了50%的UPI会拖慢6242R双路cpu之间的通信。
内存检查
lshw -class memory
显示6240和6242R的最大内存通道数都为6,DELL 740机架式服务器主板最大内存插槽为24,则每个通道对应4个插槽。6240计算节点是使用了16 Gb x 8,而6242R计算节点是使用了64 Gb x 4,后者因为没有完全占用内存通道而限制了内存带宽。计算化学公社帖子《用于vasp的集群配置中的内存问题》也说明了类似的问题。
dmidecode -t memory
可以查看是否为ECC内存,若是显示如下,
|
|
则可判断为ECC内存。因为Total Width通常比Data Width大8位,额外的8位用于错误检测和校正代码。
初步结论
由于6242R的UPI链接数较低,加之内存通道没有完全占用,限制了VASP任务的运行效率。
可行性方案
-
6242R节点增加内存,提升内存带宽。
-
之后升级服务器时,关注cpu的UPI链接数,并提前做更完善的第一性原理测试。
后续
- 我已在24年4月升级了内存。目前6240节点和6242R节点都升级到16 Gb*12内存,后者比前者快8.3%,验证了内存带宽限制计算效率的猜想,6242R节点计算瓶颈问题得到解决。