研究生课程程序语言设计原理教程-第13、14章汇.ppt

研究生课程程序语言设计原理教程-第13、14章汇.ppt

  1. 1、本文档共129页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
研究生课程程序语言设计原理教程-第13、14章汇

并行程序设计语言 第13,14章 多CPU 网络 主要内容: 并发程序设计的基本概念 并发程序带来的问题 需要解决的基本问题 程序语言示例 基本概念 并行程序设计语言 并行程序设计模型 并行计算的硬件环境 程序与进程,线程与进程 原子动作 进程交互 基本概念 并行程序设计语言要具有描述程序并行性的能力。针对并行系统,一般而言,程序并行性分为控制并行性和数据并行性。 控制并行性是指两个不同操作可同时进行,数据并行性是指对不同的数据同时执行同一操作。 基本概念 并行程序的基本计算单位是进程,它与有关代码段执行的操作相对应。进程的粒度在不同的程序设计模型和应用程序中是不一样的。 基本概念 并行程序设计的模型: 1.共享变量模型 2.消息传递模型 3.数据并行模型 4.面向对象模型 基本概念 1.共享变量模型 共享变量模型用限定作用范围和访问权限的办法,对进程寻址空间实行共享或限制,即利用共享变量实现并行进程间的通信。为了保证能有序地进行IPC(Inter-Process Communication ),可利用互斥特性保证数据一致性与同步。 基本概念 共享变量模型与传统的顺序程序设计有许多相似之处。程序员只需关心程序中的可并行进程,而无需关心进程间的数据交换问题。共享变量的数据一致性、临界区的保护性访问由编译器与并行系统来维护。 共享变量模型具有编程简单、易于控制的特点,但若在多处理机、机群系统上实现时则会导致系统开销增大,因此共享变量模型常常用于共享存储多处理机,而不用于多处理机、机群系统。 基本概念 2.消息传递模型 消息传递模型是指程序中不同进程之间通过显式方法(如函数调用、运算符等)传递消息来相互通信,实现进程之间的数据交换、同步控制等。消息包括指令、数据、同步信号等。 基本概念 程序员不仅要关心程序中可并行成分的划分,而且还需关心进程间的数据交换。消息的发送、接收处理将增加并行程序开发的复杂度。但是它适用于多种并行系统,如多处理机、可扩展机群系统等,且具有灵活、高效的特点。 基本概念 3.数据并行模型 数据并行模型是指将数据分布于不同的处理单元,这些处理单元对分布数据执行相同的操作。数据并行程序使用预先分布好的数据集。运算操作之间进行数据交换操作。 基本概念 数据并行操作的同步是在编译而不是在运行时完成的。数据并行模型中的SIMD模型可用于向量机、多处理机等并行计算机,而SPMD模型则可用于多处理机、机群系统,但相对而言它缺乏灵活性。 基本概念 4.面向对象模型 面向对象模型是近几年随着面向对象技术的发展而提出的。它基于消息传递,但并行处理单位却是对象。在这种模型中,对象是动态建立和控制的。处理是通过对象间发送和接收消息来完成。面向对象模型具有简洁灵活的特点,适合多种平台,但系统开销较大。 基本概念 并行程序设计语言就是在这些并行程序设计模型的基础上,提出对并行性的描述方法、并行单元间协同的描述方法,以及该语言适用的并行计算环境。 基本概念 无论是哪种模型,那个语言,都需要解决两个问题:进程管理和通讯。 事实上,模型之间的区别主要体现在对通讯实现方式的不一样上。 基本概念 硬件环境 单机/多机:并行/并发 根据Flynn的分类法: SISD:一组可执行代码装入一个机器内存后, 以一个CPU, 一组数据执行一次。它属于SISD执行模式(即单指令流单数据流的简写)。物理上对应为单处理器的顺序程序。 SIMD:一组可执行代码装入后, 可以依次执行多个进程, 它属于SIMD, 单指令流多数据流。对应为单机多处理器的主机或单CPU的分时系统、阵列机组。 MISD:在多机或多处理器上各有自己的可执行代码。协同完成一组数据的计算, 是MISD多指令流单数据流系统。对应为分布数据流机。 MIMD:MIMD则为多指令流多数据流系统, 对应为一般分布式系统(有多个不同的处理机,运行各不相同的进程)。局域网和广域网就属于此列。如果网上协同运行一个程序作业, 则为以MIMD系统实现的并发程序。 基本概念 并行程序设计语言都要解决: 并行进程的描述与管理 进程间数据分布、传递的描述与管理 以及进程间同步协同的描述与管理问题。 基本概念 一个程序的一次执行叫做一个进程(process) 基本概念 基本概念 线程是共享资源的轻量级进程(lightweight process),它也有线程执行状态,也有其静态存储和局部变量。 基本概念 传统的OS支持单线程的计算模式。单用户的MS-DOS和多用户的UNIX就是例子,即使UNIX是多线程交互,每一进程之中只有一线程。 基本概念 原子动作是一次“立即”执行完的“顺序”动作。至于是否真正不再分就不一定了。原子动作一般定义在语句级的事件(event)上 事件是本程序表示的状态有了变

文档评论(0)

liwenhua00 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档