专利名称:超级计算机的任务调度方法
技术领域:
本发明涉及计算机技术领域,更具体地说,涉及一种超级计算机的任务调 度方法。
背景技术:
超级计算机是指多个计算节点组合起来的、能平行进行大^L模计算或数据 处理的计算机,也称为并行计算机。超级计算机由于其强大的运算处理能力, 现已被越来越多地应用于工业、科研、学术等领域。目前,超级计算机中的任 务调度方法大多以计算为中心进行调度。具体地,是获取各计算节点的剩余计 算能力,查找得到能满足任务对节点的能力要求的节点,并将任务调度到该节 点。
根据任务调度的结果往往会造成大量的数据传输,特别是对于数据密集型 的应用和数据中心来说,例如以搜索引擎业务为主的数据中心,花费大量时间 来进行数据传输将降低超级计算机的运行效率,从而也降低了对数据的处理速度。
发明内容
基于此,有必要提供一种能提高运行效率的超级计算机的任务调度方法。 所述超级计算机的任务调度方法包括A.获取计算节点的剩余计算能力及
所述计算节点与任务待处理数据所在节点之间的距离;B.按所述计算节点与任
务待处理数据所在节点之间的距离由近至远对所述计算节点进行排序;C.根
据所述排序结果调度任务到计算节点。
优选地,所述步骤C包括根据所述排序结果由近至远依次查找计算节点,
当第一计算节点满足任务对节点的能力要求时,将任务调度到所述计算节点。
4优选地,所述步骤C可包括根据所述排序结果由近至远依次查找计算节 点,当第一计算节点的剩余计算能力不满足所述任务对节点的能力要求时,将 所述第一计算节点上运行的任务进行迁移,直至所述第一计算节点的剩余计算 能力满足任务对节点的能力要求,并将任务调度到所述第一计算节点。
所述步骤C还可包括根据所述排序结果由近至远依次查找计算节点,当 第一计算节点的剩余计算能力不满足所述任务对节点的能力要求但大于所述任
务的最小调度单位时,将所述第一计算节点的剩余计算能力能处理的所述任务 的并行部分调度到第 一计算节点。
进一步优选地,所述将任务的并行部分调度到第一计算节点之后还包括 将所述第一计算节点上运行的任务进行迁移,直至所述第一计算节点的剩余计 算能力能处理所述任务剩余的并行部分,并将所述任务剩余的并行部分调度到 所述第一计算节点。
进一步优选地,所述将第一计算节点上运行的任务进行迁移的步骤是将 第一计算节点上运行的任务迁移到距离所述第一计算节点最近的第三计算节点上。
优选地,所迷将任务的并行部分调度到第一计算节点之后还包括按所述 排序结果由近至远依次查找第二计算节点,并将所述任务调度到第一计算节点 后剩余的并行部分调度到所述第二计算节点。
另外,所述步骤C包括根据所述排序结果由近至远依次查找计算节点,当第 一计算节点的剩余能力不满足任务对节点的能力要求时,比较下述调度方式产 生的数据传输量将所述第一计算节点上运行的任务进行迁移,直至所述第一 计算节点的剩余计算能力满足任务对节点的能力要求,并将任务调度到所述第 一计算节点所产生的数据传输量;将所述第一计算节点的剩余计算能力能处理 的所述任务的并行部分调度到第 一计算节点,根据所述排序结果由近至远查找 到第二计算节点,并将所述任务剩余的并行部分调度到第二计算节点所产生的
数据传输量;将调度方式设为产生的数据传输量较小的调度方式。上述超级计算机的任务调度方法,通过获取计算节点与任务待处理数据所 在节点之间的距离,将任务调度到离任务待处理数据所在节点尽可能近的计算 节点运行,能有效减少数据的迁移,从而提高了超级计算机的运行效率。
图l是一个实施例中超级计算机的任务调度方法的流程图2是一个实施例中根据排序结果调度任务到计算节点的方法流程图3是另一个实施例中根据排序结果调度任务到计算节点的方法流程图。
具体实施例方式
图1示出了一个实施例中超级计算机的任务调度方法流程,具体过程如下 在步骤S101中,获取计算节点的剩余计算能力及所述计算节点与任务待处 理数据所在节点之间的距离。
在步骤S102中,按所述计算节点与任务待处理数据所在节点之间的距离由 近至远对所述计算节点进行排序。
在步骤S103中,根据所述排序结果调度任务到计算节点。 上述计算节点的剩余计算能力,是指超级计算机中各计算节点可供夂配的 剩余的能力,例如剩余的计算能力(可以是浮点运算次数等)、剩余的存储能 力(可以是内存大小等)、剩余的网络带宽(可以是每秒传输的字节数等)以 及温度等信息。根据计算节点的剩余计算能力则可判断该节点是否有能力运行 任务。
上述计算节点与任务待处理数据所在节点之间的距离,是指计算节点与任 务待处理数据所在节点之间数据传输的距离,当距离越远,则数据传输越慢, 距离越近,则数据传输越快。在一个实施例中,任务T(例如某一数据搜索任务) 所需要处理的数据存放在某个节点(节点NO)上,而超级计算机中的其它计算 节点与节点N0之间的距离由近至远分别为N1、 N2......节点N1与节点NO之间传输数据最快,依次次之。
图2示出了一个实施例中冲艮据排序结果调度^f壬务到计算节点的方法流程, 具体过程如下
在步骤S201中,按照计算节点的排序结果由近至远依次查找计算节点。如 上所述,假设离任务待处理数据所在的节点NO的距离由近至远分别为节点Nl、 N2…"。
在步骤S202中,判断节点Ni(i^、 2......)的剩余计算能力是否满足任务
对节点的能力要求,若是,则进入步骤S203,否则,查找下一个节点,返回步 骤S202。在一个实施例中,按照排序结果由近至远查找计算节点Ni,首先判断 离节点N0最近的节点N1的剩余计算能力是否满足任务对节点的能力要求,若 是,则可直接将任务调度到节点1,否则,执行i—十l,即查找下一个计算节点 N2,判断节点N2的剩余计算能力是否满足任务对节点的能力要求,以此类推, 直到查找到剩余计算能力满足任务对节点的能力要求,则将任务调度到该节点。 这里的任务对节点的能力要求可以是运行该任务要求的内存大小、运行该任 务要求的浮点运算次数、运行该任务要求的带宽、运4亍该任务的节点温度限制 等参数中的一种或两种以上。
在步骤S203中,将任务调度到剩余计算能力满足任务对节点的能力要求的 计算节点上。
图3是另一个实施例中根据排序结果调度任务到计算节点的方法流程,具 体过程如下
在步骤S301中,按照计算节点的排序结果由近至远依次查找计算节点。如 上所述,假设离任务待处理数据所在的节点NO的距离由近至远分别为节点Nl 、 N2…"。
在步骤S302中,判断节点Ni(i^、 2......)的剩余计算能力是否满足任务对节点的能力要求,若是,则进入步骤S303,否则,ii^步骤S304。在一个实 施例中,首先判断离节点NO最近的节点Nl的剩余计算能力是否满足任务对节 点的能力要求。
在步骤S303中,将任务调度到节点Ni。在一个实施例中,当查找到的节点 Ni的剩余计算能力满足任务对节点的能力要求,则直接将任务调度到该节点Ni。 例如,当查找到离节点NO最近的节点Nl的剩余计算能力已能满足任务对节点 的能力要求,则将任务调度到节点N1。由于节点Nl与任务待处理数据所在节 点NO的距离最短,数据传输也最快,因此提高了超级计算机的运行效率。
在步骤S304中,判断节点Ni的剩余计算能力是否大于任务的最小调度单 位,若是,则进入步骤S305,否则,查找下一节点,返回步骤S302。在一个实 施例中,需调度的任务是并行程序,包括多个并行部分,当节点Ni的剩余计算 能力不能满足任务对节点的能力要求,并且小于任务的最小调度单位时,则说 明节点Ni无法运行该任务,执行i-i+l,即查找下一个节点是否能满足任务对 节点的能力要求。
在步骤S305中,将节点Ni能处理的任务的并行部分调度到节点Ni。在一 个实施例中,当节点Ni的剩余计算能力不能满足任务对节点的能力要求但大于 任务的最小调度单位,则将节点Ni能处理的任务的并行部分调度到节点Ni。例 如,运行任务T要求每秒所执行的浮点运算次数达到100,其最小调度单位为 10个浮点运算次数,而节点Ni的剩余计算能力是20个浮点运算次数,则可将 2个调度单位的并行部分调度到节点Ni。
在一个实施方式中,将节点Ni能处理的任务的并行部分调度到节点Ni后, 可将节点Ni上运行的任务进行迁移。优选地,是将节点Ni上运行的部分任务 迁移到离节点Ni最近的节点上,使节点Ni的剩余计算能力能够满足任务调度 到节点i后剩余的并行部分的能力要求,从而将任务剩余的并行部分调度到节点 Ni。
在另一个实施方式中,将节点Ni能处理的任务的并行部分调度到节点Ni后,根据排序结果由近至远依次查找离节点Ni最近的节点(例如节点Nj),而 可将任务调度到节点Ni后剩余的并行部分调度到节点Nj上。应当说明的是, 在将任务剩余的并行部分调度到节点Nj上时,可参照上面所述的方法,进一步 判断节点Nj的剩余计算能力能否满足任务剩余的并行部分对节点的能力要求, 若能满足,则直接将任务剩余的并行部分调度到节点Nj,否则,还可进一步判 断节点Nj的剩余计算能力是否大于任务的最小调度单位,以此类推,直到将任 务的并行部分全部调度完。由于所选择运行任务的节点充分考虑了与任务待处 理数据所在节点的距离,有效减少了节点之间的数据传输,从而提高了超级计 算机的运行效率。
在调度任务剩余的并行部分到计算节点前,可对上述两种实施方式所产生 的数据传输量进行比对,这里的数据传输量是指传输的数据量以及数据传输的 速度,从中选择传输的数据量最小且数据传输速度最快的实施方式将任务剩余 的并行部分调度到相应节点。
应当说明的是,上述超级计算机的任务调度方法还可用于数据中心、信息 中心、游戏中心中的任务调度,因此本发明不应限制于某种特定系统。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发 明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明 的保护范围之内。
权利要求
1、一种超级计算机的任务调度方法,其特征在于,所述方法包括A.获取计算节点的剩余计算能力及所述计算节点与任务待处理数据所在节点之间的距离;B.按所述计算节点与任务待处理数据所在节点之间的距离由近至远对所述计算节点进行排序;C.根据所述排序结果调度任务到计算节点。
2、 根据权利要求1所述的超级计算机的任务调度方法,其特征在于,所述 步骤C包括根据所述排序结果由近至远依次查找计算节点,当第 一计算节点满足任务 对节点的能力要求时,将任务调度到所述计算节点。
3、 根据权利要求1所述的超级计算机的任务调度方法,其特征在于,所述 步骤C包括根据所述排序结果由近至远依次查找计算节点,当第一计算节点的剩余计 算能力不满足所述任务对节点的能力要求时,将所述第一计算节点上运行的任 务进行迁移,直至所述第一计算节点的剩余计算能力满足任务对节点的能力要 求,并将任务调度到所述第一计算节点。
4、 根据权利要求1所述的超级计算机的任务调度方法,其特征在于,所述 步骤C包括根据所述排序结果由近至远依次查找计算节点,当第一计算节点的剩余计 算能力不满足所述任务对节点的能力要求但大于所述任务的最小调度单位时, 将所述第一计算节点的剩余计算能力能处理的所述任务的并行部分调度到第一 计算节点。
5、 根据权利要求4所述的超级计算机的任务调度方法,其特征在于,所述 将任务的并行部分调度到第 一计算节点之后还包括将所述第一计算节点上运行的任务进行迁移,直至所述第一计算节点的剩 余计算能力能处理所述任务剩余的并行部分,并将所述任务剩余的并行部分调度到所述第一计算节点。
6、 根据权利要求5所述的超级计算机的任务调度方法,其特征在于,所述 将第 一计算节点上运行的任务进行迁移的步骤是将第一计算节点上运行的任务迁移到距离所述第一计算节点最近的第三计算节点上。
7、 根据权利要求4所述的超级计算机的任务调度方法,其特征在于,所述 将任务的并行部分调度到第 一计算节点之后还包括按所述排序结果由近至远依次查找第二计算节点,并将所述任务调度到第 一计算节点后剩余的并行部分调度到所述第二计算节点。
8、 根据权利要求1所述的超级计算机的任务调度方法,其特征在于,所述 步骤C包括根据所述排序结果由近至远依次查找计算节点,当第一计算节点的剩余能 力不满足任务对节点的能力要求时,比较下述调度方式产生的数据传输量将 所述第一计算节点上运行的任务进行迁移,直至所述第一计算节点的剩余计算 能力满足任务对节点的能力要求,并将任务调度到所述第一计算节点所产生的 数据传输量;将所述第一计算节点的剩余计算能力能处理的所述任务的并行部 分调度到第一计算节点,根据所述排序结果由近至远查找到第二计算节点,并 将所述任务剩余的并行部分调度到第二计算节点所产生的数据传输量;将调度方式设为产生的数据传输量较小的调度方式。
全文摘要
本发明提供了一种超级计算机的任务调度方法,所述方法包括A.获取计算节点的剩余计算能力及所述计算节点与任务待处理数据所在节点之间的距离;B.按所述计算节点与任务待处理数据所在节点之间的距离由近至远对所述计算节点进行排序;C.根据所述排序结果调度任务到计算节点。采用本发明提供的超级计算机的任务调度方法,能提高运行效率。
文档编号G06F9/50GK101604261SQ200910108710
公开日2009年12月16日 申请日期2009年7月8日 优先权日2009年7月8日
发明者朱定局 申请人:深圳先进技术研究院