当前位置: 首页 > 专利查询>复旦大学专利>正文

一种基于Spark与GPU的并行计算系统技术方案

技术编号:16216246 阅读:39 留言:0更新日期:2017-09-15 22:25
本发明专利技术属于并行计算技术领域,具体为一种基于Spark与GPU的并行计算框架系统。本发明专利技术基于YARN资源管理平台,通过改进其资源管理器与节点管理器,使其能够有效感知异构集群的GPU资源,从而支持对集群GPU资源的管理与调度;然后在YARN部署模式下,对Spark的作业调度机制与任务执行机制进行改进,使其支持对GPU型任务的调度与执行。通过在资源申请、资源分配、DAG生成、stage划分与任务执行等阶段引入对GPU资源的标识,使执行引擎能够感知GPU任务,并在异构集群中有效执行;同时利用Spark本身高效内存计算的特性,结合GPU多核并行计算的优势提出了在该框架下有效的编程模型。本发明专利技术能够有效的处理数据密集型与计算密集型作业,极大提高作业处理效率。

A parallel computing system based on Spark and GPU

The invention belongs to the field of parallel computing technology, in particular to a parallel computing framework system based on Spark and GPU. The invention of resource management platform based on YARN, through improving its resource management and node management device, which can effectively perceive the heterogeneous cluster of GPU resources, so as to support the management and scheduling of cluster GPU resources; and then in the YARN deployment mode, scheduling mechanism and task execution mechanism of Spark is improved, which support the scheduling and execution of the GPU task. The identification of GPU resources through resource application, resource allocation, DAG generation, stage division and task execution stage is introduced, the execution engine can sense GPU tasks, and implement effective in heterogeneous clusters; characteristics and Spark itself using efficient memory computing, combined with the advantages of GPU multi-core parallel computing programming model is put forward under the framework of the. The invention can effectively handle data intensive and computing intensive operations, and greatly improve the efficiency of job processing.

【技术实现步骤摘要】
一种基于Spark与GPU的并行计算系统
本专利技术属于并行计算
,具体涉及一种基于Spark与GPU的并行计算框架系统。
技术介绍
当今社会,各行业需要处理的数据规模已经呈现海量趋势,大数据引起了社会各行业的的广泛关注。毋庸置疑,大数据蕴含着丰富的有用信息,如果能够合理地挖掘和使用大数据,将对科学研究和社会经济产生巨大的促进作用。由于大数据中所蕴含的信息能够辅助商业决策与科学研究,所以已经在许多行业内得到了快速的发展与应用。在大数据时代中,一切以数据为中心,从海量的历史数据中能够挖掘分析出许多通过其它方式无法获得的有效信息,从而提高决策的准确性。分布式计算的发展为充分发掘数据价值提供了有效的手段。分布式计算能够利用廉价的计算机集群,对海量数据进行快速计算分析,有从而有效的节省了数据分析成本。在这样的环境下,一批分布式计算框架技术应运而生,其中Spark由于其基于内存计算的特性,能够有效提升数据处理的效率,且在机器学习与交互式分析等领域有着广泛的应用。与此同时,GPU因其拥有众多核心的特性,使其在很多应用中能够取得比单纯CPU计算更高的计算效率,而这种加速效果往往是以十倍或是百本文档来自技高网...
一种基于Spark与GPU的并行计算系统

【技术保护点】
一种基于Spark与GPU的并行计算系统,其特征在于,包括:改进的的资源管理平台,其支持对GPU、CPU与内存等多维资源进行调度与管理;改进的Spark分布式计算框架,其支持对GPU型任务的调度与执行;(1)所述改进的的资源管理平台,包括:改进YARN的资源管理器与节点管理器,使其能够有效感知异构集群的GPU资源,从而支持对集群GPU资源的管理与调度;其中,包括资源表示模型、资源调度模型、资源抢占模型、资源隔离机制及GPU设备的动态绑定机制的改进;(2)所述改进的Spark分布式计算框架,包括:改进Spark的资源申请与分配机制、作业调度机制与任务执行机制,使其支持对GPU型任务的调度与执行;...

【技术特征摘要】
1.一种基于Spark与GPU的并行计算系统,其特征在于,包括:改进的的资源管理平台,其支持对GPU、CPU与内存等多维资源进行调度与管理;改进的Spark分布式计算框架,其支持对GPU型任务的调度与执行;(1)所述改进的的资源管理平台,包括:改进YARN的资源管理器与节点管理器,使其能够有效感知异构集群的GPU资源,从而支持对集群GPU资源的管理与调度;其中,包括资源表示模型、资源调度模型、资源抢占模型、资源隔离机制及GPU设备的动态绑定机制的改进;(2)所述改进的Spark分布式计算框架,包括:改进Spark的资源申请与分配机制、作业调度机制与任务执行机制,使其支持对GPU型任务的调度与执行;通过在资源申请、资源分配、DAG生成、stage划分与任务执行等阶段引入对GPU资源的标识,使其执行引擎能够感知GPU任务,并在异构集群中有效执行。2.根据权利要求1所述的基于Spark与GPU的并行计算系统,其特征在于,所述改进的的资源管理平台,能够支持对包含GPU资源在内的多维资源进行管理与调度:关于资源表示模型,首先自定义节点中包含的GPU设备数量,并修改资源表示协议,使其增加对GPU资源的表示;待节点启动时,节点管理器初始化资源列表,并与资源管理器通过心跳机制汇报该节点的资源信息;关于资源调度模型,将GPU与CPU、内存资源一起添加到资源管理平台的层级管理队列中;依据DRF算法对资源调度模块进行修改,使其添加对GPU资源的调度与管理;该算法如下:(1)初始化变量;其中,R=<totalCPU,totalGPU,totalMem>表示集群CPU、GPU及内存资源的总量,C=<usedCPU,usedGPU,usedMem>表示集群中已被消费的CPU、GPU及内存资源的数量,si表示作业i的主资源占相应总资源的份额,Ui=<CPUi,GPUi,Memi>表示已经分配给作业i的资源量,Di=<CPUi,GPUi,Memi>表示作业i的每个任务需要的资源量,在每次选取作业进行资源分配时,依次执行以下步骤:(2)选取主资源份额si最小的作业执行;(3)如果C+Di≤R,则将资源分配给作业i,更新C=C+Di,Ui=Ui+Di,si=max{Ui/R};否则,集群资源无法满足需求,停止分配;关于资源抢占模型,通过资源调度器对层级队列中的每个队列设置每种资源的可用上限与下限;资源调度器将负载较轻的队列的资源分配给其他负载较重的队列以提高集群资源利用率;但当有新的应用程序提交到负载较轻的队列时,调度器会资源抢占机制收回其他队列所占用的资源,从而将本属于该队列的资源分配给它;在资源抢占机制发生时,需要释放GPU资源;这个工作由节点管理器完成,这里新增releaseGPU方法用于释放GPU资源;资源管理器将需要释放的资源列表信息通过心跳机制发送给响应的节点管理器,节点管理器检测到待释放的资源实体中含有GPU资源时,调用releaseGPU方法释放GPU资源;然后资源管理器将所释放的资源进一步分配给相关队列;关于资源隔离模型,采用Cgroups方案对GPU资源进行隔离;关于GPU设备的动态绑定机制,当分配给该任务的资源实体中包含GPU资源时,相应的节点管理器需要将节点上的GPU设备与该资源实体进行绑定;如果节点上有多个空闲的GPU资源,那么需要选择一个进行分配;将GPU的运行状态信息表示为<GPU设备号,资源实体号>列表,列表的每条数据标识了GPU设备与相关资源实体的对应关系;节点管理器在节点刚启动时根据相关配置文件以及该节点上的GPU设备信息初始化该列表;当有新的任务请求使用GPU资源时,节点管理器通过查找该列表,从而获得处于空闲状态的GPU设备信息,并将其分配给相关任务;如果节点管理器节点上拥有多个GPU资源处于空闲状态,则通过轮转法进行GPU资源的分配;同时,将已经运行的资源实体与GPU资源的对应信息进行保存至数据库中;在节点管理器需要重新启动的情况下,能够从数据库中直接读取GPU设备的分配信息,避免了对节点资源的再分配。3.根据权利要求2所述的基于Spark与GPU的并行计算系统,其特征在于,所述改进的Spark分布式计算框架,是对于Spark内核进行改进,使其支持对GPU型任务的调度与执行:在提交作业时,如果Spark应用程序的应用程序控制器检测到该应用程序需要GPU资源,则在资源申请时,将所需的GPU资源加入到资源请求描述中;申请的Container包括两种:CPU型Container与GPU型Container;因为对于GPU型任务,也需要CPU完成数据的处理、传输及GPU核函数的启动,所以GPU型Container除了需要1个单位的GPU资源外,还需要指定数量的CPU核心;在申请资源时,确定所要申请的两种类型的Container数目;这里,用executorCores表示每个Container所要包含的CPU核数,totalCores表示应用程序申请的CPU核数,GPUNum表示应用程序申请的GPU资源数量,则GPU型Container的数量为GP...

【专利技术属性】
技术研发人员:郑健杜姗姗冯瑞金城薛向阳
申请(专利权)人:复旦大学
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1