1、并行计算
并行计算是一种计算类型,其中许多计算或者过程的执行时同时进行的。

2、硬件
2.1 超级计算机

2.2 并行计算单元
- 隐式并行
并行执行不同的处理器指令;
自动发生;
程序员只能间接影响。 - Multi-core/Multi-CPU
计算单元共享相同的内存 - 集群
通过交互链接的独立系统
每个系统有自己的内存 - 加速器
比通用CPU更快的速度执行某些任务
做出不同的权衡
通常有自己的内存 - 向量处理器/向量单元
同时在多个数据块执行相同的操作
2.3 内存
- 共享内存(shared memory)
所有内存都可以被并行计算单元直接访问
有单个内存地址空间
程序员可能必须同时访问 - 分布式内存(shared memory)
内存被划分为不同计算单元专用的部分
内存的远程部分是通过互连来访问的
通常访问不一致
3 软件
3.1 进程、线程、任务(processes/threads/tasks)
- 进程
通常,多个进程可以共存,每个进程都有自己的相关资源集(内存、文件描述符等) - 线程
通常比进程小
一个进程通常有多个线程
同一个进程的线程可以共享资源 - 任务
通常比线程小
一个线程可以有多个任务
3.2 分布式状态和消息传递
- 分布式状态
程序状态被划分为不同进程私有的部分 - 消息传递
部分程序状态从一个进程转移到另一个进程以进行协调
基本操作是活动发送与接收 - MPI
实施一种分布式状态和消息传递的形式
3.3 共享状态与同步
- 共享状态
整个程序状态可以直接被并行线程直接访问 - 同步synchronization
线程可以使用公共的负载和存储操作共享状态 - OpenMP
实现共享状态与同步