## 引言
高性能计算(HPC)是推动现代科学研究的重要引擎,而加速计算已成为HPC领域的主流趋势。近年来,以海光DCU(Deep Computing Unit)为代表的国产加速卡异军突起,凭借其GPGPU架构和对CUDA、ROCm生态的全面兼容,正在逐步打破国外GPU在科学计算领域的垄断格局。
DCU采用全精度通用加速设计,支持FP64、FP32等多精度计算,可覆盖人工智能训练推理、科学计算、工程仿真等各类应用场景。其软件栈包含DTK(异构计算平台)、DAS(人工智能基础软件系统)和DAP(人工智能应用平台)三大组件,分别专注于生态兼容、全栈优化及应用落地。目前,海光DCU已在科学计算领域支撑了生物大数据处理、分子动力学模拟等多个重大项目,实现了全栈国产适配与性能优化。
本文将围绕分子动力学模拟软件GROMACS、LAMMPS以及计算流体力学软件OpenFOAM这三款主流科学计算软件,介绍其在DCU平台上的部署方法与优化实践。
## 一、GROMACS:生物大分子模拟的利器
GROMACS(GROningen MAchine for Chemical Simulations)是一款高性能分子动力学模拟软件,主要面向生物大分子体系(如蛋白质、核酸、脂质)以及复杂材料体系的动力学行为研究。GROMACS具备高度优化的并行计算能力,支持大规模原子体系模拟,并能够高效执行长时间尺度计算任务,已广泛应用于药物设计、生物物理、计算化学和材料科学等领域。
### DCU平台部署
在DCU平台上运行GROMACS,首先需要正确配置DTK运行环境:
```bash
module load compiler/dtk
source ${ROCM_PATH}/cuda/env.sh
```
如使用MPI版本进行多节点并行计算,还需额外加载GCC和MPI环境:
```bash
module load compiler/gcc/9.3.0
module load mpi/hpcx/2.4.1/gcc-7.3.1
```
配置GROMACS运行环境变量:
```bash
export PATH=/path/to/gromacs/bin:$PATH
export LD_LIBRARY_PATH=/path/to/gromacs/lib64:$LD_LIBRARY_PATH
```
验证安装是否成功:
```bash
gmx --version
```
### 运行示例
以thread-MPI版本的benchBFI算例为例,演示mdrun的基本使用方法:
```bash
gmx mdrun \
-s benchBFI/benchBFI.tpr \
-o benchBFI/benchBFI.trr \
-c benchBFI/benchBFI_out.gro \
-e benchBFI/benchBFI.edr \
-g benchBFI/benchBFI.log \
-cpt -1 \
-nstlist 200 \
-pin on \
-ntmpi 4 \
-ntomp 6 \
-nb gpu \
-pme gpu \
-bonded gpu \
-npme 1 \
-nsteps 100000
```
其中,`-ntmpi`和`-ntomp`参数需根据实际硬件资源配置进行调整,`-nb gpu`、`-pme gpu`、`-bonded gpu`指定将非键相互作用、PME计算和成键相互作用均交由GPU加速,以充分发挥DCU的并行计算能力。
### 性能优化思路
GROMACS是一个对延迟高度敏感的应用程序,峰值迭代速率可达亚毫秒级别,这使得其在异构超算平台上的可扩展性面临挑战。在DCU平台上的优化可从以下几个维度入手:
**参数调优**:GROMACS的性能在很大程度上依赖于针对特定硬件和分子系统进行参数调优。`-ntmpi`(MPI任务数)、`-ntomp`(OpenMP线程数)和`-npme`(PME任务数)的合理配置对性能影响显著。
**内存管理**:针对GPU/DCU内存资源的局限性,优化内存使用效率可使可处理的体系规模显著提升。
**领域分解优化**:最新的GROMACS研究中,通过基于GPU内核发起的NVSHMEM方案重新设计领域分解的halo-exchange算法,在NVLink互联场景下可将强扩展性能提升最高1.5倍(节点内)和2倍(多节点)。
## 二、LAMMPS:大规模原子/分子并行模拟平台
LAMMPS(Large-scale Atomic/Molecular Massively Parallel Simulator)是另一款高性能分子动力学模拟软件,广泛应用于材料科学、物理学、化学和工程等领域。它能够模拟和研究原子、分子、颗粒、连续体和粗粒化体系的动力学行为,其强大的并行计算能力使其能够高效处理大规模和复杂体系的模拟。
### DCU平台部署
当前版本为LAMMPS_stable_29Aug2024。部署时首先加载DTK环境:
```bash
module load compiler/dtk/25.04
```
随后加载GCC、MPI和FFTW环境:
```bash
module load mpi/hpcx/2.4.1/gcc-7.3.1
module load mathlib/fftw/3.3.8/double/gnu
```
配置LAMMPS环境变量:
```bash
export PATH=/path/to/lammps/bin:$PATH
export LD_LIBRARY_PATH=/path/to/lammps/lib64:$LD_LIBRARY_PATH
```
### 运行示例
在examples目录下进行算例测试。使用GPU加速包:
```bash
mpirun -np 4 lmp_mpi -sf gpu -pk gpu 1 -in in.lj
```
使用KOKKOS加速包(支持更广泛的硬件后端):
```bash
mpirun -np 4 lmp_mpi -k on g 1 -sf kk -pk kokkos gpu/aware off -in in.lj
```
### 加速方案对比
LAMMPS提供了多种GPU加速方案:
- **GPU包**:基于CUDA实现的传统GPU加速方案,对NVIDIA GPU优化较好。
- **KOKKOS包**:采用C++并行编程模型,支持多种硬件后端(CUDA、HIP、OpenMP等),在DCU等国产加速卡上具有更好的可移植性。
当多个MPI进程共享同一张GPU时,性能在很大程度上取决于CPU与GPU之间的可用带宽。因此在DCU集群上部署时,需合理规划MPI进程与DCU的映射关系。
### 国产化适配进展
LAMMPS已在国内多个超算平台完成DCU适配。国家超级计算郑州中心已将Gromacs-DCU、Lammps-DCU纳入其软件资源服务体系。武汉大学计算中心也对C86处理器在LAMMPS等软件上的兼容性进行了系统测试。
## 三、OpenFOAM:开源CFD的DCU加速之路
OpenFOAM是一款被广泛应用的开源计算流体力学(CFD)软件,可用于模拟复杂流体流动、湍流、化学反应、燃烧及导热等物理过程。OpenFOAM®-v2112-dcu是基于ESI OpenFOAM-v2112版本开发的DCU加速版本,包含两个主要分支:
- **v1.0**:将原始版本中矩阵求解的求解器、预处理器、平滑器替换为DCU加速版本。
- **v2.2**:在v1.0基础上开发了全新的面向DCU异构系统的数据结构框架,提供新的类进行设备端数据存储与处理、控制方程离散、矩阵存储及求解,新增了potentialFoam和simpleFoam求解器,以及多种边界类型支持。
### DCU平台部署
首先加载DTK环境:
```bash
module load compiler/dtk/25.04
```
加载MPI环境:
```bash
module load mpi/hpcx/2.4.1/gcc-7.3.1
```
加载OpenFOAM环境:
```bash
source /path/to/OpenFOAM/etc/bashrc
```
### DCU加速的挑战与突破
CFD模拟的核心瓶颈在于稀疏线性方程组的求解,这部分计算通常占据整个模拟的大部分时间。OpenFOAM的DCU加速版本正是针对这一痛点进行优化。
研究表明,GPU加速的CFD求解器相比纯CPU系统可实现高达20倍的加速。面向DCU的OpenFOAM并行加速研究已被列为专门的学术课题进行系统探索。
OpenFOAM®-v2112-dcu-2.x版本的一大亮点是其全新的数据结构框架独立于原生代码设计,这使得它能够方便地跟随OpenFOAM版本升级进行更新,有利于后期维护及性能持续优化。同时,设备端数据结构及实现逻辑与主机端比较接近,保留了流场求解器的构建逻辑与习惯,便于用户快速修改和移植自己的求解器。
### 最新趋势
值得关注的是,CFD领域正朝着“纯GPU”方向演进。新兴的CFD引擎如Brae能够将整个求解过程保持在单张GPU上完成——从网格、场变量到压力-速度耦合和线性求解,所有操作均在设备端执行,避免了每次迭代时数据在CPU与GPU之间的来回拷贝。这种设计思路对DCU平台上的CFD软件优化具有重要的借鉴意义。
## 结语
从GROMACS的生物大分子模拟,到LAMMPS的材料科学计算,再到OpenFOAM的流体力学仿真,DCU加速卡正在逐步覆盖科学计算的主流软件生态。海光DCU凭借其对CUDA和ROCm生态的兼容性,以及DTK等完善的软件栈支持,为国产科学计算软件的迁移和优化提供了坚实的基础。
当前,海光通过光合开发者社区提供技术资源与算力支持,光合基金已累计投入5000万元支持240余项应用适配。随着DCU生态的持续完善和更多科学计算软件的适配优化,国产加速卡将在药物设计、新材料开发、航空航天等关键领域发挥越来越重要的作用,为我国科研领域的自主可控提供坚实的算力底座。