第1章
仿真与时间同步
1.1 NCS基本概念
1.1.1 分布式仿真
1.概念定义
分布式仿真是指多个仿真模型或应用在一个公共的合成环境中分布式执行,这些仿真模型或应用通常位于通过网络连接的多台计算机上,并且常常在地理上是分散部署的。这些分布式仿真模型或应用的联合运行效果与它们被集成在同一台计算机上一样。
广义上,任何由多台计算机节点(以下简称“节点”)组成并共同完成特定仿真任务的仿真系统,都可以被认为是分布式仿真系统。一个分布式仿真系统可以描述为由一组基本上自治的仿真节点组成,仿真节点之间通过通信网络进行数据交互,并且具有如下特征。
(1)没有共同的物理时钟。这一特征为系统带来“分布”的元素,并为仿真节点之间带来固有的异步特性。
(2)没有共享内存。这一特征要求系统只能通过消息传递的方式实现通信,也隐含着没有共同的物理时钟。
(3)地理分散。仿真节点在地理上的分布越分散,分布式仿真系统的代表性就越强。
(4)自治与异构。这些仿真节点是松散耦合的,它们具有不同的速度且每个节点都可能运行在不同的操作系统上。通常它们不是一个专用系统的组成部分,而是通过相互合作的方式提供服务或者共同解决一个问题的系统。
2.技术本质
分布式仿真通过重用仿真资源降低了仿真成本,通过实现仿真模型或应用间的数据交互提高了仿真灵活性,通过重用经过验证的仿真模型或应用提供了仿真结果的可信性,并且具备减少仿真运行时间、支持硬件或人在回路的仿真、支持地理上分散部署的仿真资源之间的互操作等诸多优点。
仿真系统的运行主要依赖计算机(主要是处理器),而分布式仿真技术就是利用网络将多台原本独立运行的计算机联合起来,通过消息传递机制来实现多台计算机上的多个逻辑进程的并发执行与协同交互。
3.应用需求
模拟训练是仿真技术应用的重要领域,这里我们以模拟训练应用为例,说明分布式仿真技术的一个应用需求。各种类型的训练模拟器是最经典的训练仿真应用,可以很好地满足单兵技能训练。随着军事训练逐渐向着联合训练的方向发展,迫切需要满足协同、分队战术训练等高级应用需求。单兵技能训练水平很好的成员组成一个相互协同的分队,该分队的整体战斗力可能不尽如人意。为此,仿真研究人员开始推动各类模拟器等模拟仿真资源从独立运行模式向联网交互协同运行模式发展,先后出现了SIMNET、DIS、HLA、TENA等多个分布式仿真技术方案。总结起来,使用分布式仿真的动机来自以下需求。
(1)固有的分布式计算。很多仿真应用程序有时需要使地理上相距遥远的各方取得一致意见,这些计算都具有内在的分布性。
(2)资源共享。一些资源如外设、数据库中的完成数据集、专用的代码库以及其他数据(变量或文件)不太可能在所有的地点被完全复制,因为这既不可行也不经济。另外,它们也不能被放在唯一的地点,否则会造成访问上的瓶颈。因此,这些资源会被分布于系统各处。
(3)获取或使用远程数据和资源。在许多情况下,数据不能复制到所有参与分布式执行的地点。这是因为数据可能太大或者太敏感不宜复制。因此,这些数据被保存到一个中央服务器上,其他仿真节点可以进行远程访问。类似地,一些特殊的资源(如超级计算机)只能放在特定的地方,用户只能通过网络通信的方式访问这些资源。
(4)更高的可靠性。分布式系统具有提高可靠性的优势,因为资源和执行可以被复制,同时在地理上分布的资源也不太可能在正常环境下同时出现故障。
(5)更高的性价比。通过资源共享及远程访问数据资源,可以提高性价比。虽然更高的性价比没有必要成为一个分布式仿真系统的主要目标,任何任务都可以划分到分布式仿真系统的多台计算机上为仿真带来益处。与专用的并行计算机相比,这种配置性价比更高。
(6)可伸缩性。由于处理器通常通过网络连接,所以增加更多的处理器不会直接在通信网络中造成访问上的瓶颈。
(7)模块化以及可扩展性。异构的仿真节点运行相同的中间件算法,就可以很容易地加入仿真系统,而不影响性能。类似地,现有的仿真节点很容易被其他处理器替换。