CN112631743B - 任务调度方法、装置及存储介质 - Google Patents

任务调度方法、装置及存储介质 Download PDF

Info

Publication number
CN112631743B
CN112631743B CN201910906837.5A CN201910906837A CN112631743B CN 112631743 B CN112631743 B CN 112631743B CN 201910906837 A CN201910906837 A CN 201910906837A CN 112631743 B CN112631743 B CN 112631743B
Authority
CN
China
Prior art keywords
reference data
processing units
module
partitions
partition
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910906837.5A
Other languages
English (en)
Other versions
CN112631743A (zh
Inventor
张志辉
方家乐
俞阳
刘子邦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Hikvision Digital Technology Co Ltd
Original Assignee
Hangzhou Hikvision Digital Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou Hikvision Digital Technology Co Ltd filed Critical Hangzhou Hikvision Digital Technology Co Ltd
Priority to CN201910906837.5A priority Critical patent/CN112631743B/zh
Publication of CN112631743A publication Critical patent/CN112631743A/zh
Application granted granted Critical
Publication of CN112631743B publication Critical patent/CN112631743B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5017Task decomposition
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种任务调度方法及装置,属于计算机技术领域。在本申请中,调度节点在接收到待处理任务的同时,依据获取的多个分区,将该待处理的任务划分为与多个分区一一对应的多个子任务,并将多个子任务下发至对应分区包括的处理单元,以指示各个分区中的处理单元可以在同一时刻同时进行子任务的处理,这样大大缩短了任务的处理时间,而且很大程度上避免了执行任务过程中单个处理单元上的资源被长期占用而导致的异常情况。各分区中的处理单元在处理子任务的过程中,由于只需要参考部分参考数据集,而该参考数据集的数据信息量远小于全量参考数据,因此各个分区中的处理单元预先加载参考数据集的时间也大大缩短。

Description

任务调度方法、装置及存储介质
技术领域
本申请涉及计算机技术领域,特别涉及一种任务调度方法、装置及计算机可读存储介质。
背景技术
随着计算机技术的快速发展,集群系统被广泛应用于需要处理海量任务的环境中。集群系统包括多个处理单元和一个调度节点。调度节点对接收到的任务进行调度,以确定由哪个处理单元来执行该任务。
相关技术中,为了保证任务的顺利执行,各个处理单元预先从数据中心处加载全量参考数据,全量参考数据是指数据中心中存储的执行各类任务时所需的全部参考数据。当调度节点接收到一个任务时,调度节点从多个处理单元中选择一个处理单元,将该任务下发至选择的处理单元。由该选择的处理单元根据全量参考数据执行该任务。
这种情况下不仅会导致单个任务执行时间长,而且会导致执行该任务的处理单元的资源一直被占用,从而可能出现一些异常情况。此外,每个处理单元均需从数据中心加载全量参考数据,从而导致处理单元加载参考数据的时间过长。
发明内容
本申请实施例提供了一种任务调度方法、装置及存储介质,不仅可以缩短任务执行时间,而且避免单个处理单元上的资源长期占用而导致的一些异常情况。所述技术方案如下:
一方面,提供了一种任务调度方法,所述方法包括:
获取多个分区,每个分区包括集群系统中用于执行任务的一个或多个处理单元,每个分区包括的每个处理单元加载有参考数据集,各个分区包括的处理单元加载的参考数据集不同,所述各个分区包括的处理单元加载的参考数据集的并集为数据中心中的全量参考数据;
将所述任务划分成与所述多个分区一一对应的多个子任务;
将每个子任务下发至对应的分区包括的处理单元,以指示接收到子任务的处理单元基于自身加载的参考数据集执行相应子任务。
可选的,所述方法还包括:
创建所述多个分区;
确定所述集群系统中用于执行任务的多个处理单元;
从确定的处理单元中确定所述多个分区中每个分区包括的一个或多个处理单元;
将所述全量参考数据进行划分,得到与所述多个分区一一对应的多个参考数据集;
控制每个分区包括的一个或多个处理单元中的每个处理单元加载对应的参考数据集。
可选的,所述创建所述多个分区,包括:
获取所述全量参考数据的数量;
获取每个处理单元能够加载的参考数据的最大数量;
确定所述全量参考数据的数量和所述最大数量之间的比值;
根据所述全量参考数据的数量和所述最大数量之间的比值,创建所述多个分区。
可选的,所述确定所述集群系统中用于执行任务的多个处理单元,包括:
获取所述集群系统的加密狗能力;
获取所述集群系统中部署的每个处理单元的加密狗能力;
确定所述集群系统的加密狗能力和每个处理单元的加密狗能力之间的比值;
根据确定的比值,从所述集群系统中部署的所有处理单元中选择所述用于执行任务的多个处理单元。
可选的,所述将所述全量参考数据进行划分之前,还包括:
获取用于执行任务所需的全量参考数据的版本号;
所述将所述全量参考数据进行划分,包括:
将获取的版本对应的全量参考数据进行划分。
可选的,所述创建所述多个分区之前,还包括:
获取所述集群系统中所有处理单元能够加载的参考数据的总量;
当获取的总量大于所述全量参考数据的数量时,执行创建所述多个分区的操作。
可选的,所述将每个子任务下发至与对应的分区包括的处理单元,包括:
对于所述多个子任务中的任一子任务,从所述任一子任务对应的分区包括的一个或多个处理单元中选择一个处理单元;
将所述任一子任务下发至选择的处理单元。
另一方面,提供了一种任务调度装置,所述装置包括:
第一获取模块,用于获取多个分区,每个分区包括集群系统中用于执行任务的一个或多个处理单元,每个分区包括的每个处理单元加载有参考数据集,各个分区包括的处理单元加载的参考数据集不同,所述各个分区包括的处理单元加载的参考数据集的并集为数据中心中的全量参考数据;
第一划分模块,用于将所述任务划分成与所述多个分区一一对应的多个子任务;
下发模块,用于将每个子任务下发至对应的分区包括的处理单元,以指示接收到子任务的处理单元基于自身加载的参考数据集执行相应子任务。
可选的,所述装置还包括:
创建模块,用于创建所述多个分区;
第一确定模块,用于确定所述集群系统中用于执行任务的多个处理单元;
第二确定模块,用于从确定的处理单元中确定所述多个分区中每个分区包括的一个或多个处理单元;
第二划分模块,用于将所述全量参考数据进行划分,得到与所述多个分区一一对应的多个参考数据集;
加载模块,用于控制每个分区包括的一个或多个处理单元中的每个处理单元加载对应的参考数据集。
可选的,所述创建模块,包括:
第一获取子模块,用于获取所述全量参考数据的数量;
第二获取子模块,用于获取每个处理单元能够加载的参考数据的最大数量;
第一确定子模块,用于确定所述全量参考数据的数量和所述最大数量之间的比值;
创建子模块,用于根据所述全量参考数据的数量和所述最大数量之间的比值,创建所述多个分区。
可选的,所述第一确定模块,包括:
第三获取子模块,用于获取所述集群系统的加密狗能力;
第四获取子模块,用于获取所述集群系统中部署的每个处理单元的加密狗能力;
第二确定子模块,用于确定所述集群系统的加密狗能力和每个处理单元的加密狗能力之间的比值;
第一选择子模块,用于根据确定的比值,从所述集群系统中部署的所有处理单元中选择所述用于执行任务的多个处理单元。
可选的,所述装置还包括:
第二获取模块,用于获取用于执行任务所需的全量参考数据的版本号;
所述第二划分模块,包括:
划分子模块,用于将所述获取的版本对应的全量参考数据进行划分。
可选的,所述装置还包括:
第三获取模块,用于获取所述集群系统中所有处理单元能够加载的参考数据的总量;
所述创建模块,还用于当获取的总量大于所述全量参考数据的数量时,执行创建所述多个分区的操作。
可选的,所述下发模块,包括:
第二选择子模块,用于对于所述多个子任务中的任一子任务,从所述任一子任务对应的分区包括的一个或多个处理单元中选择一个处理单元;
下发子模块,用于将所述任一子任务下发至选择的处理单元。
另一方面,提供了一种任务调度装置,所述任务调度装置包括处理器、通信接口、存储器和通信总线;
其中,所述处理器、所述通信接口和所述存储器通过所述通信总线完成相互间的通信;
所述存储器用于存放计算机程序;
所述处理器用于执行所述存储器上所存放的程序,以实现前述提供任务调度方法。
另一方面,提供了一种计算机可读存储介质,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现前述提供的任务调度方法的步骤。
本申请实施例提供的技术方案带来的有益效果至少包括:
在本申请实施例中,调度节点在接收到待处理任务的同时,依据获取的多个分区,将该待处理的任务划分为与多个分区一一对应的多个子任务,并将多个子任务下发至对应分区包括的处理单元,以指示各个分区中的处理单元可以在同一时刻同时进行子任务的处理,这样大大缩短了任务的处理时间,而且很大程度上避免了执行任务过程中单个处理单元上的资源被长期占用而导致的异常情况。在本申请可选实施例中,各分区中的处理单元在处理子任务的过程中,由于只需要参考部分参考数据集,而该参考数据集的数据信息量远小于全量参考数据,因此各个分区中的处理单元预先加载参考数据集的时间也大大缩短。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种集群系统的架构图;
图2是本申请实施例提供的一种任务调度方法流程图;
图3是本申请实施例提供的一种创建分区方法流程图;
图4是本申请实施例提供的一种分区示意图;
图5是本申请实施例提供的一种任务调度装置的结构示意图;
图6是本申请实施例提供的一种服务器的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
在对本申请实施例进行详细的解释说明之前,先对本申请实施例涉及的系统架构予以介绍。
图1是本申请实施例提供的一种集群系统的架构图。如图1所示,该集群系统包括多个节点群100。对于任一节点群100,该节点群100包括提交节点101、调度节点102以及多个处理单元103。
其中,提交节点101可以与调度节点102之间通过无线或有线方式连接以进行通信。调度节点102可以与任一处理单元103之间通过无线或有线方式连接以进行通信。提交节点101还可以与任一处理单元103之间通过无线或有线方式连接以进行通信。
对于任一节点群100中的调度节点102,当该调度节点102接收到提交节点101所提交的任务时,该调度节点102将该任务划分为多个子任务,并下发至相应的多个处理单元103,由该多个处理单元同时进行子任务的处理。处理单元103执行完子任务时,给提交节点101返回一个执行结果信息,用以表示执行失败或者执行成功。
提交节点101还可以称为任务提交平台,调度节点102还可以称为调度系统或调度器,处理单元103还可以称为执行单元或者执行引擎,本申请对此不做具体限定。在本申请可选实施例中,处理单元103可以是GPU(graphics processing unit,图形处理器)卡等硬件,也即处理单元103执行子任务可以是GPU卡来执行子任务。。
在本申请可选实施例中,图1中仅是以处理单元103的数量为4个进行举例说明,但是,这并不构成对集群系统中的处理单元数量的限制。
接下来对本申请实施例提供的任务调度方法进行介绍。
图2是本申请实施例提供的一种任务调度方法的流程图。如图2所示,该方法包括以下步骤:
步骤201:调度节点获取多个分区,每个分区包括集群系统中用于执行任务的一个或多个处理单元,每个分区包括的每个处理单元加载有参考数据集,各个分区包括的处理单元加载的参考数据集不同,该各个分区包括的处理单元加载的参考数据集的并集为数据中心中的全量参考数据。
在本申请实施例中,为了提高执行任务的效率,可以预先将集群系统中的各个处理单元进行分区。每个分区包括集群系统中的部分处理单元,这样调度节点在接收到待处理的任务时,可以通过下述步骤202和步骤203对任务进行划分,以使各个分区中的处理单元能够独立处理各自的子任务,从而整体提高执行该待处理的任务的效率。
在本申请可选实施例中,由于处理单元处理不同的子任务实际上参照的参考数据也不同,因此,在本申请实施例中,还将数据中心中的全量参考数据划分至不同的分区,以使每个分区包括的处理单元加载有参考数据集。也即是,参考数据集包括每个分区的处理单元在执行任务过程中需要参考的数据信息。这样,各个分区中的处理单元仅需加载全量参考数据中的部分参考数据即可,无需加载全量参考数据。
其中,调度节点预先对集群系统中的处理单元进行分区的实现方式将在下述实施例中展开,在此先不展开说明。
步骤202:调度节点将该任务划分成与该多个分区一一对应的多个子任务。
比如,预先创建的分区为三个分区,分别标记为region 0、region 1、region 2,则调度节点可以将该任务划分为三个子任务,分别标记为子任务1、子任务2以及子任务3,将子任务1与region 0进行对应,将子任务2与region 1进行对应,将子任务3与region 2进行对应。
该任务可以为当前需要处理的比对作业。比如,当需要进行人脸识别时,可以将人脸识别任务划分为几个子任务,比如可以包括识别眼睛子任务,识别鼻子子任务,识别嘴巴子任务等。将识别眼睛子任务与region 0对应,将识别鼻子子任务与region 1对应,将识别嘴巴子任务与region 2对应。
步骤203:调度节点将每个子任务下发至与对应的分区包括的处理单元,以指示接收到子任务的处理单元基于自身加载的参考数据集执行相应子任务。
在步骤203中,调度节点将每个子任务下发至与对应的分区包括的处理单元是指:对于任一分区,从该分区包括的一个或多个处理单元中选择一个处理单元,将该分区对应的子任务下发至选择的处理单元即可。
其中,调度节点从该分区包括的一个或多个处理单元中选择一个处理单元可以按照负载均衡的方式选择,在此不再详述。
例如,当处理单元为GPU卡时,对于提交到调度节点中的任务,按照分区进行任务切分,得到三个子任务。调度节点下发子任务时,如图4所示,将与region 0对应的子任务下发到GPU卡1或GPU卡2中的一个。将与region 1对应的子任务下发到GPU卡3或GPU卡4中的一个。将与region 2对应的子任务下发到GPU卡5或GPU卡6中的一个。
综上,本申请实施例中,调度节点在接收到待处理任务的同时,依据获取的多个分区,将该待处理的任务划分为与多个分区一一对应的多个子任务,并将多个子任务下发至对应分区包括的处理单元,以指示各个分区中的处理单元可以在同一时刻同时进行子任务的处理,这样大大缩短了任务的处理时间,而且很大程度上避免了执行任务过程中单个处理单元上的资源被长期占用而导致的异常情况。在本申请可选实施例中,各分区中的处理单元在处理子任务的过程中,由于只需要参考部分参考数据集,而该参考数据集的数据信息量远小于全量参考数据,因此各个分区中的处理单元预先加载参考数据集的时间也大大缩短。
下面对本申请实施例提供的分区工作进行解释说明。如图3所示,调度节点可以通过以下几个步骤来将集群系统中的各个处理单元和全量参考数据进行分区:
步骤301:调度节点创建多个分区。
在一种可能的实现方式中,步骤301的过程可以为:获取全量参考数据的数量;获取每个处理单元能够加载的参考数据的最大数量;确定全量参考数据的数量和最大数量之间的比值;根据全量参考数据的数量和最大数量之间的比值,创建多个分区。
上述根据全量参考数据的数量和最大数量之间的比值,创建多个分区的实现方式可以为:将全量参考数据的数量和最大数量之间的比值向上取整,将取整后的数值作为多个分区的数量。根据得到的数量创建这多个分区。
在本申请可选实施例中,上述全量参考数据还可以称为名单数据,最大数量还可以称为单卡容量。
比如,调度节点从数据中心中获取名单数据,根据名单数据确定全量参考数据的数量。调度节点根据集群系统中部署的GPU卡的类型确定单卡容量。需要说明的是,由于不同类型GPU卡能够加载的参考数据的数量是不一样的,因此调度节点可以选择任意一种类型的GPU卡来确定单卡容量,也可以根据多种不同类型的GPU卡来确定单卡容量,此时确定的单卡容量是不同类型的GPU卡能够加载的参考数据的数量的平均值。
假设确定的全量参考数据的数量为4000万,集群系统中部署有类型为P40的GPU卡,此时GPU卡的单卡容量为3000万,得到两者比值为1.3。向上取整后得到分区的个数为2。调度节点便可创建2个分区。
步骤302:调度节点确定集群系统中用于执行任务的多个处理单元,并从确定的处理单元中确定多个分区中每个分区包括的一个或多个处理单元。
在一种可能的实现方式中,步骤302中确定集群系统中用于执行任务的多个处理单元的过程可以为:获取集群系统的加密狗能力;获取该集群系统中部署的每个处理单元的加密狗能力;确定集群系统的加密狗能力和每个处理单元的加密狗能力之间的比值;根据确定的比值,从集群系统中部署的所有处理单元中选择用于执行任务的多个处理单元。
集群系统的加密狗能力用来指示该集群系统的整体授权限制,每个处理单元的加密狗能力用来指示该集群系统中部署的每个处理单元的授权限制。因此,上述根据确定的比值,从集群系统中部署的所有处理单元中选择用于执行任务的多个处理单元的实现方式可以为:根据集群系统的加密狗能力和集群系统中部署的每个处理单元的加密狗能力之间的比值可以计算得到集群系统中理论上允许的处理单元的数目,获取集群系统中实际部署的处理单元的数目,从这两个数目中取一个较小值,作为选择的用于执行任务的多个处理单元的数目,根据最终确定的数目从集群系统中部署的处理单元中选择用于执行任务的多个处理单元。
调度节点在确定出集群系统中用于执行任务的多个处理单元之后,可以根据确定的处理单元,确定多个分区中每个分区包括的一个或多个处理单元。其中,根据确定的处理单元,确定多个分区中每个分区包括的一个或多个处理单元的实现方式可以为:将确定的处理单元平均配置至多个分区中的每个分区。
在本申请可选实施例中,如果确定的处理单元的数目无法实现在各个分区平均分配,则随机舍弃其中一个或者多个处理单元,以使舍弃后的处理单元的数目能够实现在各个分区平均分配。当下次检测到新的可用的处理单元时,可以重新按照平均分配的原则将新的可用的处理单元和之前舍弃的处理单元配置至各个分区。
比如,调度节点的加密狗能力为160,部署有类型为P40的GPU卡的加密狗能力为40。此时计算得到集群系统中理论上允许的GPU卡的数目为4。若集群系统中部署的GPU卡的数目大于计算得到的数目,则从集群系统中部署的GPU卡中选取4个GPU卡作为实际选择的用于执行任务的多个GPU卡。若集群系统中部署的GPU卡的数目不足4,则将集群系统中部署的全部GPU卡作为实际选择的用于执行任务的多个GPU卡。
假设调度节点根据步骤301创建了3个分区,如果调度节点通过上述实现方式确定的用于执行任务的多个GPU卡的数目为6,分别标记为GPU卡1、GPU卡2、GPU卡3、GPU卡4、GPU卡5和GPU卡6。此时,如图4所示,可以将GPU卡1和GPU卡2分配至第一个分区,将GPU卡3和GPU卡4分配至第二个分区,将GPU卡5和GPU卡6分配至第三个分区。
假设调度节点根据步骤301创建了2个分区,如果调度节点通过上述实现方式确定的用于执行任务的多个GPU卡的数目为3,分别标记为GPU卡1、GPU卡2和GPU卡3,可以舍弃GPU卡3,分别将GPU卡1、GPU卡2分配至第一个分区和第二个分区。
步骤303:调度节点将全量参考数据进行划分,得到与该多个分区一一对应的多个参考数据集。
在一种可能的实现方式中,调度节点从数据中心中获取全量参考数据,比如,在图像比对任务中,该全量参考数据可以用于任务执行过程中的比对参照。将该数据中心中全量参考数据依据已划分好的分区,按照均分原则分派到各个分区当中。
比如,全量参考数据包括9999个参考数据,这9999个参考数据的哈希序号分别标记为0至9998时,划分好的分区分别标记为region 0、region 1、region 2,则将哈希序号为0~3329的参考数据划分至region 0,将哈希序号为3330~6659的参考数据划分至region1,将哈希序号为6660~9989的参考数据划分至region 2。
上述调度节点从数据中心中获取全量参考数据的实现方式可以为:获取用于执行任务所需的全量参考数据的版本号,根据获取的版本从数据中心中获取全量参考数据。此时,步骤303调度节点划分的全量参考数据为获取的版本对应的全量参考数据。
其中,用于执行任务所需的全量参考数据的版本号可以由用户指定,如果用户没有指定,调度节点则获取数据中心中的最新版本号的全量参考数据。
在本申请可选实施例中,调度节点从数据中心中获取全量参考数据时,如果调度节点中已经下载有该全量参考数据,则无需再次从数据中心中获取该全量参考数据。如果调度节点中没有下载该全量参考数据,则从数据中心中获取全量参考数据。
在本申请可选实施例中,还需要注意的是,如果集群系统中所有处理单元能够加载的参考数据的总量小于全量参数数据的数量,则无法保证集群系统中的处理单元能够顺序执行任务,因此,调度节点在创建多个分区之前,还可以获取集群系统中所有处理单元能够加载的参考数据的总量;获取的总量大于全量参考数据的数量时,执行创建多个分区的操作,以保证任务能够顺利被处理。
上述获取集群系统中所有处理单元能够加载的参考数据的总量的实现方式为:循环计算集群系统中所有处理单元中每个处理单元能够加载的参考数据的数量,将循环计算得到的数量求和,得到所有处理单元能够加载的参考数据的总量。该所有处理单元能够加载的参考数据的总量还可以称为集群容量。
步骤304:调度节点控制每个分区包括的一个或多个执行节中的每个处理单元加载对应的参考数据集。
在一种可能的实现方式中,步骤304的过程可以为:对于任一分区,调度节点控制该分区中每个处理单元加载对应的参考数据集,以实现每个分区包括的处理单元加载的数据的一致性。
比如,如图4所示,region 0中的GPU卡1和GPU卡2分别加载哈希序号为0~3329的参考数据集,region 1中的GPU卡3和GPU卡4分别加载哈希序号为3330~6659的参考数据集,region 2中的GPU卡5和GPU卡6分别加载哈希序号为6660~9989的参考数据集。由于各GPU卡的参考数据集的数据量远小于全量参考数据的数据量,因此避免了GPU卡加载参考数据时间过长的问题。
在本申请可选实施例中,调度节点在执行上述步骤301至304之前,需要提前判定处理单元是否准备就绪。也就是说需要判定已部署的GPU卡是否准备就绪。当所有处理单元准备就绪时,再通过上述步骤301至步骤304进行分区,以保证分区工作的顺利进行。
在本申请可选实施例中,调度节点在通过上述步骤301至步骤304得到分区之后,可以将分区的相关信息更新至调度节点的内存以及各个处理单元,以便后续调度节点根据内存中存储的分区的相关信息对接收到的任务进行划分。
各个处理单元在接收到分区的相关信息之后,当确定自身当前所在的分区,并加载当前所在的分区对应的参考数据集,以便于后续根据加载的参考数据集执行接收到的子任务。
综上,在本申请实施例中,调度节点创建多个分区,每个分区包括集群系统中用于执行任务的一个或多个处理单元,每个分区包括的处理单元加载有参考数据集。当调度节点接收到待处理任务的同时,可以获取已创建的多个分区,将该待处理的任务划分为与多个分区一一对应的多个子任务,并将多个子任务下发至对应分区包括的处理单元,以指示各个分区中的处理单元可以在同一时刻同时进行子任务的处理,这样大大缩短了任务的处理时间,而且很大程度上避免了执行任务过程中单个处理单元上的资源被长期占用而导致的异常情况。在本申请可选实施例中,各分区中的处理单元在处理子任务的过程中,由于只需要参考部分参考数据集,而该参考数据集的数据信息量远小于全量参考数据,因此各个分区中的处理单元预先加载参考数据集的时间也大大缩短。
接下来对本申请实施例提供的任务调度装置进行介绍。
参见图5,本申请实施例提供了一种任务调度装置500,该任务调度装置可以应用于图1所示的集群系统中任一调度节点,该装置500包括:
第一获取模块501,用于获取多个分区,每个分区包括集群系统中用于执行任务的一个或多个处理单元,每个分区包括的每个处理单元加载有参考数据集,各个分区包括的处理单元加载的参考数据集不同,该各个分区包括的处理单元加载的参考数据集的并集为数据中心中的全量参考数据;
第一划分模块502,用于将该任务划分成与该多个分区一一对应的多个子任务;
下发模块503,用于将每个子任务下发至对应的分区包括的处理单元,以指示接收到子任务的处理单元基于自身加载的参考数据集执行相应子任务。
该装置500还包括:
创建模块,用于创建该多个分区;
第一确定模块,用于确定该集群系统中用于执行任务的多个处理单元;
第二确定模块,用于从确定的处理单元中确定该多个分区中每个分区包括的一个或多个处理单元;
第二划分模块,用于将该全量参考数据进行划分,得到与该多个分区一一对应的多个参考数据集;
加载模块,用于控制每个分区包括的一个或多个处理单元中的每个处理单元加载对应的参考数据集。
可选的,该创建模块,包括:
第一获取子模块,用于获取该全量参考数据的数量;
第二获取子模块,用于获取每个处理单元能够加载的的参考数据的最大数量;
第一确定子模块,用于确定该全量参考数据的数量和该最大数量之间的比值;
创建子模块,用于根据该全量参考数据的数量和该最大数量之间的比值,创建该多个分区。
可选的,该第一确定模块,包括:
第三获取子模块,用于获取该集群系统的加密狗能力;
第四获取子模块,用于获取该集群系统中部署的每个处理单元的加密狗能力;
第二确定子模块,用于确定该集群系统的加密狗能力和每个处理单元的加密狗能力之间的比值;
第一选择子模块,用于根据确定的比值,从该集群系统中部署的所有处理单元中选择该用于执行任务的多个处理单元。
可选的,该装置还包括:
第二获取模块,用于获取用于执行任务所需的全量参考数据的版本;
该第二划分模块,包括:
划分子模块,用于将该获取的版本对应的全量参考数据进行划分。
可选的,该装置还包括:
第三获取模块,用于获取该集群系统中所有处理单元能够加载的参考数据的总量;
该创建模块,还用于当获取的总量大于该全量参考数据的数量时,执行创建该多个分区的操作。
可选的,该下发模块,包括:
第二选择子模块,用于对于该多个子任务中的任一子任务,从该任一子任务对应的分区包括的一个或多个处理单元中选择一个处理单元;
下发子模块,用于将该任一子任务下发至选择的处理单元。
综上,在本申请实施例中,调度节点创建多个分区,每个分区包括集群系统中用于执行任务的一个或多个处理单元,每个分区的每个处理单元加载有参考数据集。当调度节点接收到待处理任务的同时,可以依据已创建的多个分区,将该待处理的任务划分为与多个分区一一对应的多个子任务,并将多个子任务下发至对应分区包括的处理单元,以指示各个分区中的处理单元可以在同一时刻同时进行子任务的处理,这样大大缩短了任务的处理时间,而且很大程度上避免了执行任务过程中单个处理单元上的资源被长期占用而导致的异常情况。在本申请可选实施例中,各分区中的处理单元在处理子任务的过程中,由于只需要参考部分参考数据集,而该参考数据集的数据信息量远小于全量参考数据,因此各个分区中的处理单元预先加载参考数据集的时间也大大缩短。
需要说明的是:上述实施例提供的任务调度装置在作业处理时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。在本申请可选实施例中,上述实施例提供的任务调度装置与任务调度的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图6是本申请实施例提供的一种服务器600的结构示意图。上述图2-4所示的实施例中的调度节点的功能即可以通过图6中所示的服务器来实现。该服务器可以是后台服务器集群中的服务器。具体来讲:
服务器600包括中央处理单元(CPU)601、包括随机存取存储器(RAM)602和只读存储器(ROM)603的系统存储器604,以及连接系统存储器604和中央处理单元601的系统总线605。服务器600还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(I/O系统)606,和用于存储操作系统613、应用程序614和其他程序模块615的大容量存储设备607。
基本输入/输出系统606包括有用于显示信息的显示器608和用于用户输入信息的诸如鼠标、键盘之类的输入设备609。其中显示器608和输入设备609都通过连接到系统总线605的输入输出控制器610连接到中央处理单元601。基本输入/输出系统606还可以包括输入输出控制器610以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器610还提供输出到显示屏、打印机或其他类型的输出设备。
大容量存储设备607通过连接到系统总线605的大容量存储控制器(未示出)连接到中央处理单元601。大容量存储设备607及其相关联的计算机可读介质为服务器600提供非易失性存储。也就是说,大容量存储设备607可以包括诸如硬盘或者CD-ROM驱动器之类的计算机可读介质(未示出)。
不失一般性,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、EPROM、EEPROM、闪存或其他固态存储其技术,CD-ROM、DVD或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知计算机存储介质不局限于上述几种。上述的系统存储器604和大容量存储设备607可以统称为存储器。
根据本申请的各种实施例,服务器600还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即服务器600可以通过连接在系统总线605上的网络接口单元611连接到网络612,或者说,也可以使用网络接口单元611来连接到其他类型的网络或远程计算机系统(未示出)。
上述存储器还包括一个或者一个以上的程序,一个或者一个以上程序存储于存储器中,被配置由CPU执行。该一个或者一个以上程序包含用于进行本申请实施例提供的任务处理方法的指令。
本申请实施例还提供了一种非临时性计算机可读存储介质,当该存储介质中的指令由服务器的处理器执行时,使得服务器能够执行上述实施例提供的任务调度方法。
本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例提供的任务调度方法。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,该的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上该仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (14)

1.一种任务调度方法,其特征在于,所述方法包括:
获取多个分区,每个分区包括集群系统中用于执行任务的一个或多个处理单元,每个分区包括的每个处理单元加载有参考数据集,各个分区包括的处理单元加载的参考数据集不同,所述各个分区包括的处理单元加载的参考数据集的并集为数据中心中的全量参考数据;
将所述任务划分成与所述多个分区一一对应的多个子任务;
对于所述多个子任务中的任一子任务,从所述任一子任务对应的分区包括的一个或多个处理单元中选择一个处理单元;
将所述任一子任务下发至选择的处理单元,以指示接收到子任务的处理单元基于自身加载的参考数据集执行相应子任务。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
创建所述多个分区;
确定所述集群系统中用于执行任务的多个处理单元;
从确定的处理单元中确定所述多个分区中每个分区包括的一个或多个处理单元;
将所述全量参考数据进行划分,得到与所述多个分区一一对应的多个参考数据集;
控制每个分区包括的一个或多个处理单元中的每个处理单元加载对应的参考数据集。
3.如权利要求2所述的方法,其特征在于,所述创建所述多个分区,包括:
获取所述全量参考数据的数量;
获取每个处理单元能够加载的参考数据的最大数量;
确定所述全量参考数据的数量和所述最大数量之间的比值;
根据所述全量参考数据的数量和所述最大数量之间的比值,创建所述多个分区。
4.如权利要求2所述的方法,其特征在于,所述确定所述集群系统中用于执行任务的多个处理单元,包括:
获取所述集群系统的加密狗能力;
获取所述集群系统中部署的每个处理单元的加密狗能力;
确定所述集群系统的加密狗能力和每个处理单元的加密狗能力之间的比值;
根据确定的比值,从所述集群系统中部署的所有处理单元中选择所述用于执行任务的多个处理单元。
5.如权利要求2所述的方法,其特征在于,所述将所述全量参考数据进行划分之前,还包括:
获取用于执行任务所需的全量参考数据的版本号;
所述将所述全量参考数据进行划分,包括:
将获取的版本对应的全量参考数据进行划分。
6.如权利要求2所述的方法,其特征在于,所述创建所述多个分区之前,还包括:
获取所述集群系统中所有处理单元能够加载的参考数据的总量;
当获取的总量大于所述全量参考数据的数量时,执行创建所述多个分区的操作。
7.一种任务调度装置,其特征在于,所述装置包括:
第一获取模块,用于获取多个分区,每个分区包括集群系统中用于执行任务的一个或多个处理单元,每个分区包括的每个处理单元加载有参考数据集,各个分区包括的处理单元加载的参考数据集不同,所述各个分区包括的处理单元加载的参考数据集的并集为数据中心中的全量参考数据;
第一划分模块,用于将所述任务划分成与所述多个分区一一对应的多个子任务;
下发模块包括第二选择子模块和下发子模块,
所述第二选择子模块,用于对于所述多个子任务中的任一子任务,从所述任一子任务对应的分区包括的一个或多个处理单元中选择一个处理单元;
所述下发子模块,用于将所述任一子任务下发至选择的处理单元,以指示接收到子任务的处理单元基于自身加载的参考数据集执行相应子任务。
8.如权利要求7所述的装置,其特征在于,所述装置还包括:
创建模块,用于创建所述多个分区;
第一确定模块,用于确定所述集群系统中用于执行任务的多个处理单元;
第二确定模块,用于从确定的处理单元中确定所述多个分区中每个分区包括的一个或多个处理单元;
第二划分模块,用于将所述全量参考数据进行划分,得到与所述多个分区一一对应的多个参考数据集;
加载模块,用于控制每个分区包括的一个或多个处理单元中的每个处理单元加载对应的参考数据集。
9.如权利要求8所述的装置,其特征在于,所述创建模块,包括:
第一获取子模块,用于获取所述全量参考数据的数量;
第二获取子模块,用于获取每个处理单元能够加载的参考数据的最大数量;
第一确定子模块,用于确定所述全量参考数据的数量和所述最大数量之间的比值;
创建子模块,用于根据所述全量参考数据的数量和所述最大数量之间的比值,创建所述多个分区。
10.如权利要求8所述的装置,其特征在于,所述第一确定模块,包括:
第三获取子模块,用于获取所述集群系统的加密狗能力;
第四获取子模块,用于获取所述集群系统中部署的每个处理单元的加密狗能力;
第二确定子模块,用于确定所述集群系统的加密狗能力和每个处理单元的加密狗能力之间的比值;
第一选择子模块,用于根据确定的比值,从所述集群系统中部署的所有处理单元中选择所述用于执行任务的多个处理单元。
11.如权利要求8所述的装置,其特征在于,所述装置还包括:
第二获取模块,用于获取用于执行任务所需的全量参考数据的版本号;
所述第二划分模块,包括:
划分子模块,用于将获取的版本对应的全量参考数据进行划分。
12.如权利要求8所述的装置,其特征在于,所述装置还包括:
第三获取模块,用于获取所述集群系统中所有处理单元能够加载的参考数据的总量;
所述创建模块,还用于当获取的总量大于所述全量参考数据的数量时,执行创建所述多个分区的操作。
13.一种任务调度装置,其特征在于,所述装置包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行上述权利要求1至6中的任一项权利要求所述的方法的步骤。
14.一种计算机可读存储介质,其特征在于,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-6任一项方法的步骤。
CN201910906837.5A 2019-09-24 2019-09-24 任务调度方法、装置及存储介质 Active CN112631743B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910906837.5A CN112631743B (zh) 2019-09-24 2019-09-24 任务调度方法、装置及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910906837.5A CN112631743B (zh) 2019-09-24 2019-09-24 任务调度方法、装置及存储介质

Publications (2)

Publication Number Publication Date
CN112631743A CN112631743A (zh) 2021-04-09
CN112631743B true CN112631743B (zh) 2023-08-04

Family

ID=75282671

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910906837.5A Active CN112631743B (zh) 2019-09-24 2019-09-24 任务调度方法、装置及存储介质

Country Status (1)

Country Link
CN (1) CN112631743B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005208920A (ja) * 2004-01-22 2005-08-04 Nippon Telegr & Teleph Corp <Ntt> グリッドシステムにおけるジョブ割付方法、グリッド仲介装置及びそのプログラム
DE102009013102A1 (de) * 2009-03-03 2010-09-09 Axcentro Gmbh System und Verfahren zur Generierung von Ablaufdatensätzen
EP3026555A1 (fr) * 2014-11-27 2016-06-01 Thales Procédé de gestion d'une architecture et architecture associée
CN108108242A (zh) * 2017-12-11 2018-06-01 成都博睿德科技有限公司 基于大数据的存储层智能分发控制方法
CN109086126A (zh) * 2018-06-15 2018-12-25 阿里巴巴集团控股有限公司 任务调度处理方法、装置、服务器、客户端及电子设备

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7788673B2 (en) * 2005-09-12 2010-08-31 Honeywell International Inc. Method and system for generating a static partition scheduling timeline with reduced context switching overhead
FR3008505B1 (fr) * 2013-07-10 2017-03-03 Thales Sa Procede d'optimisation de traitement parallele de donnees sur une plateforme materielle

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005208920A (ja) * 2004-01-22 2005-08-04 Nippon Telegr & Teleph Corp <Ntt> グリッドシステムにおけるジョブ割付方法、グリッド仲介装置及びそのプログラム
DE102009013102A1 (de) * 2009-03-03 2010-09-09 Axcentro Gmbh System und Verfahren zur Generierung von Ablaufdatensätzen
EP3026555A1 (fr) * 2014-11-27 2016-06-01 Thales Procédé de gestion d'une architecture et architecture associée
CN108108242A (zh) * 2017-12-11 2018-06-01 成都博睿德科技有限公司 基于大数据的存储层智能分发控制方法
CN109086126A (zh) * 2018-06-15 2018-12-25 阿里巴巴集团控股有限公司 任务调度处理方法、装置、服务器、客户端及电子设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
PIM异构系统的任务调度方法研究;庞德松;中国优秀硕士论文全文数据库;19-21 *

Also Published As

Publication number Publication date
CN112631743A (zh) 2021-04-09

Similar Documents

Publication Publication Date Title
US10108458B2 (en) System and method for scheduling jobs in distributed datacenters
CN105912399B (zh) 一种任务处理方法、装置及系统
CN111045795A (zh) 资源调度方法及装置
CN112416585A (zh) 面向深度学习的gpu资源管理与智能化调度方法
CN111338779B (zh) 资源分配方法、装置、计算机设备和存储介质
CN111190712A (zh) 一种任务调度方法、装置、设备及介质
CN109788325B (zh) 视频任务分配方法及服务器
US20230004440A1 (en) Allocating of computing resources for applications
CN106775975B (zh) 进程调度方法及装置
CN110750330A (zh) 一种虚拟机创建方法、系统、电子设备及存储介质
CN116483546B (zh) 分布式训练任务调度方法、装置、设备及存储介质
US20140047454A1 (en) Load balancing in an sap system
CN111143063B (zh) 任务的资源预约方法及装置
CN107634978B (zh) 一种资源调度方法及装置
CN117033170A (zh) 测试任务分配方法、装置、设备、存储介质和程序产品
CN112631743B (zh) 任务调度方法、装置及存储介质
CN106293670B (zh) 一种事件处理方法、设备及一种服务器
CN112685158B (zh) 一种任务调度方法、装置、电子设备及存储介质
CN114691510A (zh) 软件测试方法、装置、设备及计算机可读存储介质
CN114237902A (zh) 一种服务部署方法、装置、电子设备及计算机可读介质
JP5417626B2 (ja) 管理計算機、ジョブスケジューリング方法及びジョブスケジューリングプログラム
CN111913791A (zh) 任务调度方法、装置、设备和计算机可读存储介质
CN113282383B (zh) 任务调度方法、任务处理方法及相关产品
EP2698713A2 (en) Load balancing in data processing system
CN114816701B (zh) 线程管理方法、电子设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant