一种云计算平台中的异构分布式任务处理系统及其处理方法

文档序号:9304476阅读:277来源:国知局
一种云计算平台中的异构分布式任务处理系统及其处理方法
【技术领域】
[0001] 本发明涉及异构分布式技术领域,具体涉及一种云计算平台中的异构分布式任务 处理系统及其处理方法。
【背景技术】
[0002] 近年来,在各个领域中大规模海量数据存储和处理需求的不断增加,传统企业自 身IT结构的计算能力已远远不能满足计算的需要,必须通过大规模的硬件投入以扩展计 算能力。而分布式并行计算系统的提出为提高海量数据的处理速度提供了可能。传统的集 群使用MPI进行计算,MPI计算的数据都在内存中效率较高,但是MPI在资源不足时会空等 造成计算资源浪费。而MapReduce思想的提出,又为在分布式系统上处理大规模计算任务 提供了一个合理的计算模型。Apache基金会结合MapReduece实现了开源分布式计算框架 Hadoop。Hadoop具有可扩展性好、部署成本低、社区开发活跃周边开源项目多等优点。但是 随着Hadoop的发展,Hadoop在一些迭代处理场景上,由于读写都在HDFS上进行导致其计算 效率较低的问题就暴露了出来。而AMPLab针对集群计算中的那些在并行操作之间重用工 作数据集的场景开发了Spark平台。Spark平台是一种类MapReduce的分布式并行计算框 架。它采用了RDD(弹性分布式数据集)作为计算中的数据集抽象。由于RDD在计算过程中 的中间数据缓存在内存中,Spark在迭代运算中可直接从内存中读取上一轮迭代的结果,降 低了访问延迟,因而可以获得远高于MapReduce计算速度。与此同时,除了上述的分布式计 算平台之外,图形处理单元(GPU)作为一种并行计算设备与多核心架构的通用并行计算平 台已经成为高性能计算的另外一种手段。用于通用平行计算的GPU平台拥有Tflops(万亿 级)的浮点计算能力,在科学计算领域迅速发展,并与传统的集群计算平台开始结合起来。
[0003] 然而,针对目前多任务异构分布式并行计算,GPU和MPI并未充分利用自身计算资 源,往往造成资源浪费,导致效率低下。另外,GPU和MPI各具优势,难以统一而论,独立计 算势必影响任务调度和资源利用不充足。在现有资源不充足的情况下,难以达到异构任务 分布式并行计算充分利用资源的目的。而当前Spark平台相比GPU和MPI可以较为充分地 利用和扩展资源,但是本身又没有GPU那么快速高效的计算能力以及MPI那么通用的应用 场景。

【发明内容】

[0004] 本发明所要解决的技术问题是提供一种云计算平台中的异构分布式任务处理系 统及其处理方法,能够在云计算平台上实现异构分布式任务的并行处理。
[0005] 本发明解决上述技术问题的技术方案如下:
[0006] -方面,本发明提供了一种云计算平台中的异构分布式任务处理系统,所述处理 系统包括任务加载器、任务调度器、任务启动器以及任务执行器;
[0007] 所述任务加载器,用于读取并加载预先保存的任务描述信息,将所述任务描述信 息生成对应的任务描述对象,并将生成的任务描述对象保存入任务队列中;
[0008] 所述任务调度器,用于获取所述任务队列中的任务描述对象,并采用预定调度算 法对所述任务描述对象进行调度排序,生成顺序变化的待提交任务队列;
[0009] 所述任务启动器,用于获取待提交任务队列中的任务描述对象,并根据待提交队 列中任务描述对象的顺序以及spark集群上执行资源的使用状态,依次启动所述任务描述 对象并将其提交到spark集群上;
[0010] 所述任务执行器,用于执行提交到spark集群上的任务描述对象。
[0011] 另一方面,本发明提供了一种云计算平台中的异构分布式任务处理方法,所述方 法包括:
[0012] S1、任务加载器读取并加载预先保存的任务描述信息,将所述任务描述信息生成 对应的任务描述对象,并将生成的任务描述对象保存入任务队列中;
[0013] S2、任务调度器获取所述任务队列中的任务描述对象,并采用预定调度算法对所 述任务描述对象进行调度排序,生成顺序变化的待提交任务队列;
[0014] S3、任务启动器获取待提交任务队列中的任务描述对象,并根据待提交队列中任 务描述对象的顺序以及spark集群上执行资源的使用状态,依次启动所述任务描述对象并 将其提交到spark集群上;
[0015] S4、任务执行器执行提交到spark集群上的任务描述对象。
[0016] 本发明提供的一种云计算平台中的异构分布式任务处理系统及其处理方法,首 先,任务加载器加载任务描述信息并生成任务描述对象,并保存入任务队列中,然后任务调 度器按照预定调度算法对任务描述对象进行调度排序,对任务队列中的任务描述对象重新 排序,最后,任务启动器将排序后的任务描述对象依次加载到spark集群的对应节点上进 行执行,采用调度算法对任务描述对象进行调度排序,对调度排序后的任务描述对象进行 执行,任务的批处理执行效率得到了优化,提高了任务的执行效率。
【附图说明】
[0017] 图1为本发明实施例一的一种云计算平台中的异构分布式任务处理系统示意图;
[0018] 图2为本发明实施例二的一种云计算平台中的异构分布式任务处理方法流程图;
[0019] 图3为本发明实施例二的异构分布式任务的整个处理流程图。
【具体实施方式】
[0020] 以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并 非用于限定本发明的范围。
[0021] 实施例一、一种云计算平台中的异构分布式任务处理系统。下面结合图1对本实 施例提供的系统进行详细说明。
[0022] 参见图1,本实施例提供的系统包括任务加载器11、任务调度器12、任务启动器13 和任务执行器14。
[0023] 其中,任务加载器11,主要用于读取并加载预先保存的任务描述信息,将所述任务 描述信息生成对应的任务描述对象,并将生成的任务描述对象保存入任务队列中。
[0024] 具体的,任务加载器11读取从web前端传入的保存有各任务描述信息的 XML(ExtensibleMarkupLanguage,可扩展标记语言)文件或者从本地描述文件中加载保 存有各任务描述信息的XML文件。任务加载器11根据加载的XML文件将其中的任务描述信 息生成对应的任务描述对象,并将生成的任务描述对象按照生成顺序保存入任务队列中。
[0025] 任务调度器12,主要用于获取所述任务队列中的任务描述对象,并采用预定调度 算法对所述任务描述对象进行调度排序,生成顺序变化的待提交任务队列。
[0026] 具体的,任务调度器12判断任务队列是否为空,当任务队列不为空,则从任务队 列中读取每一个任务描述对象,并判断读取的任务描述对象中的任务类型是否为GPU任务 类型,如果为GPU任务类型,则将该任务描述对象放入GPU任务队列中;否则,则为CPU任务 类型,则将此任务描述对象放入CPU任务队列。
[0027] 若任务队列为空,则表明任务类型判断结束,即已经将GPU任务放入了GPU任务队 列,CPU任务放入了CPU任务队列。
[0028] 需要说明的是,任务队列中的任务描述对象包括spark任务、GPU(Graphic ProcessingUnit,图形处理器)任务和MPI任务,由于spark任务和MPI任务均为CPU任 务,因此在判断任务类型时只需要判断任务类型为GPU任务类型还是CPU任务类型。
[0029] 当对任务队列中的任务描述对象进行了类型分类后,任务调度器12分别对GPU任 务队列中的GPU任务和CPU任务队列中的CPU任务采用预定调度算法进行调度排序,生成 待提交GPU任务队列和待提交CPU任务队列,将生成的待提交GPU任务队列和生成的待提 交CPU任务队列合并,得到所述待提交任务队列。
[0030] 其中,任务调度器12主要采用基于时间阶段划分的贪心算法对GPU任务队列中的 GPU任务和CPU任务队列中的CPU任务进行调度排序,具体为:根据每一个GPU任务执行所 需要的CPU核数以及执行时间估值,对GPU任务队列中的GPU任务进行调度排序;同样的, 根据每一个CPU任务执行所需要的CPU核数以及执行时间估值,对CPU任务队列中的CPU 任务进行排序。对应时间估值越大的任务,则排在前面。
[0031] 任务启动器13,主要用于获取待提交任务队列中的任务描述对象,并根据待提交 队列中任务描述对象的顺序以及spa
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1