利索能及
我要发布
收藏
专利号: 2022113914710
申请人: 三峡大学
专利类型:发明专利
专利状态:已下证
更新日期:2026-11-04
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.面向Modelica的分布式仿真方法,其特征在于,所述方法的仿真系统包括主控节点计算机、分布式协调器、计算节点计算机和计算节点计算机上运行的执行器;所述方法以组件作为调度单位,分布式仿真时分发到节点计算机执行的组件,是通过对动态库函数封装而成的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:主控节点计算机接收到计算节点计算机任务执行结果包,对结果进行汇总和使用,完成后续仿真。

2.根据权利要求1所述的面向Modelica的分布式仿真方法,其特征在于,分布式协调器和计算节点计算机的通信协议,具体包括:(一)计算节点计算机端:

1.1)计算节点计算机启动后,使用UDP通信协议向局域网广播请求协调器的IP地址;若计算节点计算机获取IP地址失败,则每隔时间T1重新发送UDP请求包,直到获取成功;

1.2)计算节点计算机获取协调器IP地址后,在规定端口建立TCP连接,每隔时间T1向协调器发送包含CPU、内存使用情况的心跳包;

(二)分布式协调器端:

2.1)分布式协调器启动后,在规定端口进入等待连接状态;同时监听UDP协议包;

2.2)收到计算节点计算机请求IP地址的UDP协议包后,发送响应包,返回本机IP地址;

2.3)收到计算节点计算机在规定端口的连接请求,则建立TCP连接;

2.4)收到计算节点计算机的心跳包,则在在线列表中记录计算节点计算机的状态,如果连续3次没有收到计算节点计算机的心跳包,则将该计算节点计算机从在线列表中删除。

3.根据权利要求2所述的面向Modelica的分布式仿真方法,其特征在于,分布式协调器与主控节点计算机的通信协议包括:(一)主控节点计算机端:

1.1)主控节点计算机启动后,使用UDP协议向局域网广播请求分布式协调器的IP地址;

若主控节点计算机获取IP地址失败,则每隔时间T1重新发送UDP请求包,直到获取成功;

1.2)主控节点计算机获取IP地址后,通过IP地址和规定的端口号连接分布式协调器;

若主控节点计算机连接分布式协调器失败,每隔时间T1自动重连分布式协调器;

1.3)连接成功后,主控节点计算机每隔时间T2向分布式协调器请求当前在线的计算节点计算机列表及CPU、存储器状态;

1.4)主控节点计算机有计算任务时,向分布式协调器发送请求任务调度包;

1.5)主控节点计算机收到请求任务调度包的响应包后,通过响应包提供的计算节点计算机的IP地址,开始与计算节点计算机的通信;

若主控节点计算机与计算节点计算机通信失败,返回步骤1.4)重新请求调度;

(二)分布式协调器端:

2.1)分布式协调器启动后,在规定端口进入等待连接状态;同时监听UDP协议包;

2.2)收到主控节点计算机请求IP地址的UDP协议包后,发送响应包,返回本机IP地址;

2.3)收到主控计算机客户端在规定端口的连接请求,则建立TCP连接;

2.4)收到在线计算节点的请求,则返回在线计算节点计算机列表;

2.5)收到请求任务调度包,采用先来先服务调度算法或者最短作业优先调度算法,或者最高响应比优先调度算法确定任务包的先后处理顺序,建立有序的任务包与在线计算节点列表上空闲的计算节点计算机的对应处理关系,将处理任务包的计算节点计算机的IP地址与任务包绑定,通过TCP通信协议反馈给主控节点计算机。

4.根据权利要求3所述的面向Modelica的分布式仿真方法,其特征在于,计算节点计算机和主控节点计算机的通信协议包括:(一)主控节点计算机端:

1.1)主控节点计算机通过IP和规定端口连接计算节点计算机,连接失败则间隔时间T1后重新连接,3次重连失败,将返回重新请求任务调度;

1.2)连接成功后,将任务打包发送到计算节点计算机;

1.3)接收计算节点计算机的运行进度包,更新任务执行进度;

1.4)连续3次没有收到运行进度包,则终止任务执行,返回向分布式协调器重新请求任务调度;

1.5)接收任务执行结果包,断开连接;

(二)计算节点计算机端:

2.1)计算节点计算机启动后,在规定端口等待连接;

2.2)与主控节点计算机连接后,继续接受任务调度包;

2.3)在本机执行任务,每隔时间T1将任务执行的百分比发送给主控节点计算机;

2.4)任务执行完成后,将任务结果发送主控节点计算机,完成后断开连接。

5.根据权利要求2或3或4所述的面向Modelica的分布式仿真方法,其特征在于,生成UDP协议或TCP协议的通信报文,具体包括:定义消息格式文件,以proto为文件后缀名;

使用不同需求的规定的编译器生成代码文件,代码文件为.h或.cc格式;

使用Protocol库提供的API来编写应用程序协议功能。

6.根据权利要求5所述的面向Modelica的分布式仿真方法,其特征在于,步骤4中,计算节点计算机收到包含配置文件、仿真数据及动态库的任务后,启动执行器,按照配置文件执行动态库里的函数,输入参数为收到的仿真数据;执行完成后,输出结果回传到主控节点。