版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、并行计算基础知识,赵俊锋西北工业大学理学院zhaojf_77,主要内容,并行计算环境并行算法基础什么问题可以并行化串行程序如何改为并行程序,为什么需要并行计算机,问题:科学和工程问题的数值模拟与仿真计算密集数据密集网络密集三种混合要求:在合理的时限内完成计算任务秒级制造业分钟级短时天气预报(当天)小时级中期天气预报(310日)尽可能快长期天气预报(气候)可计算湍流模拟,什么任务适合在超级计算环境内运行?,一般来说,计算量极大而使PC不能满足要求或者根本不能计算的任务是适合在超级计算环境中运行的。比如,(1)需要分布式并行处理的科学计算任务,包括:由于对计算资源要求过大而使现在的硬件条件无法满足
2、要求的计算任务,通过将串行源代码改编为并行源代码来进行计算,或者有通行的并行计算程序(商业或非商业);(2)虽然可以计算但是时间过长的问题等。,并行计算机的分类,并行向量机(PVP)对称多处理共享存储多处理机(SMP)大规模并行处理机(MPP)工作站(微机)机群(COW)分布式共享存储多处理机(DSM),COW(ClusterofWorkstation),一个节点可以是一台PC或SMP;各节点一般由商品化的网络互连;机群节点通过使用标准网络协议(TCP/IP)来通信。使用的是千兆网。每个节点一般有本地磁盘;节点上的网络接口是松散耦合到I/O总线上;每个节点有一个完整的操作系统,但是通过中间层实
3、现了单一系统映像(SSI)。,单一系统映像,单一系统映像(SingleSystemImage,SSI)并不是指系统中仅有唯一的操作系统映像驻留在内存,而只是感觉上,像一个单一系统。其基本特征是单一系统、单一控制、对称性、位置透明。采用SSI的主要目的,是使机群的使用、控制和维护似乎和一台工作站一样。单一系统映像包括单一入口点、单一文件层次结构、单一I/O空间、单一网络、单一作业管理系统、单一存储空间和单一进程空间。,并行机软件环境,操作系统方面:RatHat9.0程序设计语言:Fortran77、Fortran90、C/C+等,什么是并行算法,算法是解题的精确描述,是一组有穷的规则,它规定了解
4、决某一特定类型问题的一系列运算。并行计算时可同时求解的诸进程的集合,这些进程相互作用和协调动作,并最终获得问题的求解并行算法就是对并行计算过程的精确描述,并行算法的分类,非数值计算并行算法数值计算并行算法,基于矩阵运算、多项式求解、线性方程组求解等代数关系运算的计算问题。,传统的串行计算,分为“指令”和“数据”两个部分,并在程序执行时“独立地申请和占有”内存空间,且所有计算均局限于该内存空间。,并行计算将进程相对独立的分配于不同的节点上,由各自独立的操作系统调度,享有独立的CPU和内存资源(内存可以共享);进程间相互信息交换通过消息传递;,进程1,进程2,进程间通信,现代操作系统提供基本的系统
5、调用函数,允许位于同一台处理机或不同处理机的多个进程之间相互交流信息,操作具体表现为三种形式:通信、同步和聚集。以上的三种形式统称为进程间通信,操作的具体数据对象为消息,具体的操作为消息传递。,通信,进程间的数据传递称为进程间通信。在同一台处理机中,通信可以读/写操作系统提供的共享数据缓存区来实现。不同处理机中,通信可以通过网络来实现。,同步,同步是使位于相同或不同处理机中的多个进程之间的相互等待的操作,它要求进程的所有操作均必须等待到达某一控制状态之后才并行。,聚集,聚集将位于相同后不同处理机中的多个进程的局部结果综合起来,通过某种操作,例如最大值、最小值、累加和,产生一个新的结果,存储在某
6、个指定的或者所有的进程变量中。,共享存储的模型和语言(适于PVP,SMP,DSM)X3H5,PthreadOpenMP消息传递的模型和语言(适于MPP,Cluster,COW)MPI(Fortran,C,Gamess,Vasp)PVM(Fortran,C)数据并行的模型和语言(适于在MPP/Cluster上实现SPMD应用)Fortran90HPF(HighPerformanceFortran),并行编程环境,MPI(MessagePassingInterface),在当前所有的消息传递软件中,最重要最流行的是MPI,它能运行在所有的并行平台上。程序设计语言支持C,Fortran等。,MPI已
7、经成为一种标准,它以与语言独立的形式来定义这个接口库,这个定义不包含任何专用于某个特别的制造商、操作系统或硬件的特性.由于这个原因,MPI在并行计算界被广泛地接受.,MPI标准的实现包括MPICH、LAM、IBMMPL等多个版本,最常用和稳定的是MPICH。它提供了与C、Fortran语言的绑定。,我们可以将MPI看成一个“库”,目前使用的消息传递库是MPICH1.2,共有上百个接口,在FORTRAN77和C语言中可以直接对这些函数进行调用。多个进程通过调用这些函数(类似调用子程序),进行通信;,Include文件,C语言应用程序应有#include“mpi.h”Fortran语言应用程序应有
8、#includempif.h,MPI并行编程模式,单程序多数据流模式(SPMD)多程序多数据流模式(MPMD)为了降低使用和维护并行应用软件的复杂度,一般采用SPMD模式,MPI程序的SPMD执行模式,一个程序同时启动多份,形成多个独立的进程,在不同的处理机上运行,拥有独立的内存空间,进程间通信通过调用MPI函数来实现;,SPMD模式:单程序多数据流,例一,进程0发送一个整数给进程1;进程1将该数加1,传递给进程2;进程2再将该数加1,再传递给进程3;依次类推,最后,进程N-1将该数传递给进程0,由进程1负责广播该数给所有进程,并打印输出。,编译运行命令,mpif77oexamexam.fmp
9、irunnp4exam其中,exam.f指需要编译的源文件,o表示生成输出文件,exam指输出文件名,np表示进程数。使用mpicc和mpif77省略了有关MPI的路径设置,什么可以并行,能否将顺序执行的程序转换成语义等价的、可并行执行的程序,主要取决于程序的结构形式,特别是其中的数据相关性。,P1:AB+CP2:DAB其中,变量A是导致P1和P2发生数据相关的原因。为了保证程序执行的语义正确性,变量A必须是先在P1中写入后方可从P2中读出,即必须先写后读。显然,P1和P2不能并行执行。,数据相关,数据反相关,P1:ABCP2:CE+DP1通过变量C数据相关于P2。为保证语义正确性,必须等P1
10、将变量C读出后,P2方可向变量C进行写入操作,即必须先读后写。也不可并行化,数据输出相关,P1:AB+CP2:ADE为保证语义正确性,必须保证P1先写入A,然后允许P2再写入A。除了上述3种相关外,还存在一种特殊情况,即两个程序段的输入变量互为输出变量。此时,两者必须并行执行,方可保证语义的正确性。这就要求硬件机构能保证两者进行同步读写。但若两个处理机各带有局部存储器,则可降低同步要求。,相关性与可并行化,伯恩斯坦准则I1O2,即P1的输入变量集与P2的输出变量集不相交;I2O1,即P2的输入变量集与P1的输出变量集不相交;O1O2,即P1和P2的输出变量集不相交可并行处理,如何将串行程序改为
11、并行,为理解创建一个并行程序中的步骤,让我们首先定义三个重要的概念:任务,进程和处理器。,任务,任务是程序要完成的一个工作,其内容和大小是随意的,它是并行程序所能处理的并发性最小的单元;即一个任务只能由一个处理器执行,处理器之间的并发性只能在任务之间开发。,进程,进程(我们也称为线程)是一个完成任务的实体。一个并行程序由许多合作的进程构成,每个完成程序中任务的一个子集。通过某种分配机制,任务被分配给进程。进程完成其任务的方式是通过在机器的物理处理器上执行,进程与处理器的区别,并行化的观点,:处理器是物理资源,进程是抽象,或者虚拟化多处理器的一种方便的方式:我们通过进程,而不是处理器来写并行程序
12、;将进程映射到处理器是下一步。在一次程序的执行中,进程数不一定要等于处理器数。如果进程多,一个处理器有可能要执行多个进程;如果进程少,某些处理器则要闲置,串行程序并行化的几个步骤,从一个串行程序得到一个并行程序的工作由四个步骤构成:1.将计算的问题分解成任务2.将任务分配给进程3.在进程之间组织必要的数据访问,通信,和同步。4.将进程映射或绑定到处理器,在以上的几个步骤中,并没有考虑并行的效率问题。考虑到消息传递的开销是计算开销的10倍以上,一般来说,如果在应用的一部分中,计算的时间是分钟级的而数据传输的时间是秒级的,那么这一部分可以并行执行。,估计并行的效率,例二:矩阵相乘,C=AB其中A和B分别是mk和kn矩阵,C是mn矩阵.不失一般性,假设m=mp,k=kp和n=np。,串行程序,doubleaNN,bNN,cNN;for(i=0;iN;i+)for(j=0;jN;j+)for(k=0;kN;k+)cij+=aik*bkj;,并行实现,先将矩阵分块,将存放在中,使数据在处理机中不重复。矩阵A在各自进程中保持不变,B在处理机中每次循环向前移动一个处理机。,对应于前面所提到的四个步骤,矩阵乘法并行算法可做如下表述:1、
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 宫颈机能不全诊治中国专家共识核心要点解读2026
- 银行现金自助机具布设标准
- 金融机构误导销售禁止条款
- 春运运力保障列车调配方案
- 2026年海洋经济行业创新报告及未来五至十年发展分析报告
- 2026年数字孪生在制造业的应用创新报告
- 《智能语音识别在车载系统中的语音识别率提升与错误率降低策略》教学研究课题报告
- 2026年智能零售电商行业创新报告
- 2026年智能能源智能监测系统创新报告
- 2025年智能门锁五年技术革新生物识别市场分析报告
- 中国哲学简史-冯友兰(英文版)
- GB/T 10592-2023高低温试验箱技术条件
- CB马达安装维护手册中文
- 2023年道县小升初英语考试题库及答案解析
- JJG 693-2011可燃气体检测报警器
- JJG 1148-2018电动汽车交流充电桩
- GB/T 18707.1-2002机械振动评价车辆座椅振动的实验室方法第1部分:基本要求
- GB/T 17044-2020钢丝绳芯输送带覆盖层与带芯层粘合强度试验
- GB/T 12706.4-2020额定电压1 kV(Um=1.2 kV)到35 kV(Um=40.5 kV)挤包绝缘电力电缆及附件第4部分:额定电压6 kV(Um=7.2 kV)到35 kV(Um=40.5 kV)电力电缆附件试验要求
- 科技档案管理培训课件
- 县乡两级人大换届选举工作总流程图
评论
0/150
提交评论