过载虚机条件下MPI通信性能改善方法研究
发布时间:2020-07-07 08:49
【摘要】:虚拟化技术复兴以后,基于其上的软件技术逐渐成为一个重要的研究领域。如今,利用虚拟化技术构建高性能计算应用所需的运行环境正成为一种流行趋势。同传统计算模式相比,虚拟化技术的出现带来了许多好处。比如资源聚合,降低能耗,可改善程序移植性,还可以协助调试复杂的程序代码等。 在传统计算模式中,客户操作系统(Guest Operating System)直接将应用进程调度到物理处理器上运行。然而在虚拟机计算模式中,由于虚拟化层的出现,调度机制出现了一些变化,为双层调度:在GOS中,GOS将进程调度到虚拟处理器上;在虚拟化层中,虚拟机管理器将虚拟处理器调度到物理处理器上运行。在现今的虚拟机体系结构中,这两种调度机制是相互独立执行的。这在一定程度上影响了那些需要通过MPI原语进行通信的高性能计算负载的性能,这种影响在过载虚拟机条件(即一个物理处理器上分配了不止一个的虚拟处理器)下显得尤其强烈。 此研究详细分析了过载虚拟机条件下利用MPI通信的HPC应用性能损耗的原因,即MPI库消息接收机制产生的“忙等”现象浪费了较多的处理器资源。通过进一步分析虚拟机调度器源码,发现“忙等”现象产生的根源是虚拟化环境中双层调度机制的不协同性,因此,提出了一种在虚拟化环境下协同双层调度以提高系统性能的方法,即将GOS中的一部分调度信息适时发送给虚拟机管理器以保证虚拟机管理器中的调度执行更准确,从而减少“忙等”现象,提高系统性能。 实验表明,协同双层调度方法在过载虚拟机条件下能显著提高利用MPI进行通信的HPC负载的通信性能。
【学位授予单位】:华中科技大学
【学位级别】:硕士
【学位授予年份】:2011
【分类号】:TP302
【图文】:
依靠all-to-all通信来交换中间结果),lu.A.2(解决五个关于抛物线或椭圆的不完全等式,各不等式需要在计算过程中交换中间结果)和ep.A.2(随机数产生器,随机数产生时不需要通信)。三个测试程序的运行时间如图3.2所示。图 3.2 过载虚拟机下 NPB 程序性能从 图 3.2 可 以 看 出 , 相 对 于 native-up 情 况 下 所 得 到 的 性 能 结 果 , 在inter-vm-credit-pin情况下,is.A.2的运行时间增加了约30倍,lu.A.2的运行时间增加了约4倍。在intra-vm-credit-pin条件下,is.A.2的运行时间增加了约12倍,lu.A.2的运行时间增加了约0.5倍。在SEDF调度器下,系统性能损耗没有这么严重:在inter-vm-sedf-pin条件下
4.1.1 问题阐述虚拟化环境下,调度分为两层,一层是GOS中的进程调度,一层是虚拟机管理器(VMM)对虚拟处理器(VCPU)的调度,如图4.1所示。GOS中对进程的调度相对于VMM基本是透明的,VMM仅根据当前VCPU中是否有任务运行来判断当前VCPU是否可被调度。由于进程运行状态信息无法直接通过VCPU反应给VMM,导致VMM对VCPU的调度和GOS对进程的调度之间容易产生理解偏差,对系统性能产生较大影响。图 4.1 虚拟化环境下的双层调度一个典型的例子就是虚拟机中只有一个进程运行时,当该进程处于阻塞式消息接收且等待一段时间后仍未接收到消息,那么它会尝试放弃CPU资源,放弃CPU资源动作(sched_yield)信息仅仅传达到VCPU一级,并不会到达物理CPU一级
各个子任务之间相互通信采用的是阻塞式消息接收方式(即接收进程处于轮询状态,并不会进入阻塞状态)。在过载虚拟机条件下,MPI的这种高效I/O会出现上述例子中的大时间片浪费情况,导致整体系统性能下降。典型情况如图4.2所示。DOMn1的VCPU0和DOMn3的VCPU0分别被调度到物理CPU0和物理CPU1上运行,DOMn2的VCPU0处于PCPU0的VCPU队列中,DOMn4的VCPU0处于PCPU1的VCPU队列,receive表示接收进程,send表示发送进程。简而言之就是相互通信的VCPU被调度到同一个PCPU上运行,同时其余PCPU一直处于满负荷运行(不会执行负载均衡策略,导致出现VCPU迁移情况)。此时,DOMn1的VCPU0被调度
本文编号:2744916
【学位授予单位】:华中科技大学
【学位级别】:硕士
【学位授予年份】:2011
【分类号】:TP302
【图文】:
依靠all-to-all通信来交换中间结果),lu.A.2(解决五个关于抛物线或椭圆的不完全等式,各不等式需要在计算过程中交换中间结果)和ep.A.2(随机数产生器,随机数产生时不需要通信)。三个测试程序的运行时间如图3.2所示。图 3.2 过载虚拟机下 NPB 程序性能从 图 3.2 可 以 看 出 , 相 对 于 native-up 情 况 下 所 得 到 的 性 能 结 果 , 在inter-vm-credit-pin情况下,is.A.2的运行时间增加了约30倍,lu.A.2的运行时间增加了约4倍。在intra-vm-credit-pin条件下,is.A.2的运行时间增加了约12倍,lu.A.2的运行时间增加了约0.5倍。在SEDF调度器下,系统性能损耗没有这么严重:在inter-vm-sedf-pin条件下
4.1.1 问题阐述虚拟化环境下,调度分为两层,一层是GOS中的进程调度,一层是虚拟机管理器(VMM)对虚拟处理器(VCPU)的调度,如图4.1所示。GOS中对进程的调度相对于VMM基本是透明的,VMM仅根据当前VCPU中是否有任务运行来判断当前VCPU是否可被调度。由于进程运行状态信息无法直接通过VCPU反应给VMM,导致VMM对VCPU的调度和GOS对进程的调度之间容易产生理解偏差,对系统性能产生较大影响。图 4.1 虚拟化环境下的双层调度一个典型的例子就是虚拟机中只有一个进程运行时,当该进程处于阻塞式消息接收且等待一段时间后仍未接收到消息,那么它会尝试放弃CPU资源,放弃CPU资源动作(sched_yield)信息仅仅传达到VCPU一级,并不会到达物理CPU一级
各个子任务之间相互通信采用的是阻塞式消息接收方式(即接收进程处于轮询状态,并不会进入阻塞状态)。在过载虚拟机条件下,MPI的这种高效I/O会出现上述例子中的大时间片浪费情况,导致整体系统性能下降。典型情况如图4.2所示。DOMn1的VCPU0和DOMn3的VCPU0分别被调度到物理CPU0和物理CPU1上运行,DOMn2的VCPU0处于PCPU0的VCPU队列中,DOMn4的VCPU0处于PCPU1的VCPU队列,receive表示接收进程,send表示发送进程。简而言之就是相互通信的VCPU被调度到同一个PCPU上运行,同时其余PCPU一直处于满负荷运行(不会执行负载均衡策略,导致出现VCPU迁移情况)。此时,DOMn1的VCPU0被调度
【引证文献】
相关硕士学位论文 前1条
1 王强;虚拟化SMP架构下服务器性能优化[D];华中科技大学;2011年
本文编号:2744916
本文链接:https://www.wllwen.com/kejilunwen/jisuanjikexuelunwen/2744916.html