论文部分内容阅读
近年来,随着科学研究的深入和产业竞争的加剧,各个领域越来越多的使用HPC应用来解决科研和生产中遇到的问题。随着计算的模型越来越大,要求的精度也越来越高,而且往往要求必须在规定的时间内完成任务,这对于底层的计算资源利用效率提出了更高的要求。传统的HPC应用大多直接运行于物理机环境之上,即便是在基于虚拟机技术的HPC Cluster环境中,资源的分配粒度也受限于节点级别,对于资源的利用率和HPC应用的运行效率都存在很大的制约,因此在HPC应用领域,亟需一种更好更高效的资源隔离和调度管理方式。容器技术的出现,为上述问题提供了一种新的解决方案。 本文在深入研究了容器技术及其编排调度系统的基础上,结合HPC应用在开发、部署、运行过程中的诸多挑战,基于Docker和Kubernetes,设计并实现了在云计算中心下,一个面向于HPC应用的CaaS(Container as a Service)平台Meadow系统,针对于HPC应用的特性,扩展了Kubernetes资源调度器原生的调度算法。在应用服务和网络资源相结合方面,本文提出利用网络流量监控数据结合网络感知策略,优化存在相互依赖关系的HPC容器之间的调度,以平衡集群中全局网络流量分布。在HPC容器放置策略方面,本文采用约束满足问题来模拟容器放置问题,推导并实现了容器放置算法。在集群资源调度方面,提出并实现了一个基于用户优先级的,以满足用户SLA需求为目标的弹性资源调度算法。 实验数据表明,Meadow系统以更细的粒度将集群资源虚拟化,资源利用率有了较为显著的提升。本文提出的调度算法,能够明显的提高HPC应用的运行效率,并使得集群资源得以被均衡的使用。