并行计算综述
动画短片制作的参考文献

以下是一些动画短片制作的参考文献:1. 胡西伟. 基于三维动画与虚拟现实技术的理论研究[D]. 武汉大学,2005。
2. 王欣东. 数字艺术三个发展阶段之时间划分探析[J]. 影视技术,2011(3)。
3. 卢风顺,宋君强,银福康. CPU/GPU 协同并行计算研究综述[J]. 自然科学总论,2011(3).4. Nickolls J,Dally W J. The GPU Computing Era[J]. IEEE Computing Society,IEEE Micro,2010(5-6)。
5. Sanders J,Kandrot E. CUDA by Example-An Introduction to General-Purpose GPU Programming[M]. Addison-Wesley,2010(8-11)。
6. 方旭东. 面向大规模科学计算的CPU-GPU 异构并行技术研究[D]. 国防科学技术大学研究生院,2009。
7. 岳俊,邹进贵,何豫航. 基于CPU 与GPU/CUDA 的数字图像处理程序的性能比较[J]. 地理空间信息,2012(4)。
8. 张舒,褚艳利. GPU 高性能运算之CUDA[M]. 中国水利水电出版社,2009(14-120)。
9. Parent R. Computer Animation-Algorithms and Techniques[M]. Academic Press,2002(2-31)。
10. 徐鹏. 软件开发模型在三维动画模型制作中的应用[D]. 上海复旦大学软件学院,2009。
11. 刘姚新. 基于GPU 的实时绘制算法研究[D]. 重庆大学,2007。
12. Luebke D,Reedy M,Cohen J D,et al. Level of Detail for 3D Graphics[M]. Morgan Kaufmann Publisher,2003(P3-83)。
异构计算综述

异构计算(Heterogeneous computing)摘要异构计算(Heterogeneous computing)技术从80年代中期产生,由于它能经济有效地获取高性能计算能力、可扩展性好、计算资源利用率高、发展潜力巨大,目前已成为并行/分布计算领域中的研究热点之一。
本文主要介绍了CPU+GPU基础知识及其异构系统体系结构(CUDA)和基于OpenCL的异构系统,并且总结了两种结构的特点,从而对异构计算有了更深的理解。
关键词:异构计算CUDA OpenCL1、引言异构计算主要是指使用不同类型指令集和体系架构的计算单元组成系统的计算方式。
常见的计算单元类别包括CPU、GPU等协处理器、DSP、ASIC、FPGA 等。
我们常说的并行计算正是异构计算中的重要组成部分异构计算近年来得到更多关注,主要是因为通过提升CPU时钟频率和内核数量而提高计算能力的传统方式遇到了散热和能耗瓶颈。
而与此同时,GPU等专用计算单元虽然工作频率较低,具有更多的内核数和并行计算能力,总体性能/芯片面积的比和性能/功耗比都很高,却远远没有得到充分利用。
CPU的设计让其比较擅长于处理不规则数据结构和不可预测的存取模式,以及递归算法、分支密集型代码和单线程程序。
这类程序任务拥有复杂的指令调度、循环、分支、逻辑判断以及执行等步骤。
而GPU擅于处理规则数据结构和可预测存取模式。
而APU的设计理念则正是让CPU和GPU完美合作,集合两者的长处,用异构计算来达到整体性能的最佳化。
目前,已经有50款领先的应用能够利用AMD APU进行加速,而后续的应用也将陆续到来——异构计算普及的一刻应该是近在咫尺了。
1.1 CPU和GPU的本质区别(1) CPU特点a) CPU的目标是快速执行单一指令流;b) CPU将其用于乱序执行、寄存器重命名、分支预测以及巨大的cache上,这些设计都是为了加速单一线程的执行速度c) CPU利用cache来降低内存访问延迟d) CPU通过大量的cache和分支预测来降低延迟,这些机制消耗了大量的晶体管的电能;e) CPU每个核心支持1~2个线程;f) CPU切换线程的代价是数百个时钟周期;g) CPU通过SIMD(单指令多数据)来处理矢量数据;h)Intel的CPU没有集成内存控制器(2)GPU特点a) GPU的目标是快速执行大量的并行指令流。
《云计算技术》课程标准

《云计算技术》课程标准一、课程概述《云计算技术》课程旨在让学生了解和掌握云计算的基本概念、原理和技术,以及其在各行各业的应用。
通过本课程的学习,学生将能够理解云计算的基本架构、服务模型和关键技术,熟悉常见的云服务和应用,并能够根据实际需求选择和配置合适的云服务。
二、课程目标1、理解云计算的基本概念、原理和技术,掌握云计算的基本架构和服务模型。
2、熟悉常见的云服务和应用,了解云服务的优势和适用场景。
3、能够根据实际需求选择和配置合适的云服务,了解云服务的部署和运维。
4、掌握云安全的基本概念和防护措施,了解合规性和隐私保护的重要性。
5、通过实践操作,加深对云计算技术的理解和应用能力。
三、课程内容1、云计算的基本概念和原理2、云计算的架构和服务模型3、常见的云服务和应用4、云服务的选择和配置5、云服务的部署和运维6、云安全的概念和防护措施7、实践操作:云服务的配置和管理四、教学方法本课程采用理论教学和实践操作相结合的方式,以激发学生的学习兴趣和主动性,提高其实践操作能力。
具体方法包括:1、理论教学:通过课堂讲解、案例分析等方式,让学生了解云计算的基本概念、原理和技术,掌握云服务的选择、配置、部署和运维等方面的知识。
2、实践操作:通过实验室实践、项目实训等方式,让学生熟悉常见的云服务和应用,掌握云服务的配置和管理技能,加深对云计算技术的理解和应用能力。
3、小组讨论:通过小组讨论的方式,鼓励学生交流和分享学习心得和经验,促进团队协作和创新能力的培养。
4、在线学习:通过在线学习平台,让学生在课后自主进行拓展学习,提供学习的灵活性和个性化。
五、课程评价本课程的评价采用多种方式相结合的方式,包括:1、平时成绩:通过课堂表现、作业完成等情况进行评价。
2、期末考试:通过笔试或机试等方式进行期末考试评价。
3、项目实训:通过小组项目实训的方式进行实践操作评价。
4、学习报告:通过撰写学习报告的方式进行学习成果展示和总结评价。
云计算技术综述

云计算技术综述胡经国本文作者的话本文是根据有关文献和资料编写的《漫话云计算》系列文稿之一。
现作为云计算学习笔录,奉献给云计算业外读者,作为进一步学习和研究的参考。
希望能够得到大家的指教和喜欢!下面是正文一、云计算关键技术1、虚拟化技术在云计算中,虚拟化(Virtualization)是一种资源管理技术。
虚拟化技术,是指计算元件在虚拟的基础上而不是在真实的基础上运行。
它可以扩大硬件的容量,简化软件的重新配置过程,减少软件虚拟机相关开销和支持更广泛的操作系统。
通过虚拟化技术,可实现软件应用与底层硬件相隔离。
它包括将单个资源划分为多个虚拟资源的裂分模式;也包括将多个资源整合为一个虚拟资源的聚合模式。
例如,可以将一台物理服务器虚拟成为多台逻辑机器;也可以将多台物理服务器虚拟成为一台逻辑机器。
虚拟化技术根据对象可分为:计算虚拟化、存储虚拟化、网络虚拟化等。
计算虚拟化又分为:系统级虚拟化、应用级虚拟化和桌面虚拟化。
在云计算实现中,计算系统虚拟化,是一切建立在“云”上的服务与应用的基础。
虚拟化技术目前主要应用在CPU、操作系统、服务器等多个方面,是提高服务效率的最佳解决方案。
2、分布式海量数据存储云计算系统由大量服务器组成,同时为大量用户服务。
因此,云计算系统采用分布式存储的方式存储数据;用冗余存储的方式(集群计算、数据冗余和分布式存储)保证数据的可靠性。
冗余存储的方式,通过任务分解和集群,用低配置机器替代超级计算机的性能,来保证低成本。
这种方式保证分布式数据的高可用、高可靠和经济性,即为同一份数据存储多个副本。
云计算系统中广泛使用的数据存储系统,是Google的GFS和Hadoop团队开发的GFS的开源实现HDFS。
链接:GFSGFS(Google File System,Google文件系统),是Google公司为了存储海量搜索数据而设计的专用文件系统。
GFS是一个可扩展的分布式文件系统,用于大型的、分布式的、对大量数据进行访问的应用。
DFT的快速算法综述

DFT的快速算法综述快速傅里叶变换(Fast Fourier Transform,FFT)是一种高效计算离散傅里叶变换(Discrete Fourier Transform,DFT)的算法。
DFT是一种将时域信号转换为频域信号的方法,广泛应用于信号处理、图像处理、声音处理等领域。
本文将对FFT的原理、应用以及算法优化方法进行综述。
1.FFT的原理FFT算法的核心思想是将DFT分解为更小规模的DFT,并利用重叠子问题的性质进行高效计算。
DFT的定义是将N个信号点通过复数乘法和加法运算转换为N个频域点,时间复杂度为O(N^2)。
而FFT算法通过将DFT逐步分解为更小规模的DFT,利用对称性和周期性质将计算复杂度降低到O(NlogN)。
2.FFT的应用由于FFT算法具有高效的计算能力,因此被广泛应用于信号处理、图像处理和声音处理等领域。
以下是一些常见的应用场景:-信号滤波:通过将信号从时域转换到频域,可以对频域信号进行滤波操作,过滤掉不需要的频率成分。
-频谱分析:通过将信号从时域转换到频域,可以分析信号的频谱特性,如频率分量、相位信息等。
-图像处理:FFT可以用于图像的平滑、增强和去噪等处理,例如图像的频域滤波和频域重建等。
-声音处理:FFT可用于音频信号的频谱分析和音频效果的实现,如均衡器、混响效果等。
3.FFT的算法优化FFT算法有多种优化方法,下面介绍几种常见的优化技术:- 基于蝶形运算的算法:FFT算法通过重复进行蝶形运算(Butterfly Operation),利用乘法因子的对称性和周期性质,将计算过程中的乘法次数减少到一半。
-基于位逆序排列的算法:FFT将信号点重新排列为逆序位序列,使得计算可以按照从低位到高位的顺序进行,从而提高计算效率。
- 基于迭代和并行计算的算法:通过迭代计算和并行计算的方式,将FFT算法的计算复杂度降低到O(NlogN)。
- 快速数论变换(Fast Number-Theoretic Transform,FNTT)算法:基于数论的FFT算法,在一些特定情况下可以更快速地计算傅里叶变换。
云计算概念、技术及应用研究综述

fangwei@nuist.edu.cn
as a
Service,
IaaS).通过网络作为标准化服务提供按需付费的弹 性基础设施服务,其核心技术是虚拟化.可以通过廉 价计算机达到昂贵高性能计算机的大规模集群运算 能力.典型代表如亚马逊云计算AWS(Amazon
IBM蓝云等.
Web
Services)的弹性计算云EC2和简单存储服务S3,
万方数据
资源.
Service,SaaS)。它
是一种通过Internet提供软件的模式,用户无需购买 软件,而是租用服务商运行在云计算基础设施上的 应用程序,客户不需要管理或控制底层的云计算基 础设施,包括网络、服务器、操作系统、存储,甚至单 个应用程序的功能.该软件系统各个模块可以由每 个客户自己定制、配置、组装来得到满足自身需求的
万方数据
方巍,等.云计算:概念、技术及应用研究综述
352
FANG
Wei,el a1.Cloud computing:Conceptions,key technologies and application
大.据2011年给出的最新定义心J:“云计算是一种能 够将动态易扩展的虚拟化资源软件和数据通过互联 网提供给用户的计算方式,如同电网用电一样,用户 不需要知道云内部的细节,也不必具有管理那些支 持云计算的基础设施.” 伯克利云计算白皮书的定义p』:云计算包括互 联网上各种服务形式的应用以及数据中心中提供这 些服务的软硬件设施.应用服务即SaaS(Software
并行图形绘制技术综述

第36卷第l期计算机工程2010年1月VoL36No.1ComputerEngineeringJanuary2010・图丹参图像处理・文章编号:loo忙3428(20lo)ol—1122l—03文献标识码:A中图分类号,TP391并行图形绘制技术综述韩伟杰,李晓梅,张文(装备指挥技术学院信息装备系,北京101416)搪耍:为研究并行图形绘制技术,介绍图形绘制的流水线过程,对其内在的可并行性进行分析,研究并行绘制的实现方式,包括流水线并行、数据并行和作业并行,以及前分布拼接合成、中分布拼接合成和后分布拼接合成,讨论并行绘制面临的主要问题及其发展趋势。
关健诃:并行绘制;流水线并行;数据并行;作业并行SummarizationofParallelImageRenderingTechnologyHANWei-jie,LIXiao-mei,ZHANGWen(DepartmentofInformationEquipment,TheAcademyofEquipmentCommand&Technology,Beijing101416)[Abstract]Inordertoresearchtheparallelimagerenderingtechnologydeeply,theprocessofrenderingpipelineisintroduced,andtheinherentpossibilityofparallelismisanalyzed.Thevariousmethodsforrealizingparallelrenderingareresearched,includingpipelineparallelism,dataparallelismandtaskparallelism,aswellassort—first,sort-middleandsort-last.Thekeyproblemsfacedwithitarediscussed.Thedevelopmentofparallelrenderinginthefutureisdiscussed.[Keywords]parallelrendering;pipelineparallelism;dataparallelism;taskparallelism1概述随着科学研究和工程设计的发展,数据处理的规模越来越大,如在气象、生物技术、油藏模拟等领域以及卫星处理数据,其规模已经达到TB甚至PB量级。
超级计算机系统综述与未来发展趋势

超级计算机系统综述与未来发展趋势第一章:超级计算机系统的定义与历史超级计算机系统是指高性能的计算机系统,其计算能力在范围上超越了一般的计算机系统。
这些系统通常具有大规模的并行处理能力和高度专业化的硬件架构。
超级计算机系统主要用于科学计算、工程计算、数据分析等领域。
超级计算机系统的历史可以追溯到上世纪50年代。
当时,美国国防部及其研究机构开始开发一种新型计算机,以满足空间航行、核武器研究等领域的需求。
这些计算机最初是采用单个处理器实现高性能计算的,但是随着技术的不断发展,超级计算机系统的硬件架构也越来越复杂。
第二章:超级计算机系统的关键技术超级计算机系统的关键技术包括硬件架构、软件系统、并行算法以及计算性能评估等方面。
其中,硬件架构是超级计算机系统最核心的部分,它通常采用大规模并行处理器、分布式文件系统、高速网络等技术。
超级计算机系统的软件系统也是重要的组成部分。
传统的操作系统无法适应超级计算机系统的高性能需求,因此需要采用专用的操作系统。
另外,超级计算机系统中的并行算法也是必不可少的关键技术,这些算法能够实现高效的并行计算,并充分利用超级计算机系统的硬件资源。
第三章:超级计算机系统的应用领域超级计算机系统在科学计算、工程计算、数据分析等领域都有广泛的应用。
例如,在物理学、化学、生物学等科学领域,超级计算机系统能够模拟大规模的计算问题,并提供准确的模拟结果。
在工业领域,超级计算机系统可以用于设计汽车、航空器等复杂系统,并进行数字样机测试和优化。
在金融领域,超级计算机系统也有重要的应用。
例如,超级计算机系统可以用于进行高频交易算法的开发和测试,提高交易效率和准确性。
在医疗领域,超级计算机系统可以用于生物计算、药物筛选和基因组学等方面的研究。
第四章:超级计算机系统的未来发展趋势目前,超级计算机系统已经具有了很高的计算能力和广泛的应用领域。
但是,随着科技的不断发展,超级计算机系统也在不断地变化和发展。
未来超级计算机系统的发展趋势将主要包括以下几个方面:1.超级计算机系统将会更加专业化,定制化。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
什么是并行计算并行计算(parallel computing)是指,在并行机上,将一个应用分解成多个子任务,分配给不同的处理器,各个处理器之间相互协同,并行地执行子任务,从而达到加速求解速度,或者增大求解应用问题规模的目的。
由此,为了成功开展并行计算,必须具备三个基本条件:(1) 并行机。
并行机至少包含两台或两台以上处理机,这些处理机通过互连网络相互连接,相互通信。
(2) 应用问题必须具有并行度。
也就是说,应用可以分解为多个子任务,这些子任务可以并行地执行。
将一个应用分解为多个子任务的过程,称为并行算法的设计。
(3) 并行编程。
在并行机提供的并行编程环境上,具体实现并行算法,编制并行程序,并运行该程序,从而达到并行求解应用问题的目的。
并行计算的主要研究目标和内容对于具体的应用问题,采用并行计算技术的主要目的在于两个方面:(1) 加速求解问题的速度。
(2) 提高求解问题的规模。
组成并行机的三个要素为:•结点(node)。
每个结点由多个处理器构成,可以直接输入输出(I/O)。
•互联网络(interconnect network)。
所有结点通过互联网络相互连接相互通信。
•内存(memory)。
内存由多个存储模块组成,这些模块可以与结点对称地分布在互联网络的两侧,或者位于各个结点的内部。
并行编程模型1.共享内存模型a)在共享编程模型中,任务间共享统一的可以异步读写的地址空间。
b)共享内存的访问控制机制可能使用锁或信号量。
c)这个模型的优点是对于程序员来说数据没有身份的区分,不需要特别清楚任务间的单数据通信。
程序开发也相应的得以简化。
d)在性能上有个很突出的缺点是很难理解和管理数据的本地性问题。
2.线程模型在并行编程的线程模型中,单个处理器可以有多个并行的执行路径。
3.消息传递模型消息传递模型有以下三个特征:1)计算时任务集可以用他们自己的内存。
多任务可以在相同的物理处理器上,同时可以访问任意数量的处理器。
2)任务之间通过接收和发送消息来进行数据通信。
3)数据传输通常需要每个处理器协调操作来完成。
例如,发送操作有一个接受操作来配合。
4.数据并行模型数据并行模型有以下特性:并行工作主要是操纵数据集。
数据集一般都是像数组一样典型的通用的数据结构。
任务集都使用相同的数据结构,但是,每个任务都有自己的数据。
每个任务的工作都是相同的,例如,给每个数组元素加4。
在共享内存体系结构上,所有的任务都是在全局存储空间中访问数据。
在分布式存储体系结构上数据都是从任务的本地存储空间中分离出来的。
基于消息传递的并行计算环境在当前并行机上,比较流行的并行编程环境可以分为三类:消息传递、共享存储和数据并行,它们的典型代表、可移植性、并行粒度、并行操作方式、数据存储模式、数据分配方式、学习难度、可扩展性等方面的比较如下:(1) 共享存储并行编程基于线程级细粒度并行,仅被SMP 和DSM并行机所支持,可移植性不如消息传递并行编程。
但是,由于它们支持数据的共享存储,所以并行编程的难度较小,但一般情形下,当处理机个数较多时,其并行性能明显不如消息传递编程。
(2) 消息传递并行编程基于大粒度的进程级并行,具有最好的可移植性,几乎被当前流行的各类并行机所支持,且具有很好的可扩展性。
但是,消息传递并行编程只能支持进程间的分布存储模式,即各个进程只能直接访问其局部内存空间,而对其他进程的局部内存空间的访问只能通过消息传递来实现。
因此,学习和使用消息传递并行编程的难度均大于共享存储和数据并行两种编程模式。
三种并行编程环境主要特征一览表特征消息传递共享存储数据并行典型代表MPI、PVM OpenMP HPF可移植性所有流行并行机SMP﹑DSM SMP﹑DSM﹑MPP并行粒度进程级大粒度线程级细粒度进程级细粒度并行操作方式异步异步松散同步数据存储模式分布式存储共享存储共享存储数据分配方式显式隐式半隐式学习入门难度较难容易偏易可扩展性好较差一般本书的主要目的是全面介绍消息传递并行编程环境MPI,因此,在以后的篇幅中,将不再讨论共享存储和数据并行编程环境。
1.消息传递并行机模型由于当前流行的各类SMP、DSM、MPP 和微机机群等并行机均支持消息传递并行程序设计,因此,有必要对这些具体并行机的体系结构进行抽象,设计一个理想的消息传递并行机模型。
基于该模型,用户可以在不考虑具体并行机体系结构的条件下,组织消息传递并行程序设计,从而简化并行程序设计,增强程序的可移植性。
图1.1给出了一个理想的消息传递进程拓扑结构。
其中,“P”表示MPI 进程,“M”表示每个进程的局部内存空间,多个“P/M”进程/内存模块通过互联网络相互连接,构成一个分布式存储的进程拓扑结构。
在该结构中,各个进程之间可以直接通信,但是各个进程只能直接访问自身的局部内存空间,对其他进程的局部内存空间的访问只能调用消息传递函数,通过进程间通信才能实现。
因此,该进程拓扑结构的核心是连接进程的互联网络和消息传递标准函数库,构成该函数库的所有函数就构成了用户面对的消息传递并行编程环境。
图1.1 消息传递进程拓扑结构和并行机模型如果将图1.1 的每个P/M 模块替换成处理器,且规定每个处理器只能分配用户程序的一个进程,则所得的理想并行机模型就是消息传递并行机模型。
不难看出,消息传递并行程序设计所依赖的并行机模型实际上属于典型的分布式存储并行机,且每台处理器只能分配用户程序的一个进程。
基于该并行机模型,用户可以自由地调用消息传递函数库中的函数来组织具体的并行程序设计,且程序研制成功后,便可以在任何支持该并行机模型隐含的进程拓扑结构的所有具体并行机上运行。
这里,有必要说明的是,消息传递分布式存储并行机模型和具体并行机体系结构没有必然的联系。
无论将该模型映射到何种类型的并行机(SMP、DSM、cluster、constellation、MPP),用户面对的都是该模型隐含的进程拓扑结构,只是各类具体并行机实现的消息传递函数库的方式不同,但用户无须知道这些细节。
例如,在共享存储SMP、DSM 并行机中,消息传递是通过共享数据缓存区来实现的;在MPP 并行机中,消息传递是通过网络通信来实现的;在机群和星群并行机中,消息传递在SMP、DSM 并行机内部是通过共享数据缓存区实现的,而在SMP、DSM 并行机之间是通过网络通信来实现的。
因此,无论哪种类型的具体并行机,呈现在消息传递并行程序设计用户面前的必然是分布式存储并行机模型。
2.标准消息传递界面MPI1994 年6 月,全球工业、政府和科研应用部门联合推出消息传递并行编程环境的标准用户界面(MPI),它将消息传递并行编程环境分解为两个部分,第一是构成该环境的所有消息传递函数的标准接口说明,它们是根据并行应用程序对消息传递功能的不同要求而制定的,不考虑该函数能否具体实现;第二是各并行机厂商提供的对这些函数的具体实现。
这样,用户只需学习MPI 库函数的标准接口,设计MPI 并行程序,便可在支持MPI 并行编程环境的具体并行机上执行该程序。
通常意义下所说的MPI 系统就是指所有这些具有标准接口说明的消息传递函数所构成的函数库。
在标准串行程序设计语言(C、Fortran、C++)的基础上,再加入实现进程间通信的MPI 消息传递库函数,就构成了MPI 并行程序设计所依赖的并行编程环境。
MPI 吸收了众多消息传递系统的优点,例如P4、PVM、Express、PARMACS 等,是目前国内外最流行的并行编程环境之一。
当前,大量工业、科学与工程计算部门(例如气象、石油、地震、空气动力学、核物理等)的科研与工程软件已经移植到MPI 平台。
MPI是一个消息传递接口的标准,用于开发基于消息传递的并行程序,其目的是为用户提供一个实际可用的、可移植的、高效的和灵活的消息传递接口。
MPI这个名称包括三个方面的含义:(1) MPI是一个库,而不是一种语言。
许多人认为MPI是一种并行设计语言,这种看法并不准确。
按照并行语言的分类,可以把Fortran+MPI、C+MPI看做是在原来的串行语言基础之上扩展而来的并行语言。
MPI库可以和具体语言进行绑定,形成并行设计语言。
从语法上说,C/C十+和Fortran等语言对MPI库的调用规则,与调用一般的函数/过程没有区别;(2) MPI是一种标准或者规范,而不特指某一个对它的具体实现。
到目前为止,所有的并行计算机都提供对MPI的支持,用MPI书写的并行程序可以不加修改的在所有并行机上运行;(3) MPI是一种消息传递编程模型,并且成为了这种编程模型的代表和事实上的标准。
MPI库作为可移植的消息传递函数库,具有以下一些特点:(l) MPI提供缓冲区管理的函数,用户可以决定由系统对发送、接受缓冲区的管理,还是用户参与其管理,以便控制系统缓冲区空间,提高系统的安全性;(2) MPI不但支持语言本身所提供的各种结构,而且允许用户构造自己的复杂结构体和数据类型,使得进程间的通信更加便捷易用;(3) MPI为任务间的通信提供多种方式,大量的通信接口能够满足科学与工程算的需要;(4) MPI提供可靠的数据传输机制,发送的消息能够保证被对方正确接受,用户不必自行检查传输错误、传输超时等。
也就是说MPI的通信对用户而言是透明的;(5) MPI通过通信域保证通信的安全性,不同通信域内的并行任务之间的通信不会相互干扰和混淆;(6) MPI具有高度的可重构性,允许多个用户同时使用并行处理设备。
由于MPI是一个库而不是一种语言,因此MPI必须和某个语言结合起来才能使用,这称之为MPI的语言绑定。
MPI 1.0 版于1994 年推出,并同时获得了各并行机产商的具体实现;MPI 2.0 版于1998 年10 月推出,它在1.0 版的基础上,增加了如下的消息传递功能:(1)并行I/O:允许多个进程同时读/写同一个文件;(2)线程安全:允许MPI 进程的多个线程执行,即支持与OpenMP 的混合并行编程;(3)动态进程管理:允许并行应用程序在执行过程中,动态地增加和删除进程个数;(4)单边通信:允许某个进程对其他进程的局部内存单元直接执行读/写访问,而不需要对方进程的显式干预;(5)并行应用程序之间的动态互操作:允许各个MPI 并行应用程序之间动态地建立和删除消息传递通信通道。