论文部分内容阅读
随着云计算的快速发展和应用,在HPC领域,不少组织和机构也开始着力打造HPC云。在HPC云中,HPC应用的数据需要频繁的在不同节点之间传输,因此通信性能成为超算应用整体性能中一个不可忽略的关键点。目前,消息传递接口(Message Passing Interface,MPI)库在HPC领域被广泛用来为超算应用提供高效的通信服务。虽然目前MPI库可以在裸机环境下可以充分利用远程直接内存访问(Remote Direct Memory Access,RDMA)为上层应用提供高效的通信服务,但是当MPI库部署在云环境中时,MPI库的通信性能将会因目前不成熟的RDMA虚拟化技术而大幅下降,这将进一步导致虚拟机中MPI应用的整体性能的下滑。这是HPC云中一个亟需解决的问题。目前关于MPI在虚拟机环境下的通信优化的研究工作大多着力于解决RDMA的虚拟化问题,这一类工作试图在虚拟机中提供虚拟化RDMA设备,进而提高MPI在虚拟机环境下的通信性能,然而这一类工作专注于提高RDMA在虚拟机中的通信性能,却没有兼顾在云环境中,宿主机需要对客户机的网络进行管控这一重要需求。因此这些研究成果应用场景有限,可以应用在私有云环境中,但不能应用在公有云中。所以目前还没有研究工作试图解决在满足公有云环境下对网络管控需求的条件下提供高性能通信的问题。针对上述问题,本文尝试在满足公有云环境对网络管控的前提下,研究网络I/O虚拟化部分对MPI性能的影响,并从该方面着手探索网络I/O虚拟化部分的优化空间,从而提高虚拟机中MPI的通信性能。主要工作包括:(1)本文注意到大多数的网络管控需求都是对控制路径上连接的管理,而应用的通信性能通常与数据路径上数据传输性能息息相关,所以本文的基本思想是将控制路径和数据路径分开处理,在控制路径上利用内核协议栈实现宿主对客户机网络的管控,而在数据路径上利用RDMA网络平台的性能优势优化数据传输。(2)利用MPI的通信特点优化客户机到宿主机的虚拟网络I/O路径,减少I/O虚拟化中数据拷贝所带来的开销。(3)基于这个思路提出的在虚拟机环境下消息传递接口库的高性能通信方案VMPI可以在满足云环境中对网络的特定需求的前提下,实现了MPI的高性能数据传输。通过实验证明,根据我们的设计方案所实现的消息传递接口标准原型系统相比于传统的虚拟化方式在基准性能指标(通信延迟)上可以获得40%左右的性能提升。在应用性能测试中,可有效降低应用基准测试程序Graph500的通信时间占比。