已阅读5页,还剩84页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
精选,1,MPI的扩展MPI-2,谭光明副研究员tgm中国科学院计算技术研究所国家智能计算机研究开发中心计算机体系结构国家重点实验室(筹),精选,2,MPI-1的不足,不支持进程个数的动态改变不支持单边通信模式不支持并行文件操作,精选,3,应用需求,动态任务树精确成型应用实例,精选,4,MPI-2的解决方案,对通信域进行扩展组内通信域组间通信域具体实现方式动态派生进程(有父子关系)独立进程间通信(C/S关系)Socket通信(转换socket通信),精选,5,组间通信域的点到点通信,精选,6,例子,MPI_SEND(buf,count,datatype,dest,tag,intercomm)与组内通信的不同:1dest的含义;2intercommMPI_RECV(buf,count,datatype,source,tag,intercomm,status)与组内通信的不同:1source的含义;2intercomm,精选,7,组间通信域的组通信,精选,8,例子,MPI_ALLTOALL(sendbuf,sendcount,sendtype,recvbuf,recvcount,recvtype,intercomm),精选,9,图示,精选,10,组间通信域的一对多和多对一,本地一个发,对方所有的收本地一个收,对方所有的发,精选,11,例子,MPI_BCAST(buf,count,datatype,root,intercomm),精选,12,主进程组中动态进程的创建,MPI_COMM_SPAWN(cmd,argv,maxprocs,info,root,comm,intercomm,aryerrcodes)最多派生maxprocs个进程,root是参数检查的进程,精选,13,派生进程组得到组间通信域,MPI_COMM_GET_PARENT(parent)在派生进程组中调用在初始化之后三次同步父进程同步子进程之间同步父子进程之间同步,精选,14,源程序,主进程组程序(独立的MPI程序),派生进程组程序(独立的MPI程序),启动,精选,15,创建多组子进程,MPI_COMM_SPAWN_MULTIPLE(count,cmdary,argvary,maxprocsary,infoary,root,comm,intercomm,errcodeary)各组子进程是不同的,精选,16,独立进程间通信,服务端MPI_OPEN_PORT(info,port_name)MPI_COMM_ACCEPT(port_name,info,root,comm,intercomm)在打开的特定端口上等待连接,精选,17,独立进程间通信(续),客户端MPI_COMM_CONNECT(port_name,info,root,comm,intercomm)请求与指定端口连接MPI_COMM_DISCONNECT(comm),精选,18,问题,客户端每次连接的端口可能是不同的,精选,19,方案,服务端建立特定名字和端口字符串的联系MPI_PUBLISH_NAME(servicename,info,portname)客户端根据名字得到特定的端口字符串MPI_LOOKUP_NAME(servicename,info,portname),精选,20,基于socket的通信,MPI_COMM_JOIN(fd,intercomm)将socket通信转化为MPI通信,精选,21,什么是远程存储访问(单边通信)?RemoteMemoryAccess/One-SidedCommunication,打电话留字条阅读EMAIL,精选,22,通信窗口,开辟自己内存的一段空间作为对外联系的窗口,任何进程都可以通过对窗口的访问来达到数据通信的目的,精选,23,窗口操作的分类,窗口读MPI_GET窗口写MPI_PUT窗口运算MPI_ACCUMULATE,精选,24,窗口的创建,MPI_WIN_CREATE(base,size,disp_unit,info,comm,win),精选,25,注意,窗口创建操作是组调用,所有的进程必须都执行得到的窗口是组窗口,与给定的通信域密切相关用同一窗口对象可以访问所有其它进程的窗口,精选,26,窗口的释放,MPI_WIN_FREE(win)当所有窗口都不再使用时释放是组调用,精选,27,远程更新(向窗口写),MPI_PUT(origin_addr,origin_count,origin_datatype,target_rank,target_disp,target_count,target_datatype,win),精选,28,注意,不同进程的窗口是通过进程标识来区别的对不同进程窗口的操作使用的是同一窗口句柄偏移是以创建窗口时指定的偏移单位大小计算的,精选,29,从远程得到数据(从窗口读),MPI_GET(origin_addr,origin_count,origin_datatype,target_rank,target_disp,target_count,target_datatype,win),精选,30,注意,写窗口的逆操作不同进程的窗口是通过进程标识来区别的对不同进程窗口的操作使用的是同一窗口句柄偏移是以创建窗口时指定的偏移单位大小来计算的,精选,31,对远程数据的计算(窗口数据运算),MPI_ACCUMULATE(origin_addr,origin_count,origin_datatype,target_rank,target_disp,target_count,target_datatype,op,win),精选,32,图示,同时执行了窗口的读和写操作,精选,33,问题,访问冲突问题(R,W)读读(RR)读写(RW)写读(WR)写写(WW)解决办法窗口同步管理,精选,34,窗口同步管理,栅栏方式握手方式锁方式,精选,35,栅栏方式,MPI_WIN_FENCE(assert,win)assert=0,窗口操作前,窗口操作完成,窗口操作,精选,36,示例,前后两次窗口操作互不干扰,精选,37,握手方式,第一次握手,为窗口访问作准备第二次握手,窗口访问完成,精选,38,发起访问方的操作顺序,MPI_WIN_START(group,assert,win)启动第一次握手(开始窗口访问)窗口操作MPI_WIN_COMPLETE(win)启动第二次握手(结束窗口访问),精选,39,接收访问方的操作过程,MPI_WIN_POST(group,assert,win)启动第一次握手(准备窗口操作)等待被访问MPI_WIN_WAIT(win)启动第二次握手(窗口操作结束),精选,40,图示,精选,41,锁方式,借鉴临界区的概念加锁后只允许自己访问开锁后将访问权让给别人,精选,42,加锁语句,MPI_WIN_LOCK(lock_type,rank,assert,win)共享锁:允许其它的进程同时加共享锁互斥锁:不允许其它的进程再加锁,精选,43,开锁语句,MPI_WIN_UNLOCK(rank,win)允许其它的进程加锁,精选,44,图示,精选,45,练习,请用单边通信重新实现Jacobi迭代的例子。请写一个简单的动态进行创建的例子,精选,46,并行文件I/O的分类,显式偏移的文件I/O视口文件I/O共享文件I/O,精选,47,一些基本操作,精选,48,并行文件打开,MPI_FILE_OPEN(comm,filename,amode,info,fh)文件打开组调用,amode必须都相同fh是一个组句柄(与WIN类似)与用C/Fortran打开文件不同,精选,49,文件打开方式,精选,50,文件关闭,MPI_FILE_CLOSE(fh)注意:组调用,精选,51,删除指定的文件,MPI_FILE_DELETE(filename,info),精选,52,文件大小,MPI_FILE_SET_SIZE(fh,size)组调用,所有的size都相同MPI_FILE_GET_SIZE(fh,size),精选,53,文件进程组与文件打开模式,MPI_FILE_GET_GROUP(fh,group)返回句柄fh对应的进程组groupMPI_FILE_GET_AMODE(fh,amode)返回打开文件时指定的模式,精选,54,具有显式偏移的文件操作,精选,55,阻塞显式偏移并行文件读写,MPI_FILE_READ_AT(fh,offset,buf,count,datatype,status),精选,56,写文件,MPI_FILE_WRITE_AT(fh,offset,buf,count,datatype,status),精选,57,组调用阻塞显式偏移并行文件读写,MPI_FILE_READ_AT_ALL(fh,offset,buf,count,datatype,status)组调用,所有进程都执行了一次MPI_FILE_READ_ATMPI_FILE_WRITE_AT_ALL(fh,offset,buf,count,datatype,status)组调用,所有进程都执行了一次MPI_FILE_WRITE_AT,精选,58,非阻塞显式偏移并行文件读写,MPI_FILE_IREAD_AT(fh,offset,buf,count,datatype,request)MPI_FILE_IWRITE_AT(fh,offset,buf,count,datatype,request)同非阻塞通信的基本含义,调用返回并不意味着操作的完成,精选,59,完成形式,MPI_WAITMPI_TEST与非阻塞通信的完成调用形式完全相同,精选,60,非阻塞组调用显式偏移并行文件读写,具有显式的开始与结束形式MPI_FILE_READ_AT_ALL_BEGIN(fh,offset,buf,count,datatype)组调用读开始MPI_FILE_READ_AT_ALL_END(fh,buf,status)组调用读结束,精选,61,写操作,MPI_FILE_WRITE_AT_ALL_BEGIN(fh,offset,buf,count,datatype)组调用写开始MPI_FILE_WRITE_AT_ALL_END(fh,buf,status)组调用写结束,精选,62,视口文件读写,特点:隐式文件指针取文件的一部分形成视口,然后对该视口进行操作,每个进程把视口看作是整个文件,精选,63,文件视口,文件类型是在基本类型的基础上形成的自定义数据类型,精选,64,文件视口的定义,MPI_FILE_SET_VIEW(fh,disp,etype,filetype,datarep,info),精选,65,数据表示,native(效率最高,移植性最差)internal(效率一般,移植性一般)external32(效率最低,移植性最好),精选,66,文件视口的定义(续),组调用偏移的单位是字节视口数据是连续的文件句柄的含义转换,精选,67,视口信息的获取,MPI_FILE_GET_VIEW(fh,disp,etype,filetype,datarep)得到偏移,基本类型,文件类型以及数据表示等信息,精选,68,当前视口指针偏移,MPI_FILE_GET_POSITION(fh,offset)文件视口句柄,视口偏移,精选,69,绝对偏移,MPI_FILE_GET_BYTE_OFFSET(fh,offset,disp)给定相对偏移offset,给出绝对偏移disp,精选,70,阻塞方式的视口读写,MPI_FILE_READ(fh,buf,count,datatype,status)从视口当前位置读数据MPI_FILE_WRITE(fh,buf,count,datatype,status)向视口当前位置写数据,精选,71,阻塞方式的视口文件组调用,MPI_FILE_READ_ALL(fh,buf,count,datatype,status)组内所有进程都读MPI_FILE_WRITE_ALL(fh,buf,count,datatype,status)组内所有进程都写,精选,72,非阻塞视口文件读写,MPI_FILE_IREAD(fh,buf,count,datatype,request)非阻塞视口文件读MPI_FILE_IWRITE(fh,buf,count,datatype,request)非阻塞视口文件写,精选,73,完成操作,MPI_WAITMPI_TEST同非阻塞的通信调用形式,精选,74,非阻塞视口组调用,MPI_FILE_READ_ALL_BEGIN(fh,buf,count,datatype)组内进程都执行非阻塞的读操作MPI_FILE_READ_ALL_END(fh,buf,status)组调用读操作完成,精选,75,组调用写操作,MPI_FILE_WRITE_ALL_BEGIN(fh,buf,count,datatype)组调用写操作开始MPI_FILE_WRITE_ALL_END(fh,buf,status)组调用写操作完成,精选,76,共享文件操作,基于视口文件操作,但视口文件指针只有一个,即共享指针任何文件对指针的操作都同时影响其它的文件各个进程对视口定义有什么要求?,精选,77,移动共享视口指针,MPI_FILE_SEEK_SHARED(fh,offset,whence),精选,78,阻塞共享文件读写,MPI_FILE_READ_SHARED(fh,buf,count,datatype,status)共享读MPI_FILE_WRITE_SHARED(fh,buf,count,datatype,status)共享写,精选,79,阻塞共享文件组读写,MPI_FILE_READ_ORDERED(fh,buf,count,datatype,status)组内进程依次读MPI_FILE_WRITE_ORDERED(fh,buf,count,datatype,status)组内进程依次写,精选,80,非阻塞共享指针文件操作,MPI_FILE_IREAD_SHARED(fh,buf,count,datatype,request)非阻塞读MPI_FILE_IWRITE_SHARED(fh,buf,count,datatype,request)非阻塞写,精选,81,完成调用,MPI_WAITMPI_TEST同非阻塞通信形式,精选,82,非阻塞共享文件组读写,MPI_FILE_READ_ORDERED_BEGIN(fh,buf,count,datatype)启动非阻塞组读操作MPI_FILE_READ_ORDERED_END(fh,buf,status)完成非阻塞组读操作,精选,83,写操作,MPI_FILE_WRITE_ORDERED_BEGIN(fh,buf,count,datatype)启动非阻塞组调用写操作MPI_FILE_WRITE_ORDERED_END(fh,buf,status)完成非阻塞组调用写操作,精选,84,分布式数组文件的存取,MPI_TYPE_CREATE_DARRAY(size,rank,ndims,array_of_gsizes,array_of_distribs,array_of_dargs,array_of_ps
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 娄底新化县农村产权交易中心有限公司招聘真题
- 2023年大连理工大学化学学院招聘行政人员考试真题
- 透视技术在骨关节系统疾病中的应用
- 食品销售工作计划范文(8篇)
- 急诊科临床诊疗指南 技术操作规范
- 幼儿园开学第一课教案
- 山地租赁合同山权证
- 超市营业员工作心得8篇
- 竞选环保社社长演讲稿范文5篇
- 生态园林建设合同
- 医师定期考核表格参考模板
- 英语人教版三年级上册(教具)动物图卡
- 泥水平衡顶管施工方案
- 民办非企业单位(法人)登记申请表08669
- 霍兰德人格六角形模型(共享内容)
- 宝钢中央研究院创新战略与运行机制研究
- 建筑CAD测试多选题
- 支座铸造工艺设计
- 2022年学校禁毒工作计划
- GB-T-30512-2014-汽车禁用物质要求
- 生物相容性试验检测报告
评论
0/150
提交评论