并行计算方法研究和应用.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
并行计算方法研究和应用

并行计算方法研究和应用   摘要:介绍并行计算的基本概念,分析了MPI、OpenMP、CUDA与OpenCL四种并行计算编程技术的基本特点及适用场合。以MPI和OpenCL两种编程技术为列,实现了特征匹配算法和快速傅里叶变换算法,对它们的实验结果进行了分析和对比。   关键词:并行计算 MPI OpenCL 快速傅里叶变换   中图分类号:TP3 文献标识码:A 文章编号:1007-9416(2014)01-0109-02   高性能计算(High Performance Computing)是当今社会计算机科学的一个重要分支,目的在于解决拥有大规模数据处理需求应用的性能问题。为将一个需要大规模处理的应用部署至高性能计算机上,需要研究相关的并行算法,开展并行计算(Parallel Computing)。并行计算相对于串行计算而言,广义上的并行计算可分为时间上的并行和空间上的并行,时间上的并行泛指流水线技术,而空间上的并行是指多个处理器并发地进行计算。并行计算科学中主要研???空间上的并行问题,即先将计算任务分解为若干个计算子任务,然后同时使用多个计算资源以快速解决一个大型且复杂的计算问题。   1 并行计算方法   目前计算机均采用多核设计,然而将一个计算任务在该计算机上执行时,任务并不会智能化地自动分解至每个CPU核;将一个应用部署至一个高性能计算机集群,需要相应的辅助工具将任务进行分解;使用GPU协助CPU完成一个密集型计算任务处理,也需要辅助工具使得编程人员对任务能够可控。基于此,若干并行辅助工具应运而生,典型的有MPI、OpenMP、CUDA与OpenCL。   而设计并行程序需将计算任务进行分解后分配至不同的处理器进行处理,导致当前处理器在处理其子任务的过程中不可避免地需要与其它处理器的子任务进行数据交互,数据交互方法包括消息传递与共享存储。其中,MPI即属于一种基于消息传递的并行编程模型,而OpenMP、CUDA和OpenCL则采用基于共享存储的并行模式。   1.1 MPI(Message Passing Interface)   MPI采用基于消息传递的并行模式,提供了一种与语言和平台无关,可以被广泛使用的编写消息传递程序的标准,最终目的是服务于进程间通信,其具体执行过程中,将可执行程序复制多份以形成多个独立进程,并分配至多个节点上独立执行,在需要数据交互时通过节点间网络进行通信。MPI适合于高性能计算机集群内各计算节点间的任务并行。   1.2 OpenMP(Open Multi-Processor)   OpenMP为基于共享内存设计的并行模式,是一种支持多平台共享存储多处理API,用于共享内存并行系统的多线程程序设计的一套指导性注释,即#pragma制导语句。   OpenMP采用线程的fork-join模式,通过指定线程数,并加在可并行区域前,在进入区域时自动衍生出多线程以执行区域内计算任务,执行完成后连结成一个线程以继续完成后续非并行区域内任务处理。   1.3 CUDA(Compute Unified Device Architecture)   NVIDIA将其GPU大规模投入科学计算领域时,提出CUDA编程模型以辅助编程人员控制任务在CPU-GPU异构并行系统的分解与计算。   CUDA将CPU-GPU异构并行系统分为主机端(CPU)与设备端(GPU),主机端负责逻辑事务处理,设备端负责密集型数据计算。其执行过程分为三步:①CPU将原始数据经PCI-E总线拷贝至GPU;②数据在GPU上进行加速处理;③处理结果再由PCI-E总线拷贝回CPU。   1.4 OpenCL(Open Computing Language)   OpenCL架构与CUDA类似,不同在于OpenCL作为一种标准,目的是实现跨平台程序设计,如AMD GPU、NVIDIA GPU、Cell处理器和DSP等。   使用OpenCL编程,可以实现可在不同平台上移植的并行加速代码,如设计同一OpenCL GPU程序可适用于AMD GPU、NVIDIA GPU。   2 MPI技术应用   传输系统识别是卫星通信侦察中的重要环节,以VSAT通信目标系统识别为例,通过采用已知传输系统特征字(譬如有LinkWay、LinkWayS2、LinkStar和SkyWan等四种传输系统特征字)匹配信号解调后的码流文件,以进行传输系统识别。识别方法如图1所示,如至码流文件末仍未判别成功,则视其为未知传输系统。   特征字匹配过程并非大规模数据计算模块,而不同传输系统的特征字匹配可赋予不同的进程实现,因此,该过程可在任务级进行分解,使用MPI进行并发式设计:创建四个MPI进程,每个进程负责一种传输系统特征字

文档评论(0)

erterye + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档