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

假如核心數夠多才建議這麼作

# 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

 

以上

最後修改日期: 2021 年 02 月 03 日

作者

留言

撰寫回覆或留言

發佈留言必須填寫的電子郵件地址不會公開。