● 摘要
以GPU和Intel MIC为代表的计算加速部件已在科学计算、图形图像处理等领域得到了广泛的应用,其在基于云平台的高性能计算及大数据处理等方向也具有广泛的应用前景。YARN是新一代Hadoop分布式集群系统,其对计算资源的分配调度主要针对CPU,缺少对计算加速部件的支持。针对这一问题,本文在原有分布式集群系统YARN的基础上,添加了对带有计算加速部件的混合异构节点的支持。
本文分析了在YARN中添加计算加速部件需要解决的三个难点,分别是混合异构节点中的计算加速部件资源在集群中的调度问题、集群中对计算加速部件的状态监控与管理问题和多个任务同时调用计算加速部件而引起的资源争用问题。
为了解决以上的三个难点,本文进行了以下的设计。计算加速部件的资源封装设计采用了相近节点捆绑的方法对节点内的资源进行封装,解决了混合异构节点中的计算加速部件资源如何在集群中进行分配调度的问题。混合异构节点上计算加速部件的统一调度管理设计采用了将计算加速部件任务分解成远程读入、任务执行和远程写回三个部分,并在执行时采用三级流水模型的方法解决了多个任务同时调用计算加速部件而引起的资源争用问题。集群中计算加速部件的统一监控和管理设计在集群Master上维护了一个实时传递计算加速部件状态的信息表,解决了集群内计算加速部件资源的实时状态管理问题。
本文设计实现了在YARN上可支持计算加速部件任务的编程接口提供给程序员使用,包括单个计算加速部件任务的编程接口、集群作业调用计算加速部件资源方法以及集群作业工程的封装和提交方法三个部分。
本文通过在4台节点组成的带有GPU计算加速部件的集群环境中,使用第三方基准程序MAGMA的LU、QR、Cholesky分解算法和5万张图片特征提取及聚类索引的应用实例,对本文系统进行了实验测试,并对实验结果进行了分析,实验结果验证了本文方案的有效性。