简介:本文详述手动搭建高性能计算集群(HPC)的全流程,涵盖硬件选型、网络拓扑设计、系统安装与配置、作业调度系统部署及性能优化等关键环节,为开发者提供可落地的技术方案。
高性能计算集群的搭建需以业务需求为基准,明确计算类型(CPU密集型/GPU加速型/内存密集型)、规模(节点数量)及扩展性要求。例如,AI训练场景需优先配置NVIDIA A100/H100 GPU,而分子动力学模拟则依赖多核CPU与高速内存。硬件预算需覆盖计算节点、存储系统、网络设备及管理服务器,建议采用”计算节点+存储节点+登录节点”的三层架构,通过Infiniband或100Gbps以太网实现低延迟通信。
单个计算节点建议配置双路Xeon Platinum 8480+处理器(共112核),搭配1TB DDR5内存及4块NVIDIA H100 GPU(PCIe版)。主板需支持PCIe 5.0通道,确保GPU与NVMe SSD的高速数据传输。电源系统采用双冗余1600W铂金电源,提升供电稳定性。
并行文件系统选择Lustre或BeeGFS,存储节点配置双路AMD EPYC 7763处理器,搭配32块16TB HDD组成RAID6阵列,提供512TB原始存储容量。元数据服务器(MDS)需独立部署,配置高速SSD缓存层加速小文件访问。
核心交换层采用Mellanox Spectrum-4 400Gbps交换机,计算节点间通过胖树(Fat-Tree)拓扑连接,确保任意两节点间跳数不超过2。管理网络与计算网络物理隔离,使用1Gbps以太网实现节点监控与软件部署。
所有节点安装CentOS Stream 9,采用PXE网络启动实现自动化安装。配置NTP服务同步时间,禁用SELinux并调整内核参数:
# 修改/etc/sysctl.confnet.ipv4.tcp_max_syn_backlog = 8192net.core.somaxconn = 8192vm.swappiness = 10
部署Rocks Cluster 8.0作为基础框架,通过insert-ethers命令自动注册节点。配置NFS共享目录存储公共软件,使用LDAP实现用户统一认证:
# LDAP服务器配置示例yum install -y 389-dssystemctl enable --now dirsrv@exampleldapmodify -Y EXTERNAL -H ldapi:/// <<EOFdn: cn=config,cn=ldapchangetype: modifyreplace: olcPasswordHasholcPasswordHash: {SSHA512}EOF
安装Slurm 23.05版本,配置slurm.conf文件定义分区:
PartitionName=compute Nodes=node[1-32] Default=YES MaxTime=INFINITE State=UPPartitionName=gpu Nodes=gpu[1-8] Gres=gpu:8 Feature=gpu DefaultMemPerCPU=8000
通过scontrol create partition命令动态调整资源分配。配置prolog和epilog脚本实现作业前后环境清理。
部署Prometheus+Grafana监控系统,通过Node Exporter采集节点指标,配置Alertmanager实现负载告警。使用sstat命令实时查看作业资源使用:
sstat -j 12345 --format="JobID,Partition,AveCPU,AveRSS"
配置OpenMPI 4.1.4使用UCX通信库,通过OMPI_MCA_pml环境变量选择进程间通信方式:
export OMPI_MCA_pml=ucxexport UCX_NET_DEVICES=mlx5_0:1
测试Alltoall通信性能,调整UCX_TLS参数优先使用RC传输层。
调整Lustre文件系统条带参数,针对大文件优化:
lfs setstripe -c 16 -i 0 /mnt/lustre/large_files
配置/etc/fstab启用异步I/O:
/dev/sdb1 /mnt/data xfs defaults,noatime,inode64,swalloc 0 0
部署PowerTOP监控功耗,通过cpupower命令动态调整CPU频率:
cpupower frequency-set -g powersave # 低负载时cpupower frequency-set -g performance # 高负载时
编译OpenBLAS+HPL,生成HPL.dat配置文件指定矩阵规模:
Ns=128Nbs=32
运行测试并验证Gflop/s性能是否达到理论峰值80%以上。
配置测试参数评估存储带宽:
ior -a MPIIO -i 1 -t 1024m -b 1024m -s 100 -o /mnt/lustre/testfile
分析结果文件确认是否达到存储系统设计带宽。
建立自动化备份机制,使用rsync每日增量备份关键配置:
0 3 * * * /usr/bin/rsync -avz --delete /etc/slurm/ backup@store:/backups/slurm/
配置日志轮转策略,防止/var/log目录空间耗尽。建立故障处理SOP文档,涵盖节点离线、网络中断等常见场景。
通过上述步骤,开发者可构建出具备10PFLOPS计算能力的HPC集群。实际部署中需根据具体业务场景调整配置参数,建议先在小型测试环境验证方案可行性,再逐步扩展至生产规模。持续的性能监控与定期调优是保持集群高效运行的关键。