第一课 操作系统概述.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文档。上传文档
查看更多
第一课 操作系统概述

MPI简介 MPI及其历史: 消息传递接口(Message Passing Interface,简称MPI)是一种编程接口标准,而不是一种具体的编程语言。 由消息传递接口论坛(Message Passing Interface Forum,简称MPIF)发起讨论并进行规范化的。 MPI标准如今已经成为事实意义上的消息传递并行编程标准,也是最为流行的并行编程接口。 MPI标准定义了一组具有可移植性的编程接口。 典型的实现包括开源的MPICH、LAM MPI以及不开源的INTEL MPI。 MPI实现 MPICH:最重要的MPI实现 影响力最大、用户最多的MPI实现。 由美国Argonne国家实验室开发,开发源代码。 支持单程序多数据、多程序多数据编程。 MPICH2 (/mpi/mpich2/index.htm#download ) MPI程序特点 MPI程序是基于消息传递的并行程序; 消息传递指的是并行执行的各个进程具有自己独立的堆栈和代码段; 各进程作为独立的程序独立执行; 进程间的信息交换完全是通过显示的调用通信函数来完成。 MPI程序分类 可分为单程序多数据(Single Program Multiple Data,简称SPMD)、多程序多数据(Multiple Program Multiple Data,简称MPMD)两种形式。 SPMD:使用一个程序来处理多个不同数据集达到并行的目的; 单程序多数据 串行执行 单程序多数据 并行执行 多程序多数据 MPMD使用不同的程序处理多个数据集,合作求解一个问题。 MPI程序实例 Linux系统环境配置 安装配置Linux 保证SSH网络服务程序正常启动; 给每个节点配置IP; 配置/etc/hosts文件,改文件可以实现IP和机器的对应解析,每个节点都要有这个文件,这样各个节点就可以通过节点名字进行访问; 配置网络文件系统 NFS,实现各节点和主节点内容同步更新,自动实现目录对应,有共享目录; 配置ssh,实现MPI节点间用户的无密码访问; 安装MPICH2,各节点MPICH和用户程序要在相同的目录,各节点要有副本。 MPI程序实例 MPI函数说明 1、MPI初始化:MPI_Init函数  用法:int MPI_Init(argc , argv)  每一个MPI进程调用的第一个MPI函数都是MPI_Init。该函数指示系统完成所有的初始化工作,以备对后续MPI库的调用进行处理。 2、MPI结束:MPI_Finalize函数  用法:int MPI_Finalize()  在一个进程执行完其全部MPI库函数调用后,将调用函数 MPI_Finalize,从而让系统释放分配给MPI的资源。它是MPI程序的最后一条可执行语句,否则程序的运行结果是不可预知的。 MPI程序 MPI程序实例——获取进程标志和机器名 3、确定进程的标识符 用法:int MPI_Comm_rank( MPI_COMM_WORLD ,id) 当MPI初始化后,每一个活动进程变成了一个叫做MPI_COMM_WORLD的通信域中的成员。通信域是一个不透明的对象,提供了在进程之间传递消息的环境。在一个通信域内的进程是有序的。在一个有p个进程的通信域中,每一个进程有一个唯一的序号(ID号),取值为0~p-1。进程可以通过调用函数MPI_Comm_rank来确定它在通信域中的序号。 4、确定进程数量 用法:int MPI_Comm_size( MPI_COMM_WORLD ,p) 进程通过调用函数MPI_Comm_size来确定一个通信域中 的进程总数。 MPI程序实例——获取进程标志和机器名 MPI的点对点通信 有消息传递功能的并行程序,消息传递是MPI编程的核心功能,掌握了MPI消息传递编程方法就掌握了MPI编程的核心。 int MPI_Send(void* buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm) 参数说明:  buf:发送缓冲区的起始地址  count:将要发送的数据的个数  datatype:发送数据的数据类型  dest:目的进程标识号  tag:消息标志  comm:通信域   MPI_Send将发送缓冲区中的count个datatype数据类型的数据发送到目的进程,目的进程在通信域中的标识号是dest,本次发送的消息标志是tag,使用这一标志,就可以把本次发送的消息和本进程向同一目的进程发送的其他消息区别开。 MPI的点对点通信 int MPI_Recv(void* buf, int count, MPI_Datatype datatype, int sourc

文档评论(0)

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

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

1亿VIP精品文档

相关文档