修改流水线:容器镜像构建-冒烟测试-发布制品
这是一个用于验证“超算应用 CI/CD 流水线编排”的最小可运行 demo。项目使用 CMake + C++17 + MPI 实现一维热扩散 stencil 计算,并提供单元测试、MPI 冒烟测试、性能基准标签和容器构建入口。
. ├── CMakeLists.txt ├── Dockerfile ├── include/stencil.hpp ├── src/stencil.cpp ├── src/main_mpi.cpp ├── tests/test_stencil.cpp └── .github/workflows/ci-basic.yml
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DENABLE_MPI=ON -DENABLE_TESTS=ON cmake --build build --parallel ctest --test-dir build --output-on-failure
mpirun -np 4 ./build/stencil_mpi --size 200000 --steps 200
输出示例:
hpc_stencil_demo ranks=4 global_size=200000 steps=200 checksum=... elapsed_seconds=...
#!/usr/bin/env bash #SBATCH --job-name=hpc-stencil-demo #SBATCH --partition=normal #SBATCH --nodes=1 #SBATCH --ntasks=4 #SBATCH --time=00:10:00 #SBATCH --output=stencil-%j.out #SBATCH --error=stencil-%j.err set -euo pipefail module purge module load gcc openmpi cmake cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DENABLE_MPI=ON -DENABLE_TESTS=ON cmake --build build --parallel ctest --test-dir build --output-on-failure srun ./build/stencil_mpi --size 1000000 --steps 500
docker build -t hpc-stencil-demo . docker run --rm hpc-stencil-demo
本 demo 的 .github/workflows/ci-basic.yml 可直接用于 GitHub Actions 基础验证。你也可以把前面生成的模板目录中的其他 workflow 复制进来:
.github/workflows/ci-basic.yml
ci-matrix.yml
hpc-remote-slurm.yml
performance-benchmark.yml
benchmark
container-build.yml
pipeline-orchestrator.yml
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802047560号
HPC Stencil Demo
这是一个用于验证“超算应用 CI/CD 流水线编排”的最小可运行 demo。项目使用 CMake + C++17 + MPI 实现一维热扩散 stencil 计算,并提供单元测试、MPI 冒烟测试、性能基准标签和容器构建入口。
目录结构
本地构建
MPI 运行
输出示例:
Slurm 作业示例
容器构建
与流水线模板配合
本 demo 的
.github/workflows/ci-basic.yml可直接用于 GitHub Actions 基础验证。你也可以把前面生成的模板目录中的其他 workflow 复制进来:ci-matrix.yml:验证不同 MPI 实现或构建类型。hpc-remote-slurm.yml:提交到真实超算 Slurm 集群。performance-benchmark.yml:运行带benchmark标签的 CTest。container-build.yml:发布容器镜像到 GHCR。pipeline-orchestrator.yml:作为一体化编排入口。