论文部分内容阅读
虚拟化技术能够有效降低系统和应用软件的维护和管理成本,增强系统可靠性以及优化资源配置,基于虚拟化环境构建的大规模集群日趋流行。然而虚拟化技术尚未在性能关键的应用系统中得到广泛应用,特别是高性能计算领域。MPI是当今高性能计算环境中最主流的并行计算模型。在并行计算中,MPI进程需要频繁地通信,而I/O虚拟化所产生的额外开销,会显著地降低虚拟机间MPI进程的通信性能。大量已有工作对改善虚拟机间通信性能或MPI结点内通信性能进行了研究,然而同时结合两者的研究工作并不多。一个通用的虚拟机间通信框架往往没有针对MPI应用做特殊优化,而结点内MPI通信框架则无法在虚拟化环境中使用。本文在同时考虑了虚拟化环境的特点以及MPI应用的通信特征的基础上,通过改进虚拟机间通信模型,对同一台物理机上的不同虚拟机内的MPI进程间的通信性能进行了优化。改进后的模型将通信任务代理给一个隔离的后端通信模块,通信虚拟机内部的开销大幅降低,而进程的通信与计算重叠能力也得到提升。同时,该模型更有利于MPI长消息传输与集合通信的优化,能够有效减少拷贝次数,并均衡系统中虚拟机的通信负载。此外,该模型保留了原生环境下利用硬件加速技术的能力,存在进一步优化通信性能的潜力。在改进模型的基础上,我们进一步给出了基于Xen的虚拟机间MPI通信框架XNEM的设计和实现。XNEM前后端驱动以内核模块的形式运行在隔离的虚拟机中,不需要对操作系统或虚拟机监视器做任何修改。框架提供了简单而灵活的编程接口,能够方便快速地将框架移植到已有的MPI库中。同时,我们为MPICH库编写了XNEM LMT模块,将XNEM通信框架与MPICH库整合。使用MPICH库的MPI进程可以在虚拟环境下将XNEM LMT模块作为高性能的虚拟机间通信通道。我们选取了多个微基准程序和HPC基准程序对XNEM框架进行实验验证。NetPIPE测试结果显示,对于MPI长消息传输,XNEM的通信吞吐率和延迟显著优于Xen虚拟网络以及基于共享缓冲的通信模型。IMB基准测试结果显示12个被测MPI集合操作在XNEM框架下的延迟均好于Xen虚拟网络,其中的10个表现出更好的通信与计算重叠率。我们还对通信时的CPU利用率进行了测量,并分析可能的系统瓶颈。另外,我们调整I/O环大小并重复吞吐率和延迟测试,对XNEM框架的性能进行了调优。最后,我们运行了NPB测试套件中的FT基准程序,验证了XNEM框架在实际应用中的可用性以及对通信性能的提升。