并行计算模式
同时应用多个计算资源解决一个计算问题
每个部分的指令在不同处理器上执行
概念和名词
Flynn矩阵
单指令单数据 SISD
单指令多数据 SIMD
多指令单数据 MISD
多指令多数据 MIMD
常见名词
Task 任务
Parallel Task 并行任务
Serial Execution 串行执行
Parallel Execution 并行执行
Shared Memory 共享存储
Distributed Memory 分布式存储
Communication 通信
Synchronization 同步
Granularity 粒度
Observed Speedup 加速比
Parallel Overhead 并行开销
Scalability 可扩展性
存储器架构
Shared Memory, Distributed Memory, Hybrid Distributed-Shared Memory
并行编程模型
共享存储模型
线程模型
消息传递模型
数据并行模型
设计并行处理程序和系统
自动和手动并行
理解问题和程序
分块分割:数据的分块和任务的分割
通信:不同的分块分割之间数据的交互
同步
数据依赖
负载均衡:多个独立的任务之间的负载
粒度
I/O
成本
性能分析和优化
Amdahl’s Law
程序可能的加速比取决于可以被并行化的部分
s p e e d u p = 1 1 − p speedup = \f