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

文档序号:9693210阅读:来源:国知局
接收并且存储任务描述数据134和/或任务配置数据135。如先前所述,任务描述数据134提供与任务代码110关联的任务的各种参数的指示,由此有效地为调度服务器400提供需要分布式处理系统1000的哪些资源来执行任务的指示。控制例程440根据需要指配分布式处理系统1000的处理装置600的至少一部分的处理器组件核心和其他资源,以满足任务描述数据134中指示的参数。
[0029]任务配置数据135在由提交装置100所提供时可指示至少处理器组件核心将要选择用于指配以执行任务的任务部分的方式。向调度服务器400提供任务配置数据135可以是可选的,并且可被提供以忽略至少处理器组件核心将要选择用于指配的方式的缺省配置数据435中提供的任何指示。如将更详细说明,由处理器组件440所采用的选择方式可表示减少执行任务的时间的选择与减少执行任务中的电力消耗的选择之间的折衷。
[0030]不管选择处理器组件核心的方式,处理器组件450可操作接口 490,以便向一个或多个处理器组件传送关于其核心的哪些被选择用于指配以执行任务的任务部分的指示。这些指示可结合任务描述数据134中传达的内容的子集,包括但不限于可查找任务部分例程171a-b和172a-b的适当例程的位置、可查找输入数据133(若需要的话)的位置以及将要存储任何输出数据的位置的指示。更简单来说,处理器组件450为所选处理器组件核心的每个提供关于它将要执行哪一个任务部分、输入数据(若存在任何数据的话)的哪一个部分要用作输入以及任何输出数据要送往的位置的指示。
[0031]在各个实施例中,处理装置600的每个结合处理器组件650、存储装置660、提供到网络999和一个或多个处理子系统700的耦合的接口 690中的一个或多个。处理器组件650结合一个或多个核心655,其中执行处理器组件650的处理功能。存储装置660至少存储控制例程640。处理子系统700的每个结合处理器组件750和存储装置760其中之一或两者。处理器组件750结合一个或多个核心755,其中执行处理器组件750的处理功能。存储装置760至少存储控制例程740。
[0032]图2A和图2B示出分布式处理系统1000的一实施例的操作的示例。这个具体所示实施例结合处理装置600的三个实例,S卩,处理装置600x、600y和600z。如所示,处理装置600x-z的每个结合处理器组件650和750的每个,其中处理器组件650结合两个核心655,以及处理器组件750结合四个核心755。为了便于这些示例的论述,假定与处理装置600y-z的核心655和755相比,处理装置600x的核心655和755工作在基本上更高的时钟频率并且以基本上更高的速率来消耗电力。还假定任务部分例程171a和172a在处理器组件650的核心655上是可操作的,并且任务部分例程171b和172b在处理器组件750的核心755上是可操作的。
[0033]应当注意,处理装置600x-z的并非全部核心655和/或755均可以是可用的,因为处理器组件450选择核心655和/或755的核心以用于指配以执行任务的任务部分。核心655和/或755的一个或多个可能已经参与执行一个或多个其他任务的(一个或多个)任务部分。
[0034]图2A中,分布式处理系统1000执行与任务代码110关联的任务的版本的任务部分,其中仅执行与任务部分代码111关联的任务部分的一个实例,并且其中执行与任务部分代码112关联的任务部分的多个实例。此外,缺省配置数据435和/或任务配置数据135提供关于分布式处理系统1000的可用资源将要按照使任务尽可能快地被执行的方式并且以减少功率消耗(若必要的话)的工作量为代价来分配的指示。作为响应,处理器组件450按照在减少时间与减少功率消耗之间的任何折衷中有利于减少执行任务所需的时间的方式,在处理装置600x-z之间选择处理器组件核心655和755的核心供指配给任务部分。
[0035]因此,处理器组件450可评估处理器组件650和750的哪些将比其他组件更快地执行给定任务部分,并且尝试将任务部分例程171a_b和/或172a_b的例程指配给将引起更快性能的核心655和755中的任何核心。备选地,关于核心655和755的哪些核心能够以较少时间量执行哪些任务部分的指示可连同描述数据134和/或任务配置数据135或者作为其部分来传达给调度服务器400。假定处理器组件450确定核心655之一在执行与任务部分代码111关联的任务部分的单个所需实例时更快,处理器组件450选择核心655的单个核心来运行从任务部分代码111所编译的任务部分例程171a的一个所需实例。还假定处理器组件450确定核心755在执行与任务部分代码112关联的任务部分的多个实例时更快,处理器组件450选择核心755的核心来运行从任务部分代码112所编译的任务部分例程172b的所需实例。
[0036]在按照减少执行任务所需的时间相比减少功率消耗的方式来选择核心655和755的核心中,作为替代或补充,处理器组件450选择处理装置600x-z的处理装置的核心655和/或755,其中核心655和/或755的较大数量可用来限制所使用处理装置的数量。限制所使用处理装置的数量相应地限制必须通过网络999在处理装置之间发生的进程间通信量,以便协调核心655和/或755的核心之间的任务部分例程的执行。换句话说,通过在较少数量的处理装置中选择更多核心655和/或755,更多进程间通信将跨那些处理装置中的一个或多个总线发生,这通常比跨网络发生的通信基本上更快。这通过改进被指配以执行任务的部分的处理器核心655和/或755的局部性程度以使得更多进程间通信相互在物理上是“本地”(例如设置在同一处理装置中)的核心655和/或755的核心之间发生,来取得执行任务的时间的减少。
[0037]因此,如图2A所示,被选择以执行与任务代码110的这个版本关联的任务的处理器核心655和755的大多数处于单个处理装置600x中。因此,被选择以执行这个任务的任务部分的核心655和755的大多数是工作在较快时钟频率的核心,并且相互是本地的,使得进程间通信的大多数无需经由网络999来传达。
[0038]图2B中,分布式处理系统1000执行与任务代码110关联的任务的版本的任务部分,其中执行与任务部分代码111和112关联的任务部分的多个实例。此外,缺省配置数据435和/或任务配置数据135提供关于分布式处理系统1000的可用资源将要按照使电力消耗为最小的方式并且以减少执行任务所需的时间(若必要的话)的工作量为代价来分配的指示。作为响应,处理器组件450按照在减少时间与减少功率消耗之间的任何折衷中有利于减少执行任务的功率消耗的方式,在处理装置600x-z之间选择处理器组件核心655和755的核心供指配给任务部分。
[0039]因此,处理器组件450可评估处理器组件650和750的哪些将比其他组件消耗更少电力以执行给定任务部分,并且尝试将任务部分例程171a_b和/或172a_b的例程指配给将消耗更少电力的核心655和755的任何一些核心。备选地,关于核心655和755的哪些核心能够以较少功率消耗执行哪些任务部分的指示可连同描述数据134和/或任务配置数据135或者作为其部分来传达给调度服务器400。假定处理器组件450确定处理装置600y和600z的核心655和755在执行与任务部分代码111和112关联的任务部分的实例中消耗较少功率,处理器组件450尽可能多地选择可用的处理装置600y-z的核心655和755。因此,如所示,主要属于处理装置600y-z的核心655和755的混合被选择以执行与任务部分代码111和112的每个关联的任务部分。因此,与图2A的不例不同,任务部分例程171 a_b和17 2a_b的每个由核心655和755的至少一个对应核心来运行。
[0040]在按照减少执行任务中的电力消耗相比减少所需时间的方式来选择核心65 5和755的核心中,作为替代或补充,处理器组件450按照完全忽略所选核心之间的局部性的方式来选择处理装置600X-Z的处理装置的核心655和/或755。因此,处理器组件可选择跨处理装置600x-z的许多或全部可用的核心655和755的核心,而不管如下事实:这将增加必须跨网络999发生的进程间通信量,而不是跨处理装置600X-Z的每个中的可能更快的内部总线。因此,如图2B所示,被选择以执行与任务代码110的这个版本关联的任务的处理器核心655和755分布于所有处理装置600χ-ζ,但是将优先权给予选择处理装置600y_z的核心655和755的核心,因为它们比处理装置600x要消耗更少电力。
[0041]应当注意,尽管具体示出三个处理装置的数量,但是其他实施例可具有更多或更少的处理装置。还应当注意,尽管具体示出处理器组件650和750的每个的单个处理器组件,但是其他实施例可具有这些处理器组件其中之一或两者的更多个。此外,其他实施例可以仅结合一种类型的处理器组件,或者可结合多于二的一些不同类型的处理器组件。还应当注意,尽管具体示出处理器组件650中的两个核心655和处理器组件750中的四个核心755,但是其他实施例可具有各处理器组件中的核心的不同数量。又应当注意,尽管具体示出处理装置600X-Z的每个具有处理器组件和核心的基本上相似的配置,但是其他实施例可结合基本上不相似配置的处理装置。
[0042]回到图1的处理装置600,在处理装置600的每个中,控制例程640结合指令序列(其在处理器组件650上按照其作为那个处理装置600的基本处理器组件的作用是可操作的),以实现执行各种功能的逻辑。类似地,在处理子系统700的每个中,控制例程740结合指令序列(其在处理器组件750上按照其作为那个处理子系统700的子系统处理器组件的作用是可操作的),以实现执行各种功能的逻辑。
[0043]在运行控制例程640中,处理器组件650可帮助通过操作接口690以经由网络999向调度服务器400传送指示处理装置600之一中的处理和其他资源的资源数据,来准备分布式处理系统1000供使用。在一些实施例中,单个资源数据段可传达与关联处理装置600之一中的所有处理器组件650和/或750的资源有关的信息。在这类实施例中,处理器组件650和750在分别运行控制例程640和740中可进行操作以生成这种资源数据。在其他实施例中,各传达与关联处理器组件650和750的独立处理器组件的资源有关的信息的独立资源数据段可单独传送给调度服务器400。在这类实施例中,处理器650可通过其运行控制例程640以从处理器组件750接收这种数据段来引起,并且可操作接口 690以将它转发给调度服务器400。如先前所述,向调度服务器400提供资源数据可响应从调度服务器400所接收的对这种数据的查询而进行。
[0044]在进一步运行控制例程640中,处理器组件650可操作接口690,以便经由网络999从调度服务器400接收指配给核心655和/或755的一个或多个的任务部分的指示。在接收指配给核心755的一个或多个的任务部分的指示的情况下,处理器组件650和750在分别运行控制例程640和740中可进行协作,以便将那些指示从处理器组件650转发给处理器组件750。
[0045]在又进一步运行控制例程640中,处理器组件650可操作接口690,以便经由网络999向调度服务器400传送指示运行任务部分例程以执行对其指配的任务部分中的核心655和/或755的一个或多个的当前状态的状态数据。在由核心755的一个或多个对任务部分例程的执行的状态的状态数据将要传送给调度服务器400的情况下,处理器组件650和750在分别运行控制例程640和740中可进行协作,以便将这种状态数据从处理器组件750转发给处理器组件650供传输。
[0046]如将更详细说明,在各个实施例中,处理器组件650用作处理装置600的每个中的基本处理器组件,以及处理器组件750用作其中的子系统处理器组件。实际上,处理器组件750的每个可以是其中的插件电路板的处理子系统700能够有选择地可安装到处理装置600的每个中或者从其中移开,以便有选择地采用处理器组件750的一个或多个来扩大处理器组件650。因此,处理器组件650可具有对接口 690的更直接访问,使得处理器组件650通过运行控制例程640以帮助为处理器组件750的每个提供对网络999的访问来引起。在这样做时,处理器组件650可为处理器组件750的每个有效地提供“虚拟存在”,根据其,处理器组件750的每个在网络999上是唯一可寻址的。因此,处理器组件750的任一个与调度服务器400之间的资源数据、输入数据、任务部分例程、状态数据和/或输出数据的传达可经过处理器组件650进行。
[0047]来看图1的调度服务器400,在运行控制例程440中,处理器组件450可操作接口490,以便经由网络999从处理装置600的每个接收指示由核心655和/或755运行任务部分例程的当前状态的状态数据段。状态数据段可从处理器装置600的每个中的各处理器组件650和/或750单独接收,并且指示由处理组件的所有核心运行各任务例程的状态。备选地,资源数据段可从处理器组件核心655和/或755的每个单独接收,并且指示由处理器组件核心655和/或755的那一个核心运行任务例程的状态。处理器组件450可通过传送关于各任务部分例程的执行的当前状态的查询,来提示这些状态数据段的提供。这种提示可由处理器组件450周期地(例如常规间隔)进行,或者可响应经由网络999接收对任务的执行的状态的查询而进行。
[0048]在进一步运行控制例程440中,处理器组件450可将所接收状态数据段作为状态数据437来聚合和存储。处理器组件450又可操作接口 490,以便监测网络999的来自提交装置100的与任务代码110关联的任务的执行的当前状态的查询。处理器组件450可通过操作接口490以向提交装置100传送指示任务的执行的当前状态的状态数据437的至少一部分来响应这种查询。
[0049]回到图1的提交装置,在运行控制例程140中,处理器组件150可操作显示器180和控件120,以便向提交装置100的操作员提供用户界面(UI)。处理器组件15
当前第2页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1