Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> Linux 教學

Beowulf 叢集實戰:用普通 PC 構建高效能並行計算平台

編輯:Linux 教學

Beowulf 核心哲學

Beowulf 非特定軟體,而是架構模式:商用現貨硬體 (COTS) + 商用現貨網路 (COTN) + 開源軟體 (Linux + MPI/PVM) = 低成本超級電腦。NASA Goddard 的 Thomas Sterling 與 Donald Becker 開創。

硬體規劃清單 (單節點最低規格)

元件最低規格建議規格 (2024)備註
CPUIntel 486AMD EPYC / Intel Xeon Scalable / Ryzen Threadripper多核心、AVX-512/AMX 加速
記憶體16 MB64 GB+ (DDR5 ECC)每核心 2-4 GB
本地儲存200 MBNVMe SSD 1 TB+ (OS + Scratch)並行檔案系統需高 IOPS
網路10/100 Mbps25/100/200 GbE (InfiniBand/RoCE)低延遲、RDMA 關鍵
電源標準 ATX冗余電源 (1+1) + PDU 監控節點級 IPMI/BMC

網路拓撲設計

三網隔離

管理網路 (1 GbE)          業務/運算網路 (25-200 GbE)        儲存網路 (可合併業務)
    │                              │                              │
[管理交換機]                  [高效能交換機]                  [儲存交換機]
    │                              │                              │
┌───┴───┐                      ┌───┴───┐                      ┌───┴───┐
│ Head  │◄────────────────────►│ Node1 │◄────────────────────►│ 共享  │
│ Node  │  SSH/Ansible/PXE     │       │  MPI/集體通訊        │ 儲存  │
└───────┘                      └───┬───┘                      └───────┘
                                   │
                              ┌────┴────┐
                              │ Node2   │
                              │ Node3   │
                              │  ...    │
                              │ NodeN   │
                              └─────────┘

IP 規劃範例

# 管理網 (192.168.10.0/24)
192.168.10.1  head
192.168.10.11 node1
192.168.10.12 node2
...

# 運算網 (10.0.0.0/16, 無路由)
10.0.0.1  head-ib
10.0.0.11 node1-ib
10.0.0.12 node2-ib
...

# /etc/hosts (所有節點同步)
10.0.0.1    head-ib head
10.0.0.11   node1-ib node1
10.0.0.12   node2-ib node2

軟體堆疊部署

1. 基礎 OS:Rocky Linux 9 / Ubuntu 22.04 LTS

  • PXE + Kickstart/Autoyast 全自動部署
  • 倉庫鏡像本地化 (dnf/apt mirror)
  • 核心參數調優:transparent_hugepage=never, numa_balancing=disable, processor.max_cstate=1

2. 叢集管理:Warewulf 4.x / xCAT / Bright Cluster Manager

# Warewulf 4 快速開始
dnf install -y warewulf
wwctl configure --all
wwctl node add node1 --ipaddr=192.168.10.11 --hwaddr=aa:bb:cc:dd:ee:ff --netdev=eth0
wwctl node add node2 --ipaddr=192.168.10.12 --hwaddr=aa:bb:cc:dd:ee:11 --netdev=eth0
wwctl overlay build
wwctl server restart
# 節點 PXE 開機自動加入叢集

3. 認證與同步:LDAP + NFS + Chrony

# Head 節點
dnf install -y openldap-servers nfs-utils chrony
# LDAP: 中心化用戶/群組
# NFS: /home, /opt/software, /scratch 掛載到所有節點
# Chrony: Head 為 NTP 伺服器,節點同步
# /etc/chrony.conf (Head)
allow 10.0.0.0/16
local stratum 10
# /etc/chrony.conf (Node)
server head-ib iburst

4. MPI 實作:OpenMPI / MPICH / Intel MPI

# OpenMPI (最通用)
dnf install -y openmpi openmpi-devel
# 環境變數 (所有節點)
export PATH=$PATH:/usr/lib64/openmpi/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib64/openmpi/lib

# 測試
mpirun -np 4 -host node1,node2 hostname
# 輸出 4 行主機名,證明跨節點啟動成功

5. 作業排程:Slurm (簡單) / PBS Pro / LSF (企業級)

# Slurm 快速部署
dnf install -y slurm slurm-slurmd slurm-slurmctld
# /etc/slurm/slurm.conf 關鍵
ClusterName=beowulf
ControlMachine=head
NodeName=node[1-32] CPUs=64 RealMemory=65536 State=UNKNOWN
PartitionName=debug Nodes=node[1-32] Default=YES MaxTime=1:00:00
PartitionName=batch Nodes=node[1-32] Default=NO MaxTime=7-00:00:00

systemctl enable --now slurmctld  # Head
systemctl enable --now slurmd     # Nodes

6. 並行檔案系統:Lustre / BeeGFS / CephFS / GPFS

  • Lustre:傳統 HPC 首選、MDS/OSS 分離、極高擴展性
  • BeeGFS:部署簡單、用戶態、中小叢集友善
  • CephFS:統一物件/塊/檔、Kubernetes 原生

並行應用開發模式

Master/Worker (最直觀)


// Master
MPI_Init(&argc, &argv);
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
MPI_Comm_size(MPI_COMM_WORLD, &size);
if (rank == 0) {
    // 分割任務
    for (i=1; i

領域分解

  • 網格/網格劃分:每節點負責子網格 + 幽靈層 (halo/ghost cells)
  • MPI 衍生資料型別傳遞邊界
  • 非阻塞通訊 MPI_Isend/Irecv + MPI_Waitall 重疊計算與通訊

集體通訊優化

操作用途優化建議
MPI_Bcast廣播參數/配置小訊息,樹狀演算法
MPI_Scatter/Gather分發/收集陣列區塊大資料用 MPI_Scatterv/Gatherv
MPI_Allreduce全域歸約 (求和/最大值)內建樹狀/環狀,硬體加速 (NCCL/HCOLL)
MPI_Alltoall全對全交換 (FFT/轉置)頻寬敏感,拓撲感知排程

效能調優關鍵

  1. CPU 親和性:mpirun --bind-to core --map-by ppr:1:core 綁核心、避免遷移
  2. 記憶體親和性 (NUMA):numactl --interleave=all 或 --membind,配合 MPI_PROCESS_RANK 區域分配
  3. 網路卸載:InfiniBand/RoCE 啟用 UCX (Unified Communication X) 傳輸層,HCOLL 集體通訊加速
  4. I/O 模式:MPI-IO 共同檔案存取、MPI_File_write_at_all 集體 I/O、條帶化 (stripe) 配置
  5. 負載均衡:異質節點 (CPU 核心數/型號不同) 需動態任務偷取或加權分割

從 Beowulf 到現代 HPC 雲

時代特徵代表技術
Beowulf 經典 (1994-2010)以太網 + PVM/MPICH + NFS + 自製腳本Stone SouperComputer, LOBOS
InfiniBand 時代 (2005-2020)RDMA + OpenMPI + Lustre/GPFS + PBS/SlurmTop500 多數系統
雲原生 HPC (2020-)容器化 (Apptainer/Singularity) + Kubernetes (Kueue, MPI Operator) + 雲爆發AWS ParallelCluster, Azure CycleCloud, GCP HPC Toolkit
AI/HPC 融合 (2023-)GPU 叢集 + NCCL + PyTorch Distributed + Slurm + KubernetesNVIDIA DGX SuperPOD, Megatron-LM

啟動你的第一個 Beowulf 叢集 (最小驗證)

  1. 2 台 Linux PC (或 VM),同網段
  2. 設定 /etc/hosts、~/.ssh/authorized_keys (免密登入)
  3. dnf install -y openmpi (兩台)
  4. Head: mpirun -np 2 -host localhost,node2 hostname
  5. 看到 2 行不同主機名 → 成功!
  6. 編譯 mpicc hello.c -o hello && mpirun -np 2 ./hello

Beowulf 精神:**平價硬體、開源軟體、自主掌控、社群共創**。無論規模大小,這套方法論始終有效。

Copyright © Windows教程網 All Rights Reserved