Best practices for running tightly coupled HPC applications on Compute Engine
Introducing HPC VM images—pre-tuned for optimal performance
— 以下簡單備註,詳細參考原文
— 適用於高存取量的主機
— 針對 CentOS 7 以上
*調校有風險,請作好測試規畫
調校那些東西
- Disable Hyper-Threading
- MPI collective tunings
- Increase tcp_*mem settings
- Enable busy polling
- Raise user limits
- Disable Linux firewalls, Disable SELinux
- Disable CPUIdle
Disable Hyper-Threading
假如核心數夠多才建議這麼作
# vi /etc/default/grub GRUB_CMDLINE_LINUX="(其它省略) noht nosmt nr_cpus=4" # 加入 noht nosmt nr_cpus=4,4 是全部核心除以 2 後的值
grub2-mkconfig -o /boot/grub2/grub.cfg
# 重開機 reboot
檢驗
lscpu | grep -e Socket -e Core -e Thread
出現 Thread(s) per core: 1 代表成功
Adjust user limits
預設系統會限制檔案存取量等等的上限,這邊把它調大
# vi /etc/security/limits.conf * - nproc unlimited * - memlock unlimited * - stack unlimited * - nofile 1048576 * - cpu unlimited * - rtprio unlimited
# vi /etc/security/limits.d/20-nproc.conf * - nproc unlimited
Network settings
增加 TCP 記憶體的存取量,與減少延遲
# /etc/sysctl.conf net.ipv4.tcp_rmem = 4096 87380 16777216 net.ipv4.tcp_wmem = 4096 16384 16777216 net.core.busy_poll = 50 net.core.busy_read = 50
sysctl -p
MPI libraries and user applications
搭配使用 Intel MPI ,全名叫 multifabric message-passing library ,就是一種可以降低延遲、高頻寬、增加處理能力的一個工具套件
Security settings
如果對以下沒有自信,關閉它們必免不必要的麻煩 (意思應該是這樣子吧 :)
關閉內鍵的 firewalld
systemctl stop firewalld systemctl disable firewalld systemctl mask --now firewalld
Disable SELinux
# vi /etc/selinux/config SELINUX=disabled
Turn off Meltdown and Spectre mitigation
處理器的漏洞,可以透過軟體方式解決
# vi /etc/default/grub GRUB_CMDLINE_LINUX="(其它省略) spectre_v2=off nopti spec_store_bypass_disable=off"
grub2-mkconfig -o /boot/grub2/grub.cfg
# 重開機 reboot
如果不重開機可以先這麼作
echo 0 > /sys/kernel/debug/x86/pti_enabled echo 0 > /sys/kernel/debug/x86/retp_enabled echo 0 > /sys/kernel/debug/x86/ibrs_enabled echo 0 > /sys/kernel/debug/x86/ssbd_enabled
以上
留言