用于分布式处理任务部分指配的技术的制作方法_4

文档序号:9693210阅读:来源:国知局
服务器400的查询来提示这样做,使得处理器组件核心655和/或755能够说成是“推送”其状态数据。状态组件447可将所接收资源数据段聚合为状态资源数据437。此外,状态组件447可通过向提交装置100传送状态数据437的至少一部分以向其传达执行任务的当前状态的指示,来响应经由网络999对来自提交装置100的查询的接收(与通信组件449协作接收)。
[0066]更具体来看图5,处理装置600之一的控制例程640可包括路由组件648,其操作接口690,以便将一个或多个处理子系统700的(一个或多个)处理器组件750连同处理器组件650—起耦合到网络999。如所示,路由组件648可组成通信组件649的一部分。如先前所述,在一些实施例中,处理器组件650可以是处理装置600之一的基本处理器组件,并且因此可比其他处理器组件更直接地耦合到接口 690,使得处理器组件650能够直接操作接口 690。相比之下,在这类实施例中,处理器组件750可以是结合到处理子系统700 (其还结合存储装置760和/或其他资源,其与关联处理器组件650的存储装置660和/或其他资源完全独立和无关)中的子系统处理器组件。更具体来说,处理子系统700的每个可实现为一个或多个插件电路板,其耦合到一个或多个总线659,通过其,这类插件电路板通常耦合到处理器组件650和/或处理器组件650的配套电路。
[0067]路由组件648可操作接口690,以便除了可向作为直接操作接口 690的基本处理器组件的处理器组件650提供任一个IP地址之外,还为处理子系统700的每个提供网络999上的独立因特网协议(IP)地址。大体上,处理子系统700的每个与处理器组件650协作被给予网络999上的“虚拟存在”,尽管没有处理子系统700的处理器组件750能够直接访问接口690。在从网络999接收送往与处理器组件650关联的IP地址的IP分组时,通信组件649简单地接受那些IP分组,并且拆封其内容,以便使处理器组件650能够对那些内容起作用。但是,在从网络999接收送往与处理子系统700之一关联的IP地址的IP分组时,路由组件648以极少变化或者没有变化地将那些IP分组转发给处理子系统700的适当处理子系统。在处理子系统700的每个中,通信组件749拆封由路由组件648路由给它的IP分组,以便使其对应处理器组件750能够对其内容起作用。
[0068]处理装置600之一的控制例程640可包括资源组件643,其是处理器组件650可执行的,以向调度服务器400传送(与通信组件449协作)资源数据。在一些实施例中,资源组件可执行处理器组件650和/或处理装置600的一个或多个测试,以便动态确定哪些处理和/或其他资源是可用的。这可在那些资源可随时间而改变的实施例中进行。
[0069]处理装置600之一的控制例程640可包括执行组件645的多个实例,其是处理器组件650的独立核心655可执行的,以便通过实现各种任务部分例程之一(例如任务部分例程171a或172a其中之一)的执行来执行所指配任务部分。执行组件645的各实例可至少包括操作系统的独立可执行部分、库函数和/或装置驱动程序的一个或多个库。当调度服务器400向核心655的每个传送关于被选择成执行任务部分的指示时,这类指示可作为任务部分描述数据434的单独实例来接收。对于核心655的每个,任务部分描述数据434的对应实例可指示将要运行的任务部分例程171a或172a的特定例程以及检索其副本的位置。任务部分描述数据434的各实例还可指示至少检索任务输入数据133(若存在的话)的对应部分的位置和/或存储任务输出数据337(若存在的话)的位置。任务部分描述数据434的各实例还可指示传送指示在运行任务部分例程的实例中的进度的当前状态的状态数据637的实例的位置。
[0070]更具体来说,在运行执行组件645的对应实例时,核心655等待接收任务部分描述数据434的实例。在接收任务部分描述数据434的实例时,核心655从存储服务器300来检索任务部分例程171a或172a的适当例程连同如任务部分描述数据434中指示的任务输入数据133。执行组件645的实例的进一步执行使核心655开始运行其任务部分例程171a或172a其中之一的关联实例(使核心655 “跳转”到任务部分例程的那个实例的指令)。在任务部分例程171 a或172a的任一个的实例的执行期间,任务部分例程171 a或172a其中之一的指令或者执行组件645的实例的指令的任一个使核心655向调度服务器400传送状态数据637(与通信组件649协作)。又在任务部分例程171a或172a的任一个的实例的执行期间,使核心655向存储服务器300传送(再次与通信组件649协作)任务输出数据337(若存在的话)。在完成任务部分例程171a或172a的执行时,通过执行组件645的执行使核心655再次等待接收指示要执行的下一个任务部分的方面的任务部分描述数据434的新实例。
[0071]现在具体来看图6,处理子系统700之一的控制例程740可包括与执行基本上相同功能的控制例程的组件基本上对应的组件。具体来说,除了通信组件749(如先前所述)之夕卜,控制例程740还包括资源组件743以及执行组件745的多个实例以供核心755的每个单独运行。
[0072]图7示出逻辑流程2100的一个实施例。逻辑流程2100可表示由本文所述的一个或多个实施例所运行的操作的部分或全部。更具体来说,逻辑流程2100可示出由处理器组件450在至少运行控制例程440中所执行和/或由调度服务器400的(一个或多个)其他组件所执行的操作。
[0073]在2110,分布式处理系统的调度服务器的处理器组件(例如分布式处理系统1000的调度服务器400的处理器组件450)从分布式处理系统的各种处理装置(例如处理装置600)来接收资源数据。如先前所述,资源数据指示与处理装置的每个中的各处理器组件(例如基本处理器组件650和/或子系统处理组件750的每个)关联的处理和/或其他资源。又如先前所述,这种资源数据可按处理装置或者按处理器组件来接收。
[0074]在2120,接收描述将要由分布式处理系统的处理装置所执行的任务的数据(例如任务描述数据134)。如先前所述,这种任务描述数据指定待执行任务的各种参数,包括但不限于要执行的不同任务部分的数量、要执行的各任务部分的实例的数量、可查找任务部分例程和/或输入数据(若有的话)的位置、将要对其传送任何状态数据的位置和/或将要存储任何输出数据的位置。
[0075]在2130,接收按照有利于减少执行任务的时间优于减少执行任务中的电力消耗的方式来选择处理器核心以供任务的任务部分的指配的指示。更具体来说,减少电力消耗的核心的选择仅当进行这样操作的选择没有增加执行任务的时间量或者将执行任务的时间增加相对可忽略程度时才进行。如先前所述,调度服务器的处理器组件可从配置数据(例如已经存储在存储装置460中的缺省配置数据435或者从提交装置100所接收的任务配置数据135)来接收这种指示。
[0076]在2140,响应这种指示,确定从处理装置的每个的各基本处理器组件(例如处理器组件650之一)和每个子系统处理器组件(例如处理器组件750之一)当前可用的每种类型的核心的数量。如先前所述,处理装置的一个或多个中的基本或者子系统处理器组件的任一个的一个或多个核心仍然可参与运行实现另一个任务的任务部分的逻辑的任务部分例程,并且因此可能还不可用来对新任务的任务部分进行指配。
[0077]在2150,任务的任务部分的每个的处理器核心的可用类型选择成使得减少执行各任务部分所需的时间。换句话说,对于待执行的各任务部分,评估核心的可用不同类型的每个,以确定哪一个能够更快地执行任务部分。然后,如果可能的话(例如,如果更快执行的任一种类型的充分核心是可用的),则能够更快地执行任务部分的该类型的核心被选择以执行那个任务部分的实例。
[0078]在2160,在从可用核心之中进行选择时,还进行核心的选择,以便使进程间通信通过耦合处理装置的网络(例如网络999)的发生为最少。换句话说,核心选择成使得增加所选核心之间的局部性程度,以使得所选核心的多数在物理上位于较少独立处理装置中。如先前所述,设想在跨总线和/或各处理装置的处理组件中的核心之间发生的进程间通信能够比跨处理装置之间的网络的进程间通信更快地执行。
[0079]在2170,采用那些选择的指示向具有选择成被指配执行任务的任务部分的核心的处理装置发信号通知。如先前所述,在具有这样选择的核心的处理装置的每个中所选的核心可以是基本处理器组件的核心或者子系统处理器组件的核心或者两者。又如先前所述,这类指示可通过向每个所选核心传送任务部分描述数据来提供,由此为各核心提供检索对应任务部分例程和/或任何任务输入数据等所需的信息。
[0080]图8示出逻辑流程2200的一个实施例。逻辑流程2200可表示由本文所述的一个或多个实施例所运行的操作的部分或全部。更具体来说,逻辑流程2200可示出由处理器组件450在至少运行控制例程440中所执行和/或由调度服务器400的(一个或多个)其他组件所执行的操作。
[0081]在2210,分布式处理系统的调度服务器的处理器组件(例如分布式处理系统1000的调度服务器400的处理器组件450)从分布式处理系统的各种处理装置(例如处理装置600)来接收资源数据。在2220,还接收描述将要由分布式处理系统的处理装置所执行的任务的数据(例如任务描述数据134)。
[0082]在2230,接收按照有利于减少执行任务的电力消耗优于减少执行任务所需的时间的方式来选择处理器核心以供任务的任务部分的指配的指示。更具体来说,减少所需时间的核心的选择仅当进行这样操作的选择没有增加执行任务所消耗的电力量或者将执行任务的电力消耗增加相对可忽略程度时才进行。如先前所述,调度服务器的处理器组件可从配置数据(例如已经存储在存储装置460中的缺省配置数据435或者从提交装置100所接收的任务配置数据135)来接收这种指示。
[0083]在2240,当前可用的基本处理器组件的核心(例如处理器组件650的核心655)和子系统处理器组件的核心(例如处理器组件750的核心755)根据其相对功率消耗率来分级,以识别具有较低功率消耗率的那些核心。在2250,分析执行各任务部分所需的相对时间长度,以识别将要求更多时间来执行的任务部分。
[0084]在2260,把要求更多时间来执行的任务部分指配给具有最低功率消耗率的核心。如先前所述,这有效地引起任务的多数在总体上被指配给具有最低功率消耗率的核心,由此减少总功率消耗。在2270,采用那些选择的指示向具有选择成被指配执行任务的任务部分的核心的处理装置发信号通知。
[0085]图9示出逻辑流程2300的一个实施例。逻辑流程2300可表示由本文所述的一个或多个实施例所运行的操作的部分或全部。更具体来说,逻辑流程2300可示出由处理器组件650在至少运行控制例程640中所执行和/或由处理装置600的至少一个的(一个或多个)其他组件所执行的操作。
[0086]在2310,分布式处理系统的处理装置的基本处理器组件(例如分布式处理系统1000的处理装置600之一的处理器组件650之一)操作处理装置到网络的接口(例如将处理装置600之一耦合到网络999的接口690),以监测网络送往与处理装置的处理器组件关联的多个IP地址的分组。如先前所述,用作处理装置600之一的基本处理器组件的处理器组件650可操作那个处理装置600的接口 690,以便提供用作子系统处理器组件的处理器组件750的每个的“虚拟存在”。因此,多个IP地址可与一个处理装置600关联。在2320,在网络上检测送往IP地址之一的分组。
[0087]在2330,检查分组是否送往基本处理器组件的IP地址。如果是这样的话,则分组由基本处理器组件来接收(并且随后对其起作用)。但是,如果分组不是送往基本处理器组件的IP地址,则分组在2340路由到网络上提供有与分组所送往的IP地址对应的IP地址。分组的这种路由选择经过将子系统处理器组件耦合到基本处理器组件的一个或多个总线(例如总线659)进行。
[0088]图10示出适合于实现如先前所述的各个实施例的处理架构3000的一实施例。更具体来说,处理架构3000(或者其变体)可实现为计算装置100、400或600中的一个或多个的部分和/或由处理子系统700来实现。应当注意,向处理架构3000的组件给予参考标号,其中最后两位数对应于先前作为这些计算装置的部分所示和所述的组件的至少一部分的参考标号的最后两位数。这作为对相互关连每个的组件的辅助进行。
[0089]处理架构3000可包括在数字处理中常用的各种元件,非限制性地包括一个或多个处理器、多核处理器、协处理器、存储器单元、芯片组、控制器、外设、接口、振荡器、定时装置、视频卡、音频卡、多媒体输入/输出(I/o)组件、电源等。如本申请所使用的术语“系统”和“组件”预计表示执行数字处理的计算装置的实体,那个实体作为硬件、硬件和软件的组合、软件或者执行中的软件,其示例通过这种所示示范处理架构来提供。例如,组件能够非限制性地是运行于处理器组件的进程、处理器组件本身、可采用光和/或磁存储介质的存储装置(例如硬盘驱动器、阵列中的多个存储驱动器等)、软件对象、指令的可执行序列执行的线程、程序和/或整个计算装置(例如整个计算机)。作为说明,运行于服务器的应用和服务器能够是组件。一个或多个组件能够驻留在过程和/或执行线程中,以及组件能够定位在一个计算装置上和/或分布在两个或更多计算装置之间。此外,组件可通过各种类型的通信介质在通信上相互耦合,以便协调操作。协调可涉及单向或双向信息交换。例如,组件可采取通过通信介质所传递的信号形式来传递信息。信息能够实现为分配给一个或多个信号线的信号。消息(包括命令、状态、地址或数据消息)可以是这类消息其中之一,或者可以是多个这类消息,并且可经过多种连接和/或接口的任一种串行或者基本上并行地传送。
[0090]如所示,在实现处理架构3000中,计算装置可至少包括处理器组件950、存储装置960、到其他装置的接口 99
当前第4页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1