1、第三章 并行程序开发,并行编程环境,并行自动编译扩充现有编译系统的并行功能。1 数据并行并行编程语言在通用的串行语言的基础上进行扩充使其具有描述并行程序的功能。 Fortran 90, Fortran 90D, HPF等。,2 任务并行消息传递环境 (1)PVM(Parallel Virtual Machine ):它具有通用性强及系统规模小的特点。支持多用户及多任务。 提供便于使用的通信原语 。,提出了进程组的概念。 可无差别地运行在多种操作系统上 。 具有容错功能 。,(2)MPI(Message Passing Interface )MPI的实现方式多样化,统一编程界面可有多种开发工具。
2、 MPI能实现完全的异步通信。立即(Immediate)发送与接收完全能与计算重叠进行。,3 其他常用的并行编程环境 (1)MIMDizer: (2)Express: (3)C-Linda: (4)SCHEDULE:,并行编程方法,1 概述 共享变量方法:利用公共存储器中的共享变量来实现处理器间的通信,它主要用在共享存储结构中。 消息传递方法:不同处理器间必须通过网络传送消息来相互通信,并达到任务间需要的同步操作,它主要应用于分布式存储结构中。,数据并行:主要采用数据并行语言实现 。 面向对象的并行程序设计方法:对象是动态建立和控制的,处理是通过在对象间发送和接收消息来完成的。 函数程序设计方
3、法:采用纯Lisp,SISAL和Strand 88等函数程序设计语言进行编程。,2 数据并行方法 采用数据并行方法编程时,每个进程在同一数据结构的不同部分上进行操作,数据在处理器间是分布式的,程序有一个全局命名空间。所有消息传递对于编程人员是不可见的。 采用数据并行方法编程要使用并行数据结构,并且利用数据并行编译器进行编译。编译器将程序转换成标准代码,通过调用消息传递库将数据分发给所有处理器。,3 消息传递方法 采用消息传递方法编程,进程集合只使用各自的本地存储器,进程间通过发送和接收数据来进行通信,并且数据的传送需要每个进程合作进行。 4 两种方法的实现途径:5 两种方法的比较:成熟性、易编程性、灵活性、效率、可伸缩性、可移植性、以及成本。,并行编程要解决的基本问题,1确定性 2问题的划分3负载平衡4数据的分配和收集,5 执行环境(可移植性) 6 性能调整 7 开销8 伸缩性,PVM简介,PVM包括两个主要部分: 在每台处理器上运行的PVM后台进程 进行处理器控制和消息传递需要调用的库接口函数。,