




已阅读5页,还剩84页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
MPI的扩展MPI 2 谭光明副研究员国家智能计算机研究开发中心计算机体系结构国家重点实验室 筹 MPI 1的不足 不支持进程个数的动态改变不支持单边通信模式不支持并行文件操作 应用需求 动态任务树精确成型应用实例 MPI 2的解决方案 对通信域进行扩展组内通信域组间通信域具体实现方式动态派生进程 有父子关系 独立进程间通信 C S关系 Socket通信 转换socket通信 组间通信域的点到点通信 例子 MPI SEND buf count datatype dest tag intercomm 与组内通信的不同 1dest的含义 2intercommMPI RECV buf count datatype source tag intercomm status 与组内通信的不同 1source的含义 2intercomm 组间通信域的组通信 例子 MPI ALLTOALL sendbuf sendcount sendtype recvbuf recvcount recvtype intercomm 图示 组间通信域的一对多和多对一 本地一个发 对方所有的收本地一个收 对方所有的发 例子 MPI BCAST buf count datatype root intercomm 主进程组中动态进程的创建 MPI COMM SPAWN cmd argv maxprocs info root comm intercomm aryerrcodes 最多派生maxprocs个进程 root是参数检查的进程 派生进程组得到组间通信域 MPI COMM GET PARENT parent 在派生进程组中调用在初始化之后三次同步父进程同步子进程之间同步父子进程之间同步 源程序 主进程组程序 独立的MPI程序 派生进程组程序 独立的MPI程序 启动 创建多组子进程 MPI COMM SPAWN MULTIPLE count cmdary argvary maxprocsary infoary root comm intercomm errcodeary 各组子进程是不同的 独立进程间通信 服务端MPI OPEN PORT info port name MPI COMM ACCEPT port name info root comm intercomm 在打开的特定端口上等待连接 独立进程间通信 续 客户端MPI COMM CONNECT port name info root comm intercomm 请求与指定端口连接MPI COMM DISCONNECT comm 问题 客户端每次连接的端口可能是不同的 方案 服务端建立特定名字和端口字符串的联系MPI PUBLISH NAME servicename info portname 客户端根据名字得到特定的端口字符串MPI LOOKUP NAME servicename info portname 基于socket的通信 MPI COMM JOIN fd intercomm 将socket通信转化为MPI通信 什么是远程存储访问 单边通信 RemoteMemoryAccess One SidedCommunication 打电话留字条阅读EMAIL 通信窗口 开辟自己内存的一段空间作为对外联系的窗口 任何进程都可以通过对窗口的访问来达到数据通信的目的 窗口操作的分类 窗口读MPI GET窗口写MPI PUT窗口运算MPI ACCUMULATE 窗口的创建 MPI WIN CREATE base size disp unit info comm win 注意 窗口创建操作是组调用 所有的进程必须都执行得到的窗口是组窗口 与给定的通信域密切相关用同一窗口对象可以访问所有其它进程的窗口 窗口的释放 MPI WIN FREE win 当所有窗口都不再使用时释放是组调用 远程更新 向窗口写 MPI PUT origin addr origin count origin datatype target rank target disp target count target datatype win 注意 不同进程的窗口是通过进程标识来区别的对不同进程窗口的操作使用的是同一窗口句柄偏移是以创建窗口时指定的偏移单位大小计算的 从远程得到数据 从窗口读 MPI GET origin addr origin count origin datatype target rank target disp target count target datatype win 注意 写窗口的逆操作不同进程的窗口是通过进程标识来区别的对不同进程窗口的操作使用的是同一窗口句柄偏移是以创建窗口时指定的偏移单位大小来计算的 对远程数据的计算 窗口数据运算 MPI ACCUMULATE origin addr origin count origin datatype target rank target disp target count target datatype op win 图示 同时执行了窗口的读和写操作 问题 访问冲突问题 R W 读读 RR 读写 RW 写读 WR 写写 WW 解决办法窗口同步管理 窗口同步管理 栅栏方式握手方式锁方式 栅栏方式 MPI WIN FENCE assert win assert 0 窗口操作前 窗口操作完成 窗口操作 示例 前后两次窗口操作互不干扰 握手方式 第一次握手 为窗口访问作准备第二次握手 窗口访问完成 发起访问方的操作顺序 MPI WIN START group assert win 启动第一次握手 开始窗口访问 窗口操作MPI WIN COMPLETE win 启动第二次握手 结束窗口访问 接收访问方的操作过程 MPI WIN POST group assert win 启动第一次握手 准备窗口操作 等待被访问MPI WIN WAIT win 启动第二次握手 窗口操作结束 图示 锁方式 借鉴临界区的概念加锁后只允许自己访问开锁后将访问权让给别人 加锁语句 MPI WIN LOCK lock type rank assert win 共享锁 允许其它的进程同时加共享锁互斥锁 不允许其它的进程再加锁 开锁语句 MPI WIN UNLOCK rank win 允许其它的进程加锁 图示 练习 请用单边通信重新实现Jacobi迭代的例子 请写一个简单的动态进行创建的例子 并行文件I O的分类 显式偏移的文件I O视口文件I O共享文件I O 一些基本操作 并行文件打开 MPI comm amode info fh 文件打开组调用 amode必须都相同fh是一个组句柄 与WIN类似 与用C Fortran打开文件不同 文件打开方式 文件关闭 MPI fh 注意 组调用 删除指定的文件 MPI info 文件大小 MPI fh size 组调用 所有的size都相同MPI fh size 文件进程组与文件打开模式 MPI fh group 返回句柄fh对应的进程组groupMPI fh amode 返回打开文件时指定的模式 具有显式偏移的文件操作 阻塞显式偏移并行文件读写 MPI fh offset buf count datatype status 写文件 MPI fh offset buf count datatype status 组调用阻塞显式偏移并行文件读写 MPI fh offset buf count datatype status 组调用 所有进程都执行了一次MPI MPI fh offset buf count datatype status 组调用 所有进程都执行了一次MPI 非阻塞显式偏移并行文件读写 MPI fh offset buf count datatype request MPI fh offset buf count datatype request 同非阻塞通信的基本含义 调用返回并不意味着操作的完成 完成形式 MPI WAITMPI TEST与非阻塞通信的完成调用形式完全相同 非阻塞组调用显式偏移并行文件读写 具有显式的开始与结束形式MPI fh offset buf count datatype 组调用读开始MPI fh buf status 组调用读结束 写操作 MPI fh offset buf count datatype 组调用写开始MPI fh buf status 组调用写结束 视口文件读写 特点 隐式文件指针取文件的一部分形成视口 然后对该视口进行操作 每个进程把视口看作是整个文件 文件视口 文件类型是在基本类型的基础上形成的自定义数据类型 文件视口的定义 MPI fh disp etype datarep info 数据表示 native 效率最高 移植性最差 internal 效率一般 移植性一般 external32 效率最低 移植性最好 文件视口的定义 续 组调用偏移的单位是字节视口数据是连续的文件句柄的含义转换 视口信息的获取 MPI fh disp etype datarep 得到偏移 基本类型 文件类型以及数据表示等信息 当前视口指针偏移 MPI fh offset 文件视口句柄 视口偏移 绝对偏移 MPI fh offset disp 给定相对偏移offset 给出绝对偏移disp 阻塞方式的视口读写 MPI fh buf count datatype status 从视口当前位置读数据MPI fh buf count datatype status 向视口当前位置写数据 阻塞方式的视口文件组调用 MPI fh buf count datatype status 组内所有进程都读MPI fh buf count datatype status 组内所有进程都写 非阻塞视口文件读写 MPI fh buf count datatype request 非阻塞视口文件读MPI fh buf count datatype request 非阻塞视口文件写 完成操作 MPI WAITMPI TEST同非阻塞的通信调用形式 非阻塞视口组调用 MPI fh buf count datatype 组内进程都执行非阻塞的读操作MPI fh buf status 组调用读操作完成 组调用写操作 MPI fh buf count datatype 组调用写操作开始MPI fh buf status 组调用写操作完成 共享文件操作 基于视口文件操作 但视口文件指针只有一个 即共享指针任何文件对指针的操作都同时影响其它的文件各个进程对视口定义有什么要求 移动共享视口指针 MPI fh offset whence 阻塞共享文件读写 MPI fh buf count datatype status 共享读MPI fh buf count datatype status 共享写 阻塞共享文件组读写 MPI fh buf count datatype status 组内进程依次读MPI fh buf count datatype status 组内进程依次写 非阻塞共享指针文件操作 MPI fh buf count datatype request 非阻塞读MPI fh buf count datatype request 非阻塞写 完成调用 MPI WAITMPI TEST同非阻塞通信形式 非阻塞共享文件组读写 MPI fh buf count datatype 启动非阻塞组读操作MPI fh buf status 完成非阻塞组读操作 写操作 MPI fh buf count datatype 启动非阻塞组调用写操作MPI fh buf status 完成非阻塞组调用写操作 分布式数组文件的存取 MPI TYPE CREATE DARRAY size rank ndims array of gsizes array of distribs array of dargs array of psizes order oldtype newtype 定义一种新的数据类型 分布式数组文件类型 例子 gsizes 0 m gzises 1 n distribs 0 MPI DISTRIBUTE BLOCK MPI DISTRIBUTE CYCLIC MPI DISTRIBUTE NONE distribs 1 MPI DISTRIBUTE BLOCK dargs 0 MPI DISTRIBUTE DFLT DARG dargs 1 MPI DISTRIBUTE DFLT DARG psizes 0 2 psizes 1 3 MPI Comm rank MPI COMM WORLD 分布式子数组文件的定义 MPI TYPE CREATE SUBARRAY ndims array of sizes array of subsizes array of starts order oldtype new
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 京东整车仓储管理制度
- zara内部管理制度
- 结构安全性鉴定管理制度
- 产房护理人员管理制度
- 业务人员日常管理制度
- 临时用电作业管理制度
- 中学机房使用管理制度
- 乡镇疫苗储存管理制度
- 临床科室实习管理制度
- vocs安全管理制度
- 济宁医学院《能源互联网》2023-2024学年第二学期期末试卷
- 仗鼓舞比赛活动方案
- 2024年湖南融通资源循环产业有限公司技能岗位招聘真题
- 2025压覆矿产资源调查评估规范
- 2025年安徽省农业职业技能大赛(水生物病害防治员)备赛试题库(含答案)
- java笔试题目及答案
- 安徽省合肥一中2025届高三5月回归教材读本
- 2024年江苏省无锡市中考历史真题(解析版)
- 人人讲安全个个会应急 课件-2024-2025学年高二下学期防灾减灾主题班会
- 《成人慢性肾脏病食养指南(2024年版)》解读
- 静电放电(ESD)及其防护措施培训课件
评论
0/150
提交评论