# HPC-Base
**Repository Path**: lijian-cug/hpc-base
## Basic Information
- **Project Name**: HPC-Base
- **Description**: 高性能计算(HPC)相关工具、教学和操作的仓库, 包括:超算系统(软件和硬件)组装、编译器、Linux系统操作、GPU异构并行、计算机图形渲染、并行化编程:MPI、OpenMP\CUDA; PETSc等求解器开发等。技术指导不限于以上内容...
- **Primary Language**: Unknown
- **License**: MulanPSL-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 2
- **Created**: 2024-03-31
- **Last Updated**: 2026-08-14
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 高性能计算(HPC)基座
本目录是 OpenGeoModeller 的高性能计算基座:编译与容器、并行与加速、线性求解、IO、DSL 与自建集群资料。建议按「运行环境 → 构建 → 并行加速 → 求解 / IO → 高层抽象」阅读。
## 模块关系
逻辑分层(上层依赖下层,同层可横向协作):
```mermaid
flowchart TB
cluster[Cluster-DIY
硬件 / SSH / NFS / Slurm]
build[Build
编译 / 容器 / Spack]
lang[Language
语言与混编]
garbage[garbage
运维备忘·非主线]
parallel[CUDA / OpenCL / MPI
含 CUDA-aware MPI]
solver[Linear_Solver
AmgX / AmgCL / PETSc / Trilinos]
io[HPC-IO
HDF5 / NetCDF / VTK · GDS]
dsl[DSL / HPX
OP2 · 异步运行时]
cluster --> build
cluster --> lang
cluster --> garbage
build --> parallel
lang --> parallel
parallel --> solver
parallel --> io
solver --> dsl
io --> dsl
```
ASCII 简图:
```text
Cluster-DIY(硬件 / SSH / NFS / Slurm)
│
┌────┼────┐
▼ ▼ ▼
Build Language garbage(运维备忘,非主线)
│ │
└────┬──┘
▼
CUDA / OpenCL / MPI(含 CUDA-aware MPI)
▼
Linear_Solver(AmgX / AmgCL / PETSc / Trilinos …)
▼
HPC-IO(HDF5 / NetCDF / VTK,含 GDS)
▼
DSL / HPX
```
### 依赖速查
| 模块 | 职责 | 主要交叉链接 |
|------|------|----------------|
| [Cluster-DIY](./Cluster-DIY/) | 自建集群硬件与配置 | [MPI](./MPI/)、[Build](./Build/)、[garbage](./garbage/) |
| [Build](./Build/) | Makefile/CMake/…、编译器、Docker/Singularity/Spack | [Language](./Language/)、[CUDA](./CUDA/)、[Cluster-DIY](./Cluster-DIY/) |
| [Language](./Language/) | R/Python/Julia/Java、混编 | [Build](./Build/)、[MPI](./MPI/)(mpi4py) |
| [CUDA](./CUDA/) | CUDA 基础、GPUDirect、样例、NVHPC | [MPI-GPUDirect](./MPI/MPI-GPUDirect/)、[HPC-IO](./HPC-IO/)、[AmgX](./Linear_Solver/AmgX/)、[OpenCL](./OpenCL/) |
| [OpenCL](./OpenCL/) | 跨厂商 GPGPU | [CUDA](./CUDA/)、[AmgCL](./Linear_Solver/AmgCL/) |
| [MPI](./MPI/) | OpenMPI/MPICH、IB、CUDA-aware MPI | [GPUDirect](./CUDA/GPUDirect/)、[Cluster-DIY](./Cluster-DIY/)、[PETSc](./Linear_Solver/PETSc/) |
| [Linear_Solver](./Linear_Solver/) | AmgX/AmgCL/PETSc/Trilinos/paralution | [CUDA](./CUDA/)、[OpenCL](./OpenCL/)、[MPI](./MPI/)、[Build](./Build/) |
| [HPC-IO](./HPC-IO/) | HDF5/NetCDF/VTK、GDS | [GDS](./CUDA/GPUDirect/GDS/)、[MPI](./MPI/) |
| [DSL](./DSL/) | OP2 等特定域语言导读 | [Language](./Language/);父仓库 Firedrake / Devito(见下) |
| [HPX](./HPX/) | 异步并行运行时 | [Build](./Build/)、[Language](./Language/) |
| [garbage](./garbage/) | Linux/git 等备忘(归档,**非主线**) | [Cluster-DIY](./Cluster-DIY/) |
要点:`MPI-GPUDirect` 依赖 `CUDA/GPUDirect`;`AmgX`↔CUDA,`AmgCL`↔OpenCL,`PETSc`↔MPI;`HPC-IO` 中 GDS 与 GPUDirect Storage 相关。
### 与上级仓库
`hpc-base` 常作为子模块,为父仓库中的地表水、水文、地球物理、湍流等模式提供编译器、MPI、PETSc、CUDA、容器等基座能力。DSL 导读中的 Firedrake / Devito 等,在 monorepo 完整检出时可参考:
- `../../SurfaceWater/Firedrake/`
- `../../Geophysics/`(如 spyro / Devito 相关目录)
子模块单独克隆时,以上相对路径可能不可用,请到父仓库 OpenGeoModeller 中查看。
## 目录索引
- [Cluster-DIY](./Cluster-DIY/) — 自建 Ubuntu 集群的硬件与配置
- [Build](./Build/) — Makefile / CMake / SCons / Meson、编译器、Docker / Singularity / Spack
- [Language](./Language/) — R / Python / Julia / Java、混合编程
- [CUDA](./CUDA/) — CUDA 基础、GPUDirect、样例与 NVHPC
- [OpenCL](./OpenCL/) — 跨厂商 GPGPU
- [MPI](./MPI/) — OpenMPI / MPICH、InfiniBand、CUDA-aware MPI
- [Linear_Solver](./Linear_Solver/) — AmgX / AmgCL / PETSc / Trilinos / paralution
- [HPC-IO](./HPC-IO/) — HDF5 / NetCDF / VTK
- [DSL](./DSL/) — OP2 等特定域语言导读
- [HPX](./HPX/) — 异步并行运行时
- [garbage](./garbage/) — Linux / git 等备忘(归档向,非主线)
## 推荐阅读路径
1. **机器与集群**:先看 [Cluster-DIY](./Cluster-DIY/),运维命令可参考 [garbage](./garbage/)
2. **编译与容器**:看 [Build](./Build/)(尤其 [Docker](./Build/Docker/) / [Spack](./Build/Spack/))
3. **GPU / 多节点并行**:[CUDA](./CUDA/) → [MPI](./MPI/)(GPUDirect)→ [Linear_Solver](./Linear_Solver/) / [HPC-IO](./HPC-IO/)
4. **高层抽象**: [DSL](./DSL/) / [HPX](./HPX/),并结合父仓库具体模式文档