多核/线程工作组计算调度器制造技术

技术编号:6370590 阅读:300 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及一种多核/线程工作组计算调度器。执行单元处理一个或多个命令队列中的命令。一旦可在队列上提供命令,参与执行命令的每个单元自动将命令的剩余工作组计数器递减工作组保留大小并处理工作组范围内相应数目的工作组。处理了范围内的所有工作组之后,执行单元递增已处理工作组计数器。将已处理工作组计数器递增到待执行工作组计数器中存储的值的单元发出命令完成信号。每个访问命令的执行单元还标记所看到工作组计数器。一旦已处理工作组计数器等于待执行工作组计数器并且所看到工作组计数器等于执行单元数,可删除或覆盖所述命令队列上的命令。

【技术实现步骤摘要】

要求保护的主题一般地涉及计算资源的分配,更具体地说,涉及用于调度多核处 理系统中的数据和任务并行负载的技术。
技术介绍
计算系统的调度可涉及针对数据并行或任务并行或这两者的某种组合构建的作 业。数据并行作业或数据并行负载是其中可由多个单元(例如但不限于处理器或处理核 心)并行操作数据的计算。此类处理的一个示例由操纵视频数据的图形处理单元(GPU)执 行,在操纵视频数据中,将位图分成区域并且可以同时操作每个区域。任务并行负载是其中 多个执行单元针对一组数据并行地独立地执行不同任务的计算。此类任务的一个示例是过 滤数据,其中一组数据通过一个过滤器并且结果通过第二过滤器。
技术实现思路
提供了多种技术,包括生成第一命令队列以便排队到计算设备的命令;将命令 发布到所述第一命令队列,其中所述命令包括多个工作组;将数据结构与所述命令关联,所 述数据结构标识了所述多个工作组、与所述命令对应的保留大小、存储工作组的数目的计 数器以及存储待处理工作组的数目的计数器;由多个执行单元中的每个执行单元保留所述 多个工作组的不同N维范围,其中所述N维范围对应于所述保留大小;由所述多个执行单元 中的每个执行单元处理对应的N维范围;将所述存储待处理工作组的数目的计数器递减每 个执行单元已处理的工作组的数目;重复保留、处理和递减步骤,直到所述存储待处理工作 组的数目的计数器小于或等于值“0” ;以及当所述存储待处理工作组的数目的计数器小于 或等于值“ 0 ”时,发出信号以指示所述命令完成。本概要并非旨在全面地说明要求保护的主题,而是旨在简单地概述与其相关的某 些功能。通过参考下图以及详细的说明,要求保护的主题的其他系统、方法、功能、特性以及 优点对于本领域的技术人员而言将是显而易见的或将变得显而易见。附图说明当结合附图阅读下面对所披露的实施例的详细说明时,可以更好地理解要求保护 的主题,这些附图是图1是可以实现要求保护的主题的计算系统体系结构的一个示例;图2是图1中首先介绍的中央处理单元的示例的方块图;图3是根据要求保护的主题的可用于实现命令队列的命令描述符存储器对象的 示例;图4是示出主机、命令队列、多个处理核心以及它们之间的关系的示例的方块图;图5是示出计数器块、N维范围(NDR)命令、任务、处理核心以及它们之间的关系 的示例的方块图6是示出主机控制过程的示例的流程图;图7是示出可用于实现要求保护的主题的执行命令过程的示例的流程图;以及图8是示出实现要求保护的主题的一个方面的命令完成过程的示例的流程图。具体实施例方式提供了多种技术,其中执行命令包含有效地执行和平衡命令(包括数据或任务并 行处理要求)的工作负载所需的信息。每个命令都包括与要执行的命令内的工作组总数、 待计算工作组数目、已处理工作组数目、一次处理的工作组数目(保留大小)、要在命令中 处理的执行线程数目以及已看到命令的执行线程数目对应的信息。执行单元处理一个或多个命令队列中的命令。执行单元可以是任何执行命令的计 算设备,包括但不限于处理核心、线程或跨网络的计算系统。每个执行单元管理所分配队列 内的当前位置。一旦可在队列上提供命令,参与执行命令的每个单元自动将命令的剩余工 作组计数器递减工作组保留大小并保留工作组范围内相应数目的工作组以便处理。一旦执 行单元执行了所请求的工作组,该单元将尝试保留更多工作组。此操作将继续,直到已处理 所有工作组。处理了所有工作组之后,每个执行单元递增已处理工作组计数器。例如,如果 特定执行单元一次处理十(10)个工作组,处理了三(3)次,然后确定已处理所有工作组,则 该执行单元将已处理工作组计数器递增三十(30)。将已处理工作组计数器递增到待执行工 作组计数器中存储的值的单元将发出命令完成信号。每个访问命令的执行单元还标记已看到工作组计数器。一旦已处理工作组计数器 等于带执行工作组计数器并且已看到工作组计数器等于执行单元数目,便可删除或覆盖命 令队列上的命令。本领域的技术人员将理解,本专利技术的各个方面可以体现为系统、方法或计算机程 序产品。因此,本专利技术的各个方面可以采取完全硬件实施例、完全软件实施例(包括固件、 驻留软件、微代码等)或同时包含在此被统称为“电路”、“模块”或“系统”的硬件和软件方 面的实施例的形式。此外,本专利技术的各个方面可以采取在一个或多个内合计算机可读程序 代码的计算机可读介质中体现的计算机程序产品的形式。根据要求保护的主题的一个实施例涉及用于有效地排队数据并行和任务并行作 业的程序化方法。此处所用的术语“程序化方法”被定义为目前执行的一个或多个过程步 骤;或者备选地被定义为在未来某个时刻执行的一个或多个过程步骤。术语“程序化方法” 预计了三种备选形式。第一,程序化方法包括目前执行的过程步骤。第二,程序化方法包括 承载计算机指令的计算机可读介质,所述计算机指令在被计算机执行时,将执行一个或多 个过程步骤。最后,程序化方法包括通过软件、硬件、固件或它们的任意组合进行编程以执 行一个或多个过程步骤的计算机系统。将理解,术语“程序化方法”不应被构想为同时具有 一个以上的备选形式,而是应被构想为一种备选形式,其中在任意给定时刻都只存在多个 备选形式中的一个。可以使用一个或多个计算机可读介质的任意组合。所述计算机可读介质可以是计 算机可读信号介质或计算机可读存储介质。计算机可读存储介质可以例如是(但不限于) 电、磁、光、电磁、红外线或半导体系统、装置或设备,或者是上述各项的任意适当组合。计算 机可读存储介质的更具体的实例(非穷举列表)包括以下各项具有一条或多条连线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦写可编程只 读存储器(EPR0M或闪存)、光纤、便携式光盘只读存储器(CD-ROM)、光存储设备、磁存储设 备或上述各项的任意适当组合。在本文档的上下文中,计算机可读存储介质可以是任何可 以包含或存储由指令执行系统、装置或设备使用或与所述指令执行系统、装置或设备结合 的程序的有形介质。计算机可读信号介质可以例如包括位于基带中或作为载波一部分的其中包含计 算机可读程序代码的传播数据信号。此类传播信号可以采取各种形式中的任意形式,包括 但不限于电磁、光或它们的任意适当组合。计算机可读信号介质可以是计算机可读存储介 质以外的任何计算机可读介质,并且可以传送、传播或传输由指令执行系统、装置或设备使 用或与所述指令执行系统、装置或设备结合的程序。计算机可读介质上承载的程序代码可以使用任意适当的介质进行传输,所述介质 包括但不限于无线、有线、光缆、射频等或上述各项的任意适当组合。用于执行本专利技术的各个方面的操作的计算机程序代码可以通过一种或多种编程 语言的任意组合进行编写,所述编程语言包括诸如Java、Smaltalk, C++之类的面向对象的 编程语言以及诸如“C”编程语言之类的传统过程编程语言。所述程序代码可以完全地在 用户计算机上执行、部分地在用户计算机上执行、作为独立式软件包执行、部分地在用户计 算机上和部分地在远程计算机上执行,或完全地在远程计算机或服务器上执行。在后一种 情况下,所述远程计算机可以通过包括局域网(LAN)或广域网(WAN)的任意类型的网络与 用户计算机相连,也可以与本文档来自技高网...

【技术保护点】
一种方法,包括:生成第一命令队列以便排队到计算设备的命令;将命令发布到所述第一命令队列,其中所述命令包括多个工作组;将数据结构与所述命令关联,所述数据结构标识了所述多个工作组、与所述命令对应的保留大小、存储工作组的数目的计数器以及存储待处理工作组的数目的计数器;由多个执行单元中的每个执行单元保留所述多个工作组的不同N维范围,其中所述N维范围对应于所述保留大小;由所述多个执行单元中的每个执行单元处理对应的N维范围;将所述存储待处理工作组的数目的计数器递减每个执行单元已处理的工作组的数目;重复保留、处理和递减步骤,直到所述存储待处理工作组的数目的计数器小于或等于值“0”;以及当所述存储待处理工作组的数目的计数器小于或等于值“0”时,发出信号以指示所述命令完成。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:BG亚历山大GH比洛斯J马德鲁加BD瓦特
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:US[美国]

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

1