面向modelica的分布式仿真方法
技术领域
1.本发明属于计算机仿真领域,具体涉及一种面向modelica的分布式仿真方法。
背景技术:2.modelica是一种面向对象的多领域统一建模语言,适用于大规模复杂异构物理系统的建模。使用modelica语言描述的模型,经过解析、转换、编译后生成以微分方程为基础的可执行的仿真程序。仿真程序中包含通用的微分方程求解算法,执行求解即可得到模型变量在时间轴上的变化特性。
3.modelica能够支持电气、机械、热力学、液压、生物、控制等多领域模型开发,通过统一语言来描述各领域模型,可大大减少模型集成的难度。目前modelica语言在航空、航天、车辆、核能、能源、控制等诸多工程领域有广泛的应用。
4.目前的modelica语言的仿真平台有mworks、dymola、openmodelica等,平台提供的主要功能是图形化建模、基于modelica语言的模型描述、编译生成仿真系统、运行仿真系统得到仿真结果以及仿真结果可视化等。这些平台大多没有考虑仿真性能问题,对于复杂模型使用单机运行仿真,需要耗费大量时间,效率不高。
5.基于上述问题,研究面向modelica语言仿真平台的分布式仿真方法。本分布式仿真方法以组件作为调度单位,可调度到分布式系统节点计算机执行的组件,是通过对动态库函数封装而成的modelica组件。分布式仿真系统在执行仿真时,由分布式协调器根据调度算法推荐计算节点,仿真平台将由配置文件、任务数据以及任务动态库构成的任务包分配到局域网上的分布式节点执行,分布式节点收到任务包后解压,按照配置文件描述执行后,将执行结果回传到主控节点,主控节点将结果汇总完成仿真,实现了仿真任务的分布式并行执行,从而提高了仿真性能。
技术实现要素:6.本发明的技术问题是现有的modelica仿真平台的仿真方法,对仿真模型编译生成仿真程序后,在本机执行仿真程序得到仿真结果,在进行复杂仿真时仿真耗时较长、效率较低。
7.现有的分布式计算框架如hadoop、spark等,主要基于远程过程调用方式实现分布式计算,分布式的计算节点需要和主控节点一样安装计算所需的全部计算模块。对于modelica仿真平台,由于需计算的模块由用户通过组态定义,如果采用远程过程调用,需要将所有可用模块预安装到各节点计算机上,相当于所有分布式节点必须安装modelica仿真平台,将使得节点过于沉重,同时能够执行分布式仿真的节点也将受限,增加了计算节点的部署和扩展的难度。
8.本发明的目的是针对上述问题,提供一种面向modelica的非基于远程过程调用技术的分布式仿真方法,在分布式的计算节点计算机上安装能运行常规可执行程序的执行容器进行分布式仿真计算;以组件作为分布式仿真的调度单位;任务以包含配置文件、动态库
和运行数据的任务包形式由主控节点计算机分发到计算节点计算机执行;避免在计算节点上安装繁冗的系统环境、调度响应模块、功能性软件模块等,实现计算节点的轻量化,提高仿真的效率,计算节点易于动态扩展。
9.本发明的技术方案是面向modelica的分布式仿真方法,所述方法包括以下步骤:步骤1:将c/c++、fortran语言编写的函数编译成动态库,将动态库封装成可在modelica仿真平台使用的组件;步骤2:在modelica仿真平台中使用组件建立仿真模型,设置是否启用分布式、离线、在线仿真模式以及仿真步长、仿真变量,编译生成仿真程序;步骤3:在分布式仿真模式下,主控节点执行仿真程序时,以组件为单位进行任务调度,由动态库函数执行时的参数生成配置文件、仿真数据,将配置文件、动态库、仿真数据打包;步骤4:主控节点向分布式协调器请求任务调度,分布式协调器收到任务调度请求后,根据调度算法推荐计算节点;主控节点与计算节点通信完成任务包分发;计算节点收到任务包,执行计算任务后将执行结果回传到主控节点,主控节点将结果汇总;步骤4.1:分布式协调器启动后,通过udp协议将自身ip地址广播到计算节点、主控节点计算机;步骤4.2:计算节点计算机根据udp消息得到的分布式协调器的ip地址,连接分布式协调器;步骤4.3:计算节点计算机连接分布式协调器后,将其状态信息发送给分布式协调器,连接到分布式协调器的计算节点在预设端口等待主控节点的连接;步骤4.4:主控节点计算机根据udp通信得到的分布式协调器的ip地址,连接分布式协调器;步骤4.5:主控节点计算机定期向分布式协调器请求当前在线的计算节点计算机的状态列表,有计算任务时向分布式协调器发送请求任务调度包,协调器根据调度算法将推荐的计算节点计算机的ip地址发送给主控节点计算机,主控节点计算机连接计算节点计算机;步骤4.6:主控节点计算机向计算节点计算机发送任务包,计算节点计算机接受任务包后,每隔时间t1将任务执行的百分比发送给主控节点计算机,如果主控节点计算机客户端在时间t2内没有收到运行进度包,则终止任务执行,向分布式协调器重新请求任务调度;步骤4.7:主控节点计算机接收计算节点计算机的运行进度包,更新任务的执行进度,直至接收到任务执行结果包,后断开连接;步骤4.8:主控节点计算机接收到计算节点计算机任务执行结果包,对结果进行汇总和使用,完成后续仿真。若当前仿真模式为离线仿真,仿真结束后利用仿真窗口展示仿真模型的输出结果;若当前仿真模式为实时仿真,主控节点计算机把得到的数据进行数据处理,再通过实时仿真窗口向用户展示。
10.优选地,分布式协调器和计算节点计算机的通信协议,具体包括:(一)计算节点计算机端:1.1)计算节点计算机启动后,使用udp通信协议向局域网广播请求协调器的ip地
址;若计算节点计算机获取ip地址失败,则每隔时间t1重新发送udp请求包,直到获取成功;1.2)计算节点计算机获取协调器ip地址后,在规定端口建立tcp连接,每隔时间t1向协调器发送包含cpu、内存使用情况的心跳包。
11.(二)分布式协调器端:2.1)分布式协调器启动后,在规定端口进入等待连接状态;同时监听udp协议包;2.2)收到计算节点计算机请求ip地址的udp协议包后,发送响应包,返回本机ip地址;2.3)收到计算节点计算机在规定端口的连接请求,则建立tcp连接;2.4)收到计算节点计算机的心跳包,则在在线列表中记录计算节点计算机的状态,如果连续3次没有收到计算节点计算机的心跳包,则将该计算节点计算机从在线列表中删除。
12.优选地,分布式协调器与主控节点计算机的通信协议包括:(一)主控节点计算机端:1.1)主控节点计算机启动后,使用udp协议向局域网广播请求协调器的ip地址;若ip地址获取失败,则每隔时间t1重新发送udp请求包,直到获取成功;1.2)主控节点计算机获取ip地址后,作为客户端通过ip地址和规定的端口号连接协调器;若连接失败,将隔时间t1自动重连协调器;1.3)连接成功后,主控节点计算机每隔时间t2向协调器请求当前在线的计算节点列表及cpu、存储器状态,用于在仿真平台显示;1.4)主控节点计算机有计算任务时,向协调器发送请求任务调度包;1.5)主控节点计算机收到请求调度响应包后,通过响应包提供的计算节点计算机ip地址,开始与计算节点计算机的通信;若主控节点计算机与计算节点计算机通信失败,将返回步骤1.4)重新请求调度。
13.(二)分布式协调器端:2.1)分布式协调器启动后,在规定端口进入等待连接状态;同时监听udp包;2.2)收到udp请求ip地址,则发送响应包返回本机ip地址;2.3)收到主控计算机客户端在规定端口的连接请求,则建立tcp连接;2.4)收到请求在线计算节点,则返回在线计算节点计算机列表;2.5)收到请求任务调度包,采用先来先服务调度算法或者最短作业优先调度算法,或者最高响应比优先调度算法确定任务调度包的先后处理顺序,建立有序的任务调度包与在线计算节点列表上空闲的计算节点计算机的对应处理关系,将处理任务调度包的计算节点计算机的ip地址与任务调度包绑定,通过tcp通信协议反馈给主控节点计算机。
14.优选地,计算节点计算机和主控节点计算机的通信协议包括:(一)主控节点计算机端:1.1)主控节点计算机通过ip和规定端口连接计算节点计算机,连接失败则延迟时间t1重新连接,3次重连失败,将返回重新请求任务调度;1.2)连接成功后,将任务打包发送到计算节点计算机;1.3)接收计算节点计算机的运行进度包,更新任务执行进度;1.4)连续3次没有收到运行进度包,则终止任务执行,返回向协调器重新请求任务
调度;1.5)接收任务执行结果包,断开连接。
15.(二)计算节点计算机端:2.1)计算节点计算机启动后,在规定端口等待连接;2.2)接受连接后,继续接受任务包;2.3)在本机执行任务,每隔时间t1将任务执行的百分比发送给主控节点计算机;2.4)任务执行完成后,将任务结果发送主控节点计算机,完成后断开连接。
16.生成udp协议或tcp协议的通信报文,具体包括:定义消息格式文件,以proto为文件后缀名;使用不同需求的规定的编译器生成代码文件,代码文件为.h或.cc格式;使用protocol库提供的api来编写应用程序协议功能。
17.优选地,时间t1=5s,t2=15s。
18.基于modelica分布式仿真系统,包括仿真模块、分布式调度模块、主控节点和计算节点。
19.仿真模块,选择离线仿真还是实时仿真。离线仿真,等待仿真编译完毕之后生成exe可执行文件,然后运行可执行文件得到仿真结果,最后显示仿真结果。实时仿真,将仿真模型的每一轮仿真迭代的结果对外输出,利用进程间的通信机制,获取仿真模型的输出结果,进行变量解析和切分后,作为每一轮仿真的实时结果输出。仿真模型执行过程包含多轮迭代,每轮迭代的实际执行时间与仿真模型的复杂程度及用于仿真的计算机的性能有关。实时仿真结果显示时,横坐标为时间轴,该时间为仿真模型的内部参数,需要进行时间转换,然后实时同步到展示界面。
20.分布式调度模块的功能包括分布式协调、任务调度。
21.分布式协调:分布式协调器跟踪计算节点的状态,计算节点的状态信息包括计算节点在否空闲、cpu使用情况、内存资源使用情况、上线时间、完成任务数等,然后向主控节点提供计算节点状态信息表;计算节点上线之后,不仅会被分布式调度模块跟踪到,而且分布式调度模块定时更新计算节点的状态信息表,当计算节点下线之后会从在线计算节点计算机列表中删除。
22.任务调度:主控节点向分布式协调器发送任务调度包,可根据选择的任务调度算法进行处理,采用先来先服务调度算法或者最短作业优先调度算法,或者最高响应比优先调度算法确定任务调度包的先后处理顺序,建立有序的任务调度包与在线计算节点列表上空闲的计算节点计算机的对应处理关系,将处理任务调度包的计算节点计算机的ip地址与任务调度包绑定,通过tcp通信协议反馈给主控节点计算机。将处理任务调度包的计算节点计算机的ip地址与任务调度包绑定,使用任务队列记录任务状态,任务状态包括待分配、执行、完成状态。对超时或节点异常的任务,进行重新分配。
23.主控节点:主控节点计算机作为仿真平台节点,主要分为两种情况:当没有任务调度的时候,启动主控节点计算机通过向分布式协调器请求计算节点计算机的情况,监听计算节点计算机的情况;当有任务调度的时候,通过向分布式协调器发送任务调度包,任务调度对应的计算节点计算机,然后接收计算节点计算机的任务执行结果包,读取和存储数据后,继续分发任务和仿真,若当前仿真模式为离线仿真,等待直至仿真结束,运行仿真生成
的可执行文件,利用仿真窗口展示仿真模型的输出结果;若当前仿真模式为实时仿真,主控节点计算机把得到的数据进行数据处理,再通过实时仿真窗口向用户展示。
24.计算节点:计算节点计算机作为与主控节点计算机同一计算机或者同一局域网下的计算节点。当计算节点计算机启动后,计算节点计算机会通过udp通信协议连接分布式协调器,然后向分布式协调器发送cpu、内存使用情况的心跳包,表示计算节点计算机上线,等待主控节点计算机连接并分配任务。和主控节点计算机连接后,每隔时间t1将任务执行的百分比发送给主控节点计算机,任务执行完成后,将任务结果发送主控节点计算机,完成后断开连接。
25.相比现有技术,本发明的有益效果包括:1)提高了仿真效率。本发明实现了面向modelica的分布式仿真计算,适用于大型复杂仿真模型的仿真计算,将计算任务分配到局域网的计算节点计算机上执行,减少了主控节点的仿真计算任务执行时间,提高了仿真效率。
26.2)结构灵活。本发明没有采用基于远程过程调用技术,分布式计算节点计算机上只需安装最小的通信模块和执行容器,计算节点上线即可运行任务,离线系统会自动将任务重新分配其他计算节点。上线的计算节点越多,计算服务质量越高。
27.3)轻量化。计算节点的状态由分布式协调器负责跟踪和记录,没有调度任务时,作为主控节点的仿真平台不需要额外开销。当需要任务调度时,协调器只需要根据调度算法推荐计算节点,随后的任务分发与结果回传由主控节点和计算节点直接完成。减少了由分布式节点转发造成的带宽和处理器的浪费。
28.4)适应性好。以组件作为分布式仿真的调度单位,适应了以仿真组件进行组态建模的modelica仿真平台的工作模式。
29.5)通信协议具有优势。通过protocol库自定义的通信协议,让modelica分布式仿真系统中的计算节点计算机、分布式协调器和主控节点计算机之间的通信性能更好,效率更高,内存空间开销更小,支持向后兼容和向前兼容,有良好的可扩展性。将udp协议与tcp协议结合使用的独特优点:udp协议是支持一个无连接的传输协议,udp 协议为应用程序提供了一种无需建立连接就可以发送封装的 ip 数据包的方法,通过此方法可以将分布式协调器的ip数据包封装了发送给主控节点计算机和计算节点计算机,不用根据ip地址连接之后再通信,通过udp协议获取了分布式协调器的ip地址之后,再用tcp协议进行连接通信,完成两个通信协议的结合使用,使得各个模块之间的节点计算机不论布置在任意的计算机上,只要在同一局域网下都能正常的连接,并完成通信。
附图说明
30.下面结合附图和实施例对本发明作进一步说明。
31.图1为本发明实施例的分布式仿真方法的流程图。
32.图2为本发明实施例的分布式仿真系统的架构图。
33.图3为实施例一的分布式仿真效果图。
34.图4为实施例二的分布式仿真效果图。
35.图5为实施例三的分布式仿真系统的界面图。
具体实施方式
36.实施例一如图1-2所示,面向modelica的分布式仿真方法,包括以下步骤:步骤1:首先将c/c++、fortran语言编写的函数编译成动态库,将动态库封装成可在modelica平台使用的组件;步骤2:在modelica仿真平台中使用包括上述的组件建立仿真模型,设置是否启用分布式、离线、在线等仿真模式以及仿真步长、变量等仿真参数,编译生成仿真系统;步骤3:在分布式仿真模式下,主控节点执行仿真系统时,将以组件为单位进行任务调度,由动态库函数执行时的参数生成配置文件、仿真数据,将配置文件、动态库、仿真数据打包;步骤4:主控节点向分布式协调器请求任务调度。分布式协调器,可以在此时启动,也可以在步骤3时或之前提前启动。分布式协调器启动后的步骤如下:步骤4.1:启动分布式协调器,通过udp通信协议将ip地址广播到计算节点计算机和主控节点计算机;步骤4.2:计算节点计算机通过udp通信协议请求得到分布式协调器的ip地址后,连接分布式协调器;步骤4.3:计算节点计算机连接分布式协调器后,并将其状态信息如cpu、存储器状态发送给分布式协调器,空闲的计算节点等待主控节点的连接和发送任务包;步骤4.4:主控节点计算机通过udp通信协议得到分布式协调器的ip地址后,连接分布式协调器;步骤4.5:主控节点计算机定期向分布式协调器请求当前在线的计算节点计算机的状态列表,有计算任务时向分布式协调器发送请求任务调度包,协调器根据调度算法将推荐的计算节点计算机的ip地址发送给主控节点计算机,主控节点计算机连接计算节点计算机;步骤4.6:主控节点计算机向计算节点计算机发送任务包,计算节点计算机收到包含配置文件、仿真数据及动态库的任务后,启动执行器,按照配置文件执行动态库里的函数,输入参数为收到的仿真数据;执行完成后,输出结果回传到主控节点;计算节点计算机每隔5秒将任务执行的百分比发送给主控节点计算机,如果主控节点计算机客户端在15秒内没有收到运行进度包,则终止任务执行,向分布式协调器重新请求任务调度;步骤4.7:主控节点计算机接收计算节点计算机的运行进度包,更新任务的执行进度,直至接收到任务执行结果包,后断开连接;步骤4.8:主控节点计算机接收到计算节点计算机回传的数据,读取和存储数据后,继续分发任务和仿真,主控节点计算机把得到的数据进行数据处理,再通过仿真窗口向用户展示。
37.分布式协调器和计算节点计算机的通信协议,具体包括:(一)计算节点计算机端:1.1)计算节点计算机启动后,使用udp协议向局域网广播请求协调器的ip地址;若ip地址获取失败,则每隔5秒重新发送udp请求包,直到获取成功;
1.2)计算节点计算机获取协调器ip地址后,在规定端口建立tcp连接,每隔5秒向协调器发送包含cpu、内存使用情况的心跳包。
38.(二)分布式协调器端:2.1)分布式协调器启动后,在规定端口进入等待连接状态;同时监听udp包;2.2)收到udp请求ip地址,则发送响应包返回本机ip地址;2.3)收到计算节点计算机在规定端口的连接请求,则建立tcp连接;2.4) 收到计算节点计算机的心跳包,则在在线列表中记录计算节点状态,如果连续3次没有收到计算节点心跳包,则将该计算节点从在线列表中删除。
39.分布式协调器与主控节点计算机的通信协议包括:(一)主控节点计算机端:1.1)主控节点计算机启动后,使用udp协议向局域网广播请求协调器的ip地址;若ip地址获取失败,则每隔5秒重新发送udp请求包,直到获取成功;1.2)主控节点计算机获取ip地址后,作为客户端通过ip地址和规定的端口号连接协调器;若连接失败,将隔5秒自动重连协调器;1.3)连接成功后,主控节点计算机每隔15秒向协调器请求当前在线的计算节点列表及cpu、存储器状态,用于在仿真平台显示;1.4)主控节点计算机有计算任务时,向协调器发送请求任务调度包;1.5)主控节点计算机收到请求调度响应包后,通过响应包提供的计算节点计算机ip地址,开始与计算节点计算机的通信;若主控节点计算机与计算节点计算机通信失败,将返回步骤1.4)重新请求调度。
40.(二)分布式协调器端:2.1)分布式协调器启动后,在规定端口进入等待连接状态;同时监听udp包;2.2)收到udp请求ip地址,则发送响应包返回本机ip地址;2.3)收到主控计算机客户端在规定端口的连接请求,则建立tcp连接;2.4)收到请求在线计算节点,则返回在线计算节点计算机列表;2.5)收到请求任务调度包,选择使用先来先服务调度算法、最短作业优先调度算法、最高响应比优先调度算法其中一种调度算法处理任务调度包,将处理完有序的任务调度包,对应上在线计算节点列表上空闲的计算节点计算机,把其ip地址绑定任务调度包通过tcp通信协议反馈给主控节点计算机。
41.计算节点计算机和主控节点计算机的通信协议包括:(一)主控节点计算机端:1.1)主控节点计算机通过ip和规定端口连接计算节点计算机,连接失败则延迟5秒重新连接,3次重连失败,将返回重新请求任务调度;1.2)连接成功后,将任务打包发送到计算节点计算机;1.3)接收计算节点计算机的运行进度包,更新任务执行进度;1.4)连续3次没有收到运行进度包,则终止任务执行,返回向协调器重新请求任务调度;1.5)接收任务执行结果包,断开连接。
42.(二)计算节点计算机端:
2.1)计算节点计算机启动后,在规定端口等待连接;2.2)接受连接后,继续接受任务包;2.3)在本机执行任务,每隔5秒将任务执行的百分比发送给主控节点计算机;2.4)任务执行完成后,将任务结果发送主控节点计算机,完成后断开连接。
43.实施例中,生成udp协议或tcp协议的通信报文,具体包括:定义消息格式文件,以proto为文件后缀名;使用不同需求的规定的编译器生成代码文件,代码文件为.h或.cc格式;使用protocol库提供的api来编写应用程序。
44.实施例中,以动态库和运行数据作为分布式调度的调度单位,即主控节点计算机经分布式协调器分发给计算节点计算机的任务包包含动态库和运行数据。
45.实施例中,动态库的封装方法参照公开号为cn113220309b的中国发明专利“多语言的modelica组件批量生成系统和方法”公开的函数封装方法。
46.实施例的仿真效果如图3所示。
47.实施例二如图1-2所示,面向modelica的分布式仿真方法,包括以下步骤:步骤1:将c/c++、fortran语言编写的函数编译成动态库,将动态库封装成可在modelica平台使用的组件;步骤2:在modelica仿真平台中使用组件建立仿真模型,设置是否启用分布式、离线、在线仿真模式以及仿真步长、变量,编译生成仿真程序;步骤3:在分布式仿真模式下,主控节点执行仿真程序时,以组件为单位进行任务调度,由动态库函数执行时的参数生成配置文件、仿真数据,将配置文件、动态库、仿真数据打包;步骤4:主控节点向分布式协调器请求任务调度,分布式协调器收到任务调度请求后,根据调度算法推荐计算节点,并将任务包分发给计算节点,计算节点执行分布式计算任务后将执行结果回传到主控节点,主控节点将结果汇总;步骤4.1:启动分布式协调器,通过udp通信协议将ip地址广播到计算节点计算机和主控节点计算机;步骤4.2:计算节点计算机通过udp通信协议得到分布式协调器的ip地址后,连接分布式协调器;步骤4.3:计算节点计算机连接分布式协调器后,并将其状态信息如cpu、存储器状态发送给分布式协调器,空闲的计算节点等待主控节点的连接和发送任务包;步骤4.4:主控节点计算机通过udp通信协议得到分布式协调器的ip地址后,连接分布式协调器;步骤4.5:主控节点计算机定期向分布式协调器请求当前在线的计算节点计算机的状态列表,有计算任务时向分布式协调器发送请求任务调度包,获取在线计算节点计算机的ip地址,连接计算节点计算机;步骤4.6:主控节点计算机向计算节点计算机发送任务包,计算节点计算机收到包含配置文件、仿真数据及动态库的任务后,启动执行器,按照配置文件执行动态库里的函数,输入参数为收到的仿真数据;执行完成后,输出结果回传到主控节点;
计算节点计算机每隔5秒将任务执行的百分比发送给主控节点计算机,如果主控节点计算机客户端在15秒内没有收到运行进度包,则终止任务执行,向分布式协调器重新请求任务调度;步骤4.7:主控节点计算机接收计算节点计算机的运行进度包,更新任务的执行进度,直至接收到任务执行结果包,后断开连接;步骤4.8:主控节点计算机接收到计算节点计算机任务执行结果包,主控节点计算机把得到的结果数据进行数据处理,再通过实时仿真窗口向用户展示。
48.实施例二的通信协议与实施例一的通信协议相同。
49.实施例的仿真效果如图4所示。
50.实施例扩展了modelica的实时仿真功能,通过对每一轮仿真结果的迭代处理,实时的获取仿真输出结果,掌握仿真变量的变化情况,并能根据情况提前终止仿真,使仿真过程更为灵活,避免浪费不必要的时间。
51.实施例三面向modelica的分布式仿真系统,包括仿真模块、分布式调度模块、主控节点和计算节点。
52.仿真模块,选择离线仿真还是实时仿真。离线仿真,等待仿真编译完毕之后生成exe可执行文件,然后运行可执行文件得到仿真结果,最后显示仿真结果。实时仿真,将仿真模型的每一轮仿真迭代的结果对外输出,利用进程间的通信机制,获取仿真模型的输出结果,进行变量解析和切分后,作为每一轮仿真的实时结果输出。仿真模型执行过程包含多轮迭代,每轮迭代的实际执行时间与仿真模型的复杂程度及用于仿真的计算机的性能有关。实时仿真结果显示时,横坐标为时间轴,该时间为仿真模型的内部参数,需要进行时间转换,然后实时同步到展示界面。
53.分布式调度模块的功能包括分布式协调、任务调度。
54.分布式协调:分布式协调器跟踪计算节点的状态,计算节点的状态信息包括计算节点在否空闲、cpu使用情况、内存资源使用情况、上线时间、完成任务数等,然后向主控节点提供计算节点状态信息表;计算节点上线之后,不仅会被分布式调度模块跟踪到,而且分布式调度模块定时更新计算节点的状态信息表,当计算节点下线之后会从计算节点状态信息表中删除。
55.任务调度:主控节点向分布式协调器发送任务调度包,可根据选择的任务调度算法进行处理,选择使用先来先服务调度算法、最短作业优先调度算法、最高响应比优先调度算法等其中一种调度算法处理任务调度包,将处理完有序的任务调度包,建立有序的任务调度包与在线计算节点列表上空闲的计算节点计算机的对应处理关系,将处理任务调度包的计算节点计算机的ip地址与任务调度包绑定,使用任务队列记录任务状态,任务状态包括待分配、执行、完成状态。对超时或节点异常的任务,进行重新分配。
56.主控节点:主控节点计算机作为仿真平台节点,主要分为两种情况:当没有任务调度的时候,启动主控节点计算机通过向分布式协调器请求计算节点计算机的情况,监听计算节点计算机的情况;当有任务调度的时候,通过向分布式协调器发送任务调度包,任务调度对应的计算节点计算机,然后接收计算节点计算机的任务执行结果包,读取和存储数据后,继续分发任务和仿真,若当前仿真模式为离线仿真,等待直至仿真结束,运行仿真生成
的可执行文件,利用仿真窗口展示仿真模型的输出结果;若当前仿真模式为实时仿真,主控节点计算机把得到的数据进行数据处理,再通过实时仿真窗口向用户展示。
57.计算节点:计算节点计算机作为与主控节点计算机同一计算机或者同一局域网下的计算节点。当计算节点计算机启动后,计算节点计算机会通过udp通信协议连接分布式协调器,然后向分布式协调器发送cpu、内存使用情况的心跳包,表示计算节点计算机上线,等待主控节点计算机连接并分配任务,和主控节点计算机连接后,每隔时间t1将任务执行的百分比发送给主控节点计算机,任务执行完成后,将任务结果发送主控节点计算机,完成后断开连接。
58.实施例的分布式仿真系统的界面如图5所示。
59.实施例三的分布式仿真系统采用实施例二的分布式仿真方法。