一种进程任务调度方法、装置及设备

阅读: 评论:0

著录项
  • CN202010066899.2
  • 20200120
  • CN111209103A
  • 20200529
  • 浙江工商大学
  • 邬丽丹;苗春葆
  • G06F9/48
  • G06F9/48 G06F9/50

  • 浙江省杭州市西湖区教工路149号
  • 浙江(33)
  • 北京超凡宏宇专利代理事务所(特殊普通合伙)
  • 唐菲
摘要
本申请实施例提供一种进程任务调度方法、装置及设备,所述方法包括:获取预设的任务文件,所述任务文件包括多个任务;接收预设数量的从进程发送的任务申请;根据所述任务申请,将所述任务文件中的任务依次发送给对应的从进程。本申请实现了大量进程任务的动态调度与运行。
权利要求

1.一种进程任务调度方法,其特征在于,包括:

获取预设的任务文件,所述任务文件包括多个任务;

接收预设数量的从进程发送的任务申请;

根据所述任务申请,将所述任务文件中的任务依次发送给对应的从进程。

2.根据权利要求1所述的方法,其特征在于,所述根据所述任务申请,将所述任务文件中的任务依次发送给对应的从进程,包括:

根据所述任务申请,判断所述任务文件中是否存在未分配的任务;

当所述任务文件中存在所述未分配的任务时,于所述任务文件中,选取一个目标任务,并将所述目标任务发送给对应于所述任务申请的目标从进程。

3.根据权利要求2所述的方法,其特征在于,所述根据所述任务申请,将所述任务文件中的任务依次发送给对应的从进程,还包括:

当所述任务文件中不存在所述未分配的任务时,发送结束指令至对应于所述任务申请的所述目标从进程。

4.根据权利要求3所述的方法,其特征在于,还包括:

获取接收到所述结束指令的从进程的第一数量;

判断所述第一数量是否小于所述预设数量;

当所述第一数量小于所述预设数量时,发送结束指令至剩余的从进程。

5.根据权利要求4所述的方法,其特征在于,所述发送结束指令至剩余的从进程,包括:

接收所述剩余的从进程发送的任务申请;

发送结束指令至对应于所述任务申请的所述剩余的从进程;

获取当前接收到所述结束指令的第一从进程个数和全部从进程的总数;

判断所述第一从进程个数是否小于所述全部从进程的总数;

若所述第一从进程个数小于所述全部从进程的总数,则继续执行接收所述剩余的从进程发送的任务申请,发送结束指令至对应于所述任务申请的所述剩余的从进程,获取当前接收到所述结束指令的第一从进程个数和全部从进程的总数,直至所述第一从进程个数不小于所述全部从进程的总数,则结束进程。

6.一种进程任务调度装置,其特征在于,包括:

第一获取模块,用于获取预设的任务文件,所述任务文件包括多个任务;

接收模块,用于接收预设数量的从进程发送的任务申请;

第一发送模块,用于根据所述任务申请,将所述任务文件中的任务依次发送给对应的从进程。

7.根据权利要求6所述的装置,其特征在于,所述第一发送模块包括:

判断单元,用于根据所述任务申请,判断所述任务文件中是否存在未分配的任务;

第一发送单元,用于当所述任务文件中存在所述未分配的任务时,于所述任务文件中,选取一个目标任务,并将所述目标任务发送给对应于所述任务申请的目标从进程;

第二发送单元,用于当所述任务文件中不存在所述未分配的任务时,发送结束指令至对应于所述任务申请的所述目标从进程。

8.根据权利要求7所述的装置,其特征在于,还包括:

第二获取模块,用于获取接收到所述结束指令的从进程的第一数量;

判断模块,用于判断所述第一数量是否小于所述预设数量;

第二发送模块,用于当所述第一数量小于所述预设数量时,发送结束指令至剩余的从进程。

9.根据权利要求8所述的装置,其特征在于,所述第二发送模块用于:

接收所述剩余的从进程发送的任务申请;

发送结束指令至对应于所述任务申请的所述剩余的从进程;

获取当前接收到所述结束指令的第一从进程个数和全部从进程的总数;

判断所述第一从进程个数是否小于所述全部从进程的总数;

若所述第一从进程个数小于所述全部从进程的总数,则继续执行接收所述剩余的从进程发送的任务申请,发送结束指令至对应于所述任务申请的所述剩余的从进程,获取当前接收到所述结束指令的第一从进程个数和全部从进程的总数,直至所述第一从进程个数不小于所述全部从进程的总数,则结束进程。

10.一种电子设备,其特征在于,包括:

存储器,用以存储计算机程序;

处理器,用以执行如权利要求1至5中任一项所述的方法。

说明书
技术领域

本申请涉及计算机技术领域,具体而言,涉及一种进程任务调度方法、装置及设备。

高性能计算机大多基于集架构,即由很多独立的单台计算机构成,在硬件上通过网络彼此连接,在软件上通过消息通信进行协同计算。一般来说,高性能计算集具有的数量众多的CPU(central processing unit,中央处理器)核心,计算量很大的程序可以使用多个CPU核心来提高计算速度,这也是高性能计算机的主要用途之一。

在有些情况下,单个程序计算量并不大,运行时间也很短,但程序数量非常多。这些程序之间没有依赖关系,在理论上可以使用多个CPU核心同时运行,但需要一种计算机软件来对其进行调度和管理。目前有一些作业调度系统软件,以作业数组的方式,支持在高性能计算集上运行大量程序。但作业数组的方式使用起来较为复杂,需要使用者自己编写程序,以实现程序在各个CPU核心上的分配,难度较大。

本申请实施例的目的在于提供一种进程任务调度方法、装置及设备,用以实现大量进程任务的动态调度与运行。

本申请实施例第一方面提供了一种进程任务调度方法,包括:获取预设的任务文件,所述任务文件包括多个任务;接收预设数量的从进程发送的任务申请;根据所述任务申请,将所述任务文件中的任务依次发送给对应的从进程。

于一实施例中,所述根据所述任务申请,将所述任务文件中的任务依次发送给对应的从进程,包括:根据所述任务申请,判断所述任务文件中是否存在未分配的任务;当所述任务文件中存在所述未分配的任务时,于所述任务文件中,选取一个目标任务,并将所述目标任务发送给对应于所述任务申请的目标从进程。

于一实施例中,所述根据所述任务申请,将所述任务文件中的任务依次发送给对应的从进程,还包括:当所述任务文件中不存在所述未分配的任务时,发送结束指令至对应于所述任务申请的所述目标从进程。

于一实施例中,还包括:获取接收到所述结束指令的从进程的第一数量;判断所述第一数量是否小于所述预设数量;当所述第一数量小于所述预设数量时,发送结束指令至剩余的从进程。

于一实施例中,所述发送结束指令至剩余的从进程,包括:接收所述剩余的从进程发送的任务申请;发送结束指令至对应于所述任务申请的所述剩余的从进程;获取当前接收到所述结束指令的第一从进程个数和全部从进程的总数;判断所述第一从进程个数是否小于所述全部从进程的总数;若所述第一从进程个数小于所述全部从进程的总数,则继续执行接收所述剩余的从进程发送的任务申请,发送结束指令至对应于所述任务申请的所述剩余的从进程,获取当前接收到所述结束指令的第一从进程个数和全部从进程的总数,直至所述第一从进程个数不小于所述全部从进程的总数,则结束进程。

本申请实施例第二方面提供了一种进程任务调度装置,包括:第一获取模块,用于获取预设的任务文件,所述任务文件包括多个任务;接收模块,用于接收预设数量的从进程发送的任务申请;第一发送模块,用于根据所述任务申请,将所述任务文件中的任务依次发送给对应的从进程。

于一实施例中,所述第一发送模块包括:判断单元,用于根据所述任务申请,判断所述任务文件中是否存在未分配的任务;第一发送单元,用于当所述任务文件中存在所述未分配的任务时,于所述任务文件中,选取一个目标任务,并将所述目标任务发送给对应于所述任务申请的目标从进程;第二发送单元,用于当所述任务文件中不存在所述未分配的任务时,发送结束指令至对应于所述任务申请的所述目标从进程。

于一实施例中,进程任务调度装置还包括:第二获取模块,用于获取接收到所述结束指令的从进程的第一数量;判断模块,用于判断所述第一数量是否小于所述预设数量;第二发送模块,用于当所述第一数量小于所述预设数量时,发送结束指令至剩余的从进程。

于一实施例中,所述第二发送模块用于:接收所述剩余的从进程发送的任务申请;发送结束指令至对应于所述任务申请的所述剩余的从进程;获取当前接收到所述结束指令的第一从进程个数和全部从进程的总数;判断所述第一从进程个数是否小于所述全部从进程的总数;若所述第一从进程个数小于所述全部从进程的总数,则继续执行接收所述剩余的从进程发送的任务申请,发送结束指令至对应于所述任务申请的所述剩余的从进程,获取当前接收到所述结束指令的第一从进程个数和全部从进程的总数,直至所述第一从进程个数不小于所述全部从进程的总数,则结束进程。

本申请实施例第三方面提供了一种电子设备,包括:存储器,用以存储计算机程序;处理器,用以执行本申请实施例第一方面及其任一实施例的方法。

为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本申请一实施例的电子设备的结构示意图;

图2为本申请一实施例的进程任务调度方法的流程示意图;

图3为本申请一实施例的进程任务调度方法的流程示意图;

图4为本申请一实施例的进程任务调度方法的流程示意图;

图5为本申请一实施例的进程任务调度方法的从进程的流程示意图;

图6为本申请一实施例的进程任务调度装置的结构示意图;

图7为本申请一实施例的进程任务调度装置的结构示意图。

附图标记:

100-电子设备,110-总线,120-处理器,130-存储器,600-进程任务调度装置,610-第一获取模块,620-接收模块,630-第一发送模块,631-判断单元,632-第一发送单元,633-第二发送单元,640-第二获取模块,650-判断模块,660-第二发送模块。

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。

在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,并不表示排列序号,也不能理解为指示或暗示相对重要性。

请参看图1,其为本申请一实施例的电子设备100的结构示意图,包括:至少一个处理器120和存储器130,图1中以一个处理器为例。处理器120和存储器130通过总线110连接,存储器130存储有可被至少一个处理器120执行的指令,指令被至少一个处理器120执行,以使至少一个处理器120执行如下述实施例中的进程任务调度方法。

如图2所示,其为本申请一实施例的进程任务调度方法的流程示意图,该方法可由图1所示的电子设备100来执行,以实现大量进程任务的动态调度与运行。该方法包括如下步骤:

步骤201:获取预设的任务文件,任务文件包括多个任务。

在上述步骤中,用户将需要运行的程序命令写入到一个文本文件中,称为任务文件,任务文件中每行文本为一个独立的任务,一个预设的任务文件中包括了多个任务。主进程获取预设的任务文件。

步骤202:接收预设数量的从进程发送的任务申请。

在上述步骤中,主进程接收预设数量的从进程发送的任务申请,从进程的数量根据实际进程任务调度需要决定,使主进程和从进程能以较高效率完成大量进程任务的动态调度与运行,同时减少从进程资源空置的情况。

于一实施例中,主进程和从进程之间的消息传递通过MPI(Message PassingInterface,消息传递接口)来实现。

步骤203:根据任务申请,将任务文件中的任务依次发送给对应的从进程。

在上述步骤中,主进程根据任务申请,每次在任务文件中读取一行文本作为一个任务,依次发送给与任务申请对应的从进程,直至任务文件中的所有任务发送完毕,则发送结束指令至与任务申请对应的从进程。

如图3所示,其为本申请一实施例的进程任务调度方法的流程示意图,该方法可由图1所示的电子设备100来执行,以实现大量进程任务的动态调度与运行。该方法包括如下步骤:

步骤301:获取预设的任务文件,任务文件包括多个任务。详细参见上述实施例中对步骤201的描述。

步骤302:接收预设数量的从进程发送的任务申请。详细参见上述实施例中对步骤202的描述。

步骤303:根据任务申请,判断任务文件中是否存在未分配的任务。

在上述步骤中,主进程在接收到任务申请后,判断任务文件中是否存在未分配的任务,若任务文件中存在未分配的任务,则继续执行步骤304,若任务文件中不存在未分配的任务,则继续执行步骤305。

步骤304:于任务文件中,选取一个目标任务,并将目标任务发送给对应于任务申请的目标从进程。

在上述步骤中,主进程依次读取任务文件中未曾读取部分的第一行文本,作为目标任务,发送给对应于任务申请的目标从进程。下一步执行步骤310。

步骤305:发送结束指令至对应于任务申请的目标从进程。

在上述步骤中,主进程发送结束指令至对应于任务申请的目标从进程,以使接收到结束指令的目标从进程进入等待结束状态,不再向主进程发送任务申请。

步骤306:获取接收到结束指令的从进程的第一数量。

在上述步骤中,主进程获取接收到结束指令的从进程的第一数量。

步骤307:判断第一数量是否小于预设数量。

在上述步骤中,主进程判断第一数量是否小于预设数量,若第一数量小于预设数量,则继续执行步骤308,若第一数量等于预设数量,则继续执行步骤309。

步骤308:发送结束指令至剩余的从进程。

在上述步骤中,主进程发送结束指令至剩余的未接收到结束指令的从进程,使剩余的从进程也进入等待结束状态,不再向主进程发送任务申请。下一步执行步骤309。

步骤309:结束所有进程。

在上述步骤中,所有进程包括主进程和所有预设数量的从进程。

步骤310:接收从进程发送的任务申请。

在上述步骤中,从进程执行主进程发送的任务,完成后继续向主进程发送任务申请,直至接收到结束指令,主进程接收从进程发送的任务申请,下一步执行步骤303。

如图4所示,其为本申请一实施例的进程任务调度方法的流程示意图,该方法可由图1所示的电子设备100来执行,以实现大量进程任务的动态调度与运行。该方法包括如下步骤:

步骤401:获取预设的任务文件,任务文件包括多个任务。详细参见上述实施例中对步骤201的描述。

步骤402:接收从进程发送的任务申请。

在上述步骤中,预设数量的从进程在启动进程后同时发出多个任务申请,每个从进程接收并执行主进程根据任务申请发送的目标任务后,会继续向主进程发送任务申请,主进程接收从进程发送的任务申请。

步骤403:根据任务申请,判断任务文件中是否存在未分配的任务。

在上述步骤中,主进程在接收到任务申请后,判断任务文件中是否存在未分配的任务,若任务文件中存在未分配的任务,则继续执行步骤404,若任务文件中不存在未分配的任务,则继续执行步骤405。

步骤404:于任务文件中,选取一个目标任务,并将目标任务发送给对应于任务申请的目标从进程。

在上述步骤中,主进程依次读取任务文件中未曾读取部分的第一行文本,作为目标任务,发送给对应于任务申请的目标从进程。下一步继续执行步骤402至步骤403。

步骤405:发送结束指令至对应于任务申请的目标从进程。详细参见上述实施例中对步骤305的描述。

步骤406:获取接收到结束指令的从进程的第一数量。详细参见上述实施例中对步骤306的描述。

步骤407:判断第一数量是否小于预设数量。

在上述步骤中,主进程判断第一数量是否小于预设数量,若第一数量小于预设数量,则继续执行步骤408,若第一数量等于预设数量,则继续执行步骤412。

步骤408:接收剩余的从进程发送的任务申请。

在上述步骤中,剩余的未接收到结束指令的从进程向主进程发送任务申请,主进程接收剩余的从进程发送的任务申请。

步骤409:发送结束指令至对应于任务申请的剩余的从进程。

在上述步骤中,主进程发送结束指令至对应于任务申请的剩余的从进程,使剩余的从进程也进入等待结束状态,不再向主进程发送任务申请。

步骤410:获取当前接收到结束指令的第一从进程个数和全部从进程的总数。

在上述步骤中,主进程获取当前接收到结束指令的第一从进程个数和全部从进程的总数,其中,全部从进程的总数即预设数量,当前接收到结束指令的第一从进程包括:接收到主进程在步骤405中发送的结束指令的从进程和接收到主进程在步骤409中发送的结束指令的从进程。

步骤411:判断第一从进程个数是否小于全部从进程的总数。

在上述步骤中,主进程判断第一从进程个数是否小于全部从进程的总数,若第一从进程个数小于全部从进程的总数,则重复执行步骤408至步骤411,直至第一从进程个数不小于全部从进程的总数,则继续执行步骤412。

步骤412:结束所有进程。详细参见上述实施例中对步骤309的描述。

如图5所示,其为本申请一实施例的进程任务调度方法的从进程的流程示意图,该方法包括如下步骤:

步骤501:向主进程发送任务申请。

步骤502:接收主进程发送的任务。

步骤503:判断主进程发送的任务是否为结束指令。

在上述步骤中,从进程判断主进程发送的任务是否为结束指令,若主进程发送的任务是结束指令,则继续执行步骤504,若主进程发送的任务不是结束指令,则继续执行步骤505。

步骤504:进入等待结束状态。

步骤505:执行任务。

在上述步骤中,从进程执行主进程发送的任务,完成后继续执行步骤501至步骤503。

按照上述进程任务调度方法,于一实施例中使用1个主进程和63个从进程调用绘图程序制作12366张图片(12366个任务),所需时间约为20分钟。如果不采用本申请的进程任务调度方法,调用绘图程序制作12366张图片所需的时间约为581分钟。

如图6所示,其为本申请一实施例的进程任务调度装置600的结构示意图,该装置可应用于图1所示的电子设备100,以实现大量进程任务的动态调度与运行。该装置包括:第一获取模块610,接收模块620和第一发送模块630,各个模块的原理关系如下:

第一获取模块610,用于获取预设的任务文件,任务文件包括多个任务。详细参见上述实施例中对步骤201的描述。

接收模块620,用于接收预设数量的从进程发送的任务申请。详细参见上述实施例中对步骤202的描述。

第一发送模块630,用于根据任务申请,将任务文件中的任务依次发送给对应的从进程。详细参见上述实施例中对步骤203的描述。

如图7所示,其为本申请一实施例的进程任务调度装置600的结构示意图,该装置可应用于图1所示的电子设备100,以实现大量进程任务的动态调度与运行。该装置包括:第一获取模块610,接收模块620、第一发送模块630、第二获取模块640、判断模块650和第二发送模块660,各个模块的原理关系如下:

第一获取模块610,用于获取预设的任务文件,任务文件包括多个任务。详细参见上述实施例中对步骤201的描述。

接收模块620,用于接收预设数量的从进程发送的任务申请。详细参见上述实施例中对步骤202的描述。

第一发送模块630,用于根据任务申请,将任务文件中的任务依次发送给对应的从进程。详细参见上述实施例中对步骤203的描述。

第二获取模块640,用于获取接收到结束指令的从进程的第一数量。详细参见上述实施例中对步骤306的描述。

判断模块650,用于判断第一数量是否小于预设数量。详细参见上述实施例中对步骤307的描述。

第二发送模块660,用于当第一数量小于预设数量时,发送结束指令至剩余的从进程。详细参见上述实施例中对步骤308的描述。

于一实施例中,第一发送模块630包括:

判断单元631,用于根据任务申请,判断任务文件中是否存在未分配的任务。详细参见上述实施例中对步骤303的描述。

第一发送单元632,用于当任务文件中存在未分配的任务时,于任务文件中,选取一个目标任务,并将目标任务发送给对应于任务申请的目标从进程。详细参见上述实施例中对步骤304的描述。

第二发送单元633,用于当任务文件中不存在未分配的任务时,发送结束指令至对应于任务申请的目标从进程。详细参见上述实施例中对步骤305的描述。

于一实施例中,第二发送模块660用于:接收剩余的从进程发送的任务申请;发送结束指令至对应于任务申请的剩余的从进程;获取当前接收到结束指令的第一从进程个数和全部从进程的总数;判断第一从进程个数是否小于全部从进程的总数;若第一从进程个数小于全部从进程的总数,则继续执行接收剩余的从进程发送的任务申请,发送结束指令至对应于任务申请的剩余的从进程,获取当前接收到结束指令的第一从进程个数和全部从进程的总数,直至第一从进程个数不小于全部从进程的总数,则结束进程。详细参见上述实施例中对步骤408至步骤412的描述。

上述进程任务调度装置600的详细描述,请参见上述实施例中相关方法步骤的描述。

本发明实施例还提供了一种电子设备可读存储介质,包括:程序,当其在电子设备上运行时,使得电子设备可执行上述实施例中方法的全部或部分流程。其中,存储介质可为磁盘、光盘、只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(Random AccessMemory,RAM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,缩写:HDD)或固态硬盘(Solid-State Drive,SSD)等。存储介质还可以包括上述种类的存储器的组合。

以上仅为本申请的优选实施例而已,并不用于限制本申请。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

本文发布于:2023-04-14 06:46:26,感谢您对本站的认可!

本文链接:https://patent.en369.cn/patent/1/87020.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图