lect04_mpi01_basicnew

lect04_mpi01_basicnew

ID:34366719

大小:301.24 KB

页数:41页

时间:2019-03-05

lect04_mpi01_basicnew_第1页
lect04_mpi01_basicnew_第2页
lect04_mpi01_basicnew_第3页
lect04_mpi01_basicnew_第4页
lect04_mpi01_basicnew_第5页
资源描述:

《lect04_mpi01_basicnew》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第四讲消息传递编程接口MPI一、MPI编程基础1主要内容MPI安装、程序编译与运行MPI编程基础MPI进程/进程组MPI通信器MPI消息MPI程序基本结构MPI程序编译与运行MPI数据类型MPI几个常用接口2MPI介绍MessagePassingInterface消息传递编程标准,目前最为通用的并行编程方式提供一个高效、可扩展、统一的并行编程环境MPI是一个库,不是一门语言,MPI提供库函数/过程供C/FORTRAN调用MPI是一种标准或规范的代表,并不是一个具体实现所有的并行计算机制造商都提供对MPI的支持MPI是一种消息传

2、递编程模型,最终目的是服务于进程间通信这一目标3MPI介绍MPI的目标较高的通信性能;较好的程序可移植性;强大的功能MPI的实现——免费版本1994年公布MPI1.0标准,1998年公布2.0标准MPI1.0:MPICH1.2.7p1MPI2.0:MPICH21.1.1p1MPI商业版本一些厂商也提供商业版的MPI系统,许多是在MPICH的基础上优化产生的4MPI下载与安装MPICH下载http://www-unix.mcs.anl.gov/mpi/MPICH的安装参考MPICHInstallGuideMPICH的使用参考MPI

3、CHUserGuide5进程与通信器MPI进程MPI程序中一个独立参与通信的个体MPI进程组MPI程序中由部分或全部进程构成的有序集合每个进程都被赋予一个所在进程组中唯一的序号(rank),用于在该组中标识该进程,称为进程号,取值从0开始进程的具体个数由用户在递交并行任务时指定MPI通信器/通信子(Communicator)MPI程序中进程间的通信必须通过通信器进行通信器分为域内通信器(同一进程组内的通信)和域间通信器(不同进程组的进程间的通信)6进程与通信器MPI程序启动时自动建立两个通信器:MPI_COMM_WORLD:包含程序中所有M

4、PI进程MPI_COMM_SELF:有单个进程独自构成,仅包含自己MPI程序中,一个MPI进程由一个进程组和在该组中的进程号唯一确定;或由一个通信器和在该通信器中的进程号唯一确定进程号是相对进程组或通信器而言的,同一进程在不同的进程组或通信器中可以有不同的进程号进程号是在进程组或通信器被创建时赋予的空进程:MPI_PROC_NULL与空进程通信时不做任何操作7MPI消息消息(message)一个消息指进程间进行的一次数据交换一个消息由通信器、源地址、目的地址、消息标签、和数据构成发送方接受方8第一个MPIC程序#include"mpi.h"m

5、pi.h是MPI相对于C语言的头文件#include调用MPI函数时必须包含MPI头文件MPI的初始化和结束intmain(intargc,char*argv){MPI预定义的宏:所允许的机器名字的最大长度intmyid,np,namelen;charproc_name[MPI_MAX_PROCESSOR_NAME];MPI_Init(&argc,&argv);获取本进程的进程号MPI_Comm_rank(MPI_COMM_WORLD,&myid);进程号取值范围为0,…,np-1MPI_Comm_size(MPI_COMM_WORLD,&

6、numprocs);MPI_Get_processor_name(proc_name,&namelen);fprintf(stderr,"Hello,Iamproc.%dof%don%s",myid,np,proc_name);获取所有参加运算的进程的个数MPI_Finalize();获取运行本进程所在的结点的主机名}9MPI程序执行过程10MPI程序执行过程启动4个进程运行可执行文件hello_world进程0进程1进程2进程3MPI_InitMPI_Init︰︰MPI_Comm_rank︰︰MPI_Comm_rankmyid=0︰︰myid=3MPI

7、_Get_processor_nameMPI_Get_processor_nameproc_name=c0101︰︰proc_name=c0102namelen=5namelen=5︰︰Write︰︰Writehello,Iamproc.0of4onc0101︰︰hello,Iamproc.3of4onc0102MPI_FinalizeMPI_Finalize程序运行结束11MPI程序分析在单个结点(c0101)上,开4个进程的运行结果Hello,IamProc.1of4onc0101Hello,IamProc.0of4onc0101Hello,IamPr

8、oc.2of4onc0101Hello,IamPro

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
相关文章
更多
相关标签