当前位置: 首页 > 专利查询>英特尔公司专利>正文

用于动态工作队列管理的技术制造技术

技术编号:19247158 阅读:31 留言:0更新日期:2018-10-24 08:55
用于动态工作队列管理的技术包括通信地耦合到消费者计算设备的生产者计算设备。消费者计算设备被配置为发送弹出请求(例如,单侧拉取请求),其包括指示从生产者计算设备中拉取的工作量的消费约束(例如,从生产者的工作队列返回的工作元素的可接受分数的范围)。生产者计算设备被配置为确定是否可以满足弹出请求并生成响应,该响应包括确定结果的指示以及一个或者多个生产者度量,所述生产者度量可以由消费者计算设备用于确定消费者计算设备在接收到响应消息时要执行的后续动作。本文描述并要求保护其他实施例。

【技术实现步骤摘要】
【国外来华专利技术】用于动态工作队列管理的技术政府权利条款本专利技术是在由国防部授予的合同号H98230-13-D-0124下由政府支持完成的。政府对本专利技术享有一定的权利。相关美国专利申请的交叉引用本申请要求于2016年3月31日提交的题为“TECHNOLOGIESFORDYNAMICWORKQUEUEMANAGEMENT的美国专利申请序列号15/087,536的优先权。
技术介绍
个人、研究人员和企业对计算设备的计算性能和存储容量的增加的需求导致已经开发了各种计算技术来满足这些需求。例如,计算密集型应用(例如,基于企业云的应用(例如,软件即服务(SaaS)应用)、数据挖掘应用、数据驱动建模应用、科学计算问题解决应用等)通常依赖于复杂的、大规模计算环境(如,高性能计算(HPC)环境和云计算环境)用于执行计算密集型应用,以及存储大量数据。这种大规模计算环境可以包括通过高速互连连接的数万个多处理器/多核计算设备。通常,由于在任何给定时间产生的不可预测的工作量,此类应用需要持续的动态负载平衡以实现可缩放的性能和可用性。因此,已经开发了各种负载平衡技术(例如,域名系统(DNS)负载平衡、云负载平衡、图分区、主管-工作者平衡等),以在各种计算设备上高效地分配动态可分配的工作负载。通常在HPC环境中使用的一种这样的负载平衡方法通常被称为工作窃取,其中计算设备产生工作,然后将工作添加到本地队列。继而,其他计算设备从生产者的队列中读取或者“窃取”工作,以便消费或者以其他方式执行被盗工作。附图说明在此描述的概念在附图中以示例而非限制的方式示出。为了说明的简单和清楚起见,图中所示的元件不一定按比例绘制。在认为合适的地方,附图标记在图中重复以指示相应或者类似的元件。图1是用于动态工作队列管理的系统的至少一个实施例的简化框图,该系统包括通信地耦合到多个消费者计算设备的生产者计算设备;图2是图1的系统的生产者计算设备的至少一个实施例的简化框图;图3是图1的系统的消费者计算设备的至少一个实施例的简化框图;图4是图1和图3的消费者计算设备的环境的至少一个实施例的简化框图;图5是图1和图2的生产者计算设备的环境的至少一个实施例的简化框图;图6是用于可以由图1和图3的消费者计算设备执行的从图1和图2的生产者计算设备请求工作的至少一个实施例的简化流程图;以及图7和图8是用于可以由图1和图2的生产者计算设备执行的处理来自图1和图3的消费者计算设备的弹出请求的至少一个实施例的简化流程图。具体实施方式虽然本公开的概念易于进行各种修改和替代形式,但是其具体实施例已经在附图中通过示例的方式示出,并且将在本文中进行详细描述。然而,应当理解,不意图将本公开的概念限制为所公开的特定形式,而是相反,意图是覆盖与本公开和所附权利要求一致的所有修改方案、等同方案和替代方案。说明书中对“一个实施例”、“实施例”、“示例性实施例”等的提及指示所描述的实施例可以包括特定的特征、结构或者特性,但是每个实施例可以一定或者可以不一定包括该特定的特征、结构或者特性。此外,这样的短语不一定指代相同的实施例。此外,当结合实施例描述特定特征、结构或者特性时,认为结合其他实施例来实现这样的特征、结构或者特性在本领域技术人员的知识内,无论是否明确描述。此外,应当意识到,列表中以“A、B和C中的至少一个”的形式包括的项目可以表示(A);(B);(C):(A和B);(A和C);(B和C);或者(A、B和C)。类似地,以“A、B或者C中的至少一个”的形式列出的项目可以表示(A);(B);(C):(A和B);(A和C);(B和C);或者(A、B和C)。在一些情况下,所公开的实施例可以以硬件、固件、软件或者其任何组合中实现。所公开的实施例还可以被实现为由一个或者多个暂时性或者非暂时性机器可读(例如,计算机可读)存储介质承载或者存储的指令,其可由一个或者多个处理器读取和执行。机器可读存储介质可以被实现为用于以机器可读的形式存储或者发送信息的任何存储设备、机构或者其他物理结构(例如,易失性或者非易失性存储器、介质盘或者其他介质设备)。在附图中,可以以具体的布置和/或者顺序示出一些结构或者方法特征。然而,应当意识到,可能不要求这种具体的布置和/或者排序。相反,在一些实施例中,这些特征可以以与说明性图中所示的不同的方式和/或者顺序布置。另外,在特定附图中包括结构或者方法特征并不意味着在所有实施例中都需要这样的特征,并且在一些实施例中可以不包括这些特征或者可以将其与其它特征组合。现在参考图1,在说明性实施例中,用于动态工作队列管理的系统100包括生产者计算设备102,其经由互连112通信地耦合到高性能计算(HPC)结构的多个消费者计算设备104。在使用中,生产者计算设备102生成工作(例如,数据、任务等),生产者计算设备102将工作添加到本地队列(例如,工作队列)。消费者计算设备104请求从生产者计算设备102拉取所生成的工作的至少一部分(例如,工作队列的工作元素)。例如,当前在生产者计算设备102上执行的应用可以使工作元素入队到生产者计算设备102本地的工作队列,并且当前在消费者计算设备104上执行的应用可以请求拉取入队的工作元素中的一些。然后,生产者计算设备102可以将所请求的工作元素的至少一部分从工作队列出队并发送到请求的消费者计算设备104,然后消费者计算设备104可以消费所接收的工作元素。然而,与其中消费者计算设备104仅基于生产者计算设备102的先前探测来请求固定数量的元素的现有技术(例如,在通常称为工作窃取的负载平衡过程中)不同,消费者计算设备104被配置为请求从生产者计算设备102的可用工作队列中拉取一系列工作元素。为此,消费者计算设备104被配置为生成弹出请求,所述弹出请求包括可接受从生产者计算设备102的可用工作队列中拉取的最大和最小数量的工作元素(例如,上限和下限)的。在一些实施例中,消费者计算设备104被配置为生成包括附加信息的弹出请求,所述附加信息例如生产者计算设备102可用来确定要返回的可用工作元素的一部分的分数。例如,弹出请求可以是从消费者计算设备104中的一个发起的单侧拉取。响应于已经接收到弹出请求,生产者计算设备102确定来自工作队列的多个工作元素以返回到从其接收到弹出请求的消费者计算设备104。换句话说,生产者计算设备102被配置为确定要提供给各个消费者计算设备104的可变数量的工作元素。为此,生产者计算设备102被配置为首先解释范围和/或者附加信息以确定是否可以满足弹出请求。应当意识到,可以由生产者计算设备102使用工作队列管理器(诸如生产者计算设备102的工作窃取调度器)来执行工作队列管理(例如,工作队列的工作元素的入队和出队)。基于所接收的范围和/或者附加信息,生产者计算设备102可以返回符合请求的多个工作元素和/或者要在响应消息中返回的工作元素的数量的指示。生产者计算设备102可以另外包括消费者计算设备104可用的反馈信息,以在接收到响应消息时对要执行的后续动作做出明智的决定。应当意识到,要返回的工作元素的数量可以是零,这是弹出请求失败的指示。在接收到响应消息时由消费者计算设备104要执行的后续动作可以包括确定是否重新发送弹出请求(例如,向生产者计算设备发送相同或者修改本文档来自技高网...

【技术保护点】
1.一种用于动态工作队列管理的生产者计算设备,所述生产者计算设备包括:一个或者多个处理器;以及一个或者多个存储器设备,其中存储有多个指令,所述多个指令当由所述一个或者多个处理器执行时,使得所述生产者计算设备用于:从消费者计算设备接收弹出请求,其中,所述弹出请求包括一个或者多个消费约束;确定所述生产者计算设备的生产者工作队列的有效工作可用性,其中,所述生产者工作队列包括多个工作元素,其中,所述有效工作可用性指示所述生产者工作队列中的能够被拉取的工作元素的数量;基于所述有效工作可用性和所述一个或者多个消费约束来确定接收的弹出请求是否能够被满足;确定一个或者多个生产者度量,所述消费者计算设备能够使用所述一个或者多个生产者度量以确定由所述消费者计算设备要执行的后续动作;响应于确定所述接收的弹出请求不能被满足,生成包括所述生产者度量中的一个或者多个的失败消息;以及将所述失败消息发送到所述消费者计算设备。

【技术特征摘要】
【国外来华专利技术】2016.03.31 US 15/087,5361.一种用于动态工作队列管理的生产者计算设备,所述生产者计算设备包括:一个或者多个处理器;以及一个或者多个存储器设备,其中存储有多个指令,所述多个指令当由所述一个或者多个处理器执行时,使得所述生产者计算设备用于:从消费者计算设备接收弹出请求,其中,所述弹出请求包括一个或者多个消费约束;确定所述生产者计算设备的生产者工作队列的有效工作可用性,其中,所述生产者工作队列包括多个工作元素,其中,所述有效工作可用性指示所述生产者工作队列中的能够被拉取的工作元素的数量;基于所述有效工作可用性和所述一个或者多个消费约束来确定接收的弹出请求是否能够被满足;确定一个或者多个生产者度量,所述消费者计算设备能够使用所述一个或者多个生产者度量以确定由所述消费者计算设备要执行的后续动作;响应于确定所述接收的弹出请求不能被满足,生成包括所述生产者度量中的一个或者多个的失败消息;以及将所述失败消息发送到所述消费者计算设备。2.如权利要求1所述的生产者计算设备,其中,所述多个指令还使所述生产者计算设备用于确定所述生产者工作队列的当前大小和当前在所述生产者工作队列中的工作元素的数量,并且其中,确定所述有效工作可用性包括根据所述生产者工作队列的当前大小和当前在所述生产者工作队列中的工作元素的数量来确定所述有效工作可用性。3.如权利要求1所述的生产者计算设备,其中,确定所述有效工作可用性包括:基于工作分发规则集中的一个或者多个规则来确定所述有效工作可用性,其中,所述一个或者多个规则定义如何分发来自所述生产者工作队列的元素。4.如权利要求3所述的生产者计算设备,其中,所述工作分发规则集中的所述一个或者多个规则定义以下中的至少一个:对于每个接收到的弹出请求要返回的工作元素的最小数量、对于每个接收到的弹出请求要返回的工作元素的最大数量或者对于每个接收到的弹出请求要返回的元素的分数。5.如权利要求1所述的生产者计算设备,其中,所述生产者度量包括以下中的至少一个:在所述弹出请求被接收到时相对于所述生产者工作队列的数据、所述弹出请求被发往的所述生产者计算设备的历史数据、或者与另一生产者计算设备相对应的信息。6.如权利要求5所述的生产者计算设备,其中,在所述弹出请求被接收到时相对于所述生产者工作队列的所述数据包括以下中的至少一个:所述生产者工作队列中的工作元素总量、所述生产者工作队列中的可用工作元素总量、或者所述生产者工作队列的当前容量。7.如权利要求5所述的生产者计算设备,其中,所述历史数据包括以下中的至少一个:工作生产的历史、或者工作分发的历史。8.如权利要求5所述的生产者计算设备,其中,与另一生产者计算设备相对应的信息包括以下中的至少一个:所述生产者计算设备最近从其拉取工作的另一生产者计算设备的标识信息、或者另一生产者计算设备的标识信息。9.如权利要求1所述的生产者计算设备,其中,所述多个指令还使所述生产者计算设备用于:对所述生产者工作队列中的要被返回的每个元素执行弹出操作;响应于确定所述接收的弹出请求能够被满足,生成包括所述生产者工作队列中的要被返回的元素的成功消息;并且将所述成功消息发送到所述消费者计算设备。10.如权利要求9所述的生产者计算设备,其中,将所述成功消息发送到所述消费者计算设备包括:发送所述生产者度量中的一个或者多个和所述工作元素。11.如权利要求1所述的生产者计算设备,其中,所述消费约束包括以下中的至少一个:请求的所述生产者工作队列的工作元素的大小、要接收的所述生产者工作队列的可接受工作元素范围、要接收的所述生产者工作队列的工作元素的上限阈值、要接收的所述生产者工作队列的工作元素的下限阈值、或者要接收的所述生产者工作队列的工作元素的分数。12.一种用于动态工作队列管理的方法,所述方法包括:由生产者计算设备从消...

【专利技术属性】
技术研发人员:D·凯佩尔U·R·哈内布特M·弗拉伊斯利克J·迪南
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国,US

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

1