模块设计说明书

发布 2019-08-15 08:10:20 阅读 1952

mmd(总体设计)

作者: 毛佳音。

创建时间: 2023年11月28日。

稳定程度:

修改历史。目录。

1. 引言 3

1.1 模块名称 mmd 3

1.2模块背景和内容概要 3

1.3相关资料、缩略语、定义 3

2. 模块功能 4

2.1 mmd与其它模块的关系 4

2.2 mmd的子模块设计 5

3. mmd_exec子模块 5

3.1 mmd_exec子模块功能介绍 5

3.2 状态与流程 5

3.3 协议格式与命令集 6

3.4 程序文件清单 7

3.5 主要数据结构 8

1. 引言。

1.1 模块名称。

mmd1.2模块背景和内容概要。

mmd是运行在每一个结点的后台的管理进程。它的主要功能包括(1)接收来自mpiexec的命令(2)生成并管理任务(3)向其它的mmd发送任务信息(4)启动子进程(5)与子进程通信。这个模块的功能比较复杂,可以分为多个子模块,在本文档中描述这个模块的主要功能,每一个子模块的功能在相应的文档中。

[todo,子模块文档名]

1.3相关资料、缩略语、定义。

mmd: mpi management daemon

2. 模块功能。

2.1 mmd与其它模块的关系。

图1 fitmpi模块部署图。

整个fitmpi项目可以部署在一个分布式的系统上。该系统主要由两种结点组成,一种是用户(程序员)提交mpi任务的前端结点,一种是执行并行程序的计算结点。在前端结点上含有mpiexec模块;在计算结点上含有mmd模块和链接在客户并行程序中的mpi库的各个模块。

前端结点和计算结点可以在同一台机器上,如图1中的node1。

用户(并行程序员)直接和mpiexec模块交互,mpiexec通过informer接口将用户请求execlist传给mmd模块,接收execlist的mmd称主mmd,主mmd生成新的任务jobnode,并将任务分配给其它的mmd(从mmd)。从mmd通过forker接口在本地创建新的进程,并负责与进程之间传递信息。

2.2 mmd的子模块设计。

图2 mmd component diagram

mmd模块由四个子模块组成。mmd_exec负责从mpiexec模块接收用户命令,以execlist的形式传递。接收一个完整的消息之后,调用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 状态与流程。

mpiexec的状态转移如图3所示。在用户输入之后进入parse user command状态,完成之后主动连接mmd,连接成功后进入authorize状态,得到mmd的认可后进入send execlist状态,将整个execlist发给mmd后进入close connection状态关闭连接并退出。

图3 mpiexec state diagram

mmd的状态转移如图4所示。mmd在后台运行,为mpiexec打开一个tcp监听端口,处于listening状态。有mpiexec连接后进入connected状态,对收到的消息进行认证,通过认证后进入receive execlist状态,完全接收完后退出这一模块,进入job manger模块生成新的任务,生成新的任务后回到listening状态,等待下一任务的到来。

需要注意的是这里使用的是单进程单线程的方式,因此在开始处理一个连接之后mmd拒绝其它的连接请求,直到new job返回到listening状态。

图4 mmd state diagram

3.3 协议格式与命令集。

mpiexec的informer模块与mmd的mmd_exec模块之间的消息传递是以字符串的形式进行的。每个命令以一个命令号开头,后面加冒号,命令内容,最后以#结束。例如:

0201:fitmpi mmd version:1.0#

一共22对命令,每个命令均是mpiexec发出,mmd应答。具体命令如表1所示。

命令定义文件:

mpiexec/include/me_ mmd/include/

表1 mmd_exec子模块的命令集。

3.4 程序文件清单。

mpiexec/informer/me_ mpiexec的informer模块头文件。

mpiexec/informer/me_ mpiexec的informer模块实现。

mmd/include/模块的头文件。

mmd/execcmd_模块实现。

3.5 主要数据结构。

在这一模块中主要传递的execlist结构。关于execlist的详细描述请参看mpiexec module design.

装修设计说明书

业务号 室内装修工程。装修 二0一二年月。工程名称 室内装修工程 设计单位。法人代表。技术总负责。项目技术负责。设计人。总目录。装修设计说明 一 设计依据。二 建设规模和设计范围。三 装修设计。装修图目录。图纸目录装修 00 室内装修设计说明装修 01 总平面图装修 02 首层平面图装修 03 二层...

作业设计说明书

根据县 安排,酉华林场2007年10月对2007 2008年度农业综合开发林业示范项目作出了规划设计。共设计造林 封山育林 低效林改造和幼林抚育四种营造林类型47个小班7110亩,分布于场部 潮水 三元 留冲 乐元 草鞋岭 盘台 东堡山等八个营林区。现就具体情况说明如下 一 各分项目规模。1 造林 ...

标志设计说明,标志设计说明书,标志的设计说明

标志设计说明怎么写?标志设计完成后如何写标志设计说明呢?这个也是标志设计的重要一部分,下面我们自己的经验希望能告诉大家标志设计说明怎么写。标志设计说明企业商标标志释义通常有自己惯用的词汇,它们涉及到企业理念 行业特质 设计术语 美学 吉祥用语等等方面。若将这些词汇有机地搭配或举一反三地加以发挥运用,...