第2章并行编程基础 1并行编程综述 2进程任务和线程 {3并行性问题 4通信问题 哈尔滨工业大学计算机科学与技术学院
哈尔滨工业大学计算机科学与技术学院 第2章 并行编程基础 ◼ 1 并行编程综述 ◼ 2 进程任务和线程 ◼ 3 并行性问题 ◼4 通信问题
4通信问题 交互操作称为通信 这里讨论范围广一些: 在并行系统中需支持的通信操 作 口通信方式和模式 竞争通信和合作通信 哈尔滨工业大学计算机科学与技术学院
哈尔滨工业大学计算机科学与技术学院 4 通信问题 ◼交互操作称为通信 ◼这里讨论范围广一些: ❑在并行系统中需支持的通信操 作 ❑通信方式和模式 ❑竞争通信和合作通信
通信操作 分为三种: 数据交换(通信) 口同步 口聚集操作 这些操作常统称为通信 它们对体系结构和编程的支持有着不 同的要求 哈尔滨工业大学计算机科学与技术学院
哈尔滨工业大学计算机科学与技术学院 ◼一、通信操作 ◼分为三种: ❑数据交换(通信) ❑同步 ❑聚集操作 ◼ 这些操作常统称为通信 ◼ 它们对体系结构和编程的支持有着不 同的要求
1、通信 通信操作是指在两个或多个进程间传 送数据。 分类: 口在共享存储程序中的通信 口使用过程级并行性的多处理机程序 用派生过程 口在多计算机模型中的通信 哈尔滨工业大学计算机科学与技术学院
哈尔滨工业大学计算机科学与技术学院 ◼ 1、通信 ◼ 通信操作是指在两个或多个进程间传 送数据。 ◼ 分类: ❑在共享存储程序中的通信 ❑使用过程级并行性的多处理机程序 用派生过程 ❑在多计算机模型中的通信
2、同步操作 将导致进程的相互等待; 允许正在等待的进程去继续执行 哈尔滨工业大学计算机科学与技术学院
哈尔滨工业大学计算机科学与技术学院 ◼ 2、同步操作 ❑将导致进程的相互等待; ❑允许正在等待的进程去继续执行
不同类型的同步操作: (1)原子性 进程常需要以单原子操作方式完成 串操作: Parfor(i: =1: i<n: i++)i Atomic X=X+1; y=y-1; 完成隐式同步 哈尔滨工业大学计算机科学与技术学院
哈尔滨工业大学计算机科学与技术学院 ◼不同类型的同步操作: ◼ (1)原子性 ◼进程常需要以单原子操作方式完成 一串操作: Parfor(i:=1;i<n;i++){ Atomic {X=X+1;y=y-1;} } 完成隐式同步
(2)控制的同步 m使进程将处于等待状态: paor(i:=1;i≤n;i++){ Pi Barrier aQi 哈尔滨工业大学计算机科学与技术学院
哈尔滨工业大学计算机科学与技术学院 (2)控制的同步 ◼使进程将处于等待状态: ❑parfor(i:=1;i<n;i++){ ❑Pi ❑Barrier ❑Qi ❑}
例题:另一种控制同步的构造 是临界区: parfori: =1; i<n; i++) critical X+1; y=y-1; 哈尔滨工业大学计算机科学与技术学院
哈尔滨工业大学计算机科学与技术学院 ◼例题:另一种控制同步的构造 是临界区: ◼ parfor(i:=1;i<n;i++) ◼ { ◼ critical{X=X+1;y=y-1;} ◼ }
说明: 口应注意临界区是互斥的,因为每次 只允许一个进程执行这两条语句。 与此相反,只要原子性是强制的, 多个进程就可执行它们自己的原子 区。 哈尔滨工业大学计算机科学与技术学院
哈尔滨工业大学计算机科学与技术学院 ◼说明: ❑应注意临界区是互斥的,因为每次 只允许一个进程执行这两条语句。 ❑与此相反,只要原子性是强制的, 多个进程就可执行它们自己的原子 区
(3)数据同步 执行一个数据同步操作的进程将处 于等待状态,直至程序执行到达某 种数据状态。 如下面的代码段所示: parfor(i: =1: i<n: i++) Lock(S); X=X+1; y=y-1 un locks):I 哈尔滨工业大学计算机科学与技术学院
哈尔滨工业大学计算机科学与技术学院 ◼(3)数据同步 ◼ 执行一个数据同步操作的进程将处 于等待状态,直至程序执行到达某 种数据状态。 ◼ 如下面的代码段所示: parfor(i:=1:i<n;i++) {lock(S);X=X+1;y=y-1; unlock(S);}