分布式与并行计算报告.doc
《分布式与并行计算报告.doc》由会员分享,可在线阅读,更多相关《分布式与并行计算报告.doc(8页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、并行计算技术与其应用简介并行计算技术与其应用简介XX(XXX,XX,XXX)摘摘要要:并行计算是实现高性能计算的主要技术手段。在本文中从并行计算的发展历程开始介绍,总结了并行计算在发展过程中所面临的问题以与其发展历程中出现的重要技术。通过分析在当前比较常用的实现并行计算的框架和技术,来对并行计算的现状进行阐述。常用的并行架构分为 SMP(多处理系统)、NUMA(非统一存存储)、MPP(巨型并行处理)以与集群。涉与并行计算的编程模型有 MPI、PVM、OpenMP、TBB 与Cilk+等。并结合当前研究比较多的云计算和大数据来探讨并行计算的应用。最后通过 MPI 编程模型,进行了并行编程的简单实
2、验。关键词:关键词:并行计算;框架;编写模型;应用;实验A A SuccinctSuccinct SurveySurvey aboutabout ParallelParallel ComputingComputing TechnologyTechnology andand ItIts sApplicationApplicationAbstract:Abstract:Parallel computing is the main technology to implement high performance computing.Thispaper starts from the history
3、of the development of Parallel Computing.It summarizes the problemsfaced in the development of parallel computing and the important technologies in the course of itsdevelopment.Through the analysis of framework and technology commonly used in parallel computingcurrently,to explain the current situat
4、ion of parallel computing.Framework commonly used inparallel are SMP(multi processing system),NUMA(non uniform memory storage),MPP(massively parallelprocessing)and cluster.The programming models of parallel computing are MPI,PVM,OpenMP,TBB andCilk+,etc.Explored the application of parallel computing
5、combined with cloud computing and bigdata which are very popular in current research.Finally,through the MPI programming model,a simpleexperiment of parallel programming is carried out.KeyKey words:words:parallel computing;framework;programming model;application;experiment1 1 引言引言近年来多核处理器的快速发展,使得当前软
6、件技术面临巨大的挑战。单纯的提高单机性能,已经不能满足软件发展的需求,特别是在处理一些大的计算问题上,单机性能越发显得不足。在最近 AlphaGo 与世石的围棋大战中,AlphaGo 就使用了分布式并行计算技术,才能获得强大的搜索计算能力。并行计算正是在这种背景下,应运而生。并行计算或称平行计算时相对于串行计算来说的。它是一种一次可执行多个指令的算法,目的是提高计算速度,与通过扩大问题求解规模,解决大型而复杂的计算问题。可分为时间上的并行和空间上的并行。时间上的并行就是指流水线技术,而空间上的并行则是指用多个处理器并发的执行计算。其中空间上的并行,也是本文主要的关注点。并行计算(Paralle
7、l Computing)是指同时使用多种计算资源解决计算问题的过程,是提高计算机系统计算速度和处理能力的一种有效手段。它的基本思想是用多个处理器来协同求解同一问题,即将被求解的问题分解成若干个部分,各部分均由一个独立的处理机来并行计算。并行计算系统既可以是专门设计的,含有多个处理器的超级计算机,也可以是以某种方式互联的若干台的独立计算机构成的集群。通过并行计算集群完成数据的处理,再将处理的结果返回给用户。目前常用的并行计算技术中,有调用系统函数启动多线程以与利用多种并行编程语言开发并行程序,常用的并行模型有 MPI、PVM、OpenMP、TBB、Cilk+等。利用这些并行技术可以充分利用多核资
8、源适应目前快速发展的社会需求。并行技术不仅要提高并行效率,也要在一定程度上减轻软件开发人员负担,如近年来的TBB、Cilk+并行模型就在一定程度上减少了开发难度,提高了开发效率,使得并行软件开发人员把更多精力2/8专注于如何提高算法本身效率,而非把时间和精力放在如何去并行一个算法。文献1回顾了并行计算技术六十多年的发展历史,并分析了其发展的未来趋势和所面临的可拓展性“墙”。文献2对大规模 MPI 计算中,当前常用的容错机制和多模冗余带来的开销进行了分析,提出了一种可拓展三模冗余容错机制。文献3则阐述了并行计算和云计算之间的关系,并介绍了并行计算在云计算中运用的一些指导原则。文献4分析了在大数据
9、时代,并行计算面临的挑战和基于,综述了面向批处理、面向流处理、面向图数据以与面向存等几类并行计算模型的相关研究。文献5对并行计算模型进行了概述,介绍了理想计算模型的特征,讨论了一些典型的计算模型,综述了目前并行计算模型在异构计算环境的发展情况。文献6针对传统单一的并行计算模型变得越来越复杂,对并行计算个阶段针对性不强,提出了一种分层并行计算模型的思想。文献7针对在专业集群中进行并行计算的处理,存在费用高、管理困难和操作复杂等问题,利用 PC 和以太网相连的实验环境,采用集群工作框架和并行计算的关键技术,提出基于 Linux 集群的并行计算系统环境,并在该环境上对系统性能进行了测试。文献8在 C
10、PU/GPU 协同并行计算这一新兴领域,对当前的研究工作进行了综述。根据所用计算资源的规模将 CPU/GPU 协同并行计算研究划分为三类,尔后从立项依据、研究容和研究方法等方面重点介绍了几个混合计算项目,并指出了可进一步研究的方向,以期为领域科学家进行协同并行计算研究提供一定参考。文献9中对图形处理器中的相关问题进行研究。提出了统一计算架构(CUDA)为实现 GPU 通用计算提供了高效、简便的方法因此,建立了基于 GPU 通用计算平台的中心差分格式的显式有限元并行计算方法该方法针对 GPU 计算的特点,对串行算法的流程进行了优化和调整,通过采用线程与单元或节点的一一映射策略,实现了迭代过程的完
11、全并行化。2 2 并行计算发展的三个重要阶段并行计算发展的三个重要阶段并行计算是实现超高计算性能的主要技术手段,回顾其发展的历史进程,可以看出并行计算的发展从整体上跨越了三个阶段。2 21 1 AmdahlAmdahl 公式与适度并行公式与适度并行早在二十世纪四十年代中后期,现代电子计算机的鼻祖诺依曼就提出了用并行计算提高计算机性能的技术途径。所谓并行计算,就是采用多个运算部件或多台计算机共同开展计算任务。理论上,并行多少台计算机就可以获得多少倍的运算速度,但实际加速能力往往和应用特征密切相关。1967 年,Amdahl 提出了著名的计算性能加速比公式(也称 Amdahl 定律):)1(1nf
12、nTTSnsA(1)公式(1)中的sT表示应用的串行版本程序的执行时间,f 表示应用中不能被并行化部分的工作量占整个程序工作量的比率,n 表示并行系统的处理器数目。nT表示应用的并行版本程序和 n 个处理器上的执行时间。这些概念和理论方面的基础研究极推动了适度并行计算技术的实用化。2 22 2 GustafsonGustafson 公式与大规模并行公式与大规模并行80 年代后期学术界展开了一次很大的讨论,大家对并行是否有前途众说纷坛,问题的焦点是-能不能通过并行规模增大来持续提高计算机性能。1988 年,美国科学家 Gustafson 在大量实际物理问题并行计算过程中总结了一个著名公式,发表在
13、Communication of ACM上。这篇论文只有两页,但它揭示了一个规律,即 Gustafson 通过他的应用实践发现,很多程序随着应用规模的扩大,程序中不能被并行化部分工作量的绝对量基本保持不变。而不能被并行化部分工作量占总工作量的相对比例 f 会相应减小。基于这个规律,他提出了著名的 Gustafson 加速比公式:)1(fnfTTSnsG(2)从公式可以得出,当 f 随着计算规模扩大而不断缩小时,处理器数如果增多,一个程序的加速比还是可以随着处理器的增多而提升的。这个公式不是一个精细的性能评估公式,而是一个思想性的公式,它揭示了大规模并行的要旨:并行计算机的实际性能和它所运行的并
14、行程序特征密切相关。在大规模并行计算机上要3/8取得高实用计算性能,在其上运行的并行程序必须具有串行计算负载保持不变,并行计算负载随着计算机规模的扩大而扩大的特点,这样的程序通常成为可扩展并行程序。在提高大规模并行计算使用效率的过程中,能否设计出可扩展并行算法和可扩展并行程序,与大规模并行计算机系统的研制同等重要。2 23 3 效能评价模型与高效能并行效能评价模型与高效能并行高性能计算机应该向什么方向发展,2002 年美国国防部(DARPA)提出的“高效能计算系统(HPCS)”计划,着眼于高性能向高效能的转变,认为高效能计算机系统不仅要关注很高的计算性能,还要关注系统的实用性能、可编程性、可移
15、植性、系统鲁棒性和经济可行性。于是基于经济学中产生率的概念和效用理论逐渐取代了以往单一的计算性能评价模型。效能模型框架如下:),(),(),(TMPCTPUUTMP(3)其中,T 为问题 P 解决的时间(Time-to-solution),M 是并行计算机系统,U 为效用函数,C 为在系统M 上 T 时间解决问题 P 所投入的最小成本函数。该效能度量模型综合考虑了并行系统开发(Development)和运行(Execution)两种状态,将开发的时间和系统运行的时间统一到问题解决时间 T 中。虽然,围绕这一公式标志着高性能计算机学术界、产业界对大规模并行计算机发展趋势产生了新的认识。3 3 并
16、行编程模型并行编程模型并行编程可以调用系统函数启动多线程,也可以利用并行编程模型,如常用的并行模型有 MPI、PVM、OpenMP、TBB 与 Cilk+等。3.13.1 MPIMPI 简介简介MPI(Message Passing Interface)是基于消息传递的并行编程模型。消息传递指的是并行执行的各个进程具有自己独立的堆栈和代码段,作为互补相关的多个程序独立执行,进程之间的通信通过显式地调用通信函数来完成。(1)MPI 程序基本函数MPI_Init 用来初始化 MPI 执行环境,建立多个 MPI 进程之间的联系,为后续通信做准备。MPI_Finalize则是结束 MPI 执行环境。这
17、两个函数之间定义 MPI 程序的并行区域。MPI_Comm_rank 来表示各个 MPI 进程。MPI_Comn_size 用来表示进程组中有多少个进程,返回整型的错误值,同时有两个函数参数,MPI_Comn类型的通信域,标识参与计算的 MPI 进程组,如 MPI_COMM_WORLD;整数指标,返回相应进程组中的进程数。(2)MPI 性能分析与优化举例MPI 消息传递开销由两部分组成:一部分是通信固有的延迟;另一部分是消息传递开销,与消息的数据量和网络带宽有关。时间消耗可以用下面的式子表示:serialcommTotalTTT(4)其中,TotalT、commT、serialT分别表示程序总
18、用时、通信用时和串行部分用时。而通信用时一般可作如下分解:miCiniiscommiTTwBntT11/(5)其中,n 为点对点通信次数,m 为集群通信次数,st为通信固定延迟,iB为第 i 次通信的容量,w 为网络带环,iT为负载不平衡造成的时间消耗,iCT集群通信耗时。(3)解决负载均衡问题在并行计算中,若各个处理器上的执行时间不同,因同步会使先完成的处理器等待未完成的处理器,此时应该考虑负载均衡问题,是的资源得到合理利用。负载均衡分为:静态负载均衡与动态负载均衡。静态负载均衡使用与计算前可以准确估算总的负载,且这些负载容易平均划分给各个进程的情况。对于实现不知道负载总数,或者总负载不易平
19、均划分的情况,需要动态负载均衡策略来解决。4/83.23.2 PVMPVM 简介简介PVM 是一个在网络上的虚拟并行机系统的软件包,它允许将网络上基于 UNIX 操作系统的并行机和单处理机的集合当成一台单一的并行虚拟机来使用。PVM 支持用户采用消息传递方式编写并行程序。计算以任务为单位,一个任务就是一个 UNIX 进程,每个任务都有一个 taskid 来标识(不同于进程号)。PVM 支持在虚拟机中自动加载任务运行,任务间可以相互通讯以与同步,在 PVM 系统中,一个任务呗加载到哪个节点上去运行,PVM 就允许用户指定任务被加载的节点,这样就方便了用户编写并行程序。3.33.3 OpenMPO
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 分布式 并行 计算 报告
限制150内