[发明专利]基于有向无环图的任务调度方法、系统、设备及存储介质有效
申请号: | 202210249950.2 | 申请日: | 2022-03-14 |
公开(公告)号: | CN114625507B | 公开(公告)日: | 2023-01-03 |
发明(设计)人: | 曾赞达;滕州;罗文杰;卢树文;周伟杰;谭彪荣 | 申请(专利权)人: | 广州经传多赢投资咨询有限公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48 |
代理公司: | 北京维正专利代理有限公司 11508 | 代理人: | 俞振明 |
地址: | 511400 广东省广州市番禺区东环*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 无环图 任务 调度 方法 系统 设备 存储 介质 | ||
本申请公开了一种基于有向无环图的任务调度方法、系统、设备及存储介质,所述基于有向无环图的任务调度方法包括:将一项总任务划分为若干可独立执行的最小单元作为任务节点;基于有向无环图确定各任务节点的依赖关系,并根据依赖关系确定各任务节点对应的执行次序,以便基于所述执行次序为各任务节点分配工作线程;本申请具有提高存在大量数据依赖时多线程计算的效率的效果。
技术领域
本申请涉及计算机任务调度的技术领域,尤其是涉及一种基于有向无环图的任务调度方法、系统、设备及存储介质。
背景技术
在金融领域,常常需要利用计算机进行大量的数据运算,一般来说,对于一组任务,可以使用多核处理器的硬件优势,将任务分发到不同的核心中执行,线程池也自然而然地成为了通用的任务调度组件,在线程池中,用户通过接口将任务放入池中,线程池的调度线程会分配一个工作线程来执行被投入的任务,但是,线程池无法以用户特定的顺序来执行任务,只能随机调度。
而金融数据的计算往往是伴随着大量的数据依赖,当用户拿到一组基础数据,需要计算若干个衍生数据时,基础数据往往无法直接用于计算衍生数据,而是需要计算出一组中间数据,然后再由中间数据计算衍生数据,如果采用传统的多线程方案,就会存在大量的线程同步问题,因为用户只能通过添加任何线程同步逻辑的方式来组织数据的运算次序,若用户无法在多线程计算中描述任务的依赖关系,则只能使用单线程进行计算,计算的速度就会大幅下降。
针对上述相关技术,发明人认为存在难以在不添加线程同步逻辑的情况下描述任务的执行次序的问题。
发明内容
为了提高存在大量数据依赖时多线程计算的效率,本申请提供一种基于有向无环图的任务调度方法、系统、设备及存储介质。
本申请的发明目的一采用如下技术方案实现:
一种基于有向无环图的任务调度方法,包括:
将一项总任务划分为若干可独立执行的最小单元作为任务节点;
基于有向无环图确定各任务节点的依赖关系,并根据依赖关系确定各任务节点对应的执行次序,以便基于所述执行次序为各任务节点分配工作线程。
通过采用上述技术方案,将一项总任务划分为若干可独立执行的最小单元作为任务节点,便于将总任务进行最大程度的细化,以便充分发挥计算机多线程工作的优势,提高总任务的完成效率;根据一项总任务所划分的若干任务节点创建有向无环图,从而获取每一任务节点对应的依赖关系,以确定各任务节点的执行次序,以便后续根据各任务节点的执行次序为各任务节点分配工作线程执行各任务节点,为各任务节点的顺利执行提供保障,以防各任务节点的执行顺序错误导致任务无法执行或者执行结果错误。
本申请在一较佳示例中:基于有向无环图确定各任务节点的依赖关系,并根据依赖关系确定各任务节点对应的执行次序的步骤中,具体包括:
获取用户上传的目标任务节点并判断所述目标任务节点有无依赖于其他任务节点;
若所述目标任务节点无依赖于其他任务节点,则添加所述目标任务节点并设定为最先执行;
若所述目标任务节点有依赖于其他任务节点,则添加所述目标任务节点并基于所述目标任务节点的依赖关系确定执行次序。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广州经传多赢投资咨询有限公司,未经广州经传多赢投资咨询有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210249950.2/2.html,转载请声明来源钻瓜专利网。