模块设计说明书

上传人:子 文档编号:43246546 上传时间:2018-06-05 格式:DOC 页数:8 大小:180.50KB
返回 下载 相关 举报
模块设计说明书_第1页
第1页 / 共8页
模块设计说明书_第2页
第2页 / 共8页
模块设计说明书_第3页
第3页 / 共8页
模块设计说明书_第4页
第4页 / 共8页
模块设计说明书_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《模块设计说明书》由会员分享,可在线阅读,更多相关《模块设计说明书(8页珍藏版)》请在金锄头文库上搜索。

1、FiTMPI 模块设计说明书1模块设计说明书模块设计说明书mmd(总体设计)(总体设计) 作者作者:毛佳音毛佳音 创建时间创建时间:2005 年 11 月 28 日 稳定程度稳定程度:修改历史修改历史版本版本 日期日期 修订人修订人 说明说明1.02005 年 11 月 28 日毛佳音第一版FiTMPI 模块设计说明书2目目 录录1. 引言引言.31.1 模块名称 MMD.3 1.2 模块背景和内容概要.3 1.3 相关资料、缩略语、定义.32. 模块功能模块功能.42.1 MMD与其它模块的关系.4 2.2 MMD的子模块设计.53. MMD_EXEC 子模块子模块.53.1 MMD_EXE

2、C子模块功能介绍 .5 3.2 状态与流程.5 3.3 协议格式与命令集.6 3.4 程序文件清单.7 3.5 主要数据结构.8FiTMPI 模块设计说明书31. 引言引言1.1 模块名称模块名称mmd1.2 模块背景和内容概要模块背景和内容概要mmd 是运行在每一个结点的后台的管理进程。它的主要功能包括(1)接收来自 Mpiexec 的命令(2)生成并管理任务(3)向其它的 mmd 发送任务信息(4)启动子进程(5)与 子进程通信。这个模块的功能比较复杂,可以分为多个子模块,在本文档中描述这个模块 的主要功能,每一个子模块的功能在相应的文档中。TODO,子模块文档名1.3 相关资料、缩略语、

3、定义相关资料、缩略语、定义Mmd: Mpi Management DaemonFiTMPI 模块设计说明书42. 模块功能模块功能2.1 mmd 与其它模块的关系与其它模块的关系图 1 FiTMPI 模块部署图整个 FiTMPI 项目可以部署在一个分布式的系统上。该系统主要由两种结点组成,一种是 用户(程序员)提交 MPI 任务的前端结点,一种是执行并行程序的计算结点。在前端结点 上含有 mpiexec 模块;在计算结点上含有 mmd 模块和链接在客户并行程序中的 MPI 库的 各个模块。前端结点和计算结点可以在同一台机器上,如图 1 中的 Node1。 用户(并行程序员)直接和 mpiexe

4、c 模块交互,mpiexec 通过 informer 接口将用户请求 execlist 传给 Mmd 模块,接收 execlist 的 mmd 称主 mmd,主 mmd 生成新的任务 jobnode, 并将任务分配给其它的 mmd(从 mmd) 。从 mmd 通过 forker 接口在本地创建新的进程, 并负责与进程之间传递信息。FiTMPI 模块设计说明书52.2 mmd 的子模块设计的子模块设计图 2 mmd component diagramMmd 模块由四个子模块组成。Mmd_exec 负责从 mpiexec 模块接收用户命令,以 execlist 的形式传递。接收一个完整的消息之后,

5、调用 Job_manager 的 newjob 接口生成新 的任务。Job_manager 负责管理任务,分配每个机器上的进程等。分配好的任务信息将被 mmd_mmd 子模块传到从 mmd 中,从 mmd 调用 forker。3. mmd_exec 子模块子模块3.1 mmd_exec 子模块功能介绍子模块功能介绍该子模块的主要功能是与 mpiexec 模块通信,从 mpiexec 接收任务信息。使用 TCP 方 式,mmd 作为服务器,开一个监听端口等待 mpiexec 连接,mpiexec 连接后向 mmd 发送命 令,全部发完后 mpiexec 主动关闭连接。3.2 状态与流程状态与流程

6、Mpiexec 的状态转移如图 3 所示。在用户输入之后进入 Parse User Command 状态,完 成之后主动连接 mmd,连接成功后进入 Authorize 状态,得到 mmd 的认可后进入 Send execlist 状态,将整个 execlist 发给 mmd 后进入 Close Connection 状态关闭连接并退出。FiTMPI 模块设计说明书6图 3 mpiexec state diagramMmd 的状态转移如图 4 所示。Mmd 在后台运行,为 mpiexec 打开一个 TCP 监听端口, 处于 Listening 状态。有 mpiexec 连接后进入 Connec

7、ted 状态,对收到的消息进行认证,通 过认证后进入 Receive execlist 状态,完全接收完后退出这一模块,进入 job manger 模块生 成新的任务,生成新的任务后回到 Listening 状态,等待下一任务的到来。需要注意的是这 里使用的是单进程单线程的方式,因此在开始处理一个连接之后 mmd 拒绝其它的连接请 求,直到 New Job 返回到 Listening 状态。 图 4 mmd state diagram3.3 协议格式与命令集协议格式与命令集Mpiexec 的 informer 模块与 mmd 的 mmd_exec 模块之间的消息传递是以字符串的形式 进行的。每

8、个命令以一个命令号开头,后面加冒号,命令内容,最后以#结束。例如: 0201:FiTMPI mmd version:1.0# 一共 22 对命令,每个命令均是 mpiexec 发出,mmd 应答。具体命令如表 1 所示。 命令定义文件: Mpiexec/include/me_comm.h, Mmd/include/mmd.hFiTMPI 模块设计说明书7MMD_EXEC 模块MPIEXEC 模块命令名称命令 号命令名称命令 号状态FMPI_MMD_CMD_VERIFYRES0201 FMPI_MPIEXEC_CMD_VERIFY0101FMPI_MMD_CMD_BUSYRES0201FMPI_

9、MMD_CMD_AUTHRES0202 FMPI_MPIEXEC_CMD_AUTH0102AuthFMPI_MMD_CMD_NEWNODERES0203FMPI_MPIEXEC_CMD_NEWNODE0103FMPI_MMD_CMD_ARGSRES0204 FMPI_MPIEXEC_CMD_ARGS0104FMPI_MMD_CMD_DUMPRES0205 FMPI_MPIEXEC_CMD_DUMP0105FMPI_MMD_CMD_ENVRES0206 FMPI_MPIEXEC_CMD_ENV0106FMPI_MMD_CMD_EXECFILERES0207FMPI_MPIEXEC_CMD_EXE

10、CFILE0107FMPI_MMD_CMD_PATHRES0208 FMPI_MPIEXEC_CMD_PATH0108FMPI_MMD_CMD_PWDFILERES0209 FMPI_MPIEXEC_CMD_PWDFILE0109FMPI_MMD_CMD_SYSARCHRES0210 FMPI_MPIEXEC_CMD_SYSARCH0110FMPI_MMD_CMD_DBGRES0211 FMPI_MPIEXEC_CMD_DBG0111FMPI_MMD_CMD_LOCALRES0212 FMPI_MPIEXEC_CMD_LOCAL0112FMPI_MMD_CMD_LOGONRES0213 FMP

11、I_MPIEXEC_CMD_LOGON0113FMPI_MMD_CMD_NOMPIRES0214 FMPI_MPIEXEC_CMD_NOMPI0114FMPI_MMD_CMD_PLAINRES0215 FMPI_MPIEXEC_CMD_PLAIN0115FMPI_MMD_CMD_PORTRES0216 FMPI_MPIEXEC_CMD_PORT0116FMPI_MMD_CMD_PRIRES0217 FMPI_MPIEXEC_CMD_PRI0117FMPI_MMD_CMD_PNORES0218 FMPI_MPIEXEC_CMD_PNO0118FMPI_MMD_CMD_TIMEOUTRES0219 FMPI_MPIEXEC_CMD_TIMEOUT0119FMPI_MMD_CMD_HOSTRES0220 FMPI_MPIEXEC_CMD_HOST0120FMPI_MMD_CMD_ENDNODERES0221FMPI_MPIEXEC_CMD_ENDNODE0121FMPI_MMD_CMD_ENDLISTRES0222 FMPI_MPIEXEC_CMD_E

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号