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

文档序号:9693210阅读:343来源:国知局
用于分布式处理任务部分指配的技术的制作方法
【技术领域】
[0001]本文所述的实施例一般涉及在分布式处理系统的处理装置的处理器组件的核心之间的任务的部分的分布。
【背景技术】
[0002]常见的是使用由一个或多个网络所耦合的许多处理装置的所谓“服务器群”、通过在处理装置的多个处理装置之间指配那个任务的多个部分以并行执行那些部分来执行任务。但是,这类常见实践需要仅按照处理装置的任务部分的指配粒度。因此,将各任务部分指配给整个计算装置,以及各处理装置仅完全专用于指配给它的一个任务部分。
[0003]通过将调度例程结合到例程(其实现指配给处理装置的任务部分的逻辑)中,取得向单独处理器组件和/或处理装置中的处理器组件的单独核心指配任务部分方面的更细程度的粒度成为可能。但是,在任务部分中包括调度例程以取得这种粒度的这个要求将要求处理装置的(一个或多个)处理器组件的特定配置的某个量的知识以实现子部分的有效指配,从而对编写各任务的代码的那些人增加非预期负担。具体来说,在具有伴随多个协处理器组件的基本处理器组件的处理装置中,调度例程常常必须专门编译成由基本处理器组件来运行,以及实现任务部分的子部分的逻辑的例程的部分必须为协处理器组件专门编译。
[0004]此外,各处理装置仅完全专用于一个任务部分的事实常常浪费处理装置的至少一部分中的可用处理资源,因为各任务部分能够设计成有效利用各处理装置中的全部核心是少见的情况。这不可避免地引起将更多处理装置用来执行各任务,由此剥夺其他任务利用那些处理装置的机会。此外,处理装置的处理和/或其他资源的这种低效使用最终引起电力的极大浪费。
【附图说明】
[0005]图1不出分布式处理系统的一实施例。
[0006]图2A和图2B各示出分布式处理系统的一实施例。
[0007]图3-6各不出分布式处理系统的一实施例的一部分。
[0008]图7-9各示出按照一实施例的逻辑流程。
[0009]图10示出按照一实施例的处理架构。
【具体实施方式】
[0010]各个实施例一般针对用于在分布式处理系统的各处理装置的一个或多个处理器组件的单独核心之间指配任务的部分的技术。更具体来说,将任务的任务部分分布在分布式处理系统的处理装置的基本处理器组件和子系统处理器组件的核心之间。为了支持这种分布,任务的各任务部分的任务部分代码使用多个编译器来编译,以创建由每个处理装置中存在的每种类型的处理器组件的核心可执行的编译任务部分例程的版本。每个任务部分例程的多个版本连同任何任务输入数据(其可被要求以执行任务)一起存储在存储服务器中,其中它们能够由处理装置的一个或多个来检索。向调度服务器提供传达任务的各种参数的任务描述数据,以便使调度服务器能够选择和指配处理装置的一个或多个的处理器组件的核心来执行任务的任务部分。
[0011]调度服务器还从每个处理装置接收指定分布式处理系统的各处理装置的各处理器组件的处理和其他资源的资源数据。这种资源数据可包括各处理器组件的核心的数量和/或类型、高速缓存的大小、核心的速度、核心的功率消耗率、处理器组件可用的存储装置的大小等的指不。
[0012]调度服务器可通过缺省配置数据以及与任务关联的配置数据其中之一或两者配置成基于减少执行任务的时间与减少执行任务的电力消耗之间的所选折衷来选择被指配任务部分的核心。作为举例,调度服务器可在每当可能的时候指配消耗较少功率的处理装置的处理器组件核心,以便减少任务的执行中的电力的总消耗,并且可能以执行任务的速度为代价来这样做。通过另一个示例,调度服务器可在每当可能的时候指配较快的处理器组件核心(例如操作较高时钟速率或者有权访问较大高速缓存的处理器组件核心),以减少执行任务所需的总时间。作为替代或补充,调度服务器可在每当可能的时候指配同一处理器组件和/或同一处理装置的处理器组件的处理器组件核心,以便通过减少对经由处理装置之间的网络所执行的进程间通信的需要的实例来减少执行任务的时间。
[0013]调度服务器将任务部分的指配的指示传送给处理装置中被指配任务部分的处理器组件核心的一个或多个的处理装置。这类指示可包括对可检索(例如从存储它们的存储服务器)任务部分例程和任何输入数据的位置的指针。在接收这类指示时,被指配这些任务部分的处理器组件核心采用这类指针来检索任务部分例程的版本的对应版本连同可能需要的任何输入数据,并且然后运行其任务部分例程的相应例程。
[0014]在任务部分例程的执行期间,被指配任务部分例程的处理器组件核心各向调度服务器传送指示其在执行任务的相应任务部分中的进度的一个或多个方面的状态数据。这可以或者可以不响应来自调度服务器的状态查询而进行。调度服务器然后可采用在一直到那个时间执行任务中进行的总进度的指示来响应执行任务中的进度的状态查询。
[0015]又在任务例程的执行期间,并且取决于任务的性质,处理器组件核心可向存储服务器(从其中先前检索任务部分例程和/或输入数据)传送来自其对被指配任务部分的执行的输出数据的部分。存储服务器可将这种输出数据的部分汇编或格式化为单个输出数据或数据集,其能够在任务的执行完成时由其他计算装置来检索以供审查。
[0016]在处理装置的至少一部分中可以是基本处理器组件和一个或多个子系统处理器组件。子系统处理器组件的每个可耦合到独立于与基本处理器组件耦合的存储装置的存储装置,由此形成一个或多个基本上无关的处理子系统。在一些实施例中,基本处理器组件和一个或多个子系统处理器组件可具有不同类型,对于其可需要采用不同编译器来编译。基本处理器组件可更直接地耦合到处理装置到网络的接口,并且可与每个子系统处理器组件协作,以便为每个子系统处理器组件提供网络上单独可寻址的“虚拟存在”。
[0017]—般地参照本文所使用的符号和术语,以下详细描述的部分可根据计算机或者计算机网络上运行的程序过程来呈现。这些过程描述和表示由数据处理领域的技术人员用来向本领域的其他技术人员最有效地传达其工作主旨。过程在这里以及一般被认为是产生预期结果的独立操作序列。这些操作是要求物理量的物理操控的那些操作。这些量通常但不一定采取能够被存储、传递、组合、比较以及以其他方式操控的电、磁或光信号的形式。主要为了一般使用的原因,将这些信号称作位、值、元素、符号、字符、项、编号等,证明有时非常便利。但是应当理解,所有这些及类似的项均与适当的物理量关联,并且只是应用到那些数量的便捷标签。
[0018]此外,常常按照诸如“添加”或“比较”之类的术语来提到这些操控,其通常与人类操作员所执行的心理操作关联。但是,在形成一个或多个实施例的部分的本文所述操作的任一个中,不需要人类操作员的这种能力。这些操作而是机器操作。用于执行各个实施例的操作的有用机器包括通用数字计算机,如通过其中存储的、按照本文理论所编写的计算机程序有选择地激活或配置,和/或包括专门构造用于所需目的的设备。各个实施例还涉及用于执行这些操作的设备或系统。这些设备可专门构造用于所需目的,或者可包括通用计算机。多种这些机器的所需结构通过所给出的描述将是显而易见的。
[0019]现在参照附图,其中相似参考标号通篇用来表示相似元件。为了便于说明,以下描述中提出大量具体细节,以便提供对其的透彻了解。但是可显而易见,即使没有这些具体细节也能够实施新实施例。在其他情况下,众所周知的结构和装置采取框图形式示出,以便于其描述。本发明在权利要求的范围之内涵盖所有修改、等效和备选方案。
[0020]图1是结合提交装置100、存储服务器300、调度服务器400和多个处理装置600中的一个或多个的分布式处理系统1000的一实施例的框图。这些计算装置装置100、300、400和600的每个可以是多种类型的计算装置中的任一种,非限制性地包括台式计算机系统、数据输入终端、膝上型计算机、上网本计算机、平板计算机、手持个人数字助理、智能电话、数码相机、结合到服装中的穿戴式计算装置、集成到车辆(例如汽车、自行车、轮椅等)中的计算装置、服务器、服务器集群、服务器群等。
[0021]如所示,这些计算装置100、300、400和600的子集经由网络999来交换与任务的分布式执行关联的信号。但是,这些计算装置的一个或多个可经由网络999在相互之间和/或与又一些计算装置(未示出)来交换与分布式处理完全无关的其他数据。在各个实施例中,网络999可以是可能限制到在单个大楼或者其他相对受限的区域中延伸的单个网络、可能延伸相当大的距离的连接网络的组合,和/或可包括因特网。因此,网络999可基于可用以交换信号的多种通信技术的任一种(或组合),非限制性地包括采用电和/或光传导电缆布线的有线技术以及采用红外、射频或其他形式的无线传输的无线技术。
[0022]在各个实施例中,提交装置100结合处理器组件150、存储装置160、控件120、显示器180和接口 190中的一个或多个,以便将提交装置100耦合到网络999。存储装置160存储控制例程140、任务输入数据133、任务描述数据134、任务配置数据135、任务代码110以及任务部分例程171a-b和172a-b中的一个或多个。任务代码110结合任务部分代码111和112。控制例程140结合指令序列(其在处理器组件150上按照其作为提交装置100的主处理器组件的作用是可操作的),以实现执行各种功能的逻辑。如将更详细说明,任务部分例程171a-b和172a-b的每个结合指令序列(其在处理装置600的不同处理器组件上是可操作的),以实现执行共同任务的各种功能的逻辑。
[0023]在运行控制例程140中,处理器组件150可采用独立编译器来编译任务部分代码111,以便生成供一种类型的处理器组件核心所运行的任务部分例程171a以及供另一种类型的处理器组件核心所运行的任务部分例程171b。换言之,任务部分例程171a和171b的每个是任务部分代码ill的编译版本,并且各实现相同逻辑,但是各预计由不同的处理器核心来运行。在运行控制例程140中,处理器组件150可类似地采用独立编译器来编译任务部分代码112,以便生成供与任务部分例程171a相同类型的处理器组件核心所运行的任务部分例程172a以及供与任务部分例程171b相同类型的处理器组件核心所运行的任务部分例程172bo
[0024]应当注意,虽然任务代码110示为仅结合两个不同的任务部分代码111和112,但是这是为了本文的说明和论述的简洁起见而进行。其他实施例是可能的,其中任务代码110仅结合单个任务部分代码或者结合除了二之外的数量的多个任务部分代码。更一般来说,应当注意,任务可划分的不同任务部分的数量取决于任务的性质。一些任务可通过将任务划分为能够并行执行的仅单个任务部分的多个实例来并行执行。在对应实施例中,任务代码110可以仅结合任务部分111,以及可存在由多个处理器组件核心并行运行的编译任务部分例程171a和/或171b的多个实例。备选地,可通过将任务划分为多个不同任务部分以使得任务代码110对应地结合多个不同任务部分代码,并行地执行其他任务。可以仅存在那些不同任务部分的一个或多个的一个实例,和/或可存在那些不同任务部分的一个或多个其他部分的多个实例。
[0025]在进一步运行控制例程140中,处理器组件150可操作接口 190,以便经由网络999向存储服务器300传送任务部分例程171a-b和172a-b。在与任务代码110关联的任务的执行要求作为输入的数据的实施例中,处理器组件150还可向存储服务器300传送结合这种数据的任务输入数据133。处理器组件150还操作接口 190,以便经由网络999向调度服务器400至少传送任务描述数据134。任务描述数据134提供与任务代码110关联的任务的各种参数,其可包括不同任务部分的数量、将要并行执行的不同任务部分的每个的实例的数量、对其编译了各不同任务部分的处理器组件核心的类型、可查找任务部分例程和/或任何输入数据(例如任务输入数据133)的位置的指示以及将要存储任何输出数据的位置的指示中的一个或多个。在可为各任务指定处理器组件核心被选择用于任务部分的指配的方式的实施例中,处理器组件150还可向调度服务器400传送任务配置数据135以便进行这种操作。在向存储服务器300传送任务部分例程171a-b和172a-b以及输入数据133中,并且在向调度服务器400传送任务描述数据134和/或任务配置数据135中,处理器组件150有效地向分布式处理系统1000“提交”与任务代码110关联的任务以供执行。
[0026]在各个实施例中,调度服务器400结合处理器组件450、存储装置460和接口490中的一个或多个,以便将调度服务器400耦合到网络999。存储装置460存储控制例程440、任务资源数据430、缺省配置数据435和状态数据437中的一个或多个以及从提交装置100所接收的描述数据134和任务配置数据135。控制例程440结合指令序列(其在处理器组件450上按照其作为调度服务器400的主处理器组件的作用是可操作的),以实现执行各种功能的逻辑。
[0027]在运行控制例程440中,处理器组件450可通过操作接口490以经由网络999从处理装置600的每个接收指示每个中存在的处理和其他资源的资源数据段,来准备分布式处理系统1000供使用。资源数据段可从处理装置600的每个中的各处理器组件单独接收,并且指示与各处理器组件关联的处理和其他资源。备选地,资源数据段可从处理装置600的每个逐段接收,并且指示与处理装置600的每个中的所有处理器组件关联的处理和其他资源。处理器组件450可通过向处理装置600的每个传送关于哪些资源存在的查询,来提示由处理装置600对这些资源数据段的提供。一些提示可由处理器组件450周期地(例如常规间隔)进行,可响应调度服务器400的初始化(例如复位或“加电”)而进行,或者可响应关于对处理系统600的一个或多个和/或对调度服务器400用以耦合到处理系统600的网络999进行的变更的指示而进行。处理器组件450可将所接收资源数据段作为资源数据430来聚合和存储。
[0028]又在运行控制例程440中,处理器组件450可操作接口490,以便从提交装置100
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1