首页 / 专利库 / 人工智能 / 人工神经网络 / 任务调度控制方法、任务调度器及任务处理装置

任务调度控制方法、任务调度器及任务处理装置

阅读:45发布:2020-05-12

专利汇可以提供任务调度控制方法、任务调度器及任务处理装置专利检索,专利查询,专利分析的服务。并且本 申请 涉及一种任务调度控制方法、任务调度器和任务处理装置。该方法用于并行任务调度的控制,可以保证进行调度的任务有序高效的进行调度,进而保证任务所属的程序的执行过程逻辑正确。,下面是任务调度控制方法、任务调度器及任务处理装置专利的具体信息内容。

1.一种任务调度控制方法,其特征在于,包括:
任务状态控制装置获取任务的任务标识,并在获取所述任务的任务标识后,将所述任务的状态更新为待调度状态,向任务调度装置发送所述待调度状态的任务的调度请求
所述任务调度装置根据所述任务的调度请求发送所述任务的分解信息的获取请求至所述任务状态控制装置;
所述任务状态控制装置根据所述分解信息的获取请求发送任务的分解信息至所述任务调度装置,并将相应的任务的状态更新为调度状态。
2.根据权利要求1所述的方法,其特征在于,在将相应的任务的状态更新为调度状态之后,还包括:
任务状态控制装置接收所述任务调度装置返回的调度反馈信息,并根据所述调度反馈信息将相应的任务的状态更新为待调度状态或调度结束状态。
3.根据权利要求2所述的方法,其特征在于,所述根据所述调度反馈信息将相应的任务的状态更新为待调度状态或调度结束状态,包括:
若所述反馈信息包含任务调度失败信息,任务状态控制装置将相应的任务状态由调度状态更新为待调度状态;
若所述反馈信息包含任务调度成功信息,任务状态控制装置将相应的任务的状态由调度状态更新为调度结束状态。
4.根据权利要求1所述的方法,其特征在于,所述待调度状态的任务以任务队列的形式存储时,所述任务状态控制装置根据所述分解信息的获取请求发送任务的分解信息至所述任务调度装置,包括:
所述任务状态控制装置对所述分解信息的获取请求进行解析,得到队列标识;
所述任务状态控制装置将所述队列标识对应的任务队列的队列头的任务的分解信息,发送至任务分解装置,并将所得队列头的任务的状态由待调度状态更新为调度状态。
5.根据权利要求1所述的方法,其特征在于,在所述任务状态控制装置获取任务的任务标识之前,还包括:
所述任务状态控制装置获取所述任务的配置信息,对所述任务的配置信息进行解析,得到所述任务的依赖关系信息,并根据所述依赖关系信息,判断所述任务的依赖关系是否满足;
所述任务状态控制装置在所述任务的依赖关系满足后,向状态监控装置发送任务的注册请求以获取所述任务的任务标识。
6.根据权利要求5所述的方法,其特征在于,所述任务状态控制装置根据所述依赖关系信息,判断所述任务的依赖关系是否满足,包括:
任务状态控制装置根据所述依赖关系信息,判断所述任务是否存在前置任务;
若所述任务不存在前置任务,任务状态控制装置判定所述任务的依赖关系满足。
7.根据权利要求6所述的方法,其特征在于,所述任务状态控制装置根据所述依赖关系信息,判断所述任务的依赖关系是否满足,还包括:
若所述任务存在前置任务,任务状态控制装置根据所述任务的前置任务是否执行完毕,判断所述任务的依赖关系是否满足。
8.根据权利要求2所述的方法,其特征在于,所述方法还包括:
所述任务状态控制装置获取所述目标任务的发送时间戳,所述目标任务的发送时间戳为将所述目标任务发送至所述任务调度装置的时刻;
所述任务状态控制装置在接收到所述目标任务的调度反馈信息后,将所述目标任务的发送时间戳写入全局内存。
9.一种任务调度器,其特征在于,包括任务状态控制装置和任务调度装置;
所述任务状态控制装置用于获取任务的任务标识,在获取所述任务的任务标识后,将所述任务的状态更新为待调度状态,并向任务调度装置发送所述待调度状态的任务的调度请求;
所述任务调度装置与所述任务状态控制装置连接,用于根据所述任务的调度请求,对应获取所述任务的分解信息和全部任务信息,并根据所述任务的分解信息和全部任务信息进行任务调度。
10.一种任务处理装置,其特征在于,包括:处理器和如权利要求9所述的任务调度器,所述处理器与所述任务调度器连接,用于执行任务的作业。
11.根据权利要求10所述的装置,其特征在于,所述处理器包括计算装置,所述计算装置用于执行机器学习计算,所述计算装置包括运算单元以及控制器单元;
所述运算单元包括一个主处理电路和多个从处理电路;
所述控制器单元,用于获取输入数据以及计算指令;
所述控制器单元,还用于解析该计算指令得到多个运算指令,将该多个运算指令以及所述输入数据发送给所述主处理电路;
所述主处理电路,用于对所述输入数据执行前序处理以及与所述多个从处理电路之间传输数据和运算指令;
所述多个从处理电路,用于依据从所述主处理电路传输的数据以及运算指令并行执行中间运算得到多个中间结果,并将多个中间结果传输给所述主处理电路;
所述主处理电路,用于对所述多个中间结果执行后续处理得到所述计算指令的计算结果。
12.根据权利要求11所述的装置,其特征在于,
所述运算单元还包括树型模,所述树型模块包括一个根端口和多个支端口,所述树型模块的根端口连接所述主处理电路,所述树型模块的多个支端口分别连接多个从处理电路中的一个从处理电路;所述树型模块,用于转发所述主处理电路与所述多个从处理电路之间的数据块、权值以及运算指令。
13.根据权利要求11所述的装置,其特征在于,所述机器学习计算包括人工神经网络运算,所述输入数据包括输入神经元数据和权值数据,所述计算结果为输出神经元数据;所述运算单元还包括分支处理电路,
所述主处理电路具体用于将一个输入神经元分配成多个数据块,将所述多个数据块中的至少一个数据块、权值以及多个运算指令中的至少一个运算指令发送给所述分支处理电路;
所述分支处理电路用于转发所述主处理电路与所述多个从处理电路之间的数据块、权值以及运算指令;
所述多个从处理电路用于依据该运算指令对接收到的数据块以及权值执行运算得到中间结果,并将中间结果传输给所述分支处理电路;
所述主处理电路用于将分支处理电路发送的中间结果进行后续处理得到该计算指令的结果,将该计算指令的结果发送给所述控制器单元。

说明书全文

任务调度控制方法、任务调度器及任务处理装置

技术领域

[0001] 本申请涉及计算机技术领域,特别是涉及一种任务调度控制方法、任务调度器及任务处理装置。

背景技术

[0002] 深度神经网络是目前许多人工智能应用的基础,其在语音识别图像处理、数据分析、广告推荐系统、汽车自动驾驶等多方面得到了突破性的应用,使得深度神经网络被应用在了生活的各个方面。
[0003] 但是,深度神经网络的运算量巨大,一直制约着其更快速的发展和更广泛的应用。为了提高深度神经网络的任务处理效率,通常采用并行处理的方式对任务进行处理,因此如何保证任务的有序调度,进而保证程序执行逻辑的正确便成为亟需解决的技术问题发明内容
[0004] 基于此,有必要针对上述技术问题,提供一种能够保证任务有序调度的任务调度控制方法、任务调度器及任务处理装置。
[0005] 一种任务调度控制方法,包括:
[0006] 任务状态控制装置获取任务的任务标识,并在获取所述任务的任务标识后,将所述任务的状态更新为待调度状态,向任务调度装置发送所述待调度状态的任务的调度请求
[0007] 所述任务调度装置根据所述任务的调度请求发送所述任务的分解信息的获取请求至所述任务状态控制装置;
[0008] 所述任务状态控制装置根据所述分解信息的获取请求发送任务的分解信息至所述任务调度装置,并将相应的任务的状态更新为调度状态。
[0009] 在其中一个实施例中,在将相应的任务的状态更新为调度状态之后,还包括:
[0010] 任务状态控制装置接收所述任务调度装置返回的调度反馈信息,并根据所述调度反馈信息将相应的任务的状态更新为待调度状态或调度结束状态。
[0011] 在其中一个实施例中,所述根据所述调度反馈信息将相应的任务的状态更新为待调度状态或调度结束状态,包括:
[0012] 若所述反馈信息包含任务调度失败信息,任务状态控制装置将相应的任务状态由调度状态更新为待调度状态;
[0013] 若所述反馈信息包含任务调度成功信息,任务状态控制装置将相应的任务的状态由调度状态更新为调度结束状态。
[0014] 在其中一个实施例中,所述待调度状态的任务以任务队列的形式存储时,所述任务状态控制装置根据所述分解信息的获取请求发送任务的分解信息至所述任务调度装置,包括:
[0015] 所述任务状态控制装置对所述分解信息的获取请求进行解析,得到队列标识;
[0016] 所述任务状态控制装置将所述队列标识对应的任务队列的队列头的任务的分解信息,发送至任务分解装置,并将所得队列头的任务的状态由待调度状态更新为调度状态。
[0017] 在其中一个实施例中,在所述任务状态控制装置获取任务的任务标识之前,还包括:
[0018] 所述任务状态控制装置获取所述任务的配置信息,对所述任务的配置信息进行解析,得到所述任务的依赖关系信息,并根据所述依赖关系信息,判断所述任务的依赖关系是否满足;
[0019] 所述任务状态控制装置在所述任务的依赖关系满足后,向状态监控装置发送任务的注册请求以获取所述任务的任务标识。
[0020] 在其中一个实施例中,所述任务状态控制装置根据所述依赖关系信息,判断所述任务的依赖关系是否满足,包括:
[0021] 任务状态控制装置根据所述依赖关系信息,判断所述任务是否存在前置任务;
[0022] 若所述任务不存在前置任务,任务状态控制装置判定所述任务的依赖关系满足。
[0023] 在其中一个实施例中,所述任务状态控制装置根据所述依赖关系信息,判断所述任务的依赖关系是否满足,还包括:
[0024] 若所述任务存在前置任务,任务状态控制装置根据所述任务的前置任务是否执行完毕,判断所述任务的依赖关系是否满足。
[0025] 在其中一个实施例中,所述方法还包括:
[0026] 所述任务状态控制装置获取所述目标任务的发送时间戳,所述目标任务的发送时间戳为将所述目标任务发送至所述任务调度装置的时刻;
[0027] 所述任务状态控制装置在接收到所述目标任务的调度反馈信息后,将所述目标任务的发送时间戳写入全局内存。
[0028] 一种任务调度器,包括任务状态控制装置和任务调度装置;
[0029] 所述任务状态控制装置用于获取任务的任务标识,在获取所述任务的任务标识后,将所述任务的状态更新为待调度状态,并向任务调度装置发送所述待调度状态的任务的调度请求;
[0030] 所述任务调度装置与所述任务状态控制装置连接,用于根据所述任务的调度请求,对应获取所述任务的分解信息和全部任务信息,并根据所述任务的分解信息和全部任务信息进行任务调度。
[0031] 一种任务处理装置,包括:处理器和如权利要求9所述的任务调度器,[0032] 所述处理器与所述任务调度器连接,用于执行任务的作业。
[0033] 在其中一个实施例中,所述处理器包括计算装置,所述计算装置用于执行机器学习计算,所述计算装置包括运算单元以及控制器单元;
[0034] 所述运算单元包括一个主处理电路和多个从处理电路;
[0035] 所述控制器单元,用于获取输入数据以及计算指令;
[0036] 所述控制器单元,还用于解析该计算指令得到多个运算指令,将该多个运算指令以及所述输入数据发送给所述主处理电路;
[0037] 所述主处理电路,用于对所述输入数据执行前序处理以及与所述多个从处理电路之间传输数据和运算指令;
[0038] 所述多个从处理电路,用于依据从所述主处理电路传输的数据以及运算指令并行执行中间运算得到多个中间结果,并将多个中间结果传输给所述主处理电路;
[0039] 所述主处理电路,用于对所述多个中间结果执行后续处理得到所述计算指令的计算结果。
[0040] 在其中一个实施例中,所述运算单元还包括树型模,所述树型模块包括一个根端口和多个支端口,所述树型模块的根端口连接所述主处理电路,所述树型模块的多个支端口分别连接多个从处理电路中的一个从处理电路;所述树型模块,用于转发所述主处理电路与所述多个从处理电路之间的数据块、权值以及运算指令。
[0041] 在其中一个实施例中,所述机器学习计算包括人工神经网络运算,所述输入数据包括输入神经元数据和权值数据,所述计算结果为输出神经元数据;所述运算单元还包括分支处理电路,
[0042] 所述主处理电路具体用于将一个输入神经元分配成多个数据块,将所述多个数据块中的至少一个数据块、权值以及多个运算指令中的至少一个运算指令发送给所述分支处理电路;
[0043] 所述分支处理电路用于转发所述主处理电路与所述多个从处理电路之间的数据块、权值以及运算指令;
[0044] 所述多个从处理电路用于依据该运算指令对接收到的数据块以及权值执行运算得到中间结果,并将中间结果传输给所述分支处理电路;
[0045] 所述主处理电路用于将分支处理电路发送的中间结果进行后续处理得到该计算指令的结果,将该计算指令的结果发送给所述控制器单元
[0046] 上述任务调度控制方法、任务调度器和任务处理装置,该调度控制方法在获取任务的任务标识后,通过其任务状态控制装置改变任务的状态,在任务处于待调度状态时发送调度请求,在任务被调度时,更新对应任务的状态为调度状态,控制任务调度装置的任务调度进程,可以保证任务准确高效的调度。附图说明
[0047] 图1为一个实施例中任务调度器的结构图;
[0048] 图2为一个实施例中任务调度器的应用环境图;
[0049] 图3为一个实施例中任务调度器的应用环境图;
[0050] 图4为一个实施例中任务调度器的应用环境图;
[0051] 图5为一个实施例提供的一种计算装置的结构示意图;
[0052] 图6为另一个实施例提供的计算装置的结构图;
[0053] 图7为一个实施例提供的主处理电路的结构图;
[0054] 图8为一个实施例提供的一种计算装置的结构图;
[0055] 图9为一个实施例提供的另一种计算装置的结构图;
[0056] 图10为一个实施例提供的树型模块的结构示意图;
[0057] 图11为一个实施例提供的一种计算装置的结构图;
[0058] 图12为一个实施例提供的一种计算装置的结构图;
[0059] 图13为一个实施例提供的计算装置的结构图;
[0060] 图14为一个实施例中任务调度控制方法的流程示意图;
[0061] 图15为一个实施例中任务调度控制方法补充步骤的流程示意图;
[0062] 图16为一个实施例中判断任务的依赖关系是否满足的步骤的流程示意图;
[0063] 图17为一个实施例中任务调度控制方法补充步骤的流程示意图。

具体实施方式

[0064] 为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
[0065] 如图1-图4所示,本申请实施例的任务调度器100包括任务状态控制装置110和任务调度装置120。该任务状态控制装置110与该任务调度装置120连接。进一步地,该任务调度器100可以通过DMA(Direct Memory Access,直接存储器存取)连接至全局内存。可选地,全局内存可以为DRAM(Dynamic Random Access Memory,动态随机存储器)或SRAM(Static Random-Access Memory,静态随机存储器)等等。其中,
[0066] 任务状态控制装置110用于获取任务的任务标识,在获取任务的任务标识后,将该任务的状态更新为待调度状态,并向任务调度装置120发送该待调度状态的任务的调度请求。其中,任务的任务标识可以用于区分不同的任务。
[0067] 任务调度装置120用于根据接收的任务的调度请求,对应获取所述任务的分解信息和全部任务信息,并根据所述任务的分解信息和全部任务信息进行任务调度。具体地,任务调度装置120根据任务的调度请求发送任务的分解信息的获取请求至所述任务状态控制装置110;任务状态控制装置110根据所述分解信息的获取请求发送任务的分解信息至所述任务调度装置120,并将相应的任务的状态更新为调度状态。
[0068] 具体地,任务调度装置120根据所述任务的调度请求发送所述任务的分解信息的获取请求至所述任务状态控制装置。任务调度装置120还从全局内存中对应获取全部任务信息。并根据并根据所述任务的分解信息和全部任务信息进行任务调度。
[0069] 本实施例的任务调度控制器,在获取任务的任务标识后,通过其任务状态控制装置改变任务的状态,控制任务调度装置的任务调度进程,可以保证任务准确高效的调度。
[0070] 在其中一个可选地实施例中,上述任务状态控制装置110还用于接收任务调度装置120返回的调度反馈信息,并根据该调度反馈信息将所述相应的任务的状态更新为待调度状态或调度结束状态。具体地,任务状态控制装置110在反馈信息包含任务调度失败信息时,将相应的任务的状态由调度状态更新为待调度状态,并重新向任务调度装置120发送该任务的调度请求;在反馈信息包含任务调度成功信息时,将相应的任务的状态由调度状态更新为调度结束状态。
[0071] 本实施例的任务调度器在目标任务调度失败时,将所述任务的状态更新为待调度状态,并重新发送任务的调度请求,可以保证所有的任务都被合理的调度。
[0072] 在其中一个可选地实施例中,状态控制装置110中待调度状态的任务以任务队列的形式存储时,可以所述任务状态控制装置对所述分解信息的获取请求进行解析,得到队列标识;所述任务状态控制装置将所述队列标识对应的任务队列的队列头的任务的分解信息,发送至任务分解装置,并将所得队列头的任务的状态由待调度状态更新为调度状态。使用任务队列对待调度状态的任务进行管理,状态控制装置110在确定目标任务时,可以减少数据处理量,进而提高装置的数据处理效率。
[0073] 在其中一个可选地实施例中,当任务以队列的形式进行存储时,任务状态控制装置110可以对任务队列进行监测,若所述任务队列中存在待发射状态的任务,则向所述任务队列发送信息获取请求;接收所述任务队列根据所述信息获取请求返回的对应的任务的配置信息。该任务的配置信息包括依赖关系信息,任务的依赖关系信息可以描述任务的依赖关系,任务的依赖关系信息可以包含该任务的前置任务与后置任务。其中,某任务依赖的任务称为前置任务;反过来,相对于前置任务,依赖其的任务被称为后置任务。
[0074] 在另一个可选地实施例中,当使用多个队列对任务进行存储时,任务状态控制装置110可以对任务队列进行监测,根据所述任务队列中是否存在待发射状态的任务,确定目标队列;获取所述目标队列的队列标识;根据所述目标队列的队列标识的索引,向所述目标队列发送信息获取请求;接收目标队列根据所述信息获取请求返回的对应的任务的配置信息。该任务的配置信息包括依赖关系信息,任务的依赖关系信息可以描述任务的依赖关系,任务的依赖关系信息可以包含该任务的前置任务与后置任务。其中,某任务依赖的任务称为前置任务;反过来,相对于前置任务,依赖其的任务被称为后置任务。
[0075] 如图2所示,本实施例的任务状态控制装置110可以与一状态监控装置400连接。该状态监控装置400可以基于任务状态控制装置110的任务的注册请求为对应的任务分发一个任务标识。该任务标识可以用于区别不同的任务。具体地,任务状态控制装置110可以对任务的配置信息进行解析,得到任务的依赖关系信息,并根据该依赖关系信息判断任务的依赖关系是否满足,进而确定是否向状态监控装置400发送任务注册请求,获取该任务的任务标识。状态监控装置400可以根据其接收到的任务注册请求,为任务分配一个任务标识,以完成任务的注册。之后状态监控装置400将任务的任务标识传送至任务状态控制装置110,已获得任务标识的任务被任务状态控制装置110将状态更新为待调度状态。
[0076] 进一步地,任务状态控制装置110在根据任务的配置信息判断任务的依赖关系是否满足时,首先判断任务是否存在前置任务,若该任务存在前置任务,则向任务状态监控装置400发送查询请求,状态监控装置400根据该查询请求,查询该任务的前置任务是否执行完毕,并在该任务的前置任务执行完毕后,向任务状态控制装置110反馈该任务的前置任务执行完毕的消息,任务状态控制装置110根据该任务的前置任务执行完毕的消息确定任务的依赖关系满足。若该任务不存在前置任务,则任务状态控制装置110可直接确定任务的依赖关系满足。任务状态控制装置110在任务的依赖关系满足后,向状态监控装置400发送任务注册请求以获取所述任务的任务标识。
[0077] 可选地,状态监控装置400可以通过预先设置的校验位,校验任务的前置任务是否执行完毕。具体地,预先在设置每一任务的配置信息时,对应设置该任务对应的依赖关系校验位,每一任务对应的依赖关系校验位可以表征该任务是否执行完毕。更具体地,状态监控装置400查询任务的前置任务执行是否执行完毕,首先确定该任务的前置任务对应的依赖关系校验位,之后再根据该校验位的数值判断该任务的前置任务是否执行完毕。
[0078] 进一步地,状态监控装置400查询到任务的前置任务未执行完毕时,可以对该任务的前置任务是否执行完毕进行监听,即监听对应的依赖关系校验位是否更新,并在监听到对应依赖关系校验位更新后,判定该任务的前置任务执行完毕。
[0079] 在其中一个可选地实施例中,如图3所示,任务调度装置120可以连接第一处理器200和第二处理器300。可选地,第一处理器200可以是CPU等通用处理器,第二处理器300可以作为第一处理器200的协处理器。具体地,第二处理器300可以包括第二处理器本体310以及用于控制第二处理器本体运行的控制装置320,第二处理器本体310可以是IPU(Intelligence Processing Unit,智能处理器)或NPU(Neural-network Process Unit,神经网络处理器)等人工智能处理器。进一步地,第二处理器本体的数量可以为多个,多个第二处理器本体均连接至第二处理器本体的控制装置。
[0080] 任务调度装置120根据任务的全部任务信息及任务分解信息,可以获得该任务的各个作业所需的处理器信息(如处理器类型等信息),根据各个作业的大小获得各个作业所需的处理器的处理能等信息。处理器的处理器状态信息可以包括处理器的类型信息、处理器的运行状态信息(处理器是否空闲)以及处理器的处理能力等信息。这样,任务调度装置120可以根据该任务的全部任务信息及任务分解信息,以及处理器状态信息,将任务的各个作业与处理器进行匹配。进一步地,若作业与处理器匹配成功时,任务调度装置120还可以进一步获得与该作业匹配的处理器的处理器标识等信息,所述处理器标识用于标识处理器的身份。
[0081] 任务调度装置120根据待调度作业集中各个作业的目标权重从待调度作业集中选定目标作业,获得调度信息。具体地,任务调度装置100可以将该待调度作业集中的多个作业逐一发送至处理器进行处理。可选地,任务调度装置120根据待调度作业集中各个作业的目标权重确定当前进行调度的目标作业。其中,该待调度作业集中各个作业的目标权重可以计算获得,当然,该待调度作业集中各个作业的目标权重也可以是预先设置。
[0082] 可选地,任务调度装置120根据待调度作业集中各个作业的目标权重,并根据待调度作业集中各个作业的目标权重确定各个作业的调度优先级,即运算器可以根据待调度作业集中各个作业的目标权重大小,对各个作业进行排序,获得各个作业的调度优先级。最后根据各个作业的调度优先级,将待调度作业集中调度优先级最高的作业作为目标作业,获得调度信息。其中,该调度优先级最高的作业可以是目标权重最大的作业,即该目标作业为待调度作业集中目标权重最大的作业。这样,通过优先调度目标权重最大的作业,能够实现目标作业优先抢占处理器资源,从而可以优化任务调度过程。
[0083] 可选地,第二处理器本体的控制装置320可以收集第二处理器上各作业的执行状态信息,即收集各第二处理器本体310上作业的结束信息,并将该结束信息发送至状态监控装置400,状态监控装置400可以根据接收的结束信息对应更新状态表项,以实现对任务执行状态的监控。可选地,该状态监控装置400可以通过DMA连接至全局内存,从而状态监控装置400可以将其获得的各个作业的作业结束信息写入全局内存。
[0084] 在其中一个可选地实施例中,第二处理器本体的控制装置320还可以收集第二处理器本体310的处理器状态信息,并将该处理器状态信息发送给任务调度装置120。
[0085] 在一个实施例中,状态监控装置400还用于接收作业的作业结束信息,并根据作业的作业结束信息判断对应的任务是否存在执行异常;若对应的任务存在执行异常时,生成任务销毁指令。可选地,该作业的作业结束信息中包含结果标志数据,状态监控装置400可以根据作业的作业结束信息中包含的结果标志数据判断当前任务是否存在执行异常。
[0086] 例如,若确定当前任务存在执行异常时,则第二处理器本体的控制装置可以将当前作业的作业结束信息中的结果标志数据设置为非0(如该异常标志数据为1),此时,状态监控装置400可以根据该结果标志数据确定当前任务存在执行异常。若当前任务不存在执行异常,则第二处理器本体的控制装置可以将当前作业的作业结束信息中的结果标志数据设置为0,此时,状态监控装置400可以根据该结果标志数据确定当前任务不存在执行异常。同理设置其他任务,在此不做详述。
[0087] 进一步地,该作业的执行异常可以包括第一异常情况和第二异常情况,任务销毁指令可以包括与第一异常情况相对应的第一任务销毁指令和与第二异常情况相对应的第二任务销毁指令。可选地,在确定该作业存在异常时,异常处理电路还可以根据该作业的作业结束信息中包含的异常标志数据,判断当前任务的执行异常是第一异常情况还是第二异常情况。其中,该第一异常情况和第二异常情况可以是第二处理器资源不足及第二处理器故障等异常情况等异常中的一个或多个的组合。
[0088] 可选地,异常处理电路用于在根据作业的作业结束信息确定该作业存在第一异常情况时,则获得第一任务销毁指令,并将第一任务销毁指令传送至任务销毁电路,任务销毁电路根据第一任务销毁指令销毁该作业所属的任务。具体地,任务销毁电路在接收到第一任务销毁指令时,可以用于终止调度存在执行异常的作业,以及该作业之后的所有作业,并获得该作业所属的任务的调度结束信息。进一步地,当任务销毁电路完成该该作业所属的任务的销毁操作之后,可以将该作业所属的任务的任务调度结束信息传送至状态监控装置。
[0089] 任务调度器还包括寄存器堆,寄存器堆连接至任务分解装置。若异常处理电路根据作业的作业结束信息确定该作业存在第二异常情况时,则可以获得第二任务销毁指令,以销毁该作业所属的任务以及所述该作业所属的任务之后的所有任务。具体地,若异常处理电路根据作业的作业结束信息确定该作业存在第二异常情况时,则可以获得第二任务销毁指令,并将该第二任务销毁指令传送至任务销毁电路,通知任务销毁电路销毁该作业所属的任务及其之后的所有任务。可选地,当任务销毁电路接收到异常处理电路传送的第二任务销毁指令之后,任务销毁电路可以销毁该该作业所属的任务所在的任务队列中的所有任务。具体地,任务分派装置首先根据第二任务销毁指令终止该作业所属的任务及该作业所属的任务之后的其他任务的调度,并通知与该任务分派装置连接的寄存器清除该该作业所属的任务。在该作业所属的任务从寄存器中清除之后,可以获得该该作业所属的任务的调度结束信息。
[0090] 同时,在该作业所属的任务从寄存器中清除之后,任务分派装置可以向状态监控装置发送该作业所属的任务之后的其他任务对应的任务注册请求,以获得该作业所属的任务之后的其他任务对应的任务标识。状态监控装置的任务注册电路可以分别为该作业所属的任务之后的其他任务分配一个任务标识。当任务销毁电路接收到状态监控装置的任务注册电路反馈的任务标识时,任务销毁电路可以根据其接收到的任务标识,获得该作业所属的任务之后的其他任务对应的调度结束信息,以销毁该作业所属的任务之后的所有任务。进一步地,该任务分派装置还可以将各个待处理任务的调度结束信息传送至状态监控装置。
[0091] 通过设置上述异常处理机制,可以保证任务执行结果的准确性。并且,当存在异常情况时,状态监控装置可以通知任务销毁电路销毁对应的任务和/或其之后的全部任务,避免第二处理器在存在异常时继续执行其他任务带来的资源浪费。
[0092] 可选地,任务调度控制装置110获取所述目标任务的发送时间戳,所述目标任务的发送时间戳为将所述目标任务发送至所述任务调度装置的时刻,在接收到所述目标任务的调度反馈信息后,将所述目标任务的发送时间戳写入全局内存。具体地,任务调度控制装置110在目标任务发送时获取所述目标任务的发送时间戳,将该发送时间戳写入预设寄存器;
之后在接收到所述目标任务的调度反馈信息后,将所述目标任务的发送时间戳从预设寄存器中取出写入全局内存。
[0093] 本实施例的任务状态控制装置对任务的调度过程时间进行记录,可以使任务调度器或者计算机系统更好的了解任务的调度过程。
[0094] 如图4所示,在另一可选地实施例中,任务状态控制装置110可以连接一数据分割器130,该数据分割器可以将任务分解为多个作业。具体地,数据分割器130在任务状态控制装置110获取任务的任务标识后,将根据任务的配置信息将任务分解为多个作业。数据分割器130获取的任务的配置信息可以包括任务分解数量和作业大小,其中,任务分解数量是指该任务被分解形成的作业的数量,作业的大小是指每个作业的数据容量。数据分割器130能够根据该任务的配置信息中的任务分解数量和作业大小,将对应任务分解为多个作业。可n选地,任务分解数量为2 ,n为正整数。更进一步地,每个作业能够被分配至对应的处理器上进行处理,因此每个作业的大小可以为对应的处理器字长的整数倍。处理器字长可以反应处理器单次处理数据的能力。
[0095] 在其中一个可选地实施例中,当任务调度装置200确定了目标作业后,会获取从任务分解装置100对应获取该目标作业所属的任务的分解信息,从全局内存获取目标任务的全部任务信息,并将该任务的分解信息和任务的全部任务信息发送至对应的目标处理器。可选地,在目标处理器为第二处理器本体310时,任务分解装置100首先将目标任务的分解信息和全部任务信息发送给第二处理器的控制装置320,第二处理器的控制装置420接收该任务的分解信息和全部任务信息后,之后再有第二处理器本体的控制装置按照分解信息处理任务的全部任务信息,即将任务分解为多个作业,最后第二处理器本体的控制装置320将多个作业分发至第二处理器本体310。第二处理器本体310执行各个作业。
[0096] 在其中一个实施例中,第二处理器本体310包括如图5所示的计算装置,该计算装置包括:控制器单元11和运算单元12,其中,控制器单元11与运算单元12连接,该运算单元12包括:一个主处理电路和多个从处理电路。
[0097] 具体地,该控制器单元11,可以用于获取作业,该作业可以包括数据、机器学习模型以及计算指令。在一种可选方案中,具体的,获取输入数据以及计算指令方式可以通过数据输入输出单元得到,该数据输入输出单元具体可以为一个或多个数据I/O接口或I/O引脚。
[0098] 上述计算指令包括但不限于:正向运算指令或反向训练指令,或其他神经网络运算指令等等,例如卷积运算指令,本申请具体实施方式并不限制上述计算指令的具体表现形式。
[0099] 控制器单元11,还用于解析该计算指令得到多个运算指令,将该多个运算指令以及所述输入数据发送给所述主处理电路;
[0100] 主处理电路101,用于对所述输入数据执行前序处理以及与所述多个从处理电路之间传输数据以及运算指令;
[0101] 多个从处理电路102,用于依据从所述主处理电路传输的数据以及运算指令并行执行中间运算得到多个中间结果,并将多个中间结果传输给所述主处理电路;
[0102] 主处理电路101,用于对所述多个中间结果执行后续处理得到所述计算指令的计算结果。
[0103] 本申请提供的技术方案将运算单元设置成一主多从结构,对于正向运算的计算指令,其可以将依据正向运算的计算指令将数据进行拆分,这样通过多个从处理电路即能够对计算量较大的部分进行并行运算,从而提高运算速度,节省运算时间,进而降低功耗。
[0104] 可选的,上述机器学习计算具体可以包括:人工神经网络运算,上述输入数据具体可以包括:输入神经元数据和权值数据。上述计算结果具体可以为:人工神经网络运算的结果即输出神经元数据。
[0105] 对于神经网络中的运算可以为神经网络中的一层的运算,对于多层神经网络,其实现过程是,在正向运算中,当上一层人工神经网络执行完成之后,下一层的运算指令会将运算单元中计算出的输出神经元作为下一层的输入神经元进行运算(或者是对该输出神经元进行某些操作再作为下一层的输入神经元),同时,将权值也替换为下一层的权值;在反向运算中,当上一层人工神经网络的反向运算执行完成后,下一层运算指令会将运算单元中计算出的输入神经元梯度作为下一层的输出神经元梯度进行运算(或者是对该输入神经元梯度进行某些操作再作为下一层的输出神经元梯度),同时将权值替换为下一层的权值。
[0106] 上述机器学习计算还可以包括支持向量机运算,k-近邻(k-nn)运算,k-均值(k-means)运算,主成分分析运算等等。为了描述的方便,下面以人工神经网络运算为例来说明机器学习计算的具体方案。
[0107] 对于人工神经网络运算,如果该人工神经网络运算具有多层运算,多层运算的输入神经元和输出神经元并非是指整个神经网络的输入层中神经元和输出层中神经元,而是对于网络中任意相邻的两层,处于网络正向运算下层中的神经元即为输入神经元,处于网络正向运算上层中的神经元即为输出神经元。以卷积神经网络为例,设一个卷积神经网络有L层,K=1,2,...,L-1,对于第K层和第K+1层来说,我们将第K层称为输入层,其中的神经元为所述输入神经元,第K+1层称为输出层,其中的神经元为所述输出神经元。即除最顶层外,每一层都可以作为输入层,其下一层为对应的输出层。
[0108] 可选的,上述计算装置还可以包括:该存储单元10和直接内存访问单元50,存储单元10可以包括:寄存器、缓存中的一个或任意组合,具体的,所述缓存,用于存储所述计算指令;所述寄存器,用于存储所述输入数据和标量;所述缓存为高速暂存缓存。直接内存访问单元50用于从存储单元10读取或存储数据。
[0109] 可选的,该控制器单元包括:指令缓存单元110’、指令处理单元111和存储队列单元113;
[0110] 指令缓存单元110’,用于存储所述人工神经网络运算关联的计算指令。
[0111] 所述指令处理单元111,用于对所述计算指令解析得到多个运算指令。
[0112] 存储队列单元113,用于存储指令队列,该指令队列包括:按该队列的前后顺序待执行的多个运算指令或计算指令。
[0113] 举例说明,在一个可选的技术方案中,主处理电路也可以包括一个控制器单元,该控制器单元可以包括主指令处理单元,具体用于将指令译码成微指令。当然在另一种可选方案中,从处理电路也可以包括另一个控制器单元,该另一个控制器单元包括从指令处理单元,具体用于接收并处理微指令。上述微指令可以为指令的下一级指令,该微指令可以通过对指令的拆分或解码后获得,能被进一步解码为各部件、各单元或各处理电路的控制信号
[0114] 在一种可选方案中,该计算指令的结构可以如下表所示。
[0115]操作码 寄存器或立即数 寄存器/立即数 ...
[0116] 上表中的省略号表示可以包括多个寄存器或立即数。
[0117] 在另一种可选方案中,该计算指令可以包括:一个或多个操作域以及一个操作码。该计算指令可以包括神经网络运算指令。以神经网络运算指令为例,如表1所示,其中,寄存器号0、寄存器号1、寄存器号2、寄存器号3、寄存器号4可以为操作域。其中,每个寄存器号0、寄存器号1、寄存器号2、寄存器号3、寄存器号4可以是一个或者多个寄存器的号码。
[0118]
[0119] 上述寄存器可以为片外存储器,当然在实际应用中,也可以为片内存储器,用于存储数据,该数据具体可以为n维数据,n为大于等于1的整数,例如,n=1时,为1维数据,即向量,如n=2时,为2维数据,即矩阵,如n=3或3以上时,为多维张量。
[0120] 可选的,该控制器单元还可以包括:
[0121] 所述依赖关系处理单元108,用于在具有多个运算指令时,确定第一运算指令与所述第一运算指令之前的第零运算指令是否存在关联关系,如所述第一运算指令与所述第零运算指令存在关联关系,则将所述第一运算指令缓存在所述指令存储单元内,在所述第零运算指令执行完毕后,从所述指令存储单元提取所述第一运算指令传输至所述运算单元;
[0122] 所述确定该第一运算指令与第一运算指令之前的第零运算指令是否存在关联关系包括:
[0123] 依据所述第一运算指令提取所述第一运算指令中所需数据(例如矩阵)的第一存储地址区间,依据所述第零运算指令提取所述第零运算指令中所需矩阵的第零存储地址区间,如所述第一存储地址区间与所述第零存储地址区间具有重叠的区域,则确定所述第一运算指令与所述第零运算指令具有关联关系,如所述第一存储地址区间与所述第零存储地址区间不具有重叠的区域,则确定所述第一运算指令与所述第零运算指令不具有关联关系。
[0124] 在另一种可选实施例中,运算单元12如图6所示,可以包括一个主处理电路101和多个从处理电路102。在一个实施例里,如图6所示,多个从处理电路呈阵列分布;每个从处理电路与相邻的其他从处理电路连接,主处理电路连接所述多个从处理电路中的k个从处理电路,所述k个从处理电路为:第1行的n个从处理电路、第m行的n个从处理电路以及第1列的m个从处理电路,需要说明的是,如图6所示的K个从处理电路仅包括第1行的n个从处理电路、第m行的n个从处理电路以及第1列的m个从处理电路,即该k个从处理电路为多个从处理电路中直接与主处理电路连接的从处理电路。
[0125] K个从处理电路,用于在所述主处理电路以及多个从处理电路之间的数据以及指令的转发。
[0126] 可选的,如图7所示,该主处理电路还可以包括:转换处理电路110”、激活处理电路111、加法处理电路112中的一种或任意组合;
[0127] 转换处理电路110”,用于将主处理电路接收的数据块或中间结果执行第一数据结构与第二数据结构之间的互换(例如连续数据与离散数据的转换);或将主处理电路接收的数据块或中间结果执行第一数据类型与第二数据类型之间的互换(例如定点类型与浮点类型的转换)。
[0128] 激活处理电路111,用于执行主处理电路内数据的激活运算。
[0129] 加法处理电路112,用于执行加法运算或累加运算。
[0130] 所述主处理电路,用于将确定所述输入神经元为广播数据,权值为分发数据,将分发数据分配成多个数据块,将所述多个数据块中的至少一个数据块以及多个运算指令中的至少一个运算指令发送给所述从处理电路;
[0131] 所述多个从处理电路,用于依据该运算指令对接收到的数据块执行运算得到中间结果,并将运算结果传输给所述主处理电路;
[0132] 所述主处理电路,用于将多个从处理电路发送的中间结果进行处理得到该计算指令的结果,将该计算指令的结果发送给所述控制器单元。
[0133] 所述从处理电路包括:乘法处理电路。
[0134] 所述乘法处理电路,用于对接收到的数据块执行乘积运算得到乘积结果。
[0135] 转发处理电路(可选的),用于将接收到的数据块或乘积结果转发。
[0136] 累加处理电路,所述累加处理电路,用于对该乘积结果执行累加运算得到该中间结果。
[0137] 另一个实施例里,该运算指令为矩阵乘以矩阵的指令、累加指令、激活指令等等计算指令。
[0138] 下面通过神经网络运算指令来说明如图5所示的计算装置的具体计算方法。对于神经网络运算指令来说,其实际需要执行的公式可以为: 其中,即将权值w乘以输入数据xi,进行求和,然后加上偏置b后做激活运算s(h),得到最终的输出结果s。
[0139] 在一种可选的实施方案中,如图8所示,所述运算单元包括:树型模块40,所述树型模块包括:一个根端口401和多个支端口404,所述树型模块的根端口连接所述主处理电路,所述树型模块的多个支端口分别连接多个从处理电路中的一个从处理电路;
[0140] 上述树型模块具有收发功能,例如如图8所示,该树型模块即为发送功能,如图9所示,该树型模块即为接收功能。
[0141] 所述树型模块,用于转发所述主处理电路与所述多个从处理电路之间的数据块、权值以及运算指令。
[0142] 可选的,该树型模块为计算装置的可选择结果,其可以包括至少1层节点,该节点为具有转发功能的线结构,该节点本身可以不具有计算功能。如树型模块具有零层节点,即无需该树型模块。
[0143] 可选的,该树型模块可以为n叉树结构,例如,如图10所示的二叉树结构,当然也可以为三叉树结构,该n可以为大于等于2的整数。本申请具体实施方式并不限制上述n的具体取值,上述层数也可以为2,从处理电路可以连接除倒数第二层节点以外的其他层的节点,例如可以连接如图10所示的倒数第一层的节点。
[0144] 可选的,上述运算单元可以携带单独的缓存,如图11所示,可以包括:神经元缓存单元,该神经元缓存单元63缓存该从处理电路的输入神经元向量数据和输出神经元值数据。
[0145] 如图12所示,该运算单元还可以包括:权值缓存单元64,用于缓存该从处理电路在计算过程中需要的权值数据。
[0146] 在一种可选实施例中,运算单元12如图13所示,可以包括分支处理电路103;其具体的连接结构如图13所示,其中,
[0147] 主处理电路101与分支处理电路103(一个或多个)连接,分支处理电路103与一个或多个从处理电路102连接;
[0148] 分支处理电路103,用于执行转发主处理电路101与从处理电路102之间的数据或指令。
[0149] 在一种可选实施例中,以神经网络运算中的全连接运算为例,过程可以为:y=f(wx+b),其中,x为输入神经元矩阵,w为权值矩阵,b为偏置标量,f为激活函数,具体可以为:sigmoid函数,tanh、relu、softmax函数中的任意一个。这里假设为二叉树结构,具有8个从处理电路,其实现的方法可以为:
[0150] 控制器单元从存储单元内获取输入神经元矩阵x,权值矩阵w以及全连接运算指令,将输入神经元矩阵x,权值矩阵w以及全连接运算指令传输给主处理电路;
[0151] 主处理电路确定该输入神经元矩阵x为广播数据,确定权值矩阵w为分发数据,将权值矩阵w拆分成8个子矩阵,然后将8个子矩阵通过树型模块分发给8个从处理电路,将输入神经元矩阵x广播给8个从处理电路,
[0152] 从处理电路并行执行8个子矩阵与输入神经元矩阵x的乘法运算和累加运算得到8个中间结果,将8个中间结果发送给主处理电路;
[0153] 主处理电路,用于将8个中间结果排序得到wx的运算结果,将该运算结果执行偏置b的运算后执行激活操作得到最终结果y,将最终结果y发送至控制器单元,控制器单元将该最终结果y输出或存储至存储单元内。
[0154] 如图5所示的计算装置执行神经网络正向运算指令的方法具体可以为:
[0155] 控制器单元从指令存储单元内提取神经网络正向运算指令、神经网络运算指令对应的操作域以及至少一个操作码,控制器单元将该操作域传输至数据访问单元,将该至少一个操作码发送至运算单元。
[0156] 控制器单元从存储单元内提取该操作域对应的权值w和偏置b(当b为0时,不需要提取偏置b),将权值w和偏置b传输至运算单元的主处理电路,控制器单元从存储单元内提取输入数据Xi,将该输入数据Xi发送至主处理电路。
[0157] 主处理电路依据该至少一个操作码确定为乘法运算,确定输入数据Xi为广播数据,确定权值数据为分发数据,将权值w拆分成n个数据块;
[0158] 控制器单元的指令处理单元依据该至少一个操作码确定乘法指令、偏置指令和累加指令,将乘法指令、偏置指令和累加指令发送至主处理电路,主处理电路将该乘法指令、输入数据Xi以广播的方式发送给多个从处理电路,将该n个数据块分发给该多个从处理电路(例如具有n个从处理电路,那么每个从处理电路发送一个数据块);多个从处理电路,用于依据该乘法指令将该输入数据Xi与接收到的数据块执行乘法运算得到中间结果,将该中间结果发送至主处理电路,该主处理电路依据该累加指令将多个从处理电路发送的中间结果执行累加运算得到累加结果,依据该偏置指令将该累加结果执行加偏置b得到最终结果,将该最终结果发送至该控制器单元。
[0159] 另外,加法运算和乘法运算的顺序可以调换。
[0160] 本申请提供的技术方案通过一个指令即神经网络运算指令即实现了神经网络的乘法运算以及偏置运算,在神经网络计算的中间结果均无需存储或提取,减少了中间数据的存储以及提取操作,所以其具有减少对应的操作步骤,提高神经网络的计算效果的优点。
[0161] 在一个实施例中,如图14所示,本申请实施例还提供了一种任务调度控制方法,能够应用于上述任一实施例的任务调度器中,以实现对任务的有序调度。具体地,上述方法包括如下步骤:
[0162] S100,任务状态控制装置获取任务的任务标识,在获取任务的任务标识后,将该任务的状态更新为待调度状态,并向任务调度装置发送该待调度状态的任务的调度请求。
[0163] 具体地,任务调度器的任务状态控制装置110首先对任务的配置信息进行解析,得到任务的依赖关系信息,根据该依赖关系判断任务的依赖关系是否满足,在任务的依赖关系满足时向状态监控装置400发送任务的注册请求,获取该任务的任务标识。状态监控装置400可以根据其接收到的任务的注册请求,为任务分配一个任务标识,以完成任务的注册。
之后状态监控装置400将任务的任务标识传送至任务状态控制装置110,任务状态控制装置
110接收该任务标识后,将对应的任务的状态更新为待调度状态。
[0164] S200,所述任务调度装置根据所述任务的调度请求发送所述任务的分解信息的获取请求至所述任务状态控制装置。
[0165] 具体地,任务调度装置120所述任务调度装置根据所述任务的调度请求发送所述任务的分解信息的获取请求至所述任务状态控制装置。
[0166] S300,任务状态控制装置根据所述分解信息的获取请求发送任务的分解信息至所述任务调度装置,并将相应的任务的状态更新为调度状态。
[0167] 具体地,任务状态控制装置110所述任务状态控制装置根据所述分解信息的获取请求发送任务的分解信息至所述任务调度装置,并将相应的任务的状态更新为调度状态。
[0168] 可选地,状态控制装置110中待调度状态的任务以任务队列的形式存储时,任务状态控制装置110任务状态控制装置对所述分解信息的获取请求进行解析,得到队列标识;任务状态控制装置110将所述队列标识对应的任务队列的队列头的任务的分解信息,发送至任务分解装置120,并将所得队列头的任务的状态由待调度状态更新为调度状态。
[0169] 本实施例提出的任务调度控制方法,在获取任务的任务标识后,通过其任务状态控制装置改变任务的状态,控制任务调度装置的任务调度进程,可以保证任务准确高效的调度。
[0170] 作为一种可选地实施方式,在步骤S300之后,上述任务调度控制方法还包括:任务状态控制装置110接收所述任务调度装置120返回的调度反馈信息,并根据调度反馈信息将相应的任务的状态更新为待调度状态或调度结束状态。具体地,若所述反馈信息包含任务调度失败信息,任务状态控制装置110将相应的任务状态由调度状态更新为待调度状态;若所述反馈信息包含任务调度成功信息,任务状态控制装置110将相应的任务的状态由调度状态更新为调度结束状态。
[0171] 在其中一个可选地实施例中,如图15所示,在步骤S100之前,上述任务的调度控制方法还包括:
[0172] 步骤S400:任务状态控制装置获取所述任务的配置信息,对任务的配置信息进行解析,得到任务的依赖关系信息,并根据依赖关系信息,判断任务的依赖关系是否满足。
[0173] 步骤S500,任务状态控制装置在任务的依赖关系满足后,向状态监控装置发送任务的注册请求以获取任务的任务标识。
[0174] 具体地,任务状态控制装置110可以对任务的配置信息进行解析,得到任务的依赖关系信息,并根据该依赖关系判断任务的依赖关系是否满足,进而确定是否向状态监控装置400发送任务注册请求,获取该任务的任务标识。状态监控装置400可以根据其接收到的任务注册请求,为任务分配一个任务标识,以完成任务的注册。之后状态监控装置400将任务的任务标识传送至任务状态控制装置110。
[0175] 在其中一个可选地实施例中,如图16所示,步骤S400包括:
[0176] 步骤S410,任务状态控制装置根据依赖关系信息,判断任务是否存在前置任务;若任务不存在前置任务,则执行步骤S420,任务状态控制装置判定所述任务的依赖关系满足;若所述任务存在前置任务,则执行步骤S430,任务状态控制装置根据所述任务的前置任务是否执行完毕,判断所述任务的依赖关系是否满足。
[0177] 具体地,任务状态控制装置110在根据任务的配置信息判断是否满足任务的数据依赖关系时,首先判断任务是否存在前置任务,若该任务存在前置任务,则向任务状态监控装置400发送查询请求,状态监控装置400根据该查询请求,查询该任务的前置任务是否执行完毕,并在该任务的前置任务执行完毕后,向任务状态控制装置110反馈该任务的前置任务执行完毕的消息,任务状态控制装置110根据该任务的前置任务执行完毕的消息确定任务的依赖关系满足。若该任务不存在前置任务,则任务状态控制装置110可直接确定任务的依赖关系满足。任务状态控制装置110在任务的依赖关系满足后,向状态监控装置400发送任务注册请求以获取所述任务的任务标识。
[0178] 进一步地,状态监控装置400可以通过预先设置的校验位,校验任务的前置任务是否执行完毕。具体地,预先在设置每一任务的配置信息时,对应设置该任务对应的依赖关系校验位,每一任务对应的依赖关系校验位可以表征该任务是否执行完毕。更具体地,状态监控装置400查询任务的前置任务执行是否执行完毕,首先确定该任务的前置任务对应的依赖关系校验位,之后再根据该校验位的数值判断该任务的前置任务是否执行完毕。
[0179] 更进一步地,状态监控装置400查询到任务的前置任务未执行完毕时,可以对该任务的前置任务是否执行完毕进行监听,即监听对应的依赖关系校验位是否更新,并在监听到对应依赖关系校验位更新后,判定该任务的前置任务执行完毕。
[0180] 在其中一个可选地实施例中,如图17所示,上述任务调度控制方法,还包括:
[0181] 步骤S600,任务状态控制装置获取目标任务的发送时间戳,目标任务的发送时间戳为将目标任务发送至所述任务调度装置的时刻。
[0182] 步骤S700,任务状态控制装置在接收到目标任务的调度反馈信息后,将目标任务的发送时间戳写入全局内存。
[0183] 具体地,任务调度控制装置110在目标任务发送时获取所述目标任务的发送时间戳,将该发送时间戳写入预设寄存器;之后在接收到所述目标任务的调度反馈信息后,将所述目标任务的发送时间戳从预设寄存器中取出写入全局内存。
[0184] 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
[0185] 以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0186] 以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈