并行程序设计介绍.pptVIP

  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文档。上传文档
查看更多
并行程序设计介绍.ppt

并行程序设计介绍 裘初 高性能计算中心 内容提要 基本概念 MPI MPI基本函数 MPI通信函数 资源 Cluster Software Stack 并行程序设计 找到串行算法中可以并行执行的部分,将它分解,并分配给多个进程执行 作业的划分 进程间的通信 各个进程的负载平衡 加速比和效率 加速比=串行程序执行时间/并行程序执行时间 效率 = 加速比/处理器数目 并行程序编程模型 共享变量模型 多个进程通过共享变量来实现通信 重要的问题是避免对共享存储区的访问冲突 OpenMP 消息传递模型 多个进程通过消息来实现通信 通信命令分为接收/发送两种,并成对出现 难点在于进程间消息传递需要程序员自己来规划、设计和控制,要正确地安排数据交换、消息交换和时序。 MPI(Message Passing Interface) MPI是一个消息传递并行程序设计的标准,类似于程序设计语言的定义,而不管该语言编译器是如何实现的。 MPI的标准包括MPI-1,MPI-1.1,MPI-2。 MPI的实现包括MPICH、LAM、IBM MPL、HP、Mircrosoft等多个版本。 MPI的语言包括:C/C++和Fortran 我们使用的MPICH 1.2.7,实现的是MPI-1.1 一个简单的MPI并行程序 让每个进程输出Hello World 代码解说 1 mpi.h MPI函数库的头文件 所有的MPI定义都有MPI_的前缀 int MITI_Init(int *argc,char **argv) 初始化MPI环境 所有程序必须首先调用该初始化函数建立MPI环境 代码解说 2 MPI_Comm_size:返回通信子内进程的个数 int MPI_Comm_size( MPI_Comm comm, /* 当前进程所在的通信子 */ int *size /* 返回的进程个数 */ ) MPI_Comm_rank:返回当前进程在通信子中的标识 int MPI_Comm_rank( MPI_Comm comm, /* 当前进程所在的通信子 */ int *rank /* 返回的进程标识 */ ) 通信子(Communicator) 1 定义了一个通信域(Communication Domain) 包含了一个只允许组内进程相互通信的进程组(Group) 通信子内每个进程(Process)都有一个标识(rank),是从0到p-1的整数,p为进程总数。 通信子(Communicator)2 MPI_Comm MPI定义的通信子类型 MPI_COMM_WORLD MPI内默认的作为应用程序中所有进程的第一个通信子 该通信子包含的进程组为MPI_COMM_GROUP 代码解说 3 MPI_MAX_PROCESSOR_NAME MPI定义的宏,表示最大的主机名长度 MPI_Get_processor_name:获取运行当前进程节点机的主机名及主机名的长度 int MPI_Get_processor_name( char processor_name[], /* 本地节点机的主机名 */ int *namelen /* 主机名的长度 */ ) 代码解说 4 核心的作业代码 每个进程都会执行 代码解说 5 MPI_Finalize: 让系统释放分配给MPI的资源 所有程序在结束前必须调用 编译和运行1(使用以太网) 编译/连接 /opt/mpich/gnu/bin/mpicc -o helloworld helloworld.c -o : 编译输出的可执行文件 helloworld.c:要编译的文件,如果有多个文件用空格隔开 如果要使用了数学库(math.h),要加上-lm 运行 /opt/mpich/gnu/bin/mpirun -np 3 helloworld -np:运行该程序的进程数 helloworld:准备运行的程序名 编译和运行2(使用myrinet网) /opt/mpich/myrinet/gnu/bin/mpicc -o helloworld helloworld.c /opt/mpich/myrinet/gnu/bin/mpirun -np 3 helloworld 执 行 过 程 MPI的通信函数 消息传递(Message Passing) 在两个进程间传递数据 MPI对一个消息用下来四个参数来标识: 标签(tag) 源进程的标识(source rank) 目的进程的标识(destination rank) 通信子(communi

文档评论(0)

好文精选 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档