(1)高性能计算概述与并行计算基础:了解高性能计算的发展历程、核心价值及其在科学计算、工程仿真、人工智能等领域的典型应用。掌握并行计算的基本概念:并行性与并发性的区别、并行粒度、并行开销、加速比与效率。学习并行计算机体系结构分类:共享内存架构(SMP/NUMA)、分布式内存架构(集群)、异构计算架构(CPU+GPU/加速器)。理解Flynn分类法(SISD、SIMD、MISD、MIMD)及其在当代系统中的应用。
(2)Linux集群环境搭建与基础操作:掌握HPC集群的核心组件构成:登录节点、计算节点、存储节点、管理节点、高速互联网络。学习从零搭建HPC集群的基本流程,包括Proxmox虚拟环境(PVE)配置、WireGuard分布式系统部署、MPI/UCX等核心函数库从源码编译。回顾Linux常用命令与Shell脚本编程,掌握用户账户管理、文件权限设置、环境变量配置等基础操作。
(3)作业调度系统与集群资源管理:理解作业调度系统在高性能计算集群中的核心作用。掌握SLURM(Simple Linux Utility for Resource Management)调度系统的架构与配置。学习使用sbatch、srun、squeue等命令提交和管理并行作业,掌握作业脚本编写规范。了解队列策略与资源分配方法,实现基于QoS的优先级控制和资源配额管理。
(4)共享内存并行编程:OpenMP:掌握OpenMP的fork-join执行模型,理解线程的创建与管理机制。学习使用编译制导指令(#pragma omp parallel/for/sections)实现循环级并行和任务级并行。掌握数据环境管理:private、shared、reduction等数据属性子句的正确使用。学习同步机制:critical、atomic、barrier的适用场景。实践通过OpenMP加速矩阵乘法、图像处理等典型算法。
(5)分布式内存并行编程:MPI基础:理解分布式内存编程模型的核心概念及其与共享内存模型的本质区别。掌握MPI程序的编译与运行方法(mpicc/mpirun)。学习MPI点对点通信:MPI_Send/MPI_Recv实现进程间数据交换。掌握MPI集合通信:MPI_Bcast广播、MPI_Reduce规约、MPI_Allgather全收集等在并行算法中的应用。实践实现基于MPI的并行求和与矩阵乘法。
(6)MPI高级编程与性能优化:掌握非阻塞通信(MPI_Isend/MPI_Irecv)实现计算与通信重叠,提升并行效率。学习MPI派生数据类型处理非连续内存数据。理解MPI通信器与虚拟拓扑在复杂并行模式中的应用。掌握MPI程序性能分析方法:负载均衡评估、通信开销优化、并行效率提升策略。
(7)GPU异构并行编程:CUDA基础:理解GPU与CPU架构的本质差异(众核并行vs多核并行),掌握CUDA编程模型的核心概念。学习CUDA程序的基本结构:内核函数定义、线程层次配置(grid/block/thread)、主机与设备间的数据传递。掌握CUDA内存管理:全局内存、共享内存、常量内存的特性与优化方法。实践实现基于CUDA的向量加法与矩阵乘法。
(8)GPU并行优化与OpenACC指令式编程:深入理解GPU程序性能优化策略:合并访问、共享内存使用、线程束发散避免。学习使用OpenACC指令式编程模型通过编译器指令加速应用开发。掌握OpenACC的核心指令:parallel loop、data、kernels的使用方法。对比CUDA与OpenACC的适用场景差异。实践使用OpenACC加速科学计算代码。
(9)异构系统编程与混合并行:掌握MPI+OpenMP混合编程模型,实现跨节点进程级并行与节点内线程级并发的协同。学习MPI+CUDA异构编程,实现跨节点GPU资源的统一调度。理解混合并行中的负载均衡策略与通信优化技巧。实践构建多节点GPU集群上的并行计算程序。
(10)性能分析工具与瓶颈识别:掌握常用性能分析工具的使用方法:Intel VTune放大器识别热点函数与微架构瓶颈、NVIDIA Nsight Systems分析GPU内核执行效率。学习使用HPL(High-Performance Linpack)和HPCG(High Performance Conjugate Gradients)进行基准性能测试。掌握性能数据的解读方法,识别计算瓶颈、通信瓶颈、内存瓶颈。
(11)HPC领域应用与最佳实践:了解高性能计算在科学计算、工程仿真、分子动力学、气象预报等领域的典型应用案例。学习科学计算软件的并行化策略与性能调优经验。掌握AI/ML/DL工作负载在HPC集群上的部署与优化方法。了解HPC环境中的软件安装管理工具(SPACK)的使用。
(12)综合项目实战:HPC并行程序开发