CN101436959A - 基于后台管控架构的并行仿真任务分发与调度方法 - Google Patents
基于后台管控架构的并行仿真任务分发与调度方法 Download PDFInfo
- Publication number
- CN101436959A CN101436959A CNA200810143999XA CN200810143999A CN101436959A CN 101436959 A CN101436959 A CN 101436959A CN A200810143999X A CNA200810143999X A CN A200810143999XA CN 200810143999 A CN200810143999 A CN 200810143999A CN 101436959 A CN101436959 A CN 101436959A
- Authority
- CN
- China
- Prior art keywords
- node
- simulation
- manager
- sample
- backstage management
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于后台管控架构的并行仿真任务分发与调度方法,目的是解决现有并行仿真多样本运行效率低、浪费人力资源的问题。技术方案是首先构建多台计算机组成的并行仿真局域网环境,然后建立由管理器、后台管控器构成的基于后台管控架构的并行仿真任务分发与调度器,由调度器采用单节点分发调度策略或组分发调度策略完成仿真样本分发和调度并进行仿真结果数据的自动收集。本发明既解决了传统的并行仿真多样本运行需要用户手工操作完成、整个过程运行效率低的问题,同时也提高了仿真结果数据的收集效率,便于事后数据的分析评估。
Description
技术领域
本发明涉及计算机仿真领域的任务分发与调度方法,尤其是一种并行仿真任务的分发与调度方法。
背景技术
并行仿真是执行在共享内存多处理器、多计算机系统或单指令多数据流(SIMD)机器上的仿真,其目的是通过并行执行来获得更高的性能,即在保持系统因果序协同正确的前提下尽可能多地提高系统的运行效率。并行仿真的典型特点是"超实时运行"、"因果序协同"。并行仿真是连接并行计算机系统和实际仿真应用问题之间的桥梁。并行仿真分为并行连续系统仿真和并行离散事件仿真,并行连续系统仿真是指在并行计算平台上执行的状态变量随时间连续变化的仿真,并行离散事件仿真是指在并行计算平台上执行的状态变量仅在某个离散时间点集合上发生变化的仿真。并行连续系统仿真,通过将描述系统状态连续变化的偏微分方程组分解到多个处理器上进行计算来提高计算速度,侧重于并行计算技术的研究,主要应用于复杂科学计算和模拟、工程数值分析领域。并行离散事件仿真,通过将描述系统的数万至数百万的实体子模型分解到多个处理器上并行执行来减少运行时间,侧重于大规模的军事、经济、交通分析领域。针对大规模战争问题及战术战法研究、作战方案分析评估、武器装备体系论证等评估论证类仿真应用的需要,一般在并行计算机系统上采用并行离散事件仿真。采用并行离散事件仿真可以大大地提高评估论证类仿真运行效率,缩短评估论证类仿真的运行时间。
分布式仿真是执行在分布计算机上的仿真。分布式仿真的运行平台主要是通过网络(或Internet)互联的位于不同物理地点的工作站、以及利用无线连接的便携计算机。分布式仿真与并行仿真的区别主要是仿真计算平台的不同。分布式仿真的典型特点是分布性、交互性。分布式仿真的主要目的是构建分布式虚拟环境(如军事训练仿真环境等)。
并行离散事件仿真(以下简称并行仿真)的基本构造块是离散事件。一旦一个离散事件仿真被初始化,并行仿真通过处理时间轴上不连续点处发生的带有时间戳的事件,使所有特定于应用程序的计算随着时间而推进。并行仿真是对复杂系统复杂交互进行建模的一个强有力的技术。
在并行仿真应用中,往往需要对多个方案进行比较,或者需要对参数空间的不确定性因素进行探索,从而找出符合目标的最优方案,以辅助相关人员进行决策。这就要求仿真应用可能运行几十、几百、甚至上千次,才能得到方案评估所需的大量结果数据。其中仿真应用可执行程序的每次实例称为一个仿真应用样本,仿真应用可执行程序的每次运行称为一个样本运行。
针对并行仿真应用的多样本多次运行,传统的并行仿真任务分发与调度方法一般采用与建设的仿真系统密切结合的主从方式,其过程可概括为三步:
(1)样本分发:在建立的仿真样本运行硬件环境中,对仿真样本的初始化文件、仿真样本子模型进行手动配置,来实现仿真样本的任务分发。
(2)样本调度:仿真运行过程中,采用静态任务队列、样本子模型协同策略对仿真任务进行调度,来实现仿真样本的依次调度运行。
(3)样本结果数据收集:仿真运行完毕后,仿真结果分散在各个计算机上,需采用手动收集方式来收集各个仿真样本的结果数据。
其中前两步(“样本分发”与“样本调度”)是并行仿真任务分发与调度中的两个核心环节,第三步“样本结果数据收集”则是对前两步运行结果数据的收集与输出。传统的并行仿真任务分发方法采用的是一种静态的、手动的分发策略,需要人为地将仿真样本复制到各台计算机上,这种复制过程不仅需要消耗大量的人力资源,而且容易引起样本配置错误。传统的并行仿真任务调度方法能够在一定程度上解决仿真样本的调度问题,但不能根据仿真任务实际运行情况对仿真样本进行重新调度,来满足仿真样本的动态调度,因而存在适应性较差的问题。传统的并行仿真收集方法与任务分发方法存在同样的问题,采用手动方式将仿真样本结果数据复制到收集管理计算机上,这种复制过程需要消耗大量的人力资源,从而极易引起样本结果数据收集的错误。
美国国防部早期开发的并行仿真系统大多采用这种任务分发和调度方法。这种任务分发与调度方式既极大地浪费了宝贵的人力资源,又不能最大程度满足仿真系统对时效性的进一步的要求,从而阻碍了应用的发展。之后,美国在开展大规模并行仿真系统建设时,开展了对并行仿真任务分发与调用技术的研究,并将这些研究成果先后应用到联合仿真系统(JSIMS)、联合建模与仿真系统(JMASS)、WARGAME2000等多个重要仿真项目中,不过他们的实现方法并未公开。
国内开展并行仿真研究的工作较晚,目前从国内公开的文献中仍未看到任何关于并行仿真多样本任务分发与调度研究的报道。仅看到为基于HLA开发的仿真应用的多样本多次运行任务分发与调度的研究,如国防大学研制的战争分析综合仿真试验环境,采取重新构建联邦的方式实现仿真样本的多次调度运行;2007年,解放军机械工程学院的谈斌等,在参加“第二次仿真高层论坛”时,采取三重循环控制流程调度策略来实现仿真子模型的协同并行。所有这些方案均是结合具体分布式仿真应用的,而并行离散事件仿真应用与分布式仿真应用在时间推进、仿真运行机制等方面存在较大的差异,从而使得这些方案无法直接用于并行离散事件仿真应用的多样本任务分发与调度过程之中。
技术方案
本发明要解决的技术问题是:针对传统的并行仿真任务分发与调度方法需要用户手工操作完成、消耗时间长、仿真结果数据收集困难等问题,提出一种基于后台管控架构的并行仿真任务分发与调度方法,以加快并行仿真多样本多次运行速度,提高仿真结果数据收集的自动程度。
本发明的技术方案为:
第一步,构建由多台计算机组成的并行仿真局域网环境。每台计算机都是局域网的节点,各节点有着各自独立的存储系统,节点之间的通信采用消息传递的方式。节点依次编号为0,1,2,...,n,n+1为局域网中节点的总数。
第二步,建立基于后台管控架构的并行仿真任务分发与调度器。并行仿真任务分发与调度器由管理器、后台管控器组成,管理器是一个仿真样本分发和调度软件,负责实现仿真样本的分发,并通过调度后台管控器来实现仿真样本的运行;后台管控器是一个响应仿真样本分发和调度的软件,负责对仿真样本进行接收与调度。具体步骤包括:
2.1 建立管理器:指定在任一编号(例如编号为0)的节点机器上建立并行仿真任务分发管理器,并行仿真任务分发管理器所在的节点简称为管理器节点,在管理器节点上安装仿真应用可执行程序。并行仿真任务分发管理器每隔0.8~2秒向局域网内的各个节点发送UDP(User Datagram Protocol,用户数据报协议)消息,以期与局域网内的后台管控器建立连接。
2.2 建立后台管控器:指定在除管理器编号(例如编号1,2,...,n)的节点上依次建立并行仿真任务分发后台管控器,各后台管控器均与管理器建立可靠连接。并行仿真任务分发后台管控器所在的节点简称为后台管控器节点。之后在后台管控器节点上建立支持并行仿真应用运行和实体子模型交互的运行支撑环境—并行仿真服务器。
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、仿真对象分发文件Simobjplacement.par等文件)时,管理器根据性能状态参数来给各后台管控器节点分配适宜的样本数。
第三步,基于仿真任务复杂程度决定分发调度策略。仿真任务复杂程度由仿真样本运行过程中的实体数以及实体之间交互的数量决定。分发调度策略包括单节点分发调度策略和组分发调度策略。单节点分发调度策略是指在一个后台管控节点上运行一个仿真样本和一个并行仿真服务器,它主要针对相对简单的仿真应用,仿真样本在单个后台管控节点上即能较好地运行,同时运行的并行仿真服务器负责监控本节点上样本的运行状态(即样本的开始、结束状态);组分发调度策略是指几个后台管控节点构成一个组,该节点组共同运行一个仿真样本,其中一个后台管控节点运行并行仿真服务器,其它节点运行仿真样本可执行程序,它主要针对相对复杂的仿真应用,该类仿真应用在单个节点上运行无法满足要求,需根据复杂程度规划合适的分组规模,从而使组内节点作为一个整体来运行仿真样本。选定单节点分发调度策略或组分发调度策略的规则是:若仿真任务实体数为S,CPU平均利用率为Ecpu,内存平均利用率为Es,则当S×Ecpu×Es<=100时,选取单节点分发调度策略,否则选取组分发调度策略;在计算机节点有限的情况下,分组规模越小,同时运行的仿真样本数也就越多,每个样本运行所需时间可能也就越长;分组规模越大,同时运行的仿真样本数越小,每个样本运行时间可能就越短。在分组规模逐步增大的过程中,计算开销占主导作用时,仿真运行速度一般会随分组规模的增大而加快,但是当分组规模增大到一定程度,使得通信开销占主导作用时,仿真运行速度反而会随分组规模的增大而变慢。为使整个仿真任务运行时间减至最小,需找出合适的分组规模来运行仿真。分组策略是:若S×Ecpu×Es>100&&S×Ecpu×Es<=200,采用2节点为一组的组分发调度策略;若S×Ecpu×Es>200&&S×Ecpu×Es<=300,采用3节点为一组的组分发调度策略;如此类推,即当S×Ecpu×Es>(k-1)*100&&S×Ecpu×Es<=k*100时,采用k节点为一组的组分发调度策略,1<k<=n。当存在不能归组的节点时,将这些节点归入最后一个节点组中,联合执行相应的仿真样本。规划好分组后,需根据分组情况生成配置文件,指定组内的主管控节点、仿真对象分发情况。当仿真运行时,根据位于各后台管控节点上的配置文件将仿真对象映射到各后台管控节点,并由并行仿真服务器实现不同节点上的仿真对象之间的交互。
第四步,管理器根据单节点分发调度策略或组分发调度策略向后台管控器进行仿真样本分发。
4.1 当选定单节点分发调度策略进行分发时,包括以下步骤:
4.1.1 根据各节点当前的性能状况参数(包括CPU主频、CPU利用率、内存容量、内存利用率等参数),基于负载平衡的原则向各后台管控节点分配仿真样本。
4.1.2 管理器记录样本部署信息(包括节点编号、仿真样本名称、仿真样本运行次数、记录文件编号),并以后台管控节点的编号为关键字生成仿真任务队列STQ(Simulation Task Queue)。STQ以后台管控节点编号为关键字,包含各节点相应的后台管控节点子队列,假设编号为0的节点上建立了管理器,则STQ={STQ1,STQ2,...,STQi,...,STQn},i=1,2,...,n,子队列STQi中每个元素是一条记录,每条记录包括节点编号、仿真样本名称、仿真样本运行次数、记录文件编号四个字段。其中节点编号标识仿真样本运行的节点i,仿真样本名称标识运行的样本名Namej(j=1,2,...,N,假设节点i上要运行N个仿真样本,样本名为{Name1,Name2,...,Namej,...,NameN}),仿真样本运行次数标识仿真样本Namej在节点i上需运行的次数rnumj,记录文件编号表示样本运行结果存储的文件编号i_Namej_rnumj。
例如STQi包含N个仿真样本{Name1,Name2,...,Namej,...,NameN},则节点i的任务子队列STQi={{i,Name1,rnum1,i_Name1_rnum1},{i,Name2,rnum2,i_Name2_rnum2},{...,...,...,...},{i,Namej,rnumj,i_Namej_rnumj},{...,...,...,...},{i,NameN,rnumN,i_NameN_rnumN}}。当调度仿真样本运行时,管理器根据STQi在节点i上按序调度仿真样本Name1,Name2,...,NameN运行,并且依次将仿真样本Namej运行rnumj次和将仿真运行结果数据放入文件i_Namej_rnumj,j=1,2,...,N。
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(Simulation Task ControlQueue)。STCQ={STCQ1,STCQ2,...,STCQm,...,STCQM},m=1,2,...,M,M<=n,M为最大分组数,STCQ包含主后台管控节点Prmm相应的主后台管控节点子队列STCQm,子队列STCQm包含节点组Prmm上将要运行的所有仿真样本的信息,STCQm中每个元素是一条记录,每条记录包括主管控节点编号、属于节点组的节点编号、仿真样本名称、仿真样本运行次数、记录文件编号五个字段。
其中主管控节点编号标识仿真样本运行节点组内的主管控节点Prmm,,Prmm也标识该节点组,节点编号标识共同运行仿真样本的组内的一个节点i(i=1,2,...,n),仿真样本名称标识运行的样本名为Namej(j=1,2,...,N,假设节点i上要运行N个仿真样本,样本名为{Name1,Name2,...,Namej,...,NameN}),仿真样本运行次数标识仿真样本Namej子进程在组Prmm的节点i上需运行的次数rnumj,记录文件编号表示样本运行结果数据存储的文件编号为Prmi_Namej_rnumj。
例如STCQm包含N个仿真样本{Name1,Name2,...,Namej,...,NameN},取节点组Prmm中最小节点编号为Prmm,根据节点分配策略,节点组Prmm若包含L+1个节点,0≤L≤「n/M]-1,则为节点组元素为{Prmm,Prmm+1,...,Prmm+L};则节点组Prmm的任务主管控子队列STCQm={{{Prmm,,Prmm,,Name1,rnum1,Prmm_Name1_rnum1},{...},{Prmm,Prmm+1,Name1,rnum1,Prmm_Name1_rnum1},{...},{Prmm,,Prmm+L,Name1,rnum1,Prmm_Name1_rnum1}},{{Prmm,,Prmm,,Name2,rnum2,Prmm_Name2_rnum2},{...},{Prmm,Prmm+1,Name2,rnum2,Prmm_Name2_rnum2},{...},{Prmm,Prmm+L,Name2,rnum2,Prmm_Name2_rnum2}},{{...,...,...,...}},{{Prmm,Prmm,NameN,rnumN,Prmm_NameN_rnumN},{...},{Prmm,Prmm+1,NameN,rnumN,Prmm_NameN_rnumN},{...},{Prmm,Prmm+L,NameN,rnumN,Prmm_NameN_rnumN}}},1<=1<=L。当调度仿真样本运行时,管理器根据主后台管控节点子队列STCQm在节点组Prmm上按序调度仿真样本Name1,Name2,...,NameN运行,并且依次将仿真样本Namej运行rnumj次和将仿真运行结果数据放入文件Prmm_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的配置文件,j=1,2,...,N。
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(T为5-8秒)查询仿真运行状态,仿真样本运行结束时,后台管控器将仿真样本结束状态发送给管理器,管理器接收后台管理器仿真样本的本次运行完毕消息后,执行步骤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(T为5-8秒)查询仿真运行状态,仿真样本运行结束时,主后台管控器将仿真样本结束状态发送给管理器。管理器接收主后台管理器仿真样本的本次运行完毕消息后,执行步骤5.2.7;
5.2.7 管理器修改当前节点组Prmm的任务主管控子队列STCQm中的当前运行样本的运行次数,运行次数减少1次,转步骤5.2.3。
第六步,由基于后台管控架构的并行仿真任务分发与调度器进行仿真结果数据的收集。仿真样本运行结束后,数据文件分布在各个后台管控节点上(其中单节点策略分布在各后台管控器上,组策略分布在主管控节点上),为便于进行仿真结果的分析评估,采取自动收集各后台管控节点上数据信息的方式进行数据信息的集中管理。由于数据文件数目众多,后台管控器向管理器传输时,若采取每次只传输一个文件的方式,会导致沉重的网络负担,而且每次传输都要进行握手,如此进行数据文件管理会耗费很长的时间。为减小网络通信量,缩短文件集中管理所需时间,后台管控器(组策略下为主后台管控器)采用数据文件打包压缩后传输的方式来减轻网络负担。仿真结果数据自动收集方法是:
6.1 所有样本运行完毕后,管理器发送样本运行结束消息,后台管控节点(组分发调度策略下为主管控节点)接收到该消息后,关闭并行仿真服务器,查询各样本文件包中的数据文件即编号为i_Namej_rnumj或Prmm_Namej_rnumj的文件,将查找到的数据文件加入到数据文件包中压缩存储。
6.2 直至节点上所有的数据文件都加入到数据文件包中,后台管控节点(组分发调度策略下为主管控节点)向管理器发送数据准备完毕消息,管理器接收到该消息后,解析出其中的压缩包信息,并初始化接收文件准备工作,然后向后台管控节点(组分发调度策略下为主管控节点)发送请求文件传输消息,后台管控节点接收请求文件传输消息后开始传输数据。
6.3 管理器启动多线程接收后台管控节点(组分发调度策略下为主管控节点)的相应数据。文件传输完毕后,为提高安全性,各计算节点清除样本文件包以及数据文件。管理器收集到各后台管控节点(组分发调度策略下为主管控节点)上的所有数据文件后,仿真结果数据收集完成,仿真任务结束。
与现有技术相比,采用本发明可达到以下技术效果:
1.本发明基于单节点分发策略和组分发策略实现了并行仿真多样本的分发,可将仿真样本自动分发到多台机器上并行运行,使得在仿真运行时不需要关注仿真样本的分发过程,提高了并行仿真多样本的自动分发程度,减少了人为操作为过程,为并行仿真应用系统的连续高效运行打下基础。
2.本发明基于单节点调度策略和组调度策略实现了并行仿真多样本的调度,针对复杂仿真应用,可将仿真多样本、仿真对象分发到多个后台管控节点上并行执行,在综合考虑各节点的性能状况,基于负载平衡的原则下实现了并行仿真多样本的高效调度执行,即提高了单次仿真运行效率,又满足复杂系统多样本仿真的需要。
3.本发明基于压缩方式实现了仿真结果数据的集中管理,能够自动收集各后台管控节点上仿真结果数据,进行仿真结果数据的集中管理,达到了减少用户手工操作,降低仿真结果数据收集困难的问题。
综上所述,本发明采用“并行仿真多样本分发”、“并行仿真多样本调度”与“仿真结果数据收集”三个环节综合优化的策略,实现了仿真样本任务的自动分发和自动并行执行。本发明有效地解决了传统的并行仿真多样本运行需要用户手工操作完成、整个过程运行效率低的问题,达到了既提高仿真结果数据的收集效率,又便于事后数据分析评估的效果。
附图说明
图1是本发明的总体流程图;
图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={STQ1,STQ2,...,STQi,...,STQn},i=1,2,...,n,子队列STQi中每个元素是一条记录,每条记录包括节点编号i、仿真样本名称Namej、仿真样本运行次数rnumj、记录文件编号i_Namej_rnumj四个字段;j=1,2,...,N,节点i上共运行N个仿真样本,样本名为{Name1,Name2,...,Namej,...,NameN};图中STQi包含3个仿真样本{Name1,Name2,Name3},则节点i的任务子队列STQi={{i,Name1,2,i_Name1_2},{i,Name2,3,i_Name2_3},{i,Name3,2,i_Name2_3}}。
图3.2是本发明并行仿真的组策略STCQ队列结构图:STCQ以主后台管控节点编号Prmm为关键字,STCQ={STCQ1,STCQ2,...,STCQm,...,STCQM},包含主后台管控节点Prmm相应的主后台管控节点子队列STCQm,子队列STCQm包含节点组Prmm上将要运行的所有仿真样本的信息,STCQm中每个元素是一条记录,每条记录包括主管控节点编号Prmm,Prmm也标识该节点组、节点编号i,i=1,2,...,n、仿真样本名称Namej、仿真样本运行次数rnumj、记录文件编号Prmm_Namej_rnumj五个字段;j=1,2,...,N,若节点i上要运行N个仿真样本,样本名为{Name1,Name2,...,Namej,...,NameN};图中STCQm包含2个仿真样本{Name3,Name4},则节点组Prmm的任务主管控子队列STCQm={{{Prmm,Prmm,Name3,21,Prmm_Name3_2},{Prmm,Prmm+1,Name3,2,Prmm_Name3_2},{Prmm,Prmm+2,Name3,2,Prmm_Name3_2},{Prmm,Prmm+3,Name3,2,Prmm_Name3_2}},{{Prmm,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以后台管控节点编号为关键字,包含各节点相应的后台管控节点子队列STQi,子队列STQi中每个元素是一条记录,每条记录包括节点编号、仿真样本名称、仿真样本运行次数、记录文件编号四个字段。管理器根据节点子队列STQi在节点i上按序调度仿真样本Name1,Name2,...,NameN运行,并且依次将仿真样本Namej运行rnumj次和将仿真运行结果数据放入文件i_Namej_rnumj。
2.3 管理器查询仿真任务队列STQ,生成各节点的配置文件,并将配置文件和仿真应用可执行程序分发到对应的后台管控节点。采取传输压缩数据包的方式实现管理器与各后台管控器之间文件的传输。具体方法如下:
2.3.1 管理器判断任务队列STQ是否为空,若不为空,取任务队列STQ中第一个节点子队列作为当前节点任务子队列STQi,置当前节点为节点i,执行步骤2.3.2;若为空,结束仿真任务节点分发。
2.3.2 管理器判断STQi是否为空,若不为空,执行步骤2.3.3;若STQi为空,判断当前STQi是否存在下一节点子队列,若存在,取当前STQi的下一节点子队列作为当前节点任务子队列STQi,转步骤2.3.2;若不存在,结束仿真任务节点分发。
2.3.3 根据STQi中的记录,生成节点i上的仿真样本Namej运行rnumj次、以及记录文件i_Namej_rnumj的参数配置文件,j=1,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上按序调度仿真样本Name1,Name2,...,NameN运行,并且依次将仿真样本Namej运行rnumj次和将仿真运行结果数据放入文件Prmm_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中的记录,生成节点组Prmm上的仿真样本Namej运行rnumj次、以及记录文件Prmm_Namej_rnumj的参数配置文件,j=1,2,...,N。
3.4.4 管理器将仿真应用可执行程序、配置文件压缩成仿真应用文件包,并向节点组Prmm的各后台管控器仅传输一次仿真应用文件包。
3.4.5 节点组Prmm的各后台管控器将接收到的仿真应用文件包解压至仿真应用文件夹,根据相应的命名规则,生成不同的样本文件运行文件夹,并将仿真应用文件夹中所有文件拷贝至所有的样本运行文件夹中。转步骤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中的当前运行样本的运行次数,运行次数减少1次,转步骤2.3。
3.若为组调度策略,执行步骤为:
3.1 管理器判断任务主管控队列STCQ是否为空,若不为空,取任务主管控队列STCQ中第一个节点组队列作为当前节点任务主管控子队列STCQm,置当前节点组为节点组Prmm,执行步骤3.2;若为空,结束仿真任务调度运行;
3.2 管理器判断当前节点组Prmm的子队列STCQm是否为空,若当前节点组Prmm的子队列为空,则删除当前节点任务主管控子队列STCQm,转步骤3.1;若不为空,执行步骤3.3;
3.3 判断STCQm上的第一个仿真样本的运行次数若为0,管理器删除STCQm中的第一个仿真样本的调度信息,转步骤3.2,若不为0,执行步骤3.4。
3.4 管理器在节点组Prmm上调度任务主管控子队列STCQm中的第一个仿真样本运行1次。管理器向组内各后台管控器发送仿真样本调度消息,主后台管控器启动节点上并行仿真服务器及仿真样本子进程运行,各普通后台管控器启动节点上仿真样本子进程运行,执行步骤3.5;
3.5 判断任务主管控队列STCQ是否存在未调度仿真样本运行的节点组,若存在,管理器置第一个未调度节点组为当前节点组Prmm,转步骤3.2;若任务队列中不存在未调度节点组,管理器处于等待主后台管控器信息报告状态,转步骤3.6。
3.6 当所有后台管控器运行仿真样本开始后,主后台管控节点上的仿真应用可执行程序对仿真结果数据进行记录,并通过并行仿真服务器每隔一段时间T(T为5-8秒)查询仿真运行状态,仿真样本运行结束时,主后台管控器将仿真样本结束状态发送给管理器。管理器接收主后台管理器仿真样本的本次运行完毕消息后,执行步骤3.7。
3.7 管理器修改当前节点组Prmm的任务主管控子队列STCQm中的当前运行样本的运行次数,运行次数减少1次,转步骤3.3。
图6是本发明仿真结果数据的收集流程图:
1.所有样本运行完毕后,管理器发送样本运行结束消息,后台管控节点(组分发调度策略下为主管控节点)接收到该消息后,关闭并行仿真服务器,查询各样本文件包中的数据文件i_Namej_rnumj(或Prmm_Namej_rnumj),将查找到的数据文件加入到数据文件包中压缩存储。
2.直至节点上所有的数据文件都加入到数据文件包中,后台管控节点(组分发调度策略下为主管控节点)向管理器发送数据准备完毕消息,管理器接收到该消息后,解析出消息中的压缩包信息,并初始化接收文件准备工作,然后向后台管控节点(组分发调度策略下为主管控节点)发送请求文件传输消息,后台管控节点接收请求文件传输消息后开始传输数据。
3.管理器启动多线程接收后台管控节点(组分发调度策略下为主管控节点)的相应数据。文件传输完毕后,为提高安全性,各计算节点清除样本文件包以及数据文件。管理器收集到各后台管控节点(组分发调度策略下为主管控节点)上的所有数据文件后,仿真结果数据收集完成,仿真任务结束。
Claims (4)
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所述的基于后台管控架构的并行仿真任务分发与调度方法,其特征在于当选定组分发调度策略时,当S×Ecpu×Es>(k-1)*100&&S×Ecpu×Es<=k*100时,采用k节点为一组的组分发调度策略,1<k<=n;当存在不能归组的节点时,将这些节点归入最后一个节点组中,联合执行相应的仿真样本。
4.如权利要求1所述的基于后台管控架构的并行仿真任务分发与调度方法,其特征在于所述T为5-8秒。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA200810143999XA CN101436959A (zh) | 2008-12-18 | 2008-12-18 | 基于后台管控架构的并行仿真任务分发与调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA200810143999XA CN101436959A (zh) | 2008-12-18 | 2008-12-18 | 基于后台管控架构的并行仿真任务分发与调度方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101436959A true CN101436959A (zh) | 2009-05-20 |
Family
ID=40711191
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA200810143999XA Pending CN101436959A (zh) | 2008-12-18 | 2008-12-18 | 基于后台管控架构的并行仿真任务分发与调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101436959A (zh) |
Cited By (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101944045A (zh) * | 2010-10-18 | 2011-01-12 | 中国人民解放军国防科学技术大学 | 基于社区特性的并行离散事件仿真对象分发方法 |
CN102227121A (zh) * | 2011-06-21 | 2011-10-26 | 中国科学院软件研究所 | 基于机器学习的分布式缓存策略自适应切换方法及系统 |
CN102307369A (zh) * | 2011-09-13 | 2012-01-04 | 北京科技大学 | 支持无线传感网并行仿真和实物模拟的装置及方法 |
CN102542103A (zh) * | 2011-12-21 | 2012-07-04 | 中国人民解放军国防科学技术大学 | 一种基于web支持多任务的仿真综合集成系统 |
CN101699404B (zh) * | 2009-10-16 | 2012-07-04 | 电子科技大学 | 一种大规模通信网仿真模型的构建及仿真方法 |
CN102760114A (zh) * | 2011-04-29 | 2012-10-31 | 无锡江南计算技术研究所 | 多处理器系统的通信仿真方法、引擎及系统 |
CN102760176A (zh) * | 2011-04-29 | 2012-10-31 | 无锡江南计算技术研究所 | 硬件事务级仿真方法、引擎及系统 |
CN103513932A (zh) * | 2012-06-28 | 2014-01-15 | 深圳市腾讯计算机系统有限公司 | 一种数据处理方法及装置 |
CN104239555A (zh) * | 2014-09-25 | 2014-12-24 | 天津神舟通用数据技术有限公司 | 基于mpp的并行数据挖掘架构及其方法 |
CN104579747A (zh) * | 2014-12-10 | 2015-04-29 | 国网电力科学研究院武汉南瑞有限责任公司 | 一种分布式电力设备仿真中的模型数据快速传输方法 |
CN104598306A (zh) * | 2014-12-05 | 2015-05-06 | 中国航空工业集团公司第六三一研究所 | Phm仿真验证中的一种进程调度方法 |
CN104615492A (zh) * | 2015-03-01 | 2015-05-13 | 中国人民解放军国防科学技术大学 | 一种多核并行离散事件仿真的内存管理方法 |
CN105785789A (zh) * | 2015-12-29 | 2016-07-20 | 上海科梁信息工程股份有限公司 | 高空飞艇的仿真系统 |
CN107621987A (zh) * | 2017-09-21 | 2018-01-23 | 中国航空无线电电子研究所 | 一种基于消息的无人机通用地面站软件架构 |
CN110333916A (zh) * | 2019-06-18 | 2019-10-15 | 平安银行股份有限公司 | 请求消息处理方法、装置、计算机系统及可读存储介质 |
CN110516278A (zh) * | 2019-06-16 | 2019-11-29 | 北京中科海讯数字科技股份有限公司 | 用于多源目标平台数据仿真的自动化装配式计算服务器软件架构系统 |
CN110990165A (zh) * | 2019-11-15 | 2020-04-10 | 北京连山科技股份有限公司 | 多路并发传输系统中多用户同时工作的方法及传输服务器 |
CN111177893A (zh) * | 2019-12-11 | 2020-05-19 | 中电普信(北京)科技发展有限公司 | 基于多线程的并行离散仿真事件驱动方法及装置 |
CN112346975A (zh) * | 2020-11-09 | 2021-02-09 | 广州小鹏自动驾驶科技有限公司 | 一种汽车软件评估装置 |
CN114489845A (zh) * | 2022-01-18 | 2022-05-13 | 北京润科通用技术有限公司 | 调整任务想定的仿真方法、平台和电子设备 |
CN114610294A (zh) * | 2022-05-09 | 2022-06-10 | 湖南星河云程信息科技有限公司 | 仿真实验效能指标并发计算控制方法、装置和计算机设备 |
WO2022121559A1 (zh) * | 2020-12-07 | 2022-06-16 | 中兴通讯股份有限公司 | 移动通信系统管控方法、网络管控体、系统及存储介质 |
CN115827258A (zh) * | 2023-02-24 | 2023-03-21 | 中船重工奥蓝托无锡软件技术有限公司 | 分布式任务运行方法、主控服务器、仿真计算节点及系统 |
CN116578415A (zh) * | 2023-04-26 | 2023-08-11 | 中国人民解放军92942部队 | 一种面向大样本负载仿真的并行方法 |
CN117938863A (zh) * | 2024-03-21 | 2024-04-26 | 中国人民解放军国防科技大学 | 基于集群的联合仿真实现方法、系统、设备及存储介质 |
-
2008
- 2008-12-18 CN CNA200810143999XA patent/CN101436959A/zh active Pending
Cited By (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101699404B (zh) * | 2009-10-16 | 2012-07-04 | 电子科技大学 | 一种大规模通信网仿真模型的构建及仿真方法 |
CN101944045A (zh) * | 2010-10-18 | 2011-01-12 | 中国人民解放军国防科学技术大学 | 基于社区特性的并行离散事件仿真对象分发方法 |
CN101944045B (zh) * | 2010-10-18 | 2012-11-14 | 中国人民解放军国防科学技术大学 | 基于社区特性的并行离散事件仿真对象分发方法 |
CN102760176A (zh) * | 2011-04-29 | 2012-10-31 | 无锡江南计算技术研究所 | 硬件事务级仿真方法、引擎及系统 |
CN102760114B (zh) * | 2011-04-29 | 2015-07-08 | 无锡江南计算技术研究所 | 多处理器系统的通信仿真方法、引擎及系统 |
CN102760114A (zh) * | 2011-04-29 | 2012-10-31 | 无锡江南计算技术研究所 | 多处理器系统的通信仿真方法、引擎及系统 |
CN102227121B (zh) * | 2011-06-21 | 2013-10-09 | 中国科学院软件研究所 | 基于机器学习的分布式缓存策略自适应切换方法及系统 |
CN102227121A (zh) * | 2011-06-21 | 2011-10-26 | 中国科学院软件研究所 | 基于机器学习的分布式缓存策略自适应切换方法及系统 |
CN102307369B (zh) * | 2011-09-13 | 2013-11-27 | 北京科技大学 | 支持无线传感网并行仿真和实物模拟的装置及方法 |
CN102307369A (zh) * | 2011-09-13 | 2012-01-04 | 北京科技大学 | 支持无线传感网并行仿真和实物模拟的装置及方法 |
CN102542103A (zh) * | 2011-12-21 | 2012-07-04 | 中国人民解放军国防科学技术大学 | 一种基于web支持多任务的仿真综合集成系统 |
CN103513932A (zh) * | 2012-06-28 | 2014-01-15 | 深圳市腾讯计算机系统有限公司 | 一种数据处理方法及装置 |
CN104239555A (zh) * | 2014-09-25 | 2014-12-24 | 天津神舟通用数据技术有限公司 | 基于mpp的并行数据挖掘架构及其方法 |
CN104598306B (zh) * | 2014-12-05 | 2018-12-25 | 中国航空工业集团公司第六三一研究所 | Phm仿真验证中的一种进程调度方法 |
CN104598306A (zh) * | 2014-12-05 | 2015-05-06 | 中国航空工业集团公司第六三一研究所 | Phm仿真验证中的一种进程调度方法 |
CN104579747A (zh) * | 2014-12-10 | 2015-04-29 | 国网电力科学研究院武汉南瑞有限责任公司 | 一种分布式电力设备仿真中的模型数据快速传输方法 |
CN104615492A (zh) * | 2015-03-01 | 2015-05-13 | 中国人民解放军国防科学技术大学 | 一种多核并行离散事件仿真的内存管理方法 |
CN104615492B (zh) * | 2015-03-01 | 2017-12-19 | 中国人民解放军国防科学技术大学 | 一种多核并行离散事件仿真的内存管理方法 |
CN105785789A (zh) * | 2015-12-29 | 2016-07-20 | 上海科梁信息工程股份有限公司 | 高空飞艇的仿真系统 |
CN107621987A (zh) * | 2017-09-21 | 2018-01-23 | 中国航空无线电电子研究所 | 一种基于消息的无人机通用地面站软件架构 |
CN107621987B (zh) * | 2017-09-21 | 2020-10-27 | 中国航空无线电电子研究所 | 一种基于消息的无人机通用地面站软件架构系统 |
CN110516278A (zh) * | 2019-06-16 | 2019-11-29 | 北京中科海讯数字科技股份有限公司 | 用于多源目标平台数据仿真的自动化装配式计算服务器软件架构系统 |
CN110333916A (zh) * | 2019-06-18 | 2019-10-15 | 平安银行股份有限公司 | 请求消息处理方法、装置、计算机系统及可读存储介质 |
CN110333916B (zh) * | 2019-06-18 | 2024-03-19 | 平安银行股份有限公司 | 请求消息处理方法、装置、计算机系统及可读存储介质 |
CN110990165A (zh) * | 2019-11-15 | 2020-04-10 | 北京连山科技股份有限公司 | 多路并发传输系统中多用户同时工作的方法及传输服务器 |
CN110990165B (zh) * | 2019-11-15 | 2020-10-09 | 北京连山科技股份有限公司 | 多路并发传输系统中多用户同时工作的方法及传输服务器 |
CN111177893A (zh) * | 2019-12-11 | 2020-05-19 | 中电普信(北京)科技发展有限公司 | 基于多线程的并行离散仿真事件驱动方法及装置 |
CN112346975A (zh) * | 2020-11-09 | 2021-02-09 | 广州小鹏自动驾驶科技有限公司 | 一种汽车软件评估装置 |
WO2022121559A1 (zh) * | 2020-12-07 | 2022-06-16 | 中兴通讯股份有限公司 | 移动通信系统管控方法、网络管控体、系统及存储介质 |
CN114489845B (zh) * | 2022-01-18 | 2024-01-12 | 北京润科通用技术有限公司 | 调整任务想定的仿真方法、平台和电子设备 |
CN114489845A (zh) * | 2022-01-18 | 2022-05-13 | 北京润科通用技术有限公司 | 调整任务想定的仿真方法、平台和电子设备 |
CN114610294A (zh) * | 2022-05-09 | 2022-06-10 | 湖南星河云程信息科技有限公司 | 仿真实验效能指标并发计算控制方法、装置和计算机设备 |
CN115827258B (zh) * | 2023-02-24 | 2023-05-30 | 中船奥蓝托无锡软件技术有限公司 | 分布式任务运行方法、主控服务器、仿真计算节点及系统 |
CN115827258A (zh) * | 2023-02-24 | 2023-03-21 | 中船重工奥蓝托无锡软件技术有限公司 | 分布式任务运行方法、主控服务器、仿真计算节点及系统 |
CN116578415A (zh) * | 2023-04-26 | 2023-08-11 | 中国人民解放军92942部队 | 一种面向大样本负载仿真的并行方法 |
CN116578415B (zh) * | 2023-04-26 | 2024-06-04 | 中国人民解放军92942部队 | 一种面向大样本负载仿真的并行方法 |
CN117938863A (zh) * | 2024-03-21 | 2024-04-26 | 中国人民解放军国防科技大学 | 基于集群的联合仿真实现方法、系统、设备及存储介质 |
CN117938863B (zh) * | 2024-03-21 | 2024-05-24 | 中国人民解放军国防科技大学 | 基于集群的联合仿真实现方法、系统、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101436959A (zh) | 基于后台管控架构的并行仿真任务分发与调度方法 | |
Liu et al. | Adaptive asynchronous federated learning in resource-constrained edge computing | |
CN109491790B (zh) | 基于容器的工业物联网边缘计算资源分配方法及系统 | |
CN102541640B (zh) | 一种集群gpu资源调度系统和方法 | |
CN109948428A (zh) | 面向传感信息处理的gpu集群深度学习边缘计算系统 | |
Aderholz et al. | Models of Networked Analysis at Regional Centres for LHC Experiments (MONARC), Phase 2 Report, 24th March 2000 | |
CN101652750B (zh) | 数据处理装置、分散处理系统、数据处理方法 | |
CN103118124A (zh) | 一种基于分层多代理的云计算负载均衡方法 | |
Mahato et al. | On scheduling transaction in grid computing using cuckoo search-ant colony optimization considering load | |
Teng et al. | Simmapreduce: A simulator for modeling mapreduce framework | |
CN104657220A (zh) | 混合云中基于截止时间和费用约束的调度模型及方法 | |
Li | Resource optimization scheduling and allocation for hierarchical distributed cloud service system in smart city | |
Wan et al. | Kfiml: Kubernetes-based fog computing iot platform for online machine learning | |
Mahato et al. | On scheduling transactions in a grid processing system considering load through ant colony optimization | |
CN103941662A (zh) | 一种基于云计算的任务调度系统和调度方法 | |
CN109343945A (zh) | 一种基于合同网算法的多任务动态分配方法 | |
Wang et al. | FLOWPROPHET: Generic and accurate traffic prediction for data-parallel cluster computing | |
CN106156413B (zh) | 一种面向大规模分布式综合模块化航电系统dima的多层次建模设计方法 | |
CN114490049A (zh) | 在容器化边缘计算中自动分配资源的方法及系统 | |
CN113010296A (zh) | 基于形式化模型的任务解析与资源分配方法及系统 | |
Legrand et al. | Monarc simulation framework | |
Lee et al. | A load balancing scheme for distributed simulation based on multi-agent system | |
Korala et al. | Design and implementation of a platform for managing time-sensitive IoT applications | |
CN118626276B (zh) | 一种算力网络的算力资源调度方法及系统 | |
Pawlowski et al. | Applying Executable Architectures to Support Dynamic Analysis of C2 Systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20090520 |