论文部分内容阅读
虚拟化技术复兴以后,基于其上的软件技术逐渐成为一个重要的研究领域。如今,利用虚拟化技术构建高性能计算应用所需的运行环境正成为一种流行趋势。同传统计算模式相比,虚拟化技术的出现带来了许多好处。比如资源聚合,降低能耗,可改善程序移植性,还可以协助调试复杂的程序代码等。
在传统计算模式中,客户操作系统(Guest Operating System)直接将应用进程调度到物理处理器上运行。然而在虚拟机计算模式中,由于虚拟化层的出现,调度机制出现了一些变化,为双层调度:在GOS中,GOS将进程调度到虚拟处理器上;在虚拟化层中,虚拟机管理器将虚拟处理器调度到物理处理器上运行。在现今的虚拟机体系结构中,这两种调度机制是相互独立执行的。这在一定程度上影响了那些需要通过MPI原语进行通信的高性能计算负载的性能,这种影响在过载虚拟机条件(即一个物理处理器上分配了不止一个的虚拟处理器)下显得尤其强烈。
此研究详细分析了过载虚拟机条件下利用MPI通信的HPC应用性能损耗的原因,即MPI 库消息接收机制产生的“忙等”现象浪费了较多的处理器资源。通过进一步分析虚拟机调度器源码,发现“忙等”现象产生的根源是虚拟化环境中双层调度机制的不协同性,因此,提出了一种在虚拟化环境下协同双层调度以提高系统性能的方法,即将GOS中的一部分调度信息适时发送给虚拟机管理器以保证虚拟机管理器中的调度执行更准确,从而减少“忙等”现象,提高系统性能。
实验表明,协同双层调度方法在过载虚拟机条件下能显著提高利用MPI进行通信的HPC负载的通信性能。