并发程序设计语言 第13,14章
并发程序设计语言 第13,14章
多CPU Concurrent 网络 大规模软件 Declarative 更关注如何描述问题本身 Deterministic Concurrent 冯诺依曼单机 网络环境 更关注描述冯诺依曼机如何执行 不同的软件开发方法 Im perative 小规模软件
• 多CPU • 网络 Concurrent Declarative Imperative Deterministic Concurrent 更关注如何描述问题本身 更关注描述冯诺依曼机如何执行 冯诺依曼单机 网络环境 小规模软件 大规模软件 不同的软件开发方法
主要内容 并发程序设计的基本概念 并发程序带来的问题 需要解决的基本问题 程序语言示例
主要内容: • 并发程序设计的基本概念 • 并发程序带来的问题 • 需要解决的基本问题 • 程序语言示例
并行与并发 并发( concurrency)和并行( parallelism)的概念 并发性( concurrency),又称共行性,是指能处理多个同时性活动的能力,并发事件之间不一定要 同一时刻发生 并行( parallelism)是指同时发生的两个并发事件,具有并发的含义,而并发则不一定并行 另一种理解: 并行强调的是多个执行活动同时处于运行状态之中,强调其相互独立性。这里关心并行算法、并行 系统、并行体系结构等等 并发强调的是多个执行活动之间的关系和相互作用,这里关心的是互斥、同步、通讯、资源的共享 和竞争等等 第三种解读: 并发和并行的区别就是一个处理器同时处理多个任务和多个处理器或者是多核的处理器同时处理多 个不同的任务。前者是逻辑上的同时发生( simultaneous),而后者是物理上的同时发生
并行与并发 并发(concurrency)和并行(parallelism)的概念 • 并发性(concurrency),又称共行性,是指能处理多个同时性活动的能力,并发事件之间不一定要 同一时刻发生。 • 并行(parallelism)是指同时发生的两个并发事件,具有并发的含义,而并发则不一定并行。 另一种理解: • 并行强调的是多个执行活动同时处于运行状态之中,强调其相互独立性。这里关心并行算法、并行 系统、并行体系结构等等 • 并发强调的是多个执行活动之间的关系和相互作用,这里关心的是互斥、同步、通讯、资源的共享 和竞争等等 第三种解读: • 并发和并行的区别就是一个处理器同时处理多个任务和多个处理器或者是多核的处理器同时处理多 个不同的任务。前者是逻辑上的同时发生(simultaneous),而后者是物理上的同时发生
基本概念 并行程序设计模型 并行计算的硬件环境 程序与进程,线程与进程 ·原子动作 ·进程交互
基本概念 • 并行程序设计模型 • 并行计算的硬件环境 • 程序与进程,线程与进程 • 原子动作 • 进程交互
基本概念 并行程序的基本计算单位是进程,它与 有关代码段执行的操作相对应。进程的 粒度在不同的程序设计模型和应用程序 中是不一样的
基本概念 • 并行程序的基本计算单位是进程,它与 有关代码段执行的操作相对应。进程的 粒度在不同的程序设计模型和应用程序 中是不一样的
基本概念 并行程序设计的模型: 1.共享变量模型 是目前最灵活, 最常用的模型 消息传递模型 3.数据并行模型 新的并行模型 4.面向对象模型
基本概念 • 并行程序设计的模型: – 1. 共享变量模型 – 2. 消息传递模型 – 3. 数据并行模型 – 4. 面向对象模型 是目前最灵活, 最常用的模型 新的并行模型
基本概念 1.共享变量模型 共享变量模型用限定作用范围和访问权限的办法,对进程寻 址空间实行共享或限制,即利用共享变量实现并行进程间的 通信。为了保证能有序地进行 IPC(Inter-Process Communication),可利用互斥特性保证数据一致性与同步。 共享变量模型与传统的顺序程序设计有许多相似之处。程序 员只需关心程序中的可并行进程,而无需关心进程间的数据 交换问题。共享变量的数据一致性、临界区的保护性访问由 编译器与并行系统来维护。 共享变量模型具有编程简单、易于控制的特点,但若在多处 理机、机群系统上实现时则会导致系统开销增大,因此共享 变量模型常常用于共享存储多处理机,而不用于多处理机、 机群系统
基本概念 1. 共享变量模型 – 共享变量模型用限定作用范围和访问权限的办法,对进程寻 址空间实行共享或限制,即利用共享变量实现并行进程间的 通信。为了保证能有序地进行IPC(Inter-Process Communication ),可利用互斥特性保证数据一致性与同步。 – 共享变量模型与传统的顺序程序设计有许多相似之处。程序 员只需关心程序中的可并行进程,而无需关心进程间的数据 交换问题。共享变量的数据一致性、临界区的保护性访问由 编译器与并行系统来维护。 – 共享变量模型具有编程简单、易于控制的特点,但若在多处 理机、机群系统上实现时则会导致系统开销增大,因此共享 变量模型常常用于共享存储多处理机,而不用于多处理机、 机群系统
基本概念 2.消息传递模型 消息传递模型是指程序中不同进程之间通过显式方 法(如函数调用、运算符等)传递消息来相互通信, 实现进程之间的数据交换、同步控制等。消息包括 指令、数据、同步信号等。 程序员不仅要关心程序中可并行成分的划分,而且 还需关心进程间的数据交换。消息的发送、接收处 理将增加并行程序开发的复杂度。但是它适用于多 种并行系统,如多处理机、可扩展机群系统等,且 具有灵活、高效的特点
基本概念 2. 消息传递模型 – 消息传递模型是指程序中不同进程之间通过显式方 法(如函数调用、运算符等)传递消息来相互通信, 实现进程之间的数据交换、同步控制等。消息包括 指令、数据、同步信号等。 – 程序员不仅要关心程序中可并行成分的划分,而且 还需关心进程间的数据交换。消息的发送、接收处 理将增加并行程序开发的复杂度。但是它适用于多 种并行系统,如多处理机、可扩展机群系统等,且 具有灵活、高效的特点
基本概念 3.数据并行模型 数据并行模型是指将数据分布于不同的处理单元, 这些处理单元对分布数据执行相同的操作。数据并 行程序使用预先分布好的数据集。运算操作之间进 数据交换操作 数据并行操作的同步是在编译而不是在运行时完成 的。数据并行模型中的SIMD模型可用于向量机、 多处理机等并行计算机,而SPMD模型则可用于多 处理机、机群系统
基本概念 3. 数据并行模型 – 数据并行模型是指将数据分布于不同的处理单元, 这些处理单元对分布数据执行相同的操作。数据并 行程序使用预先分布好的数据集。运算操作之间进 行数据交换操作。 – 数据并行操作的同步是在编译而不是在运行时完成 的。数据并行模型中的SIMD模型可用于向量机、 多处理机等并行计算机,而SPMD模型则可用于多 处理机、机群系统