论文部分内容阅读
虚拟化带来的性能开销阻碍了高性能计算在虚拟集群环境下的大规模应用。首先,虚拟化层次的引入在传统操作系统任务调度中加入了虚拟CPU调度这一额外层次,带来了额外的调度开销。其次,同一台物理主机上所有虚拟机的通信通过虚拟机监视器统一处理,增加了应用在虚拟集群环境下的通信延迟。最后,同一台物理主机上的虚拟机对Cache等共享资源的非亲和性使用,使得高性能应用在虚拟集群环境下的性能显著下降。分析高性能应用在虚拟集群环境下的性能开销并由此提出相应的优化技术是解决上述问题的有效手段。本文利用Xen虚拟化软件、SLURM集群作业管理系统,Eclipse+PTP远程并行开发调试环境等构建了一个虚拟化高性能集群系统,通过在该系统上执行高性能测试集,对高性能应用的虚拟化性能开销进行量化分析,提出了基于VCPU亲和性的虚拟资源优化调度技术。具体研究内容包括以下三个方面:1.课题研究了虚拟化技术与基于虚拟集群的高性能计算国内外现状,为虚拟集群系统软件栈的构建提供了选择依据;对传统高性能环境下的典型应用进行调研,选取了三个具有代表性的科学计算应用作为虚拟化性能开销的测试集;对用户可能关心的性能指标进行了综合,选取合适的性能评价标准衡量虚拟集群环境下高性能应用的性能;最后阐述了虚拟集群系统的构建流程。2.通过在虚拟集群和物理集群上分别执行高性能应用程序对虚拟化性能开销进行了量化分析。特别地,通过执行中长期天气预报模式WRF,对虚拟集群环境下实际科学应用程序的性能开销进行了分析;通过执行NPB标准测试集对虚拟集群下不同类型高性能应用的性能开销进行了分析;通过执行科学工作流数据放置策略测试了虚拟集群下工作流应用不同规模通信量下的性能开销。最后,基于量化分析结果,指出了基于虚拟集群的高性能计算当前存在的问题与改进方向。3.根据虚拟集群下通信复用不明显而导致通信开销较大的特点,提出了基于Bin Packing的虚拟资源优化调度算法。该算法在基于解决传统Bin Packing问题的三种启发式算法的基础上,通过选取剩余时间和内存作为权值估计函数,设计了VM状态转换信息表。与先前算法相比,本文算法考虑了VCPU亲和性对高性能应用的性能影响,同时针对虚拟集群自身特点加入了通信感知与物理节点标记机制,提出了考虑通信量的改进Bin Packing算法。模拟实验结果表明,基于Bin Packing的虚拟资源调度算法相对于比先前的资源调度算法在通信复用上具有较大优势。