论文部分内容阅读
在CPU单核性能逐渐遇到技术瓶颈的今天,GPU作为一种高度并行化的流式处理器,在许多应用上的计算能力已经大幅超越CPU。加上其可编程技术的成熟,基于GPU的通用计算已经成为一个热门且重要的研究领域。与CPU相类似地,单个GPU的性能还难以完全满足计算密集型应用的强大计算力需求,GPU集群化成了必然的趋势。然而,为每一个应用均开发专门的GPU集群系统的代价过大,基于此,本文结合第二代Hadoop分布式系统对基于YARN的GPU集群技术进行了分析与研究。首先,本文通过研究YARN系统的组成结构,分析了其多维资源管理的可行性,并为其进行GPU资源调度提出了相应的解决方案。同时,针对YARN资源调度过程和调度算法实现上的不足,本文结合GPU的相关特性,对相应模块进行了修改与优化,使YARN系统真正具备了高效地调度CPU、内存和GPU三种资源的能力。接着,为了使CUDA程序能够在YARN框架中并行地运行,本文从YARN框架的用户接口出发,设计了具有一定针对性的CUDA应用程序控制器,用于简化CUDA程序迁移至YARN的过程,以达到降低其并行化成本的目的。同时,针对GPU的硬件特性,本文对CUDA应用程序控制器的任务分配策略进行了深入的研究,以提高集群资源利用率,并为开发人员对程序进行优化提供科学性依据。最后,本文通过设计多组实验对系统进行了全方位的测试,并对结果进行了详细的分析。大量的实验数据表明,本文的设计能够在复杂的异构环境下快速地构建高效稳定的和优良可扩展的多维资源弹性计算平台。