内核调度方法及系统技术方案

技术编号:15895194 阅读:17 留言:0更新日期:2017-07-28 19:45
本公开提供了一种内核调度方法,应用于多核处理器,多核处理器中设置有多个内核,该方法包括:获取多个目标任务,其中,多个目标任务需要同步运行在多核处理器中的至少一个内核上;确定第一关系,第一关系包括多个目标任务中各目标任务间的关系;确定第二关系,第二关系包括多个内核中各内核间的关系;以及根据确定出的第一关系和第二关系,从多个内核中为多个目标任务调度对应的内核。本公开还提供了一种内核调度系统。

Kernel scheduling method and system

The invention provides a kernel scheduling method applied to multi-core processor, multiple kernel settings of multi-core processors, the method comprises: obtaining a plurality of goals and tasks, the multiple task requires at least one kernel in the multi-core processor in synchronous operation; to determine the relationship between the first and the first the relationship between the objectives and tasks including multiple tasks; to determine the second relationships, including the relationships between the second kernel multiple kernel; and according to the determined relationship between first and second corresponding relationship, task scheduling for multiple objects from multiple kernel kernel. The present disclosure also provides a kernel scheduling system.

【技术实现步骤摘要】
内核调度方法及系统
本公开涉及一种内核调度方法及系统。
技术介绍
多核处理器是指在一枚处理器中集成两个或多个完整的计算引擎(内核,即CPU),此时处理器能支持系统总线上的多个处理器,由总线控制器提供所有总线控制信号和命令信号。随着多核技术的发展,目前,一枚处理器中可集成的内核数目越来越多,成为名副其实的众核处理器。专利技术人发现,在相关技术中,内核数目众多的多核处理器在应对需要大量进程间同步(fullmesh)的场景时,一般需要使用特定调度策略,从所有空闲内核中随机调度指定数目的内核来运行这些进程,导致程序执行性能不佳。针对上述问题,目前尚未提出有效的解决方案。
技术实现思路
本专利技术实施例提供了一种内核调度方法,以至少解决相关技术中程序执行性能不佳的技术问题。本公开的一个方面提供了一种内核调度方法,应用于多核处理器,上述多核处理器中设置有多个内核,上述方法包括:获取多个目标任务,其中,上述多个目标任务需要同步运行在上述多核处理器中的至少一个内核上;确定第一关系,上述第一关系包括上述多个目标任务中各目标任务间的关系;确定第二关系,上述第二关系包括上述多个内核中各内核间的关系;以及根据确定出的上述第一关系和上述第二关系,从上述多个内核中为上述多个目标任务调度对应的内核。可选地,确定第一关系包括确定上述多个目标任务中各目标任务间的通信紧密度,该操作包括:获取目标内存地址;确定各目标任务在预设时间段内对上述目标内存地址的访问次数;以及根据上述访问次数确定各目标任务间的通信紧密度。可选地,获取目标内存地址包括:获取上述多个目标任务在上述预设时间段内对同一内存中各内存地址的访问热度;以及根据上述访问热度确定访问热度值等于预设值的内存地址。可选地,确定第二关系包括:获取上述多个内核中各内核间的平均消息传递延迟;以及根据上述平均消息传递延迟确定上述第二关系。可选地,获取上述多个内核中各内核间的平均消息传递延迟包括:将第一预设任务运行在第一内核上且将第二预设任务运行在第二内核上,以对上述多个内核中各内核间进行消息传递延迟测试,其中,上述第一预设任务和上述第二预设任务共享同一内存中的存储信息;以及在上述第一预设任务在第一缓存中修改上述存储信息后,通知上述第二预设任务,以使上述第二预设任务在第二缓存中对上述存储信息做相同修改,从而完成一次消息传递,如此循环预定时间后,计算各内核间的平均消息传递延迟,其中,上述第一缓存与上述第一内核对应,上述第二缓存与上述第二内核对应。可选地,根据确定出的上述第一关系和上述第二关系,从上述多个内核中为上述多个目标任务调度对应的内核包括:按照上述平均消息传递延迟由小到大或由大到小的顺序给上述上述多个内核中各内核排序,得到内核序列;以及按照上述通信紧密度由小到大或由大到小的顺序将上述多个目标任务中各目标任务分配到上述内核序列上。本公开的另一个方面提供了一种内核调度系统,应用于多核处理器,上述多核处理器中设置有多个内核,上述系统包括:获取模块,用于获取多个目标任务,其中,上述多个目标任务需要同步运行在上述多核处理器中的至少一个内核上;第一确定模块,用于确定第一关系,上述第一关系包括上述多个目标任务中各目标任务间的关系;第二确定模块,用于确定第二关系,上述第二关系包括上述多个内核中各内核间的关系;以及调度模块,用于根据确定出的上述第一关系和上述第二关系,从上述多个内核中为上述多个目标任务调度对应的内核。可选地,上述第一确定模块还用于确定上述多个目标任务中各目标任务间的通信紧密度,上述第一确定模块包括:第一获取单元,用于获取目标内存地址;第一确定单元,用于确定各目标任务在预设时间段内对上述目标内存地址的访问次数;以及第二确定单元,用于根据上述访问次数确定各目标任务间的通信紧密度。可选地,上述获取单元包括:获取子单元,用于获取上述多个目标任务在上述预设时间段内对同一内存中各内存地址的访问热度;以及确定子单元,用于根据上述访问热度确定访问热度值等于预设值的内存地址。可选地,上述第二确定模块包括:第二获取单元,用于获取上述多个内核中各内核间的平均消息传递延迟;以及第三确定单元,用于根据上述平均消息传递延迟确定上述第二关系。可选地,上述第二获取单元包括:运行子单元,用于将第一预设任务运行在第一内核上且将第二预设任务运行在第二内核上,以对上述多个内核中各内核间进行消息传递延迟测试,其中,上述第一预设任务和上述第二预设任务共享同一内存中的存储信息;以及处理子单元,用于在上述第一预设任务在第一缓存中修改上述存储信息后,通知上述第二预设任务,以使上述第二预设任务在第二缓存中对上述存储信息做相同修改,从而完成一次消息传递,如此循环预定时间后,计算各内核间的平均消息传递延迟,其中,上述第一缓存与上述第一内核对应,上述第二缓存与上述第二内核对应。可选地,上述调度模块包括:排序单元,用于按照上述平均消息传递延迟由小到大或由大到小的顺序给上述上述多个内核中各内核排序,得到内核序列;以及分配单元,用于按照上述通信紧密度由小到大或由大到小的顺序将上述多个目标任务中各目标任务分配到上述内核序列上。本公开的另一方面提供了一种非易失性存储介质,存储有计算机可执行指令,上述指令在被执行时用于实现如上上述的方法。本公开的另一方面提供了一种处理器,上述处理器用于执行计算机可执行指令,上述指令在被执行时用于实现如上上述的方法。附图说明为了更完整地理解本公开及其优势,现在将参考结合附图的以下描述,其中:图1示意性示出了根据本公开的实施例的内核调度方法及系统的应用场景;图2示意性示出了根据本公开的实施例的内核调度方法的流程图;图3示意性示出了相关技术的进程通讯模型的示意图;图4示意性示出了根据本公开实施例的确定各进程间的通信紧密度的原理图;图5A示意性示出了根据本公开实施例的确定各内核间的平均消息传递延迟的原理图;图5B示意性示出了根据本公开实施例的确定各内核间的平均消息传递延迟的流程图;图6示意性示出了根据本公开的实施例的内核调度系统的框图;以及图7示意性示出了根据本公开的另一实施例的内核调度系统的框图。具体实施方式以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。这里使用的词语“一”、“一个(种)”和“该”等也应包括“多个”、“多种”的意思,除非上下文另外明确指出。此外,在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。附图中示出了一些方框图和/或流程图。应理解,方框图和/或流程图中的一些方框或其组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而这些指令在由该处理器执行时可以创建用于实现这些方框图和/或本文档来自技高网...
内核调度方法及系统

【技术保护点】
一种内核调度方法,应用于多核处理器,所述多核处理器中设置有多个内核,所述方法包括:获取多个目标任务,其中,所述多个目标任务需要同步运行在所述多核处理器中的至少一个内核上;确定第一关系,所述第一关系包括所述多个目标任务中各目标任务间的关系;确定第二关系,所述第二关系包括所述多个内核中各内核间的关系;以及根据确定出的所述第一关系和所述第二关系,从所述多个内核中为所述多个目标任务调度对应的内核。

【技术特征摘要】
1.一种内核调度方法,应用于多核处理器,所述多核处理器中设置有多个内核,所述方法包括:获取多个目标任务,其中,所述多个目标任务需要同步运行在所述多核处理器中的至少一个内核上;确定第一关系,所述第一关系包括所述多个目标任务中各目标任务间的关系;确定第二关系,所述第二关系包括所述多个内核中各内核间的关系;以及根据确定出的所述第一关系和所述第二关系,从所述多个内核中为所述多个目标任务调度对应的内核。2.根据权利要求1所述的方法,其中,确定第一关系包括确定所述多个目标任务中各目标任务间的通信紧密度,该操作包括:获取目标内存地址;确定各目标任务在预设时间段内对所述目标内存地址的访问次数;以及根据所述访问次数确定各目标任务间的通信紧密度。3.根据权利要求2所述的方法,其中,获取目标内存地址包括:获取所述多个目标任务在所述预设时间段内对同一内存中各内存地址的访问热度;以及根据所述访问热度确定访问热度值等于预设值的内存地址。4.根据权利要求1至3中任一项所述的方法,其中,确定第二关系包括:获取所述多个内核中各内核间的平均消息传递延迟;以及根据所述平均消息传递延迟确定所述第二关系。5.根据权利要求4所述的方法,其中,获取所述多个内核中各内核间的平均消息传递延迟包括:将第一预设任务运行在第一内核上且将第二预设任务运行在第二内核上,以对所述多个内核中各内核间进行消息传递延迟测试,其中,所述第一预设任务和所述第二预设任务共享同一内存中的存储信息;以及在所述第一预设任务在第一缓存中修改所述存储信息后,通知所述第二预设任务,以使所述第二预设任务在第二缓存中对所述存储信息做相同修改,从而完成一次消息传递,如此循环预定时间后,计算各内核间的平均消息传递延迟,其中,所述第一缓存与所述第一内核对应,所述第二缓存与所述第二内...

【专利技术属性】
技术研发人员:杨立中汤文军
申请(专利权)人:联想北京有限公司
类型:发明
国别省市:北京,11

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

1