当仿真实验规模庞大时,我们希望缩短仿真的时间。除了优化模型的运行效率,采用分布式仿真成为了一种很好的方法。在实验管理器(Experimeng Manager)控件中,已经内置了分布式仿真(Distributed Simulation)的功能,可见该方法的有效性。
在系统仿真当中,分布式仿真的实质为:首先,服务器将一定规模的仿真实验任务,分配到网络中不同的计算机;然后,每台计算机根据分配的仿真任务,分别进行仿真实验;最后,网络中所有计算机将仿真结果返回到服务器,服务器对结果进行统计分析。
以上过程中,假设:总的仿真任务为200次独立仿真实验,单机运行需要1分钟,那么如果建立一个有2台计算机组成的分布式仿真系统,每台计算机分配200次/2台=100次独立的仿真任务,两台计算机同时平行仿真,总的仿真时间就是1分钟/2台=0.5分钟(不含数据通讯时间)。可见分布式仿真对于缩短仿真实验时间是很有效的。
在构建分布式仿真的过程中,系统结构可以结合自己项目情况,硬件设备,网络环境等因素,自行设计。整个系统实现的技术难点在于,如何实现局域网内多机交互,下面为大家介绍一种利用Socket接口,实现多机联网交互的方法:
第一步,在需要进行数据交互的仿真模型中设置server与client socket,具体设置方法可以参考软件自带案例与帮助文档。
第二步,编写传递与接收方法,需要掌握的核心语句如:write,message等。
由于手头设备有限,制作了单机两模型的交互视频,在该视频中,模型一与模型二是两个相对独立的仿真模型,模型一仿真开始后,可以将加工进度实时传递到模型二中,模型二会在模型一完成后,开始仿真,同时将加工进度实时传递到模型一中。如果在真实局域网环境中,只需注意IP地址的设置即可,点击右侧链接查看以上视频:多机联网交互
提示:局域网中采用socket接口进行多机交互,建议采用有线连接的方式。