Thursday, February 09, 2017

CESM on Infiniband / 10GbE 夢幻競演 (什麼啦

OK, 這是上次那篇的續集.
系統後來加上了Infiniband 56GB/s, 所以變成同時有IB跟10GbE.
難得遇到的機會, 當然要來測一測!

測試環境:
CentOS 7.3.1611
kernel: 3.10.0-514.6.1.el7.x86_64
OFED: MLNX 4.0-1.0.1.0
Compiler: Intel 13.1.3.192
OpenMPI: 1.8.8
nodes: 12 CPUs * 4 nodes

因為OpenMPI, 可以用--mca參數, 在mpirun時直接控制要使用的通訊界面
所以很適合在這種場合使用:
我只要改變mpirun的參數, 就可以選擇要用哪一種網路, 不用對應兩種MPI來編兩種binary.
例如:
mpirun --mca btl ^openib
這樣就可以叫mpirun不要使用openib介面. (^是not的意思)

1. HPL
這是常見的效能評估軟體.
結果用兩種網路, 效能只有2%的差距.
算是粗略測試.
(2017/4/10 重測:
1167.92 vs 1047.61 Gflops, 11.5%差距)

2. WRF
WRF是用3.6版, 跑2-domains Katrina case.
結果, 用兩種網路的效能差異約在15%左右, Infiniband比較快.
(2017/4/10 重測:
使用Conus 12km 3hr case, Katrina 2-domains 12hr / 24hr case
差距從50%~80%不等.
不知道早先的測試是哪裡沒弄好...)

3. 重頭戲的CESM.
這次是用1.2.2版, 先跑8 CPUs * 4 nodes, 用這個設定:
-compset FMOZSOA -res 1.9x2.5_gx1v6
結果... IB的速度是10GbE的3.3倍.
這已經不是幾個%的問題了...
從CPU使用率跟網路傳輸可以看到, 用IB做MPI時, CPU的I/O system使用率非常低 (紅色部分)
網路看不到流量, 是因為這個監測軟體預設只會紀錄TCP流量, 所以看不到走native IB的通訊.

但是使用10GbE時, system使用率大約有60%, 等於一半以上的時間都是CPU在等網路.
網路的傳輸率倒是有符合預期
因為是有1個node做頭, 所以傳輸的node是3個 (頭不用跟自己通訊), 總量應該是要在400GB/s左右差不多.
但跑出來的結果就是... 這樣.
這大概是一個throughput夠, 但是被latency拖垮的例子吧.

然後每個node改用12個CPU, 用10GbE跑, 反而比用8個CPU還慢XD 搞笑嗎XD
所以跑CESM的話, Infiniband不能省啊 (推眼鏡

No comments: