高能物理中并行计算的发展与应用
1. 并行计算编程基础
并行机器编程比串行机器编程复杂得多,需要对底层机器架构有深入理解。传统上,并行架构分为“单指令流多数据流”(SIMD)机器和“多指令流多数据流”(MIMD)机器。
- SIMD 机器 :有成千上万个相对简单的处理单元,本地内存有限,对不同数据执行相同指令。
- MIMD 机器 :处理器数量较少但功能更强大,每个处理器可能执行不同程序。
不过,除了图像处理等特定应用,如今 MIMD 架构占据市场主导,现在的区别主要在于共享内存和分布式内存架构。
2. 共享内存架构
共享内存机器,也称为对称多处理器(SMP),多个处理器通过单个共享总线访问公共内存。例如 Cray X - MP 和 Y - MP 向量/多处理器系统、HP/Convex 和 SGI Power Challenge 等。
2.1 编程模型
SMP 系统的编程模型基于单一地址空间,进程通过直接引用地址空间共享数据。程序员必须明确何时以及共享哪些数据,并显式同步进程,以确保按正确顺序访问共享变量。
2.2 实现方式
在实践中,为 SMP 系统编写软件可使用 pthreads(IEEE Posix 标准)或 OpenMP 标准(用于可移植共享内存程序)。pthreads 使用函数调用,OpenMP 使用编译器指令。
2.3 架构局限
SMP 系统通常由 2 到 16 个或更多 CPU 或核心组成。当处理器数量超过 16 个左