基于后台管控架构的并行仿真任务分发与调度方法

文档序号:6466287阅读:244来源:国知局
专利名称:基于后台管控架构的并行仿真任务分发与调度方法
技术领域
本发明涉及计算机仿真领域的任务分发与调度方法,尤其是一种并行仿 真任务的分发与调度方法。
背景技术
并行仿真是执行在共享内存多处理器、多计算机系统或单指令多数据流
(SIMD)机器上的仿真,其目的是通过并行执行来获得更高的性能,即在 保持系统因果序协同正确的前提下尽可能多地提高系统的运行效率。并行仿 真的典型特点是"超实时运行"、"因果序协同"。并行仿真是连接并行计算机 系统和实际仿真应用问题之间的桥梁。并行仿真分为并行连续系统仿真和并 行离散事件仿真,并行连续系统仿真是指在并行计算平台上执行的状态变量 随时间连续变化的仿真,并行离散事件仿真是指在并行计算平台上执行的状 态变量仅在某个离散时间点集合上发生变化的仿真。并行连续系统仿真,通 过将描述系统状态连续变化的偏微分方程组分解到多个处理器上进行计算 来提高计算速度,侧重于并行计算技术的研究,主要应用于复杂科学计算和 模拟、工程数值分析领域。并行离散事件仿真,通过将描述系统的数万至数 百万的实体子模型分解到多个处理器上并行执行来减少运行时间,侧重于大 规模的军事、经济、交通分析领域。针对大规模战争问题及战术战法研究、 作战方案分析评估、武器装备体系论证等评估论证类仿真应用的需要, 一般 在并行计算机系统上采用并行离散事件仿真。采用并行离散事件仿真可以大 大地提高评估论证类仿真运行效率,縮短评估论证类仿真的运行时间。
分布式仿真是执行在分布计算机上的仿真。分布式仿真的运行平台主要 是通过网络(或Internet)互联的位于不同物理地点的工作站、以及利用无 线连接的便携计算机。分布式仿真与并行仿真的区别主要是仿真计算平台的 不同。分布式仿真的典型特点是分布性、交互性。分布式仿真的主要目的是构建分布式虚拟环境(如军事训练仿真环境等)。
并行离散事件仿真(以下简称并行仿真)的基本构造块是离散事件。一 旦一个离散事件仿真被初始化,并行仿真通过处理时间轴上不连续点处发生 的带有时间戳的事件,使所有特定于应用程序的计算随着时间而推进。并行 仿真是对复杂系统复杂交互进行建模的一个强有力的技术。
在并行仿真应用中,往往需要对多个方案进行比较,或者需要对参数空 间的不确定性因素进行探索,从而找出符合目标的最优方案,以辅助相关人 员进行决策。这就要求仿真应用可能运行几十、几百、甚至上千次,才能得 到方案评估所需的大量结果数据。其中仿真应用可执行程序的每次实例称为 一个仿真应用样本,仿真应用可执行程序的每次运行称为一个样本运行。
针对并行仿真应用的多样本多次运行,传统的并行仿真任务分发与调度 方法一般采用与建设的仿真系统密切结合的主从方式,其过程可概括为三 步..
(1) 样本分发在建立的仿真样本运行硬件环境中,对仿真样本的 初始化文件、仿真样本子模型进行手动配置,来实现仿真样本的任务分 发。
(2) 样本调度仿真运行过程中,采用静态任务队列、样本子模型 协同策略对仿真任务进行调度,来实现仿真样本的依次调度运行。
(3) 样本结果数据收集仿真运行完毕后,仿真结果分散在各个计 算机上,需采用手动收集方式来收集各个仿真样本的结果数据。
其中前两步("样本分发"与"样本调度")是并行仿真任务分发与调度中 的两个核心环节,第三步"样本结果数据收集"则是对前两步运行结果数据的 收集与输出。传统的并行仿真任务分发方法采用的是一种静态的、手动的分 发策略,需要人为地将仿真样本复制到各台计算机上,这种复制过程不仅需 要消耗大量的人力资源,而且容易引起样本配置错误。传统的并行仿真任务 调度方法能够在一定程度上解决仿真样本的调度问题,但不能根据仿真任务实际运行情况对仿真样本进行重新调度,来满足仿真样本的动态调度,因而 存在适应性较差的问题。传统的并行仿真收集方法与任务分发方法存在同样 的问题,采用手动方式将仿真样本结果数据复制到收集管理计算机上,这种 复制过程需要消耗大量的人力资源,从而极易引起样本结果数据收集的错 误。
美国国防部早期开发的并行仿真系统大多采用这种任务分发和调度方 法。这种任务分发与调度方式既极大地浪费了宝贵的人力资源,又不能最大 程度满足仿真系统对时效性的进一步的要求,从而阻碍了应用的发展。之后, 美国在开展大规模并行仿真系统建设时,开展了对并行仿真任务分发与调用
技术的研究,并将这些研究成果先后应用到联合仿真系统(JSIMS)、联合建 模与仿真系统(JMASS)、 WARGAME2000等多个重要仿真项目中,不过他们 的实现方法并未公开。
国内开展并行仿真研究的工作较晚,目前从国内公开的文献中仍未看到 任何关于并行仿真多样本任务分发与调度研究的报道。仅看到为基于HLA开
发的仿真应用的多样本多次运行任务分发与调度的研究,如国防大学研制的 战争分析综合仿真试验环境,采取重新构建联邦的方'式实现仿真样本的多次 调度运行;2007年,解放军机械工程学院的谈斌等,在参加"第二次仿真高 层论坛"时,采取三重循环控制流程调度策略来实现仿真子模型的协同并行。 所有这些方案均是结合具体分布式仿真应用的,而并行离散事件仿真应用与 分布式仿真应用在时间推进、仿真运行机制等方面存在较大的差异,从而使 得这些方案无法直接用于并行离散事件仿真应用的多样本任务分发与调度 过程之中。 技术方案
本发明要解决的技术问题是针对传统的并行仿真任务分发与调度方法 需要用户手工操作完成、消耗时间长、仿真结果数据收集困难等问题,提出 一种基于后台管控架构的并行仿真任务分发与调度方法,以加快并行仿真多样本多次运行速度,提高仿真结果数据收集的自动程度。 本发明的技术方案为
第一步,构建由多台计算机组成的并行仿真局域网环境。每台计算机都 是局域网的节点,各节点有着各自独立的存储系统,节点之间的通信采用消
息传递的方式。节点依次编号为0,1,2,...,11, n+l为局域网中节点的总数。
第二步,建立基于后台管控架构的并行仿真任务分发与调度器。并行仿 真任务分发与调度器由管理器、后台管控器组成,管理器是一个仿真样本分 发和调度软件,负责实现仿真样本的分发,并通过调度后台管控器来实现仿
真样本的运行;后台管控器是一个响应仿真样本分发和调度的软件,负责对 仿真样本进行接收与调度。具体步骤包括-
2.1建立管理器指定在任一编号(例如编号为0)的节点机器上建立并
行仿真任务分发管理器,并行仿真任务分发管理器所在的节点简称为管理器 节点,在管理器节点上安装仿真应用可执行程序。并行仿真任务分发管理器
每隔0.8 2秒向局域网内的各个节点发送UDP (User Datagram Protocol,用
户数据报协议)消息,以期与局域网内的后台管控器建立连接。
2.2建立后台管控器指定在除管理器编号(例如编号1,2,...,10的节点
上依次建立并行仿真任务分发后台管控器,各后台管控器均与管理器建立可
靠连接。并行仿真任务分发后台管控器所在的节点简称为后台管控器节点。
之后在后台管控器节点上建立支持并行仿真应用运行和实体子模型交互的
运行支撑环境一并行仿真服务器。
2.3管理器和后台管控器之间建立连接消息通讯机制,步骤如下
2.3.1为保证管理器与后台管控器之间消息传输的唯一性、可靠性,管理
器以各后台管控器的节点编号为标识,向各后台管控器发送UDP消息。 2.3.2各后台管控器从管理器接收到UDP消息后,即建立与管理器的可
靠连接;当所有后台管控器完成建立与管理器的连接后,管理器即停止发送
UDP消息,以减轻广播引起的网络负担。2.3.3管理器每隔2 4秒向后台管控器请求节点CPU状态、内存状态等 信息,后台管控器接收到管理器的请求消息后,实时收集本节点状态信息并 传送给管理器。
2.3.4管理器接收到各后台管控器的状态信息后,实时显示各后台管控器 节点当前的性能状态参数(包括CPU主频、CPU利用率、内存容量、内存 利用率等参数),以期在分配仿真样本(包括仿真可执行程序、各种.par文 件,例如并行仿真配置文件SUPE.par、仿真对象文件objects.par、仿真对象 分发文件Shnobjplacement.par等文件)时,管理器根据性能状态参数来给各 后台管控器节点分配适宜的样本数。
第三步,基于仿真任务复杂程度决定分发调度策略。仿真任务复杂程度 由仿真样本运行过程中的实体数以及实体之间交互的数量决定。分发调度策
略包括单节点分发调度策略和组分发调度策略。单节点分发调度策略是指在 一个后台管控节点上运行一个仿真样本和一个并行仿真服务器,它主要针对 相对简单的仿真应用,仿真样本在单个后台管控节点上即能较好地运行,同 时运行的并行仿真服务器负责监控本节点上样本的运行状态(即样本的开 始、结束状态);组分发调度策略是指几个后台管控节点构成一个组,该节 点组共同运行一个仿真样本,其中一个后台管控节点运行并行仿真服务器, 其它节点运行仿真样本可执行程序,它主要针对相对复杂的仿真应用,该类 仿真应用在单个节点上运行无法满足要求,需根据复杂程度规划合适的分组 规模,从而使组内节点作为一个整体来运行仿真样本。选定单节点分发调度 策略或组分发调度策略的规则是若仿真任务实体数为S, CPU平均利用率 为E,内存平均利用率为Es,则当SxEcpuXE^-100时,选取单节点分发调 度策略,否则选取组分发调度策略;在计算机节点有限的情况下,分组规模 越小,同时运行的仿真样本数也就越多,每个样本运行所需时间可能也就越 长-,分组规模越大,同时运行的仿真样本数越小,每个样本运行时间可能就 越短。在分组规模逐步增大的过程中,计算开销占主导作用时,仿真运行速度一般会随分组规模的增大而加快,但是当分组规模增大到一定程度,使得 通信开销占主导作用时,仿真运行速度反而会随分组规模的增大而变慢。为 使整个仿真任务运行时间减至最小,需找出合适的分组规模来运行仿真。分
组策略是若SxEcpuxEs>100&&SxEcpuxEs<=200,采用2节点为一组的组分 发调度策略;若SxEcpuxEs>200&&SxEcpuxEs<=300,采用3节点为一组的组 分发调度策略;如此类推,即当SxEcpuxEs>(k-l)*100&&SxEcpuxEs<=k*100 时,采用k节点为一组的组分发调度策略,l<k<=n。当存在不能归组的节 点时,将这些节点归入最后一个节点组中,联合执行相应的仿真样本。规划 好分组后,需根据分组情况生成配置文件,指定组内的主管控节点、仿真对 象分发情况。当仿真运行时,根据位于各后台管控节点上的配置文件将仿真 对象映射到各后台管控节点,并由并行仿真服务器实现不同节点上的仿真对 象之间的交互。
第四步,管理器根据单节点分发调度策略或组分发调度策略向后台管控
器进行仿真样本分发。
4.1当选定单节点分发调度策略进行分发时,包括以下步骤
4丄1根据各节点当前的性能状况参数(包括CPU主频、CPU利用率、
内存容量、内存利用率等参数),基于负载平衡的原则向各后台管控节点分
配仿真样本。
4丄2管理器记录样本部署信息(包括节点编号、仿真样本名称、仿真样 本运行次数、记录文件编号),并以后台管控节点的编号为关键字生成仿真 任务队列STQ (Simulation Task Queue) 。 STQ以后台管控节点编号为关键 字,包含各节点相应的后台管控节点子队列,假设编号为0的节点上建立了 管理器,则STQ^STQ!,STQ2,…,STQi,…,STQJ, i=l,2,...,n,子队列STQi 中每个元素是一条记录,每条记录包括节点编号、仿真样本名称、仿真样本 运行次数、记录文件编号四个字段。其中节点编号标识仿真样本运行的节点 i,仿真样本名称标识运行的样本名Namej(j=l,2,...,N,假设节点i上要运行N个仿真样本,样本名为(Namei,Name2,…,Namej,…,NameNp ,仿真样本运行 次数标识仿真样本Namej在节点i上需运行的次数murnj,记录文件编号表示 样本运行结果存储的文件编号i—Name」—mum"
例如STQi包含N个仿真样本{ Nameh Name2,..., Namej,...,NameN},则 节 点 i 的 任 务 子 队 列
STQi= {{i,Name!,rnumi,i—Namelrnumi}, { i,Name2,rnum2,i—Name2—mum2},{..., ..".."...} , (i,Namej,rnumj,i一Namej—rnumj} , { "..■, .,..,} , { i,NameN,mumN,i—NameN—rnumN}}。当调度仿真样本运行时,管理器根据 STQj在节点i上按序调度仿真样本Nan^, Name2,...,NameN运行,并且依次 将仿真样本Namej运行rnurnj次和将仿真运行结果数据放入文件 i_Namej_rnumj, j=l,2"..,N。
4丄3管理器查询仿真任务队列STQ,生成各节点的配置文件,并将配 置文件和仿真应用可执行程序分发到对应的后台管控节点。对于同一个仿真 应用来说,部署到各节点上的仿真样本之间仿真应用可执行程序均相同,仅 配置文件不同。因此,为减少网络通信量,縮短分发时间,在分发仿真运行 文件时,采取传输压縮数据包的方式实现管理器与各后台管控器之间文件的 传输。具体方法如下
4丄3.1管理器判断任务队列STQ是否为空,若不为空,取任务队列STQ 中第一个节点子队列作为当前节点任务子队列STQi,置当前节点为节点i, 执行步骤4.1.3.2;若为空,结束仿真任务节点分发。
4丄3.2管理器判断STQi是否为空,若不为空,执行步骤4丄3.3;若STQj 为空,判断当前STQi是否存在下一节点子队列,若存在,取当前STQi的下 一节点子队列作为当前节点任务子队列STQi,转步骤4丄3.2;若不存在, 结束仿真任务节点分发。
4丄3.3根据STQi中的记录,生成节点i上的仿真样本Namej运行rnumj 次、以及记录文件编号i—Namejjnumj的配置文件,j=l,2,...,N。4丄3.4管理器将仿真应用可执行程序、配置文件压縮成仿真应用文件
包,并向节点i上的后台管控器仅传输一次仿真应用文件包。
4丄3.5节点i上后台管控器将接收到的仿真应用文件包解压至仿真应用 文件夹,根据相应的命名规则,生成不同的样本文件运行文件夹,并将仿真 应用文件夹中所有文件拷贝至所有的样本运行文件夹中。转步骤4丄3.2。
4.2当管理器针对复杂仿真应用采用组分发调度策略进行分发时,划分 的各个后台管控节点组内存在一个主后台管控节点,主后台管控节点上的后 台管控器简称为主后台管控器,由它运行并行仿真服务器,组内其他后台管 控器均为普通后台管控器,运行仿真样本可执行程序。组分发策略包括如下
步骤
4.2.1根据确定的分组规模,设置各个节点所属于的节点组,为节点分组, 形成节点组参数文件。
4.2.2指定组内主管控节点来负责整个组的并行仿真样本运行,综合考虑 各节点组的性能状况,基于负载平衡的原则在各后台管控节点组分配仿真样 本。
4.2.3管理器记录样本部署信息(包括主管控节点编号、节点编号、仿真 样本名称、仿真样本运行次数、记录文件编号),并以主后台管控节点的编 号Prmm为关键字生成任务主管控队列STCQ (Simulation Task Control Queue)。STCQ,TCQi, STCQ2,..., STCQm,..., STCQM}, m=l,2,,."M, M<=n, M为最大分组数,STCQ包含主后台管控节点Pmv相应的主后台管控节点 子队列STCQm,子队列STCQm包含节点组Prnim上将要运行的所有仿真样 本的信息,STCQm中每个元素是一条记录,每条记录包括主管控节点编号、 属于节点组的节点编号、仿真样本名称、仿真样本运行次数、记录文件编号 五个字段。
其中主管控节点编号标识仿真样本运行节点组内的主管控节点Prmm,, Pmv也标识该节点组,节点编号标识共同运行仿真样本的组内的一个节点i(i=l,2,...,n),仿真样本名称标识运行的样本名为Namej (^1,2,...,N,假设 节点i上要运行N个仿真样本,样本名为{ Nameh Name2,..., Namej,...,NameN}),仿真样本运行次数标识仿真样本Namq子进程在组Prmm 的节点i上需运行的次数rnumj,记录文件编号表示样本运行结果数据存储 的文件编号为Praii—Namej_rnumj。
例如STCQm包含N个仿真样本(Name^ Name2,..., Namej,...,NameN}, 取节点组Pmim中最小节点编号为Prmm,根据节点分配策略,节点组Pmim 若包含L+1个节点,0SZ4"/MV1,则为节点组元素为(Pmv,Prnv+l,…,
Prmm+L};则节点组Prmm的任务主管控子队列STCQm={ {{ Prmm Praim,,Namehmurru, Prmm—NameLmun^},{...},{ Prmm, Prmm+l,Namehmurr^, Prmm—Namei—murnt },{...}, {Prmm,, Pmim+L,Namei,mum!, Prav一Namei一rnum!} }, {{ Pnnm,, Prmm,,Name2,mum2,
Prmm_Name2—mum2 },{,..},{ Prmm, Prmm+1 , Name2,mum2,
Prmm—Name2—rnum2 },{...},{ Prmm —Name2 mum2}},{{.."...,.."...}},{{ Prmm—NameN—rnumN},{...},{ Prmn Prmm—NameN—rnumN },{...},{ Prairr
Prmm+L,Name2,rnum2, Prmm Prmm, Prmm,NameN,rnumN, Prmm+1 , NameN,rnumN, Prmm+L,NameN,rnumN, Prmm
—NameNjnumN}}},l<=K=L 。当调度仿真样本运行时,管理器根据主后台管 控节点子队列STCQm在节点组Prmm上按序调度仿真样本Namei, Name2,...,NameN运行,并且依次将仿真样本Namej运行 mumj次禾口将仿真运 行结果数据放入文件Prmm—Namejjnumj。
4.2.4管理器查询任务主管控队列STCQ,生成各节点组的配置文件,并 将配置文件和仿真应用可执行程序部署到各后台管控节点组。对于同一个仿 真应用来说,部署到各节点组上(非同一组的不同节点上)的仿真样本之间 仿真应用可执行程序均相同,仅配置文件不同。因此,为减少网络通信量, 縮短分发时间,在部署仿真样本时,采取传输压縮数据包的方式实现管理器 与各后台管控器之间文件的传输。具体方法如下4.2.4.1管理器判断任务主管控队列STCQ是否为空,若不为空,取任务 主管控队列STCQ中第一个节点组子队列作为当前节点组子队列STCQm, 置当前节点组为节点组Prmm,执行步骤4.2.4.2;若为空,结束仿真任务节 点组的分发。
4.2.4.2管理器判断STCQm是否为空,若不为空,执行步骤4.2.4.3;若 STCQm为空,判断当前STCQm是否存在下一节点组子队列,若存在,取当 前STCQm的下一节点组子队列作为当前节点组任务子队列STCQm,转步骤 4.2.4.2;若不存在,结束仿真任务节点组的分发。
4.2.4.3根据STCQm中的记录,生成节点组Pmim上的仿真样本Namej、 运行次数rnumj、以及记录文件编号为Prmm—Namej—mimij的配置文件, j=l,2".,,N。
4.2.4.4管理器将仿真应用可执行程序、配置文件压縮成仿真应用文件 包,并向节点组Prmm的各后台管控器仅传输一次仿真应用文件包。
4.2.4.5节点组Pmv的各后台管控器将接收到的仿真应用文件包解压至 仿真应用文件夹,根据相应的命名规则,生成不同的样本文件运行文件夹, 并将仿真应用文件夹中所有文件拷贝至所有的样本运行文件夹中。转步骤 4.2.4.2。
第五步,由基于后台管控架构的并行仿真任务分发与调度器进行仿真样 本的调度。并行仿真多样本任务调度的目标是将部署到各后台管控节点上的 仿真样本依次调度运行,实现仿真样本的自动高效运行。
当选定单节点分发调度策略时,调度方法采用单节点调度策略。单节点 调度策略通讯结构是仿真任务运行时,管理器与后台管控器建立通讯连接, 调度后台管控器来启动并行仿真服务器,并由后台管控器执行仿真样本的多 次运行,并行仿真服务器与仿真样本程序同时运行在后台管控节点上。各后 台管控器之间不存在直接通讯连接关系。
当选定组分发调度策略时,调度方法采用组调度策略。组分发调度策略通讯结构是仿真任务运行时,管理器与所有后台管控器建立通讯连接,但 主要通过主管控节点来负责调度,主管控节点启动并行仿真服务器,并负责 执行仿真样本的子进程(各子进程共同构成仿真样本程序),普通后台管控 节点与主管控节点通过并行仿真服务器来建立通讯连接,负责执行仿真样本 的子进程,子进程之间通过并行仿真服务器进行通讯。组相互之间不存在直 接通讯连接关系。
5.1当选定单节点调度策略时,包括以下步骤
5丄1管理器判断任务队列STQ是否为空,若不为空,取任务队列STQ 中第一个节点子队列作为当前节点任务子队列STQi,置当前节点为节点i,
执行步骤5丄2;若为空,结束仿真任务调度运行;
5丄2管理器判断ST(^是否为空,若STQi为空,删除STQi,转步骤5丄1; 若不为空,执行步骤5丄3;
5丄3判断STQi上的第一个仿真样本的运行次数是否为0,若为O,管理 器删除STQi中的第一个仿真样本的记录,转步骤5丄2,若不为O,执行步 骤5丄4;
5丄4管理器在节点i上调度STQi中的第一个仿真样本运行1次,方法 是管理器向节点i上的后台管控器发送仿真样本调度消息,后台管控器启 动节点i上的并行仿真服务器以及仿真样本运行,同时向记录文件编号标识 的文件记录仿真结果数据。转步骤5.1.5;
5丄5判断任务队列STQ是否存在未调度仿真样本运行的节点,若存在, 管理器置第一个未调度节点为当前节点i,转步骤5丄2;若任务队列中不存 在未调度节点,管理器处于等待后台管控器信息报告状态,转步骤5丄6;
5丄6后台管控器运行仿真样本开始后,仿真应用可执行程序将仿真结果 数据记录到记录文件编号标识的文件中,并通过并行仿真服务器每隔一段时 间T (T为5-8秒)査询仿真运行状态,仿真样本运行结束时,后台管控器 将仿真样本结束状态发送给管理器,管理器接收后台管理器仿真样本的本次运行完毕消息后,执行步骤5.1.7;
5丄7管理器修改当前节点i的任务子队列STQi中的当前运行样本的运
行次数,运行次数减少l次,转步骤5丄3。
5.2对于复杂仿真应用采用组调度策略时,包括以下步骤
5.2.1管理器判断任务主管控队列STCQ是否为空,若不为空,取任务主
管控队列STCQ中第一个节点组队列作为当前节点任务主管控子队列
STCQm,置当前节点组为节点组Prmm,执行步骤5.2.2;若为空,结束仿真
任务调度运行;
5.2.2管理器判断当前节点组Prmm的子队列STCQm是否为空,若STCQm 为空,则删除STCQm,转步骤5.2.1;若不为空,执行步骤5.2.3;
5.2.3判断STCQm上的第一个仿真样本的运行次数,若为0,管理器删 除STCQm中的第一个仿真样本的记录,转步骤5.2.2,若不为0,执行步骤 5.2.4;
5.2.4管理器在节点组Praim上调度STCQm中的第一个仿真样本运行1 次,方法是管理器向组内各后台管控器发送仿真样本调度消息,主后台管 控器启动节点上并行仿真服务器及仿真样本子进程运行,各普通后台管控器 启动节点上仿真样本子进程运行,并同时向记录文件编号标识的文件记录仿 真结果数据。转步骤5.2.5;
5.2.5判断任务主管控队列STCQ是否存在未调度仿真样本运行的节点 组,若存在,管理器置第一个未调度节点组为当前节点组Prnv,转步骤5.2.2; 若任务队列中不存在未调度节点组,管理器处于等待主后台管控器信息报告 状态,转步骤5.2.6;
5.2.6当所有后台管控器运行仿真样本开始后,主后台管控节点上的仿真 应用可执行程序对仿真结果数据进行记录,并通过并行仿真服务器每隔一段 时间T (T为5-8秒)查询仿真运行状态,仿真样本运行结束时,主后台管 控器将仿真样本结束状态发送给管理器。管理器接收主后台管理器仿真样本的本次运行完毕消息后,执行步骤5.2.7;
5.2.7管理器修改当前节点组Pmim的任务主管控子队列STCQm中的当前 运行样本的运行次数,运行次数减少l次,转步骤5.2.3。
第六步,由基于后台管控架构的并行仿真任务分发与调度器进行仿真结 果数据的收集。仿真样本运行结束后,数据文件分布在各个后台管控节点上 (其中单节点策略分布在各后台管控器上,组策略分布在主管控节点上), 为便于进行仿真结果的分析评估,采取自动收集各后台管控节点上数据信息 的方式进行数据信息的集中管理。由于数据文件数目众多,后台管控器向管 理器传输时,若采取每次只传输一个文件的方式,会导致沉重的网络负担, 而且每次传输都要进行握手,如此进行数据文件管理会耗费很长的时间。为 减小网络通信量,縮短文件集中管理所需时间,后台管控器(组策略下为主 后台管控器)采用数据文件打包压縮后传输的方式来减轻网络负担。仿真结
果数据自动收集方法是
6.1所有样本运行完毕后,管理器发送样本运行结束消息,后台管控节
点(组分发调度策略下为主管控节点)接收到该消息后,关闭并行仿真服务器,
查询各样本文件包中的数据文件即编号为i_Namej—rmmij或 PrmiNamej—rnumj的文件,将査找到的数据文件加入到数据文件包中压縮存 储。
6.2直至节点上所有的数据文件都加入到数据文件包中,后台管控节点 (组分发调度策略下为主管控节点)向管理器发送数据准备完毕消息,管理器 接收到该消息后,解析出其中的压縮包信息,并初始化接收文件准备工作, 然后向后台管控节点(组分发调度策略下为主管控节点)发送请求文件传输消 息,后台管控节点接收请求文件传输消息后开始传输数据。
6.3管理器启动多线程接收后台管控节点(组分发调度策略下为主管控节 点)的相应数据。文件传输完毕后,为提高安全性,各计算节点清除样本文 件包以及数据文件。管理器收集到各后台管控节点(组分发调度策略下为主管控节点)上的所有数据文件后,仿真结果数据收集完成,仿真任务结束。 与现有技术相比,采用本发明可达到以下技术效果
1. 本发明基于单节点分发策略和组分发策略实现了并行仿真多样本 的分发,可将仿真样本自动分发到多台机器上并行运行,使得在仿真运行时 不需要关注仿真样本的分发过程,提高了并行仿真多样本的自动分发程度, 减少了人为操作为过程,为并行仿真应用系统的连续高效运行打下基础。
2. 本发明基于单节点调度策略和组调度策略实现了并行仿真多样本 的调度,针对复杂仿真应用,可将仿真多样本、仿真对象分发到多个后台管 控节点上并行执行,在综合考虑各节点的性能状况,基于负载平衡的原则下 实现了并行仿真多样本的高效调度执行,即提高了单次仿真运行效率,又满 足复杂系统多样本仿真的需要。
3. 本发明基于压縮方式实现了仿真结果数据的集中管理,能够自动 收集各后台管控节点上仿真结果数据,进行仿真结果数据的集中管理,达到 了减少用户手工操作,降低仿真结果数据收集困难的问题。
综上所述,本发明采用"并行仿真多样本分发"、"并行仿真多样本调度" 与"仿真结果数据收集"三个环节综合优化的策略,实现了仿真样本任务的自 动分发和自动并行执行。本发明有效地解决了传统的并行仿真多样本运行需 要用户手工操作完成、整个过程运行效率低的问题,达到了既提高仿真结果 数据的收集效率,又便于事后数据分析评估的效果。


图l是本发明的总体流程图2是本发明的基于后台管控架构的并行仿真任务分发与调度器的逻辑 结构图3是本发明并行仿真的任务队列结构图; 图4是本发明并行仿真的任务分发流程图; 图5是本发明并行仿真的任务调度流程图;图6是本发明仿真结果数据的收集流程图。
具体实施例方式
图1是本发明的总体流程图主要包括以下六个步骤,其中第1 2步 是建立并行仿真局域网环境和并行仿真任务分发与调度器,第3步是选择仿
真任务分发与调度策略,第4 5步是根据策略进行并行仿真多样本的任务 分发与调度,第6步是将并行仿真结果数据进行自动收集。
1. 构建多台计算机组成的并行仿真局域网环境。每台计算机都是局域 网的节点,各节点有着各自独立的存储系统,节点之间的通信采用消息传递 的方式。
2. 建立基于后台管控架构的并行仿真任务分发与调度器。并行仿真任 务分发与调度器由管理器、后台管控器组成,管理器负责实现并行仿真服务
器与仿真样本的分发,并通过调度后台管控器来实现仿真样本的运行;后台
管控器负责实现仿真样本的接收与运行,以及部署并行仿真服务器和实现仿 真样本的运行控制。
3. 基于仿真任务复杂程度选择分发调度策略。仿真任务复杂程度由仿
真样本运行过程中的实体数以及实体之间交互的数量决定。分发调度策略包 括单节点分发调度策略或组分发调度策略。
4. 由后台管控架构的并行仿真任务分发与调度器采用单节点分发策略 或组分发策略进行任务分发。
5. 由后台管控架构的并行仿真任务分发与调度器采用单节点调度策略 或组调度策略进行仿真样本的调度运行。
6. 由后台管控架构的并行仿真任务分发与调度器采取自动收集各后台 管控节点上数据信息的方式进行仿真结果数据的自动收集。
图2是本发明的基于后台管控架构的并行仿真任务分发与调度器的逻辑 结构图。图2.1是采用单节点分发调度策略时的后台管控架构的并行仿真任 务分发与调度器的逻辑结构图整个系统由一个管理器和多个后台管控器组成,管理器向各后台管控器发送管控命令,将多样本仿真任务分发到各后台 管控节点的后台管控器,对各后台管控节点进行CPU利用率、内存利用率 的监控并调度仿真任务,且对数据信息集中管理,后台管控器负责仿真样本
的运行控制,将仿真数据结果传送给管理器;为保证消息传输的可靠性,管 理器与各后台管控器采用TCP/IP协议进行通信,管理器与后台管控器不能 部署在同一个主机系统中。
图2.2是采用组分发调度策略时后台管控架构的并行仿真任务分发与调 度器的逻辑结构图整个系统由一个管理器、多个主后台管控器和各个组内
普通后台管控器组成,管理器向各主后台管控器发送管控命令,将多样本仿
真任务分发到各组后台管控器,对各组后台管控器节点进行CPU利用率、 内存利用率的监控并调度仿真任务,且对数据信息集中管理,主后台管控器 负责运行并行仿真服务器和仿真样本子进程,普通后台管控器负责仿真样本 子进程的运行控制;为保证消息传输的可靠性,管理器与各主后台管控器采 用TCP/IP协议进行通信,管理器与任何后台管控器不能部署在同一个主机 系统中。
图3是本发明并行仿真的任务队列结构图。图3.1是单节点策略STQ 队列结构图STQ以后台管控节点编号为关键字,包含各节点相应的后台 管控节点子队列,若编号为0的节点上建立了管理器,则STQ={STQh STQ2,...,STQi,...,STQn}, i=l,2,,..,n,子队列STQ;中每个元素是一条记录, 每条记录包括节点编号i、仿真样本名称Namej、仿真样本运行次数rnumj、 记录文件编号i—Namej—mumj四个字段;j^,2,…,N,节点i上共运行N个仿 真样本,样本名为(Namei, Name2,..., Namej,...,NameN};图中STQj包含3个 仿真样本{ Name!, Name2, Name3},则节点i的任务子队列 STQ尸Ui,Namei,2,i—Name、一2),( i,Name2,3,i—Name2—3},{ i,Name3,2, i—Name2_3H 。
图3.2是本发明并行仿真的组策略STCQ队列结构图STCQ以主后台管控节点编号Pmim为关键字,STCQ^STCQi, STCQ2,..., STCQm,..., STCQM},包含主后台管控节点Pmv相应的主后台管控节点子队列STCQm, 子队列STCQm包含节点组Praim上将要运行的所有仿真样本的信息,STCQm 中每个元素是一条记录,每条记录包括主管控节点编号Prmm, Prav也标识 该节点组、节点编号i, i=l,2,...,n、仿真样本名称Namej、仿真样本运行次 数mum"记录文件编号Prmm—Namej—rmrnij五个字段;j^,2,…,N,若节点i 上要运行N个仿真样本,样本名为{ Name" Name2,..., Namej,...,NameN};图中 STCQm包含2个仿真样本(Name3, Name4 },则节点组Prmm的任务主管控子 队列STCQm={{{ Prmm, Prmm,Name3,2!, Prmm—Name3—2},{ Prmm, Prmm+1, Name3,2, Prmm—Name3—2},{ Prmm, Prmm+2,Name3,2, Prmm—Name3—2},{ Prmm, Prmm+3,Name3,2, PrmmJName3—2}},{{ Pnnm, Prmm,Name4,2, Prmm—Name4—2},{ Prmm, Prmm+1 , Name4,2, Prmm—Name4—2},{ Prmm, Prmm+2,Name4,2, Prmm—Name4—2},{ Prmm, Prmm+3,Name4,2, Prmm—Name4一2)}}。
图4是本发明第4步并行仿真的任务分发流程图
1. 管理器根据策略选取规则选定单节点策略或组策略来向后台管控器 进行仿真样本分发,并根据分发策略设置相应的参数文件。
2. 若为单节点分发策略,执行步骤为
2.1根据各节点当前的性能状况(包括CPU主频、CPU利用率、内存 容量、内存利用率等参数),基于负载平衡的原则向各后台管控节点分配仿 真样本。
2.2管理器记录样本部署信息(包括节点编号、仿真样本名称、仿真样 本运行次数、记录文件编号),并以后台管控节点的编号为关键字生成仿真 任务队列STQ (Simulation Task Queue) 。 STQ以后台管控节点编号为关键 字,包含各节点相应的后台管控节点子队列STQ"子队列STQi中每个元素 是一条记录,每条记录包括节点编号、仿真样本名称、仿真样本运行次数、记录文件编号四个字段。管理器根据节点子队列STQ,在节点i上按序调度仿
真样本Namei, Name2,...,NameN运行,并且依次将仿真样本Namej运行mumj 次和将仿真运行结果数据放入文件i一Namejjnumj。
2.3管理器査询仿真任务队列STQ,生成各节点的配置文件,并将配置 文件和仿真应用可执行程序分发到对应的后台管控节点。采取传输压縮数据 包的方式实现管理器与各后台管控器之间文件的传输。具体方法如下-
2.3.1管理器判断任务队列STQ是否为空,若不为空,取任务队列STQ 中第一个节点子队列作为当前节点任务子队列STQi,置当前节点为节点i, 执行步骤2.3.2;若为空,结束仿真任务节点分发。
2.3.2管理器判断STQi是否为空,若不为空,执行步骤2.3.3;若STQj 为空,判断当前STQi是否存在下一节点子队列,若存在,取当前STQi的下 一节点子队列作为当前节点任务子队列STQi,转步骤2.3.2;若不存在,结 束仿真任务节点分发。
2.3.3根据STQi中的记录,生成节点i上的仿真样本Name」运行rnumj 次、以及记录文件i一Namej—mumj的参数配置文件,j=l,2,...,N。
2.3.4管理器将仿真应用可执行程序、配置文件压縮成仿真应用文件包, 并向节点i上的后台管控器仅传输一次仿真应用文件包。
2.3.5节点i上后台管控器将接收到的仿真应用文件包解压至仿真应用文 件夹,根据相应的命名规则,生成不同的样本文件运行文件夹,并将仿真应 用文件夹中所有文件拷贝至所有的样本运行文件夹中。转步骤2.3.2。
3.若为组分发策略,执行步骤为
3.1根据确定的分组规模,设置各个节点所属于的节点组,形成节点组 参数文件。
3.2指定组内主管控节点来负责整个组的并行仿真样本运行。综合考虑 各节点组的性能状况,基于负载平衡的原则在各后台管控节点组上分配仿真 样本。3.3管理器记录样本部署信息(包括主管控节点编号、仿真样本名称、 仿真样本运行次数、记录文件编号),并以组后台管控节点的编号为关键字
生成任务主管控队列STCQ (Simulation Task Control Queue) 。 STCQ以主 后台管控节点编号Prmm为关键字,包含主后台管控节点Prmm相应的主后台 管控节点子队列STCQm,当调度仿真样本运行时,管理器根据主后台管控 节点子队列STCQm在节点组Prmm上按序调度仿真样本Name,, Name2,...,NameN运行,并且依次将仿真样本Namej运行rnumj次和将仿真运 行结果数据放入文件Pmin^Namej—rnumj。
3.4管理器将配置文件和仿真应用可执行程序部署到各后台管控节点 组。采取传输压縮数据包的方式实现管理器与各后台管控器之间文件的传 输。具体方法如下
3.4.1管理器判断任务主管控队列STCQ是否为空,若不为空,取任务主 管控队列STCQ中第一个节点组子队列作为当前节点组子队列STCQm,置 当前节点组为节点组Prmm,执行步骤3.4.2;若为空,结束仿真任务节点组 的分发。
3.4.2管理器判断STCQm是否为空,若不为空,执行步骤3.4.3;若STCQm 为空,判断当前STCQm是否存在下一节点组子队列,若存在,取当前STCQm 的下一节点组子队列作为当前节点组任务子队列STCQm,转步骤3.4.2;若 不存在,结束仿真任务节点组的分发。
3.4.3根据STCQm中的记录,生成节点组Pmv上的仿真样本Namej运行 rnumj次、以及记录文件Prmm一Namej一mumj的参数配置文件,j=l,2,...,N。
3.4.4管理器将仿真应用可执行程序、配置文件压縮成仿真应用文件包, 并向节点组Pmv的各后台管控器仅传输一次仿真应用文件包。
3.4.5节点组Pmv的各后台管控器将接收到的仿真应用文件包解压至仿 真应用文件夹,根据相应的命名规则,生成不同的样本文件运行文件夹,并 将仿真应用文件夹中所有文件拷贝至所有的样本运行文件夹中。转步骤3.4.2。
图5是本发明并行仿真任务调度流程图
1. 根据第三步选取单节点调度策略或组调度策略。
2. 若为单节点调度策略,执行步骤为
2.1管理器判断任务队列STQ是否为空,若不为空,取任务队列STQ中 第一个节点子队列作为当前节点任务队列子队列STQi,置当前节点为节点i, 执行步骤2.2;若为空,结束仿真任务调度运行。
2.2管理器判断STQi是否为空,若STQi为空,则删除STQi,转步骤2.1; 若不为空,执行步骤2.3。
2.3判断STQi上的第一个仿真样本的运行次数是否为0,若为0,管理 器删除STQi中的第一个仿真样本的调度信息,转步骤2.2,若不为0,执行 步骤2.4。
2.4管理器在节点i上调度任务子队列STQi中的第一个仿真样本运行1 次。管理器节点i上的后台管控器发送仿真样本调度消息,后台管控器启动 节点上的并行仿真服务器以及仿真样本运行。转步骤2.5。
2.5判断任务队列STQ是否存在未调度仿真样本运行的节点,若存在, 管理器置第一个未调度节点为当前节点i,转步骤2.2;若任务队列中不存在 未调度节点,管理器处于等待后台管控器信息报告状态,转步骤2.6。
2.6后台管控器运行仿真样本开始后,仿真应用可执行程序对仿真结果 数据进行记录,并通过并行仿真服务器每隔一段时间T (T为5-8秒)査询 仿真运行状态,仿真样本运行结束时,后台管控器将仿真样本结束状态发送 给管理器,管理器接收后台管理器仿真样本的本次运行完毕消息后,执行步 骤2.7。
2.7管理器修改当前节点i的任务子队列STQi中的当前运行样本的运行 次数,运行次数减少l次,转步骤2.3。
3. 若为组调度策略,执行步骤为3.1管理器判断任务主管控队列STCQ是否为空,若不为空,取任务主 管控队列STCQ中第一个节点组队列作为当前节点任务主管控子队列 STCQm,置当前节点组为节点组Prav,执行步骤3.2;若为空,结束仿真任 务调度运行;
3.2管理器判断当前节点组Prmm的子队列STCQm是否为空,若当前节 点组Prmm的子队列为空,则删除当前节点任务主管控子队列STCQm,转步
骤3.1;若不为空,执行步骤3.3;
3.3判断STCQm上的第一个仿真样本的运行次数若为0,管理器删除 STCQm中的第一个仿真样本的调度信息,转步骤3.2,若不为0,执行步骤 3.4。
3.4管理器在节点组Pmim上调度任务主管控子队列STCQm中的第一个 仿真样本运行1次。管理器向组内各后台管控器发送仿真样本调度消息,主 后台管控器启动节点上并行仿真服务器及仿真样本子进程运行,各普通后台 管控器启动节点上仿真样本子进程运行,执行步骤3.5;
3.5判断任务主管控队列STCQ是否存在未调度仿真样本运行的节点组, 若存在,管理器置第一个未调度节点组为当前节点组Pmv,转步骤3.2;若
任务队列中不存在未调度节点组,管理器处于等待主后台管控器信息报告状 态,转步骤3.6。
3.6当所有后台管控器运行仿真样本开始后,主后台管控节点上的仿真 应用可执行程序对仿真结果数据进行记录,并通过并行仿真服务器每隔一段 时间T (T为5-8秒)查询仿真运行状态,仿真样本运行结束时,主后台管 控器将仿真样本结束状态发送给管理器。管理器接收主后台管理器仿真样本 的本次运行完毕消息后,执行步骤3.7。
3.7管理器修改当前节点组Pmv的任务主管控子队列STCQm中的当前 运行样本的运行次数,运行次数减少l次,转步骤3.3。
图6是本发明仿真结果数据的收集流程图1. 所有样本运行完毕后,管理器发送样本运行结束消息,后台管控节 点(组分发调度策略下为主管控节点)接收到该消息后,关闭并行仿真服务器,
査询各样本文件包中的数据文件i—Namej—rnumj (或Prmm—Namejmumj),
将査找到的数据文件加入到数据文件包中压缩存储。
2. 直至节点上所有的数据文件都加入到数据文件包中,后台管控节点(组 分发调度策略下为主管控节点)向管理器发送数据准备完毕消息,管理器接 收到该消息后,解析出消息中的压缩包信息,并初始化接收文件准备工作, 然后向后台管控节点(组分发调度策略下为主管控节点)发送请求文件传输消 息,后台管控节点接收请求文件传输消息后开始传输数据。
3. 管理器启动多线程接收后台管控节点(组分发调度策略下为主管控节 点)的相应数据。文件传输完毕后,为提高安全性,各计算节点清除样本文 件包以及数据文件。管理器收集到各后台管控节点(组分发调度策略下为主 管控节点)上的所有数据文件后,仿真结果数据收集完成,仿真任务结束。
权利要求
1. 一种基于后台管控架构的并行仿真任务分发与调度方法,其特征在于包括以下步骤第一步,构建由多台计算机组成的并行仿真局域网环境,每台计算机都是局域网的节点,各节点有着各自独立的存储系统,节点之间的通信采用消息传递的方式,节点依次编号为0,1,2,...,n,n+1为局域网中节点的总数;第二步,建立基于后台管控架构的并行仿真任务分发与调度器,并行仿真任务分发与调度器由管理器、后台管控器组成,管理器是一个仿真样本分发和调度软件,负责实现仿真样本的分发,并通过调度后台管控器来实现仿真样本的运行;后台管控器是一个响应仿真样本分发和调度的软件,负责对仿真样本进行接收与调度,具体步骤包括2. 1 建立管理器指定在任一编号的节点机器上建立并行仿真任务分发管理器,并行仿真任务分发管理器所在的节点简称为管理器节点,在管理器节点上安装仿真应用可执行程序,并行仿真任务分发管理器每隔0.8~2秒向局域网内的各个节点发送用户数据报协议UDP消息,以期与局域网内的后台管控器建立连接;2. 2 建立后台管控器指定在除管理器编号的节点上依次建立并行仿真任务分发后台管控器,各后台管控器均与管理器建立可靠连接,并行仿真任务分发后台管控器所在的节点简称为后台管控器节点,在后台管控器节点上建立支持并行仿真应用运行和实体子模型交互的运行支撑环境—并行仿真服务器;2. 3 管理器和后台管控器之间建立连接消息通讯机制,步骤如下2. 3.1 管理器以各后台管控器的节点编号为标识,向各后台管控器发送UDP消息;2. 3.2 各后台管控器从管理器接收到UDP消息后,即建立与管理器的可靠连接;当所有后台管控器完成建立与管理器的连接后,管理器即停止发送UDP消息;2. 3.3 管理器每隔2~4秒向后台管控器请求节点状态信息,后台管控器接收到管理器的请求消息后,实时收集本节点状态信息并传送给管理器;2. 3.4 管理器接收到各后台管控器的状态信息后,实时显示各后台管控器节点当前的性能状态参数;第三步,基于仿真任务复杂程度决定分发调度策略,仿真任务复杂程度由仿真样本运行过程中的实体数以及实体之间交互的数量决定,分发调度策略包括单节点分发调度策略和组分发调度策略;单节点分发调度策略是指在一个后台管控节点上运行一个仿真样本和一个并行仿真服务器;组分发策略是指几个后台管控节点构成一个组,该节点组共同运行一个仿真样本,其中一个后台管控节点运行并行仿真服务器,其它节点运行仿真样本可执行程序;选定单节点分发调度策略或组分发调度策略的规则是当S×Ecpu×Es<=100时,选取单节点分发调度策略,否则选取组分发调度策略,S是仿真任务实体数,Ecpu为CPU平均利用率,Es为内存平均利用率;第四步,管理器根据单节点分发调度策略或组分发调度策略向后台管控器进行仿真样本分发4. 1 当选定单节点分发策略时,包括以下步骤4. 1.1 根据各节点当前的性能状况参数,基于负载平衡的原则向各后台管控节点分配仿真样本;4. 1.2 管理器记录样本部署信息,并生成仿真任务队列STQ,STQ以后台管控节点编号为关键字,包含各节点相应的后台管控节点子队列,若编号为0的节点上建立了管理器,则STQ={STQ1,STQ2,...,STQi,...,STQn},i=1,2,...,n,子队列STQi中每个元素是一条记录,每条记录包括节点编号、仿真样本名称、仿真样本运行次数、记录文件编号四个字段;其中节点编号标识仿真样本运行的节点i,仿真样本名称标识运行的样本名Namej,仿真样本运行次数标识仿真样本Namej在节点i上需运行的次数rnumj,记录文件编号表示样本运行结果存储的文件编号i_Namej_rnumj,j=1,2,...,N,节点i上共运行N个仿真样本,样本名为{Name1,Name2,...,Namej,...,NameN};4. 1.3 管理器查询仿真任务队列STQ,生成各节点的配置文件,并由管理器采取传输压缩数据包的方式将配置文件和仿真应用可执行程序部署到对应的后台管控节点,方法是4. 1.3.1 管理器判断任务队列STQ是否为空,若不为空,取任务队列STQ中第一个节点子队列作为当前节点任务子队列STQi,置当前节点为节点i,执行步骤4.1.3.2;若为空,结束仿真任务节点分发;4. 1.3.2 管理器判断STQi是否为空,若不为空,执行步骤4.1.3.3;若STQi为空,判断当前STQi是否存在下一节点子队列,若存在,取当前STQi的下一节点子队列作为当前节点任务子队列STQi,转步骤4.1.3.2;若不存在,结束仿真任务节点分发;4. 1.3.3 根据STQi中的记录,生成节点i上的仿真样本Namej、运行次数rnumj、记录文件编号i_Namej_rnumj的配置文件,j=1,2,...,N;4. 1.3.4 管理器将仿真应用可执行程序、配置文件压缩成仿真应用文件包,并向节点i上的后台管控器传输一次仿真应用文件包;4. 1.3.5 节点i上后台管控器将接收到的仿真应用文件包解压至仿真应用文件夹,根据相应的命名规则,生成不同的样本文件运行文件夹,并将仿真应用文件夹中所有文件拷贝至所有的样本运行文件夹中,转步骤4.1.3.2;4. 2 当管理器采用组分发策略时,划分的各个后台管控节点组内存在一个主后台管控节点,主后台管控节点上的后台管控器称为主后台管控器,由它运行并行仿真服务器,组内其他后台管控器均为普通后台管控器,运行仿真样本可执行程序,组分发策略包括如下步骤4. 2.1 根据确定的分组规模,设置各个节点所属于的节点组,为节点分组,形成节点组参数文件;4. 2.2 指定组内主管控节点来负责整个组的并行仿真样本运行,综合考虑各节点组的性能状况,基于负载平衡的原则在各后台管控节点组分配仿真样本;4. 2.3 管理器记录样本部署信息,并以主后台管控节点的编号Prmm为关键字生成任务主管控队列STCQ,STCQ={STCQ1,STCQ2,...,STCQm,...,STCQM},m=1,2,...,M,M<=n,M为最大分组数,STCQ包含主后台管控节点Prmm相应的主后台管控节点子队列STCQm,子队列STCQm包含节点组Prmm上将要运行的所有仿真样本的信息,STCQm中每个元素是一条记录,每条记录包括主管控节点编号、属于节点组的节点编号、仿真样本名称、仿真样本运行次数、记录文件编号五个字段;主管控节点编号标识仿真样本运行节点组内的主管控节点Prmm,Prmm也标识该节点组,节点编号标识共同运行仿真样本的组内的一个节点i,仿真样本名称标识运行的样本名为Namej,j=1,2,...,N,节点i上要运行N个仿真样本,样本名为{Name1,Name2,...,Namej,...,NameN},仿真样本运行次数标识仿真样本Namej子进程在组Prmm的节点i上需运行的次数rnumj,记录文件编号表示样本运行结果数据存储的文件编号为Prmi_Namej_rnumj;4. 2.4 管理器查询任务主管控队列STCQ,生成各节点组的配置文件,并采取传输压缩数据包的方式将配置文件和仿真应用可执行程序部署到各后台管控节点组4. 2.4.1 管理器判断任务主管控队列STCQ是否为空,若不为空,取任务主管控队列STCQ中第一个节点组子队列作为当前节点组子队列STCQm,置当前节点组为节点组Prmm,执行步骤4.2.4.2;若为空,结束仿真任务节点组的分发;4. 2.4.2 管理器判断STCQm是否为空,若不为空,执行步骤4.2.4.3;若STCQm为空,判断当前STCQm是否存在下一节点组子队列,若存在,取当前STCQm的下一节点组子队列作为当前节点组任务子队列STCQm,转步骤4.2.4.2;若不存在,结束仿真任务节点组的分发;4. 2.4.3 根据STCQm中的记录,生成节点组Prmm上的仿真样本Namej、运行次数rnumj、记录文件编号Prmm_Namej_rnumj的配置文件;4. 2.4.4 管理器将仿真应用可执行程序、配置文件压缩成仿真应用文件包,并向节点组Prmm的各后台管控器仅传输一次仿真应用文件包;4. 2.4.5 节点组Prmm的各后台管控器将接收到的仿真应用文件包解压至仿真应用文件夹,根据相应的命名规则,生成不同的样本文件运行文件夹,并将仿真应用文件夹中所有文件拷贝至所有的样本运行文件夹中,转步骤4.2.4.2;第五步,根据仿真任务分发情况,由并行仿真任务分发与调度器采用单节点调度策略或组调度策略进行仿真样本的调度5. 1 单节点调度策略,包括以下步骤5. 1.1 管理器判断任务队列STQ是否为空,若不为空,取任务队列STQ中第一个节点子队列作为当前节点任务子队列STQi,置当前节点为节点i,执行步骤5.1.2;若为空,结束仿真任务调度运行;5. 1.2 管理器判断STQi是否为空,若STQi为空,删除STQi,转步骤5.1.1;若不为空,执行步骤5.1.3;5. 1.3 判断STQi上的第一个仿真样本的运行次数是否为0,若为0,管理器删除STQi中的第一个仿真样本的记录,转步骤5.1.2,若不为0,执行步骤5.1.4;5. 1.4 管理器在节点i上调度STQi中的第一个仿真样本运行1次,方法是管理器向节点i上的后台管控器发送仿真样本调度消息,后台管控器启动节点i上的并行仿真服务器以及仿真样本运行,同时向记录文件编号标识的文件记录仿真结果数据,转步骤5.1.5;5. 1.5 判断任务队列STQ是否存在未调度仿真样本运行的节点,若存在,管理器置第一个未调度节点为当前节点i,转步骤5.1.2;若任务队列中不存在未调度节点,管理器处于等待后台管控器信息报告状态,转步骤5.1.6;5. 1.6 后台管控器运行仿真样本开始后,仿真应用可执行程序将仿真结果数据记录到记录文件编号标识的文件中,并通过并行仿真服务器每隔一段时间T查询仿真运行状态,仿真样本运行结束时,后台管控器将仿真样本结束状态发送给管理器,管理器接收后台管理器仿真样本的本次运行完毕消息后,执行步骤5.1.7;5. 1.7 管理器修改当前节点i的任务子队列STQi中的当前运行样本的运行次数,运行次数减少1次,转步骤5.1.3;5. 2 采用组调度策略时,包括以下步骤5. 2.1 管理器判断任务主管控队列STCQ是否为空,若不为空,取任务主管控队列STCQ中第一个节点组队列作为当前节点任务主管控子队列STCQm,置当前节点组为节点组Prmm,执行步骤5.2.2;若为空,结束仿真任务调度运行;5. 2.2 管理器判断当前节点组Prmm的子队列STCQm是否为空,若STCQm为空,则删除STCQm,转步骤5.2.1;若不为空,执行步骤5.2.3;5. 2.3 判断STCQm上的第一个仿真样本的运行次数,若为0,管理器删除STCQm中的第一个仿真样本的记录,转步骤5.2.2,若不为0,执行步骤5.2.4;5. 2.4 管理器在节点组Prmm上调度STCQm中的第一个仿真样本运行1次,方法是管理器向组内各后台管控器发送仿真样本调度消息,主后台管控器启动节点上并行仿真服务器及仿真样本子进程运行,各普通后台管控器启动节点上仿真样本子进程运行,并同时向记录文件编号标识的文件记录仿真结果数据,转步骤5.2.5;5. 2.5 判断任务主管控队列STCQ是否存在未调度仿真样本运行的节点组,若存在,管理器置第一个未调度节点组为当前节点组Prmm,转步骤5.2.2;若任务队列中不存在未调度节点组,管理器处于等待主后台管控器信息报告状态,转步骤5.2.6;5. 2.6 当所有后台管控器运行仿真样本开始后,主后台管控节点上的仿真应用可执行程序对将仿真结果数据记录到记录文件编号标识的文件中,并通过并行仿真服务器每隔一段时间T查询仿真运行状态,仿真样本运行结束时,主后台管控器将仿真样本结束状态发送给管理器,管理器接收主后台管理器仿真样本的本次运行完毕消息后,执行步骤5.2.7;5. 2.7 管理器修改当前节点组Prmm的任务主管控子队列STCQm中的当前运行样本的运行次数,运行次数减少1次,转步骤5.2.3;第六步,由基于后台管控架构的并行仿真任务分发与调度器进行仿真结果数据的自动收集,方法是6. 1 所有样本运行完毕后,管理器发送样本运行结束消息,后台管控节点或主管控节点接收到该消息后,关闭并行仿真服务器,查询各样本文件包中的数据文件即编号为i_Namej_rnumj或Prmm_Namej_rnumj的文件,将查找到的数据文件加入到数据文件包中压缩存储;6. 2 直至本节点上所有的数据文件都加入到数据文件包中,后台管控节点或主管控节点向管理器发送数据准备完毕消息,管理器接收到该消息后,解析出其中的压缩包信息,并初始化接收文件准备工作,然后向后台管控节点或主管控节点发送请求文件传输消息,后台管控节点接收请求文件传输消息后开始传输数据;6. 3 管理器启动多线程接收后台管控节点或主管控节点的相应数据,文件传输完毕后,各计算节点清除样本文件包以及数据记录文件,管理器收集到各后台管控节点或主管控节点上的所有数据文件后,仿真结果数据收集完成,本次仿真任务结束。
2. 如权利要求1所述的基于后台管控架构的并行仿真任务分发与调度方法,其特征在于所述性能状态参数包括CPU主频、CPU利用率、内存容量、内存利用率。
3. 如权利要求1所述的基于后台管控架构的并行仿真任务分发与调度方法, 其特征在于当选定组分发调度策略时,当 SxEcpuxEs>(k-l)*100&&SxEcpuxEs<=k*100时,采用k节点为一组的组 分发调度策略,l<k<=n;当存在不能归组的节点时,将这些节点归入最后 一个节点组中,联合执行相应的仿真样本。
4. 如权利要求1所述的基于后台管控架构的并行仿真任务分发与调度方法, 其特征在于所述T为5-8秒。
全文摘要
本发明公开了一种基于后台管控架构的并行仿真任务分发与调度方法,目的是解决现有并行仿真多样本运行效率低、浪费人力资源的问题。技术方案是首先构建多台计算机组成的并行仿真局域网环境,然后建立由管理器、后台管控器构成的基于后台管控架构的并行仿真任务分发与调度器,由调度器采用单节点分发调度策略或组分发调度策略完成仿真样本分发和调度并进行仿真结果数据的自动收集。本发明既解决了传统的并行仿真多样本运行需要用户手工操作完成、整个过程运行效率低的问题,同时也提高了仿真结果数据的收集效率,便于事后数据的分析评估。
文档编号G06F17/50GK101436959SQ200810143999
公开日2009年5月20日 申请日期2008年12月18日 优先权日2008年12月18日
发明者刘步权, 刘金鹏, 姚益平, 张颖星, 曲庆军, 蒋志文 申请人:中国人民解放军国防科学技术大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1