高性能计算中的并行编程

高性能计算中的并行编程

2025 南京大学《操作系统原理》
高性能计算中的并行编程

CRAY-1 超级计算机

The world's most expensive love-seat” (1976)

  • 138 MFLOPS @ 115kW (Apple M4 iPad Pro: 3.8 TFLOPS)
    • \approx 27,000 台 CRAY-1 😂

center

2025 南京大学《操作系统原理》
高性能计算中的并行编程

(经典) 高性能计算

“A technology that harnesses the power of supercomputers or computer clusters to solve complex problems requiring massive computation.” (IBM)

源自数值密集型科学计算任务

  • 物理系统模拟
    • 天气预报、航天、制造、能源、制药、……
    • 大到宇宙小到量子,有模型就能模拟
  • 矿厂
  • AI: 新时代的高性能计算之王 (下节课)
  • HPC-China 100
    • 是的,单位是 PFLOPS
2025 南京大学《操作系统原理》
高性能计算中的并行编程

高性能计算程序:特点

物理世界具有 “空间局部性”

  • “模拟物理世界” 的系统具有 embarrassingly parallel 的特性

center

2025 南京大学《操作系统原理》
高性能计算中的并行编程

高性能计算中的并行编程

通常计算图容易静态切分 (机器-线程两级任务分解)

  • 生产者-消费者解决一切
    • MPI - “message passing libraries”, OpenMP - “multi-platform shared-memory parallel programming (C/C++ and Fortran)”
#pragma omp parallel num_threads(128)
for (int i = 0; i < 1024; i++) {
}

Challenges

  • 网络通信、功耗管理、稳定性和容错、软件和工具链 (都不是这门课讨论的内容)
2025 南京大学《操作系统原理》
高性能计算中的并行编程

实验 (gpt.c) 通关密码

大家不要偷看 llm.c

  • 但可以看一下头
#ifdef OMP
#include <omp.h>
#endif
  • 整个代码和并行计算相关的就只有 5 行
    • 如果没有 -fopenmp 编译选项,#pragma 会被直接忽略
#pragma omp parallel for
#pragma omp parallel for collapse(2)
  • 这个机制对非计算机专业的人实在太友好了
    • 偷看了就偷看了,翻译成条件变量,就有对比
2025 南京大学《操作系统原理》