论文部分内容阅读
通信仿真系统中的仿真任务是一个CPU密集型的任务,当同时使用仿真系统的用户较多,并发进行的仿真量较大时,会对硬件的要求较高。为了满足仿真任务对计算资源的需求,一般有纵向扩展和横向扩展两种方式。纵向扩展即提高单台服务器的处理能力,但该方式所提高的计算能力受限于计算机硬件发展水平,且性价比低。横向扩展即使用多台服务器连成一体构成集群,以此向外提供计算服务,性价比相对较高。基于集群的新一代仿真系统可以方便地进行横向扩展以满足对计算能力的需求。本文首先给出了集群系统的架构设计、功能模块、信息交互时序的详细设计,描述了如何构建一个可以提供高计算能力的通信仿真集群系统,之后对集群系统的核心内容:负载预测和任务调度方法展开研究。系统的横向扩展可以提高计算能力,并降低整个系统的硬件成本。但随之也出现了集群中节点资源利用不均衡的问题。集群的负载均衡问题直接影响资源的利用率和服务的响应能力,因此使用有效的任务调度策略以保证集群的负载均衡具有重要的意义。负载均衡的实现离不开负载监测作作为作为基础,系统的负载监测具有多项监测指标,为了将负载情况有效地应用到负载均衡的调度算法中,需要将多项监测指标融合为单一值。同时如何设计高效合理的负载监测周期也将影响到监测自身对节点的资源消耗和节点之间传输数据量的大小,最终关乎整个集群系统的对外服务能力。本文对上述监测问题给出了有效的方法。一般的负载均衡调度策略是根据节点的实时负载情况进行请求的调度分配或对任务在节点间进行迁移。本文的通信仿真任务的运行时间较长,且运行时不同阶段对系统产生的负载情况也不相同,这使得根据实时负载进行请求时的均衡调度难以保证节点在任务实际运行中的负载均衡;通信仿真系统只提供仿真的功能,其功能单一性和不可中断性使得无法使用服务迁移的方法来保证负载均衡。为此本文设计了基于运行时间预测和负载预测的调度方法。使用机器学习中的回归模型,利用系统的配置参数作作为作为特征向量,对运行时间和负载进行预测。在任务调度时基于预测数据设计了负载窗口叠加的调度策略,即使任务产生的负载随着运行时间不断波动也能保证系统的负载均衡。集群扩展时,异构节点的加入使得系统需要为新增的节点产生大量种子集以生成不同的预测公式,增加了集群扩展的复杂性,本文提出的异构节点的归一化方法使得预测公式只需要基于某一特定节点产生即可。