一种并行程序任务处理方法及其装置与流程

文档序号:12463650阅读:192来源:国知局
一种并行程序任务处理方法及其装置与流程

本发明涉及进程处理技术领域,特别是涉及一种并行程序任务处理方法及其装置。



背景技术:

目前的并行程序任务处理中,常用的方式为有序无规则并行程序任务处理方式,这种规则下的并行任务处理过程有三个特征,第一为任务必须遵循整体或局部的顺序(基本为时间顺序);第二为任务可能有预先不知道的数据相关性;第三为任务可能会动态地创建子任务,并规划在未来运行。

这种方式下,由于多个处理核心并行处理,而任务依据时间顺序依次分配至各个处理核心进行处理,容易使得具有关联性的几个任务由不同的处理核心进行处理,这样导致后续任务进行处理时需要先从处理前序任务的处理核心对应的缓存内读取所需的数据才能进行任务,效率低(例如任务2与任务7相关,任务7处理时需要首先去处理任务2的处理核心对应的缓存出下载任务2的数据)。

因此,如何提供一种处理效率高的并行程序任务处理方法及其装置是本领域技术人员目前需要解决的问题。



技术实现要素:

本发明的目的是提供一种并行程序任务处理方法及其装置,具有关联性的后续任务在进行处理时,不需要去其他处理核心的缓存内读取,而是直接使用自身所在的处理核心对应的缓存内的数据即可,处理效率高。

为解决上述技术问题,本发明提供了一种并行程序任务处理方法,包括:

步骤s101:从当前的若干个未处理任务中按照第一预设规则分别分配一个未处理任务至每个处理核心;

步骤s102:当所述处理核心对当前分配的任务进行处理时,依据任务之间的数据继承性从未处理的任务中选择一个与所述处理核心当前处理的任务具有相关性的任务作为后续任务;当不存在后续任务时,进入步骤s104;

步骤s103:当所述处理核心对当前分配的任务处理完成后,将所述当前分配的任务的数据存储至所述处理核心对应的缓存内,并将所述后续任务作为所述处理核心的当前分配的任务进行处理;返回步骤s102;

步骤s104:从当前的若干个未处理任务中按照第二预设规则选取一个未处理任务分配至所述处理核心,并返回步骤s102;直至全部任务处理完成。

优选地,所述第一预设规则具体为随机规则。

优选地,每个任务上均设置有时间顺序编号,所述第二预设规则具体为从当前的若干个未处理任务中选择时间顺序编号最小的任务分配至所述处理核心。

为解决上述技术问题,本发明还提供了一种并行程序任务处理装置,包括若干个处理核心以及任务模块;

所述任务模块,用于接收当前的若干个未处理任务;从当前的若干个未处理任务中按照第一预设规则分别分配一个未处理任务至每个处理核心;当所述处理核心对当前分配的任务进行处理时,依据任务之间的数据继承性从未处理的任务中选择一个与所述处理核心当前处理的任务具有相关性的任务作为后续任务;当不存在后续任务时,从当前的若干个未处理任务中按照第二预设规则选取一个未处理任务分配至所述处理核心进行处理,直至全部任务处理完成;

每个所述处理核心,用于当对当前分配的任务处理完成后,将所述当前分配的任务的数据存储至自身对应的缓存内,并将所述后续任务作为自身当前分配的任务进行处理;并触发所述任务模块进行后续任务预测处理。

优选地,包括若干个切片模块;

每个所述切片模块内包括若干个所述处理核心、分别与所述处理核心一一对应连接的若干个第一缓存、分别与各个所述处理核心相连的第二缓存、第三缓存以及任务单元;各个所述切片模块内的任务单元共同组成所述任务模块;

所述第二缓存,用于供若干个所述处理核心之间进行数据共享;

所述第三缓存,用于将自身所在的切片模块内的若干个所述处理核心的数据与其他所述切片模块数据进行共享。

优选地,所述任务单元还用于:

当对自身所在的切片模块内的处理核心完成任务分配或确定所述处理核心的后续任务后,将当前所述自身所在的切片模块内的任务处理情况同步告知其他切片模块内的任务单元。

优选地,各个所述切片模块之间通过网络芯片进行数据通信。

本发明提供了一种并行程序任务处理方法及其装置,每个处理核心在对任务进行处理时,还会按照任务之间的数据继承性,选择一个与当前处理的任务相关的任务作为后续任务,这样使得每个处理核心能够连续处理一系列相关联的的任务,由于这些任务使用相同的处理核心处理,故后续任务与前序任务对应的缓存相同,后续任务所需的数据不需要去其他处理核心的缓存内读取,而是直接使用自身所在的处理核心对应的缓存内的数据即可,提高了处理效率,减少了任务处理时间。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明提供的一种并行程序任务处理方法的过程的流程图;

图2为本发明提供的一种并行程序任务处理方法中的一种具体实施例示意图;

图3为本发明提供的一种并行程序任务处理装置的结构示意图;

图4为本发明提供的一种切片模块的结构示意图。

具体实施方式

本发明的核心是提供一种并行程序任务处理方法及其装置,具有关联性的后续任务在进行处理时,不需要去其他处理核心的缓存内读取,而是直接使用自身所在的处理核心对应的缓存内的数据即可,处理效率高。

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明提供了一种并行程序任务处理方法,参见图1所示,图1为本发明提供的一种并行程序任务处理方法的过程的流程图;该方法包括:

步骤s101:从当前的若干个未处理任务中按照第一预设规则分别分配一个未处理任务至每个处理核心;

其中,这里的第一预设规则可以为随机规则;另外,各个任务上均设置有时间顺序编号,用于表明各个任务的建立时间,这里的第一预设规则还可以是从若干个未处理任务中时间顺序编号处于前预设位的任务中随机选取未处理任务进行分配,或者也可以将处理核心进行编号后,按照时间顺序编号从小到大的顺序依次分配个各个处理核心,当然,还可设置为其他规则,本发明对此不做限定。

步骤s102:当处理核心对当前分配的任务进行处理时,依据任务之间的数据继承性从未处理的任务中选择一个与处理核心当前处理的任务具有相关性的任务作为后续任务;当不存在后续任务时,进入步骤s104;

可以理解的是,这里的数据继承性指的是,后一个任务在运行的时候需要用到前一个任务结束后生成的结果数据,两个任务之间具有先后顺序且具有数据相关性。

步骤s103:当处理核心对当前分配的任务处理完成后,将当前分配的任务的数据存储至处理核心对应的缓存内,并将后续任务作为处理核心的当前分配的任务进行处理;返回步骤s102;

步骤s104:从当前的若干个未处理任务中按照第二预设规则选取一个未处理任务分配至处理核心,并返回步骤s102;直至全部任务处理完成。

其中,每个任务上均设置有时间顺序编号,这里的第二预设规则具体为从当前的若干个未处理任务中选择时间顺序编号最小的任务分配至处理核心。当然,这里的第二预设规则也可以为从当前的若干个未处理任务中随机选择任务分配至处理核心,本发明对此不做限定。

可以理解的是,通过上述方法处理任务,可能会出现时间顺序编号较晚的任务已经完成,而时间顺序编号非常早的任务仍在运行的情况,参见图2所示,图2为本发明提供的一种并行程序任务处理方法中的一种具体实施例示意图。其中,任务0动态创建了子任务,子任务按照时间顺序编号为42。由图中所示,由于不同任务处理时间不同,可能会任务40正在执行时,任务22也未完成。

另外,由于本发明中多个处理核心并行处理任务,可能会出现任务冲突的情况,此时会选择性的进行任务放弃,同时被放弃任务的后续任务也被放弃,另外,需要使用到被放弃任务的结果数据的任务由于无法执行也会受到影响。例如,若图中任务20被放弃,任务40也会被放弃。当然,任务冲突时具体选择哪个任务进行放弃本发明不做限定。

本发明提供了一种并行程序任务处理方法,每个处理核心在对任务进行处理时,还会按照任务之间的数据继承性,选择一个与当前处理的任务相关的任务作为后续任务,这样使得每个处理核心能够连续处理一系列相关联的的任务,由于这些任务使用相同的处理核心处理,故后续任务与前序任务对应的缓存相同,后续任务所需的数据不需要去其他处理核心的缓存内读取,而是直接使用自身所在的处理核心对应的缓存内的数据即可,提高了处理效率,减少了任务处理时间。

本发明还提供了一种并行程序任务处理装置,包括若干个处理核心以及任务模块;参见图3所示,图3为本发明提供的一种并行程序任务处理装置的结构示意图。

任务模块1,用于接收当前的若干个未处理任务;从当前的若干个未处理任务中按照第一预设规则分别分配一个未处理任务至每个处理核心2;当处理核心2对当前分配的任务进行处理时,依据任务之间的数据继承性从未处理的任务中选择一个与处理核心2当前处理的任务具有相关性的任务作为后续任务;当不存在后续任务时,从当前的若干个未处理任务中按照第二预设规则选取一个未处理任务分配至处理核心2进行处理,直至全部任务处理完成;

每个处理核心2,用于当对当前分配的任务处理完成后,将当前分配的任务的数据存储至自身对应的缓存内,并将后续任务作为自身当前分配的任务进行处理;并触发任务模块1进行后续任务预测处理。

作为优选地,该并行程序任务处理装置包括若干个切片模块;参见图4所示,图4为本发明提供的一种切片模块的结构示意图。

每个切片模块内包括若干个处理核心2、分别与处理核心2一一对应连接的若干个第一缓存21、分别与各个处理核心2相连的第二缓存22、第三缓存23以及任务单元11;各个切片模块内的任务单元11共同组成任务模块1;

第二缓存22,用于供若干个处理核心2之间进行数据共享;

第三缓存23,用于将自身所在的切片模块内的若干个处理核心2的数据与其他切片模块数据进行共享。

作为优选地,任务单元11还用于:

当对自身所在的切片模块内的处理核心2完成任务分配或确定处理核心2的后续任务后,将当前自身所在的切片模块内的任务处理情况同步告知其他切片模块内的任务单元11。

可以理解的是,各个任务单元11内记录的任务情况应当实时保持同步,每个任务单元11均需要知道当前哪些任务未完成,哪些任务已经被其他任务单元11列为后续任务,不可再进行选择,这样能够避免任务重复执行而导致的处理效率低、程序混乱等。

另外,任务单元11还用于当出现任务冲突时,选择放弃任务以及任务完成后的提交操作等。

具体的,各个切片模块之间通过网络芯片进行数据通信。每个切片模块内均包括一个路由模块,用于进行网络通信。

本发明提供了一种并行程序任务处理装置,每个处理核心在对任务进行处理时,还会按照任务之间的数据继承性,选择一个与当前处理的任务相关的任务作为后续任务,这样使得每个处理核心能够连续处理一系列相关联的的任务,由于这些任务使用相同的处理核心处理,故后续任务与前序任务对应的缓存相同,后续任务所需的数据不需要去其他处理核心的缓存内读取,而是直接使用自身所在的处理核心对应的缓存内的数据即可,提高了处理效率,减少了任务处理时间。

需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1