算法模块调度方法、算法模块调度装置以及可读存储介质制造方法及图纸

技术编号:33504199 阅读:15 留言:0更新日期:2022-05-19 01:14
本申请提供一种算法模块调度方法、算法模块调度装置以及计算机可读存储介质。该算法模块调度方法包括:获取配置文件,其中,所述配置文件包括若干具有前后结果顺序依赖关系的算法模块;利用所述配置文件中的前后结果顺序依赖关系配置所述若干算法模块的优先级;按照所述若干算法模块的优先级创建任务队列;基于任务队列中的队列位置前后关系调度算法模块处理数据。通过上述方式,算法模块调度方法实现自适应的任务优先级标记和队列排序,提高了算法方案的整体处理效率以及防止算法方案卡死。法方案的整体处理效率以及防止算法方案卡死。法方案的整体处理效率以及防止算法方案卡死。

【技术实现步骤摘要】
算法模块调度方法、算法模块调度装置以及可读存储介质


[0001]本申请涉及算法模型处理
,特别是涉及一种算法模块调度方法、算法模块调度装置以及计算机可读存储介质。

技术介绍

[0002]在图像处理算法方案程序的执行中,大多都是通过任务队列与线程池的方式对图像处理算法的任务调度执行进行管理。
[0003]任务队列主要通过先进先出的方式进行管理,当有任务准备就绪时插入任务队列尾部等待,当有空闲执行线程时从任务队列头部获取任务进行执行。
[0004]当前的算法方案中不同算法模块间具有相互的依赖与顺序关系,先进先出的任务队列方式会导致算法方案整体效率不高且在线程数不够的情况下导致整体流程卡死。

技术实现思路

[0005]本申请提供了一种算法模块调度方法、算法模块调度装置以及计算机可读存储介质。
[0006]本申请提供了一种算法模块调度方法,所述算法模块调度方法包括:获取配置文件,其中,所述配置文件包括若干具有前后结果顺序依赖关系的算法模块;利用所述配置文件中的前后结果顺序依赖关系配置所述若干算法模块的优先级;按照所述若干算法模块的优先级创建任务队列;基于任务队列中的队列位置前后关系调度算法模块处理数据。
[0007]其中,所述利用所述配置文件中的前后结果顺序依赖关系配置所述若干算法模块的优先级,包括:利用所述配置文件中的前后结果顺序依赖关系生成所述若干算法模块的数据流向图;按照所述数据流向图的输入输出方向从小到大配置所述数据流向图中若干算法模块的优先级。
[0008]其中,所述按照所述若干算法模块的优先级创建任务队列,包括:将当前算法模块加入任务队列的队列尾部,其中,任务队列中包括若干算法模块;将所述当前算法模块与所述任务队列中的前一个算法模块进行优先级比较;在所述当前算法模块的优先级低于所述前一个算法模块的优先级时,对所述当前算法模块在所述任务队列中的位置不调整。
[0009]其中,所述将所述当前算法模块与所述任务队列中的前一个算法模块进行优先级比较之后,所述算法模块调度方法还包括:在所述当前算法模块的优先级高于所述前一个算法模块的优先级时,交换所述当前算法模块与所述前一个算法模块在所述任务队列中的队列位置,更新所述任务队列;
继续将所述当前算法模块与更新后的任务队列中的前一个算法模块进行优先级比较,直至更新后的任务队列中的当前算法模块的优先级低于前一个算法模块的优先级,或者所述当前算法模块位于更新后的任务队列的队列头部。
[0010]其中,所述按照所述若干算法模块的优先级创建任务队列,包括:获取当前算法模块的优先级,以及任务队列中所有队列算法模块的优先级;比较所述当前算法模块的优先级以及所述所有队列算法模块的优先级;在所述当前算法模块的优先级高于所述所有队列算法模块的优先级时,将所述当前算法模块加入所述任务队列的头部,更新所述任务队列;在所述当前算法模块的优先级低于一个或多个队列算法模块的优先级时,将所述当前算法模块在所述一个或多个队列算法模块中优先级最低的队列算法模块的后一位加入所述任务队列。
[0011]其中,所述基于任务队列中的队列位置前后关系调度算法模块处理数据,包括:获取所述任务队列的资源锁,开始调度所述任务队列中的算法模块处理数据;获取新算法模块,并将所述新算法模块按照优先级加入所述任务队列中;更新完所述任务队列后,释放所述任务队列的资源锁。
[0012]其中,所述基于任务队列中的队列位置前后关系调度算法模块处理数据,包括:获取设备信息,其中,所述设备信息包括处理器核数;判断所述设备信息中的处理器核数是否大于第一预设阈值;若是,基于所述处理器核数创建对应数量的线程池,通过所述对应数量的线程池中的执行线程执行所述任务队列中的任务;若否,创建若干执行线程,并将所述若干执行线程放入一个线程池内,通过一个线程池内的若干执行线程执行所述任务队列中的任务。
[0013]其中,所述基于所述处理器核数创建对应数量的线程池,包括:设置所述线程池与所述处理器的一一对应关系;在每一个线程池内设置若干执行线程,并设置每条执行线程与所述线程池对应的处理器的亲和性。
[0014]其中,所述获取设备信息之后,所述算法模块调度方法还包括:判断所述设备信息中的处理器核数是否大于第一预设阈值,且所述配置文件中的算法模块节点是否大于第二预设阈值;若是,基于所述处理器核数创建对应数量的线程池,通过所述对应数量的线程池中的执行线程执行所述任务队列中的任务;若否,创建若干执行线程,并将所述若干执行线程放入一个线程池内,通过一个线程池内的若干执行线程执行所述任务队列中的任务。
[0015]其中,所述算法模块调度方法,还包括:解析所述配置文件,获取所述配置文件中的若干算法节点,其中,每个算法节点对应至少一个算法模块;获取所述每个算法节点的节点输入流和节点输出流;按照所述若干算法节点的节点输入流和节点输出流,确定所述若干算法节点的流水线顺序;
利用所述若干算法节点的流水线顺序,确定对应的若干算法模块的前后结果顺序依赖关系。
[0016]本申请还提供了一种算法模块调度装置,所述算法模块调度装置包括获取模块、配置模块、创建模块以及调度模块;其中,所述获取模块,用于获取配置文件,其中,所述配置文件包括若干具有前后结果顺序依赖关系的算法模块;所述配置模块,用于利用所述配置文件中的前后结果顺序依赖关系配置所述若干算法模块的优先级;所述创建模块,用于按照所述若干算法模块的优先级创建任务队列;所述调度模块,用于基于任务队列中的队列位置前后关系调度算法模块处理数据。
[0017]本申请还提供了另一种算法模块调度装置,所述算法模块调度装置包括处理器和存储器,所述存储器中存储有程序数据,所述处理器用于执行所述程序数据以实现如上述的算法模块调度方法。
[0018]本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储程序数据,所述程序数据在被处理器执行时,用以实现上述的算法模块调度方法。
[0019]本申请的有益效果是:算法模块调度装置获取配置文件,其中,所述配置文件包括若干具有前后结果顺序依赖关系的算法模块;利用所述配置文件中的前后结果顺序依赖关系配置所述若干算法模块的优先级;按照所述若干算法模块的优先级创建任务队列;基于任务队列中的队列位置前后关系调度算法模块处理数据。通过上述方式,算法模块调度方法实现自适应的任务优先级标记和队列排序,提高了算法方案的整体处理效率以及防止算法方案卡死。
附图说明
[0020]为了更清楚地说明本专利技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。其中:图1是本申请提供的算法模块调度方法一实施例的流程示意图;图2是图1所示算法模块调度方法的具体流程图;图3是本申请提供的配置文件格式一实施例的示意图;图4是本申请提供的算法模本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种算法模块调度方法,其特征在于,所述算法模块调度方法包括:获取配置文件,其中,所述配置文件包括若干具有前后结果顺序依赖关系的算法模块;利用所述配置文件中的前后结果顺序依赖关系配置所述若干算法模块的优先级;按照所述若干算法模块的优先级创建任务队列;基于任务队列中的队列位置前后关系调度算法模块处理数据。2.根据权利要求1所述的算法模块调度方法,其特征在于,所述利用所述配置文件中的前后结果顺序依赖关系配置所述若干算法模块的优先级,包括:利用所述配置文件中的前后结果顺序依赖关系生成所述若干算法模块的数据流向图;按照所述数据流向图的输入输出方向从小到大配置所述数据流向图中若干算法模块的优先级。3.根据权利要求2所述的算法模块调度方法,其特征在于,所述按照所述若干算法模块的优先级创建任务队列,包括:将当前算法模块加入任务队列的队列尾部,其中,任务队列中包括若干算法模块;将所述当前算法模块与所述任务队列中的前一个算法模块进行优先级比较;在所述当前算法模块的优先级低于所述前一个算法模块的优先级时,对所述当前算法模块在所述任务队列中的位置不调整。4.根据权利要求3所述的算法模块调度方法,其特征在于,所述将所述当前算法模块与所述任务队列中的前一个算法模块进行优先级比较之后,所述算法模块调度方法还包括:在所述当前算法模块的优先级高于所述前一个算法模块的优先级时,交换所述当前算法模块与所述前一个算法模块在所述任务队列中的队列位置,更新所述任务队列;继续将所述当前算法模块与更新后的任务队列中的前一个算法模块进行优先级比较,直至更新后的任务队列中的当前算法模块的优先级低于前一个算法模块的优先级,或者所述当前算法模块位于更新后的任务队列的队列头部。5.根据权利要求2所述的算法模块调度方法,其特征在于,所述按照所述若干算法模块的优先级创建任务队列,包括:获取当前算法模块的优先级,以及任务队列中所有队列算法模块的优先级;比较所述当前算法模块的优先级以及所述所有队列算法模块的优先级;在所述当前算法模块的优先级高于所述所有队列算法模块的优先级时,将所述当前算法模块加入所述任务队列的头部,更新所述任务队列;在所述当前算法模块的优先级低于一个或多个队列算法模块的优先级时,将所述当前算法模块在所述一个或多个队列算法模块中优先级最低的队列算法模块的后一位加入所述任务队列。6.根据权利要求1所述的算法模块调度方法,其特征在于,所述基于任务队列中的队列位置前后关系调度算法模块处理数据,包括:获取所述任务队列的资源锁,开始调度所述任务队列中的算法模块处理数据;获取新算法模块,并将所述新算法模块按照优先级加入所述任务队列中;更新完所述任务队列后,释放所述任务队列的资源锁。
7.根据权利要求1所述的算法模块调度方法,...

【专利技术属性】
技术研发人员:殷俊黄鹏岑鑫虞响吴立
申请(专利权)人:浙江大华技术股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1