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

文档序号:9693210阅读:来源:国知局
0可监测控件120关于请求与任务代码110关联的任务的执行的当前状态的控件120的操作的指示,并且可操作接口 190以作为响应而向调度装置400传送对这种状态的查询。处理器组件150还可操作接口 190以接收这种当前状态的指示,并且可操作显示器180以向操作员可视地呈现这种状态的指示。
[0050]在各个实施例中,处理器组件150、450、650和750的每个可包括大量市场销售处理器的任一个。此外,这些处理器组件的一个或多个可包括多个处理器、多线程处理器、多核处理器(无论是相同还独立管芯上共存的多个核心)和/或用以按照某种方式链接多个物理上独立的处理器的另外某个种类的多处理器架构。
[0051 ]在各个实施例中,存储装置160、460、660和760的每个可基于大量信息存储技术的任一种,可能包括要求电力的不间断提供的易失性技术,以及可能包括需要使用可以是或者可以不是可拆卸的机器可读存储介质的技术。因此,这些存储装置的每个可包括存储装置的大量类型的任一种(或者类型的组合),非限制性地包括只读存储器(R0M)、随机存取存储器(1^10、动态1^1(01^10、双倍数据速率01^1(001?-01^10、同步DRAM(SDRAM)、静态RAM(SRAM)、可编程ROM(PROM)、可擦可编程ROM(EPROM)、电可擦可编程ROM(EEPR0M)、闪速存储器、聚合物存储器(例如铁电聚合物存储器)、奥氏存储器、相变或铁电存储器、硅-氧化物_氮化物-氧化物-硅(S0N0S)存储器、磁或光卡、一个或多个单独铁磁盘驱动器或者组织为一个或多个阵列的多个存储装置(例如组织为独立磁盘冗余阵列或RAID阵列的多个铁磁盘驱动器)。应当注意,虽然这些存储装置的每个示为单个块,但是它们的一个或多个可包括可基于不同存储技术的多个存储装置。因此,例如,这些所示存储装置的每个的一个或多个可表示光驱动器或闪速存储卡读取器(可用以在某种形式的机器可读存储介质上存储和输送程序和/或数据)、铁磁盘驱动器(将程序和/或数据本地存储相对延长时期)以及一个或多个易失性固态存储器装置(实现对程序和/或数据的较快访问,例如SRAM或DRAM)的组合。还应当注意,这些存储装置的每个可由基于相同存储技术的多个存储组件来组成,但是其可因用途的专门化(例如,一些DRAM装置用作主存储,而其他DRAM装置用作图形控制器的不同帧缓冲器)而单独保持。
[0052]在各个实施例中,接口190、490和690的每个可采用大量信令技术的任一种,从而使计算装置能够如所述耦合到其他装置。这些接口的每个可包括提供必要功能性的至少一部分以实现这种耦合的电路。但是,这些接口的每个也可至少部分采用处理器组件的对应处理器组件所运行(例如以便实现协议栈或其他特征)的指令序列来实现。在采用电和/或光传导电缆布线的情况下,这些接口可采用符合大量工业标准的任一种的信令和/或协议,非限制性地包括RS-232C、RS-422、USB、以太网(IEEE-802.3)或IEEE-1394。在需要使用无线信号传输的情况下,这些接口可采用符合多种工业标准的任一种的信令和/或协议,非限制性地包括IEEE 802.11a、802.11b、802.11g、802.16、802.20(通常称作“移动宽带无线接入”)、蓝牙、ZigBee或者蜂窝无线电话服务(例如采用通用分组无线业务的GSM(GSM/GPRS)、CDMA/lxRTT、增强全球演进数据速率(EDGE)、仅演进数据/优化(EV-D0)、数据和语音的演进(EV-DV)、高速下行链路分组接入(HSDPA)、高速上行链路分组接入(HSUPA)、4G LTE等)之类的蜂窝无线电话服务。
[0053]图3、图4、图5和图6各更详细示出图1或图2A-B的分布式处理系统1000的一实施例的一部分的框图。更具体来说,图3示出提交装置100的操作环境的方面,其中处理器组件150在运行控制例程140中向分布式处理系统1000提交与任务代码110关联的待执行任务。图4示出调度服务器400的操作环境的方面,其中处理器组件450在运行控制例程440中选择分布式处理系统1000的处理装置600中可用的核心655和/或755的核心以供任务的任务部分的指配。图5示出处理装置600之一的操作环境的方面,其中处理器组件650的一个或多个核心655在运行控制例程640中运行与对其指配的一个或多个任务部分对应的一个或多个任务部分例程。图6类似地示出处理子系统700之一的操作环境的方面,其中处理器组件750的一个或多个核心755在运行控制例程740中运行与对其指配的一个或多个任务部分对应的一个或多个任务部分例程。
[0054]如本领域的技术人员可理解,包括组成其的组件的控制例程140、440、640和740被选择成在被选择以实现处理器组件150、450、650或750的可适用处理器组件的无论任一种类型的(一个或多个)处理器上是可操作的。在各个实施例中,控制例程140、440、640和740的每个可包括操作系统、装置驱动程序和/或应用级例程(例如,在光盘介质上提供的所谓“软件套装”、从远程服务器所得到的“小应用程序”等)中的一个或多个。在包括操作系统的情况下,操作系统可以是适合于处理器组件150、450、650或750的任一个对应处理器组件的多种可用操作系统的任一种。在包括一个或多个装置驱动程序的情况下,那些装置驱动程序可提供对计算装置100、400或600的对应计算装置或者处理子系统700的无论是硬件还是软件组件的多种其他组件的任一种的支持。
[0055]控制例程140、440或640的每个可包括通信组件149、449或649,其是处理器组件150、450或650可执行的,以便分别操作接口 190、490或690以如所述经由网络999传送和接收信号。在所接收信号之中可以是经由网络999在计算装置100、400和/或600的一个或多个之间传达任务输入数据133、任务描述数据134、任务配置数据135、任务输出数据337、任务部分例程171a_b和/或172a_b的一个或多个、资源数据段和/或状态数据段的信号。如本领域的技术人员将会理解,这些通信组件选择成与被选择以实现接口 190、490和690的对应接口的任一种类型的接口技术是可配合操作的。对应地,控制例程740还可包括通信组件749,其是处理器组件750可执行的,以便还经由网络999交换这种数据和例程。但是,如稍后将说明,通信组件749必须与控制例程的一个或多个组件进行协作,以便采用接口690来参与这类交换。
[0056]更具体来看图3,控制例程140可包括编译器141a和141b,其是处理器组件150可执行的,以便将任务代码110的任务部分代码111和112编译为编译版本,以供不同类型的处理器组件的处理器组件核心来运行。再次应当注意,由于在分布式处理系统1000的处理装置600之间仅示出两种类型的处理器组件(例如处理器组件650和750),所以仅示出两个编译器141a和141b。但是,其中处理装置600仅具有一种类型的处理器组件的实施例是可能的,以及其中处理装置600的至少一部分具有超过两种类型的处理器组件的实施例是可能的。此外,其中一种或多种类型的处理器组件结合超过一种类型的处理器组件核心的实施例是可能的。因此,在这类其他实施例中,控制例程140可根据需要结合不同数量的编译器,以便生成任务部分例程的编译版本,以供分布式处理系统1000的处理器组件之间存在的不同类型的核心来运行。
[0057]给定任务代码110的所示版本只结合两个任务部分代码111和112(只对应于两个不同任务部分),编译器141a编译任务部分代码111和112,以便分别生成任务部分例程171a和172a,以供处理器核心655的处理器核心来运行。编译器141b还编译相同的两个任务部分代码111和112,以便分别生成任务部分例程171b和172b,以供处理器核心755的处理器核心来运行。这样,与任务部分代码111和112的每个关联的两个任务部分的每个的实例可由核心655或755的任一个来执行。为了执行与任务部分代码111关联的任务部分,核心655运行任务部分例程171 a,和/或核心75 5运行任务部分例程171 b。对应地,为了执行与任务部分代码112关联的任务部分,核心655运行任务部分例程172a,和/或核心755运行任务部分例程172bo
[0058]控制例程140可包括提交组件144,其是处理器组件150可执行的,以便通过向存储服务器300和/或调度服务器400传送(与通信组件149协作)数据和/或例程,来提交任务,以供分布式处理系统1000来执行。具体来说,提交组件144向存储服务器300提供任务部分例程171a-b和172a-b连同任务输入数据133(若存在的话)。此外,提交组件144向调度服务器400提供任务描述数据134连同任务配置数据135(若存在的话)。提交组件144可监测控件120,并且响应由提交装置100的操作员对控件120的操作的指示而提交任务,以便提供这样做的命令。作为替代或补充,提交组件144可在显示器180上可视地呈现这种提交的进度和/或完成的指示。
[0059]控制例程140可包括状态组件147,其是处理器组件150可执行的,以便向调度服务器300传送(与通信组件149协作)对任务的执行的当前状态的指示的查询。状态组件147可监测控件120,并且响应由提交装置100的操作员对控件120的操作的指示而发送查询,以便提供这样做的命令。作为替代或补充,在从调度服务器400接收任务的执行的当前状态的指示时,状态组件147可在显示器180上可视地呈现那个状态的这种指示。
[0060]现在具体来看图4,控制例程440可包括资源组件443,其是处理器组件450可执行的,以便从处理装置600的每个接收(与通信组件449协作)资源数据。如先前所述,资源数据段可从单独处理装置600来接收,并且详述与其中的所有处理器组件关联的资源。但是,又如先前所述,资源数据段可从处理装置600的每个的单独处理器组件650和/或750来接收,并且单独详述与那些处理器组件的每个关联的资源。这类资源再次可包括但是并不局限于各处理器组件的核心的数量和/或类型、高速缓存的大小、核心的速度、核心的功率消耗率、处理器组件可用的存储装置的大小等。资源组件443可将所接收资源数据段聚合为资源数据430。
[0061 ]控制例程440可包括提交组件444,其作为用来提交与任务代码110关联的待执行任务的提交装置100的组成部分,是处理器组件450可执行的,以便接收(与通信组件449协作)任务描述数据134和任务配置数据135其中之一或两者。如先前所述,任务描述数据134提供任务的参数的指示,包括待执行的各任务部分的实例的数量、任务部分例程和/或输入数据所在的(一个或多个)位置和/或将要存储任何输出数据的位置。又如先前所述,任务配置数据135(若被接收的话)可提供关于核心将要被选择用于任务部分的指配的方式的指示,以及那些指示可忽略缺省配置数据435(若存在的话)的指示。
[0062]控制例程440可包括核心选择组件445,其是处理器组件450可执行的,以选择分布式处理系统1000的处理器组件核心(例如核心655和/或755的一个或多个)供执行任务部分的指配。如所述,处理器组件核心可按照符合减少执行任务所需的时间与减少执行任务所消耗的电力量之间的所选折衷的方式来选择。换言之,选择核心以运行对它们所指配的任务部分例程的实例可基于运行任务例程的实例所需的计算时间与功率消耗时间之间的所选平衡点。缺省配置数据435(若存在的话)可指示有利于减少时间或者减少功率消耗其中之一优于另一个的缺省选择。此外,任务的任务提交可包括向调度服务器400传送任务配置数据135,其中任务配置数据135包括有利于减少时间或减少功率消耗其中之一的选择的指示,其可不同于并且忽略缺省配置数据435中指示的选择。
[0063]如先前所述,在有利于减少执行任务的时间优于减少执行任务的电力消耗进行选择的实施例中,核心655和/或755的核心基于关于哪些核心能够更快地执行各任务部分的确定来选择。对于核心655和/或755的哪些核心能够更快地执行任务部分的考虑因素包括但不限于各核心的时钟频率、各核心可用的(一个或多个)高速缓存的大小以及每种类型的核心上的各任务部分的可能性能的分析。作为替代或补充,核心655和/或755的核心被选择成增加所选核心之间的局部性程度,以便通过减少进程间通信量(其必须经过网络999相比经过处理装置600中的内部总线发生)来减少执行任务的时间。再次预计耦合处理装置600中以及处理器组件650和750的每个中的核心的总线本身能够以比经由网络999可能的速率要高的速率来传达数据。
[0064]如先前所述,在有利于减少执行任务的电力消耗优于减少执行任务所需的时间进行选择的实施例中,核心655和/或755的核心基于其相对电力消耗率来选择。在具有比较相似的电力消耗率的核心655和/或755的核心之间,可确定哪些核心能够比其他核心更快地执行任务部分的给定任务部分,使得在那些核心之间以那个比较相似的电力消耗率执行那个任务部分将要求较少时间,以便减少总功率消耗。作为替代或补充,可分析任务的任务部分,以确定哪些任务部分将需要较长时间来执行,并且可将那些任务部分指配给具有较低功率消耗率的核心655和/或755的核心,以便使任务的多数由以较低速率消耗功率的核心来执行。与按照有利于减少执行任务的时间的方式来选择核心的情况形成对照,核心可与其在选择核心中的局部性无关地来选择,以减少功率消耗。这可基于如下假设:进程间通信主要由信号的比较简短交换来组成,使得在处理装置600之一中与处理装置600间传送那些信号之间的功率消耗的差被认为是相对可忽略的。
[0065]控制例程440可包括状态组件447,其是处理器组件450可执行的,以便接收(与通信组件449协作)指示任务部分的执行的当前状态的状态数据段。如先前所述,状态数据段可从单独处理器组件核心655和/或755来接收,并且详述任务部分例程171a-b和172a-b的对应例程的执行的当前状态。处理器组件核心655和/或755可向调度服务器400提供这种状态数据,而无需通过来自调度
当前第3页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1