高性能计算中的并行编程


CRAY-1 Supercomputer, “the world's most expensive love-seat”
1976, 138 MFLOPS @ 115kW

(经典) 高性能计算

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


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

  • 物理系统模拟
    • 天气预报、航天、制造、能源、制药、……
    • 大到宇宙小到量子,有模型就能模拟
  • 矿厂 (现在不那么热了)
    • 纯粹的 hash 计算
  • HPC-China 100

高性能计算程序:特点

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

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

高性能计算:关键问题

问题 1:计算任务如何分解

  • 通常计算图容易静态切分 (机器-线程两级任务分解)
  • 生产者-消费者解决一切
#pragma omp parallel num_threads(128)
for (int i = 0; i < 1024; i++) {
}

问题 2:海量线程之间的如何同步和通信

  • 持久存储 (~PB) → CPU/内存 (~TB) → GPU/显存 (~10GB) → 缓存 (~MB)