CN105453044B - 用于分布式处理任务部分指配的技术 - Google Patents
用于分布式处理任务部分指配的技术 Download PDFInfo
- Publication number
- CN105453044B CN105453044B CN201380079006.6A CN201380079006A CN105453044B CN 105453044 B CN105453044 B CN 105453044B CN 201380079006 A CN201380079006 A CN 201380079006A CN 105453044 B CN105453044 B CN 105453044B
- Authority
- CN
- China
- Prior art keywords
- task
- cores
- processor component
- component
- core
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5094—Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5017—Task decomposition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Power Sources (AREA)
- Multi Processors (AREA)
Abstract
各个实施例一般针对用于在分布式处理系统的各处理装置的一个或多个处理器组件的单独核心之间指配任务的部分的技术。一种指配处理器组件核心以执行任务部分的设备包括:处理器组件;接口,用于将处理器组件耦合到网络,以接收指示分布式处理系统的处理装置的基本和子系统处理器组件的可用核心的数据,子系统处理器组件在网络上经过基本处理器组件是可访问的;以及核心选择组件,供处理器组件来运行,以便基于运行任务部分例程的实例所需的计算时间与功率消耗之间的所选平衡从可用核心之中选择核心来运行任务的任务部分例程的实例。描述并且要求保护了其他实施例。
Description
技术领域
本文所述的实施例一般涉及在分布式处理系统的处理装置的处理器组件的核心之间的任务的部分的分布。
背景技术
常见的是使用由一个或多个网络所耦合的许多处理装置的所谓“服务器群”、通过在处理装置的多个处理装置之间指配那个任务的多个部分以并行执行那些部分来执行任务。但是,这类常见实践需要仅按照处理装置的任务部分的指配粒度。因此,将各任务部分指配给整个计算装置,以及各处理装置仅完全专用于指配给它的一个任务部分。
通过将调度例程结合到例程(其实现指配给处理装置的任务部分的逻辑)中,取得向单独处理器组件和/或处理装置中的处理器组件的单独核心指配任务部分方面的更细程度的粒度成为可能。但是,在任务部分中包括调度例程以取得这种粒度的这个要求将要求处理装置的(一个或多个)处理器组件的特定配置的某个量的知识以实现子部分的有效指配,从而对编写各任务的代码的那些人增加非预期负担。具体来说,在具有伴随多个协处理器组件的基本处理器组件的处理装置中,调度例程常常必须专门编译成由基本处理器组件来运行,以及实现任务部分的子部分的逻辑的例程的部分必须为协处理器组件专门编译。
此外,各处理装置仅完全专用于一个任务部分的事实常常浪费处理装置的至少一部分中的可用处理资源,因为各任务部分能够设计成有效利用各处理装置中的全部核心是少见的情况。这不可避免地引起将更多处理装置用来执行各任务,由此剥夺其他任务利用那些处理装置的机会。此外,处理装置的处理和/或其他资源的这种低效使用最终引起电力的极大浪费。
附图说明
图1示出分布式处理系统的一实施例。
图2A和图2B各示出分布式处理系统的一实施例。
图3-6各示出分布式处理系统的一实施例的一部分。
图7-9各示出按照一实施例的逻辑流程。
图10示出按照一实施例的处理架构。
具体实施方式
各个实施例一般针对用于在分布式处理系统的各处理装置的一个或多个处理器组件的单独核心之间指配任务的部分的技术。更具体来说,将任务的任务部分分布在分布式处理系统的处理装置的基本处理器组件和子系统处理器组件的核心之间。为了支持这种分布,任务的各任务部分的任务部分代码使用多个编译器来编译,以创建由每个处理装置中存在的每种类型的处理器组件的核心可执行的编译任务部分例程的版本。每个任务部分例程的多个版本连同任何任务输入数据(其可被要求以执行任务)一起存储在存储服务器中,其中它们能够由处理装置的一个或多个来检索。向调度服务器提供传达任务的各种参数的任务描述数据,以便使调度服务器能够选择和指配处理装置的一个或多个的处理器组件的核心来执行任务的任务部分。
调度服务器还从每个处理装置接收指定分布式处理系统的各处理装置的各处理器组件的处理和其他资源的资源数据。这种资源数据可包括各处理器组件的核心的数量和/或类型、高速缓存的大小、核心的速度、核心的功率消耗率、处理器组件可用的存储装置的大小等的指示。
调度服务器可通过缺省配置数据以及与任务关联的配置数据其中之一或两者配置成基于减少执行任务的时间与减少执行任务的电力消耗之间的所选折衷来选择被指配任务部分的核心。作为举例,调度服务器可在每当可能的时候指配消耗较少功率的处理装置的处理器组件核心,以便减少任务的执行中的电力的总消耗,并且可能以执行任务的速度为代价来这样做。通过另一个示例,调度服务器可在每当可能的时候指配较快的处理器组件核心(例如操作较高时钟速率或者有权访问较大高速缓存的处理器组件核心),以减少执行任务所需的总时间。作为替代或补充,调度服务器可在每当可能的时候指配同一处理器组件和/或同一处理装置的处理器组件的处理器组件核心,以便通过减少对经由处理装置之间的网络所执行的进程间通信的需要的实例来减少执行任务的时间。
调度服务器将任务部分的指配的指示传送给处理装置中被指配任务部分的处理器组件核心的一个或多个的处理装置。这类指示可包括对可检索(例如从存储它们的存储服务器)任务部分例程和任何输入数据的位置的指针。在接收这类指示时,被指配这些任务部分的处理器组件核心采用这类指针来检索任务部分例程的版本的对应版本连同可能需要的任何输入数据,并且然后运行其任务部分例程的相应例程。
在任务部分例程的执行期间,被指配任务部分例程的处理器组件核心各向调度服务器传送指示其在执行任务的相应任务部分中的进度的一个或多个方面的状态数据。这可以或者可以不响应来自调度服务器的状态查询而进行。调度服务器然后可采用在一直到那个时间执行任务中进行的总进度的指示来响应执行任务中的进度的状态查询。
又在任务例程的执行期间,并且取决于任务的性质,处理器组件核心可向存储服务器(从其中先前检索任务部分例程和/或输入数据)传送来自其对被指配任务部分的执行的输出数据的部分。存储服务器可将这种输出数据的部分汇编或格式化为单个输出数据或数据集,其能够在任务的执行完成时由其他计算装置来检索以供审查。
在处理装置的至少一部分中可以是基本处理器组件和一个或多个子系统处理器组件。子系统处理器组件的每个可耦合到独立于与基本处理器组件耦合的存储装置的存储装置,由此形成一个或多个基本上无关的处理子系统。在一些实施例中,基本处理器组件和一个或多个子系统处理器组件可具有不同类型,对于其可需要采用不同编译器来编译。基本处理器组件可更直接地耦合到处理装置到网络的接口,并且可与每个子系统处理器组件协作,以便为每个子系统处理器组件提供网络上单独可寻址的“虚拟存在”。
一般地参照本文所使用的符号和术语,以下详细描述的部分可根据计算机或者计算机网络上运行的程序过程来呈现。这些过程描述和表示由数据处理领域的技术人员用来向本领域的其他技术人员最有效地传达其工作主旨。过程在这里以及一般被认为是产生预期结果的独立操作序列。这些操作是要求物理量的物理操控的那些操作。这些量通常但不一定采取能够被存储、传递、组合、比较以及以其他方式操控的电、磁或光信号的形式。主要为了一般使用的原因,将这些信号称作位、值、元素、符号、字符、项、编号等,证明有时非常便利。但是应当理解,所有这些及类似的项均与适当的物理量关联,并且只是应用到那些数量的便捷标签。
此外,常常按照诸如“添加”或“比较”之类的术语来提到这些操控,其通常与人类操作员所执行的心理操作关联。但是,在形成一个或多个实施例的部分的本文所述操作的任一个中,不需要人类操作员的这种能力。这些操作而是机器操作。用于执行各个实施例的操作的有用机器包括通用数字计算机,如通过其中存储的、按照本文理论所编写的计算机程序有选择地激活或配置,和/或包括专门构造用于所需目的的设备。各个实施例还涉及用于执行这些操作的设备或系统。这些设备可专门构造用于所需目的,或者可包括通用计算机。多种这些机器的所需结构通过所给出的描述将是显而易见的。
现在参照附图,其中相似参考标号通篇用来表示相似元件。为了便于说明,以下描述中提出大量具体细节,以便提供对其的透彻了解。但是可显而易见,即使没有这些具体细节也能够实施新实施例。在其他情况下,众所周知的结构和装置采取框图形式示出,以便于其描述。本发明在权利要求的范围之内涵盖所有修改、等效和备选方案。
图1是结合提交装置100、存储服务器300、调度服务器400和多个处理装置600中的一个或多个的分布式处理系统1000的一实施例的框图。这些计算装置装置100、300、400和600的每个可以是多种类型的计算装置中的任一种,非限制性地包括台式计算机系统、数据输入终端、膝上型计算机、上网本计算机、平板计算机、手持个人数字助理、智能电话、数码相机、结合到服装中的穿戴式计算装置、集成到车辆(例如汽车、自行车、轮椅等)中的计算装置、服务器、服务器集群、服务器群等。
如所示,这些计算装置100、300、400和600的子集经由网络999来交换与任务的分布式执行关联的信号。但是,这些计算装置的一个或多个可经由网络999在相互之间和/或与又一些计算装置(未示出)来交换与分布式处理完全无关的其他数据。在各个实施例中,网络999可以是可能限制到在单个大楼或者其他相对受限的区域中延伸的单个网络、可能延伸相当大的距离的连接网络的组合,和/或可包括因特网。因此,网络999可基于可用以交换信号的多种通信技术的任一种(或组合),非限制性地包括采用电和/或光传导电缆布线的有线技术以及采用红外、射频或其他形式的无线传输的无线技术。
在各个实施例中,提交装置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的不同处理器组件上是可操作的),以实现执行共同任务的各种功能的逻辑。
在运行控制例程140中,处理器组件150可采用独立编译器来编译任务部分代码111,以便生成供一种类型的处理器组件核心所运行的任务部分例程171a以及供另一种类型的处理器组件核心所运行的任务部分例程171b。换言之,任务部分例程171a和171b的每个是任务部分代码111的编译版本,并且各实现相同逻辑,但是各预计由不同的处理器核心来运行。在运行控制例程140中,处理器组件150可类似地采用独立编译器来编译任务部分代码112,以便生成供与任务部分例程171a相同类型的处理器组件核心所运行的任务部分例程172a以及供与任务部分例程171b相同类型的处理器组件核心所运行的任务部分例程172b。
应当注意,虽然任务代码110示为仅结合两个不同的任务部分代码111和112,但是这是为了本文的说明和论述的简洁起见而进行。其他实施例是可能的,其中任务代码110仅结合单个任务部分代码或者结合除了二之外的数量的多个任务部分代码。更一般来说,应当注意,任务可划分的不同任务部分的数量取决于任务的性质。一些任务可通过将任务划分为能够并行执行的仅单个任务部分的多个实例来并行执行。在对应实施例中,任务代码110可以仅结合任务部分111,以及可存在由多个处理器组件核心并行运行的编译任务部分例程171a和/或171b的多个实例。备选地,可通过将任务划分为多个不同任务部分以使得任务代码110对应地结合多个不同任务部分代码,并行地执行其他任务。可以仅存在那些不同任务部分的一个或多个的一个实例,和/或可存在那些不同任务部分的一个或多个其他部分的多个实例。
在进一步运行控制例程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关联的任务以供执行。
在各个实施例中,调度服务器400结合处理器组件450、存储装置460和接口490中的一个或多个,以便将调度服务器400耦合到网络999。存储装置460存储控制例程440、任务资源数据430、缺省配置数据435和状态数据437中的一个或多个以及从提交装置100所接收的描述数据134和任务配置数据135。控制例程440结合指令序列(其在处理器组件450上按照其作为调度服务器400的主处理器组件的作用是可操作的),以实现执行各种功能的逻辑。
在运行控制例程440中,处理器组件450可通过操作接口490以经由网络999从处理装置600的每个接收指示每个中存在的处理和其他资源的资源数据段,来准备分布式处理系统1000供使用。资源数据段可从处理装置600的每个中的各处理器组件单独接收,并且指示与各处理器组件关联的处理和其他资源。备选地,资源数据段可从处理装置600的每个逐段接收,并且指示与处理装置600的每个中的所有处理器组件关联的处理和其他资源。处理器组件450可通过向处理装置600的每个传送关于哪些资源存在的查询,来提示由处理装置600对这些资源数据段的提供。一些提示可由处理器组件450周期地(例如常规间隔)进行,可响应调度服务器400的初始化(例如复位或“加电”)而进行,或者可响应关于对处理系统600的一个或多个和/或对调度服务器400用以耦合到处理系统600的网络999进行的变更的指示而进行。处理器组件450可将所接收资源数据段作为资源数据430来聚合和存储。
又在运行控制例程440中,处理器组件450可操作接口490,以便从提交装置100接收并且存储任务描述数据134和/或任务配置数据135。如先前所述,任务描述数据134提供与任务代码110关联的任务的各种参数的指示,由此有效地为调度服务器400提供需要分布式处理系统1000的哪些资源来执行任务的指示。控制例程440根据需要指配分布式处理系统1000的处理装置600的至少一部分的处理器组件核心和其他资源,以满足任务描述数据134中指示的参数。
任务配置数据135在由提交装置100所提供时可指示至少处理器组件核心将要选择用于指配以执行任务的任务部分的方式。向调度服务器400提供任务配置数据135可以是可选的,并且可被提供以忽略至少处理器组件核心将要选择用于指配的方式的缺省配置数据435中提供的任何指示。如将更详细说明,由处理器组件440所采用的选择方式可表示减少执行任务的时间的选择与减少执行任务中的电力消耗的选择之间的折衷。
不管选择处理器组件核心的方式,处理器组件450可操作接口490,以便向一个或多个处理器组件传送关于其核心的哪些被选择用于指配以执行任务的任务部分的指示。这些指示可结合任务描述数据134中传达的内容的子集,包括但不限于可查找任务部分例程171a-b和172a-b的适当例程的位置、可查找输入数据133(若需要的话)的位置以及将要存储任何输出数据的位置的指示。更简单来说,处理器组件450为所选处理器组件核心的每个提供关于它将要执行哪一个任务部分、输入数据(若存在任何数据的话)的哪一个部分要用作输入以及任何输出数据要送往的位置的指示。
在各个实施例中,处理装置600的每个结合处理器组件650、存储装置660、提供到网络999和一个或多个处理子系统700的耦合的接口690中的一个或多个。处理器组件650结合一个或多个核心655,其中执行处理器组件650的处理功能。存储装置660至少存储控制例程640。处理子系统700的每个结合处理器组件750和存储装置760其中之一或两者。处理器组件750结合一个或多个核心755,其中执行处理器组件750的处理功能。存储装置760至少存储控制例程740。
图2A和图2B示出分布式处理系统1000的一实施例的操作的示例。这个具体所示实施例结合处理装置600的三个实例,即,处理装置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上是可操作的。
应当注意,处理装置600x-z的并非全部核心655和/或755均可以是可用的,因为处理器组件450选择核心655和/或755的核心以用于指配以执行任务的任务部分。核心655和/或755的一个或多个可能已经参与执行一个或多个其他任务的(一个或多个)任务部分。
图2A中,分布式处理系统1000执行与任务代码110关联的任务的版本的任务部分,其中仅执行与任务部分代码111关联的任务部分的一个实例,并且其中执行与任务部分代码112关联的任务部分的多个实例。此外,缺省配置数据435和/或任务配置数据135提供关于分布式处理系统1000的可用资源将要按照使任务尽可能快地被执行的方式并且以减少功率消耗(若必要的话)的工作量为代价来分配的指示。作为响应,处理器组件450按照在减少时间与减少功率消耗之间的任何折衷中有利于减少执行任务所需的时间的方式,在处理装置600x-z之间选择处理器组件核心655和755的核心供指配给任务部分。
因此,处理器组件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的所需实例。
在按照减少执行任务所需的时间相比减少功率消耗的方式来选择核心655和755的核心中,作为替代或补充,处理器组件450选择处理装置600x-z的处理装置的核心655和/或755,其中核心655和/或755的较大数量可用来限制所使用处理装置的数量。限制所使用处理装置的数量相应地限制必须通过网络999在处理装置之间发生的进程间通信量,以便协调核心655和/或755的核心之间的任务部分例程的执行。换句话说,通过在较少数量的处理装置中选择更多核心655和/或755,更多进程间通信将跨那些处理装置中的一个或多个总线发生,这通常比跨网络发生的通信基本上更快。这通过改进被指配以执行任务的部分的处理器核心655和/或755的局部性程度以使得更多进程间通信相互在物理上是“本地”(例如设置在同一处理装置中)的核心655和/或755的核心之间发生,来取得执行任务的时间的减少。
因此,如图2A所示,被选择以执行与任务代码110的这个版本关联的任务的处理器核心655和755的大多数处于单个处理装置600x中。因此,被选择以执行这个任务的任务部分的核心655和755的大多数是工作在较快时钟频率的核心,并且相互是本地的,使得进程间通信的大多数无需经由网络999来传达。
图2B中,分布式处理系统1000执行与任务代码110关联的任务的版本的任务部分,其中执行与任务部分代码111和112关联的任务部分的多个实例。此外,缺省配置数据435和/或任务配置数据135提供关于分布式处理系统1000的可用资源将要按照使电力消耗为最小的方式并且以减少执行任务所需的时间(若必要的话)的工作量为代价来分配的指示。作为响应,处理器组件450按照在减少时间与减少功率消耗之间的任何折衷中有利于减少执行任务的功率消耗的方式,在处理装置600x-z之间选择处理器组件核心655和755的核心供指配给任务部分。
因此,处理器组件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的示例不同,任务部分例程171a-b和172a-b的每个由核心655和755的至少一个对应核心来运行。
在按照减少执行任务中的电力消耗相比减少所需时间的方式来选择核心655和755的核心中,作为替代或补充,处理器组件450按照完全忽略所选核心之间的局部性的方式来选择处理装置600x-z的处理装置的核心655和/或755。因此,处理器组件可选择跨处理装置600x-z的许多或全部可用的核心655和755的核心,而不管如下事实:这将增加必须跨网络999发生的进程间通信量,而不是跨处理装置600x-z的每个中的可能更快的内部总线。因此,如图2B所示,被选择以执行与任务代码110的这个版本关联的任务的处理器核心655和755分布于所有处理装置600x-z,但是将优先权给予选择处理装置600y-z的核心655和755的核心,因为它们比处理装置600x要消耗更少电力。
应当注意,尽管具体示出三个处理装置的数量,但是其他实施例可具有更多或更少的处理装置。还应当注意,尽管具体示出处理器组件650和750的每个的单个处理器组件,但是其他实施例可具有这些处理器组件其中之一或两者的更多个。此外,其他实施例可以仅结合一种类型的处理器组件,或者可结合多于二的一些不同类型的处理器组件。还应当注意,尽管具体示出处理器组件650中的两个核心655和处理器组件750中的四个核心755,但是其他实施例可具有各处理器组件中的核心的不同数量。又应当注意,尽管具体示出处理装置600x-z的每个具有处理器组件和核心的基本上相似的配置,但是其他实施例可结合基本上不相似配置的处理装置。
回到图1的处理装置600,在处理装置600的每个中,控制例程640结合指令序列(其在处理器组件650上按照其作为那个处理装置600的基本处理器组件的作用是可操作的),以实现执行各种功能的逻辑。类似地,在处理子系统700的每个中,控制例程740结合指令序列(其在处理器组件750上按照其作为那个处理子系统700的子系统处理器组件的作用是可操作的),以实现执行各种功能的逻辑。
在运行控制例程640中,处理器组件650可帮助通过操作接口690以经由网络999向调度服务器400传送指示处理装置600之一中的处理和其他资源的资源数据,来准备分布式处理系统1000供使用。在一些实施例中,单个资源数据段可传达与关联处理装置600之一中的所有处理器组件650和/或750的资源有关的信息。在这类实施例中,处理器组件650和750在分别运行控制例程640和740中可进行操作以生成这种资源数据。在其他实施例中,各传达与关联处理器组件650和750的独立处理器组件的资源有关的信息的独立资源数据段可单独传送给调度服务器400。在这类实施例中,处理器650可通过其运行控制例程640以从处理器组件750接收这种数据段来引起,并且可操作接口690以将它转发给调度服务器400。如先前所述,向调度服务器400提供资源数据可响应从调度服务器400所接收的对这种数据的查询而进行。
在进一步运行控制例程640中,处理器组件650可操作接口690,以便经由网络999从调度服务器400接收指配给核心655和/或755的一个或多个的任务部分的指示。在接收指配给核心755的一个或多个的任务部分的指示的情况下,处理器组件650和750在分别运行控制例程640和740中可进行协作,以便将那些指示从处理器组件650转发给处理器组件750。
在又进一步运行控制例程640中,处理器组件650可操作接口690,以便经由网络999向调度服务器400传送指示运行任务部分例程以执行对其指配的任务部分中的核心655和/或755的一个或多个的当前状态的状态数据。在由核心755的一个或多个对任务部分例程的执行的状态的状态数据将要传送给调度服务器400的情况下,处理器组件650和750在分别运行控制例程640和740中可进行协作,以便将这种状态数据从处理器组件750转发给处理器组件650供传输。
如将更详细说明,在各个实施例中,处理器组件650用作处理装置600的每个中的基本处理器组件,以及处理器组件750用作其中的子系统处理器组件。实际上,处理器组件750的每个可以是其中的插件电路板的处理子系统700能够有选择地可安装到处理装置600的每个中或者从其中移开,以便有选择地采用处理器组件750的一个或多个来扩大处理器组件650。因此,处理器组件650可具有对接口690的更直接访问,使得处理器组件650通过运行控制例程640以帮助为处理器组件750的每个提供对网络999的访问来引起。在这样做时,处理器组件650可为处理器组件750的每个有效地提供“虚拟存在”,根据其,处理器组件750的每个在网络999上是唯一可寻址的。因此,处理器组件750的任一个与调度服务器400之间的资源数据、输入数据、任务部分例程、状态数据和/或输出数据的传达可经过处理器组件650进行。
来看图1的调度服务器400,在运行控制例程440中,处理器组件450可操作接口490,以便经由网络999从处理装置600的每个接收指示由核心655和/或755运行任务部分例程的当前状态的状态数据段。状态数据段可从处理器装置600的每个中的各处理器组件650和/或750单独接收,并且指示由处理组件的所有核心运行各任务例程的状态。备选地,资源数据段可从处理器组件核心655和/或755的每个单独接收,并且指示由处理器组件核心655和/或755的那一个核心运行任务例程的状态。处理器组件450可通过传送关于各任务部分例程的执行的当前状态的查询,来提示这些状态数据段的提供。这种提示可由处理器组件450周期地(例如常规间隔)进行,或者可响应经由网络999接收对任务的执行的状态的查询而进行。
在进一步运行控制例程440中,处理器组件450可将所接收状态数据段作为状态数据437来聚合和存储。处理器组件450又可操作接口490,以便监测网络999的来自提交装置100的与任务代码110关联的任务的执行的当前状态的查询。处理器组件450可通过操作接口490以向提交装置100传送指示任务的执行的当前状态的状态数据437的至少一部分来响应这种查询。
回到图1的提交装置,在运行控制例程140中,处理器组件150可操作显示器180和控件120,以便向提交装置100的操作员提供用户界面(UI)。处理器组件150可监测控件120关于请求与任务代码110关联的任务的执行的当前状态的控件120的操作的指示,并且可操作接口190以作为响应而向调度装置400传送对这种状态的查询。处理器组件150还可操作接口190以接收这种当前状态的指示,并且可操作显示器180以向操作员可视地呈现这种状态的指示。
在各个实施例中,处理器组件150、450、650和750的每个可包括大量市场销售处理器的任一个。此外,这些处理器组件的一个或多个可包括多个处理器、多线程处理器、多核处理器(无论是相同还独立管芯上共存的多个核心)和/或用以按照某种方式链接多个物理上独立的处理器的另外某个种类的多处理器架构。
在各个实施例中,存储装置160、460、660和760的每个可基于大量信息存储技术的任一种,可能包括要求电力的不间断提供的易失性技术,以及可能包括需要使用可以是或者可以不是可拆卸的机器可读存储介质的技术。因此,这些存储装置的每个可包括存储装置的大量类型的任一种(或者类型的组合),非限制性地包括只读存储器(ROM)、随机存取存储器(RAM)、动态RAM(DRAM)、双倍数据速率DRAM(DDR-DRAM)、同步DRAM(SDRAM)、静态RAM(SRAM)、可编程ROM(PROM)、可擦可编程ROM(EPROM)、电可擦可编程ROM(EEPROM)、闪速存储器、聚合物存储器(例如铁电聚合物存储器)、奥氏存储器、相变或铁电存储器、硅-氧化物-氮化物-氧化物-硅(SONOS)存储器、磁或光卡、一个或多个单独铁磁盘驱动器或者组织为一个或多个阵列的多个存储装置(例如组织为独立磁盘冗余阵列或RAID阵列的多个铁磁盘驱动器)。应当注意,虽然这些存储装置的每个示为单个块,但是它们的一个或多个可包括可基于不同存储技术的多个存储装置。因此,例如,这些所示存储装置的每个的一个或多个可表示光驱动器或闪速存储卡读取器(可用以在某种形式的机器可读存储介质上存储和输送程序和/或数据)、铁磁盘驱动器(将程序和/或数据本地存储相对延长时期)以及一个或多个易失性固态存储器装置(实现对程序和/或数据的较快访问,例如SRAM或DRAM)的组合。还应当注意,这些存储装置的每个可由基于相同存储技术的多个存储组件来组成,但是其可因用途的专门化(例如,一些DRAM装置用作主存储,而其他DRAM装置用作图形控制器的不同帧缓冲器)而单独保持。
在各个实施例中,接口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/1xRTT、增强全球演进数据速率(EDGE)、仅演进数据/优化(EV-DO)、数据和语音的演进(EV-DV)、高速下行链路分组接入(HSDPA)、高速上行链路分组接入(HSUPA)、4G LTE等)之类的蜂窝无线电话服务。
图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中运行与对其指配的一个或多个任务部分对应的一个或多个任务部分例程。
如本领域的技术人员可理解,包括组成其的组件的控制例程140、440、640和740被选择成在被选择以实现处理器组件150、450、650或750的可适用处理器组件的无论任一种类型的(一个或多个)处理器上是可操作的。在各个实施例中,控制例程140、440、640和740的每个可包括操作系统、装置驱动程序和/或应用级例程(例如,在光盘介质上提供的所谓“软件套装”、从远程服务器所得到的“小应用程序”等)中的一个或多个。在包括操作系统的情况下,操作系统可以是适合于处理器组件150、450、650或750的任一个对应处理器组件的多种可用操作系统的任一种。在包括一个或多个装置驱动程序的情况下,那些装置驱动程序可提供对计算装置100、400或600的对应计算装置或者处理子系统700的无论是硬件还是软件组件的多种其他组件的任一种的支持。
控制例程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来参与这类交换。
更具体来看图3,控制例程140可包括编译器141a和141b,其是处理器组件150可执行的,以便将任务代码110的任务部分代码111和112编译为编译版本,以供不同类型的处理器组件的处理器组件核心来运行。再次应当注意,由于在分布式处理系统1000的处理装置600之间仅示出两种类型的处理器组件(例如处理器组件650和750),所以仅示出两个编译器141a和141b。但是,其中处理装置600仅具有一种类型的处理器组件的实施例是可能的,以及其中处理装置600的至少一部分具有超过两种类型的处理器组件的实施例是可能的。此外,其中一种或多种类型的处理器组件结合超过一种类型的处理器组件核心的实施例是可能的。因此,在这类其他实施例中,控制例程140可根据需要结合不同数量的编译器,以便生成任务部分例程的编译版本,以供分布式处理系统1000的处理器组件之间存在的不同类型的核心来运行。
给定任务代码110的所示版本只结合两个任务部分代码111和112(只对应于两个不同任务部分),编译器141a编译任务部分代码111和112,以便分别生成任务部分例程171a和172a,以供处理器核心655的处理器核心来运行。编译器141b还编译相同的两个任务部分代码111和112,以便分别生成任务部分例程171b和172b,以供处理器核心755的处理器核心来运行。这样,与任务部分代码111和112的每个关联的两个任务部分的每个的实例可由核心655或755的任一个来执行。为了执行与任务部分代码111关联的任务部分,核心655运行任务部分例程171a,和/或核心755运行任务部分例程171b。对应地,为了执行与任务部分代码112关联的任务部分,核心655运行任务部分例程172a,和/或核心755运行任务部分例程172b。
控制例程140可包括提交组件144,其是处理器组件150可执行的,以便通过向存储服务器300和/或调度服务器400传送(与通信组件149协作)数据和/或例程,来提交任务,以供分布式处理系统1000来执行。具体来说,提交组件144向存储服务器300提供任务部分例程171a-b和172a-b连同任务输入数据133(若存在的话)。此外,提交组件144向调度服务器400提供任务描述数据134连同任务配置数据135(若存在的话)。提交组件144可监测控件120,并且响应由提交装置100的操作员对控件120的操作的指示而提交任务,以便提供这样做的命令。作为替代或补充,提交组件144可在显示器180上可视地呈现这种提交的进度和/或完成的指示。
控制例程140可包括状态组件147,其是处理器组件150可执行的,以便向调度服务器300传送(与通信组件149协作)对任务的执行的当前状态的指示的查询。状态组件147可监测控件120,并且响应由提交装置100的操作员对控件120的操作的指示而发送查询,以便提供这样做的命令。作为替代或补充,在从调度服务器400接收任务的执行的当前状态的指示时,状态组件147可在显示器180上可视地呈现那个状态的这种指示。
现在具体来看图4,控制例程440可包括资源组件443,其是处理器组件450可执行的,以便从处理装置600的每个接收(与通信组件449协作)资源数据。如先前所述,资源数据段可从单独处理装置600来接收,并且详述与其中的所有处理器组件关联的资源。但是,又如先前所述,资源数据段可从处理装置600的每个的单独处理器组件650和/或750来接收,并且单独详述与那些处理器组件的每个关联的资源。这类资源再次可包括但是并不局限于各处理器组件的核心的数量和/或类型、高速缓存的大小、核心的速度、核心的功率消耗率、处理器组件可用的存储装置的大小等。资源组件443可将所接收资源数据段聚合为资源数据430。
控制例程440可包括提交组件444,其作为用来提交与任务代码110关联的待执行任务的提交装置100的组成部分,是处理器组件450可执行的,以便接收(与通信组件449协作)任务描述数据134和任务配置数据135其中之一或两者。如先前所述,任务描述数据134提供任务的参数的指示,包括待执行的各任务部分的实例的数量、任务部分例程和/或输入数据所在的(一个或多个)位置和/或将要存储任何输出数据的位置。又如先前所述,任务配置数据135(若被接收的话)可提供关于核心将要被选择用于任务部分的指配的方式的指示,以及那些指示可忽略缺省配置数据435(若存在的话)的指示。
控制例程440可包括核心选择组件445,其是处理器组件450可执行的,以选择分布式处理系统1000的处理器组件核心(例如核心655和/或755的一个或多个)供执行任务部分的指配。如所述,处理器组件核心可按照符合减少执行任务所需的时间与减少执行任务所消耗的电力量之间的所选折衷的方式来选择。换言之,选择核心以运行对它们所指配的任务部分例程的实例可基于运行任务例程的实例所需的计算时间与功率消耗时间之间的所选平衡点。缺省配置数据435(若存在的话)可指示有利于减少时间或者减少功率消耗其中之一优于另一个的缺省选择。此外,任务的任务提交可包括向调度服务器400传送任务配置数据135,其中任务配置数据135包括有利于减少时间或减少功率消耗其中之一的选择的指示,其可不同于并且忽略缺省配置数据435中指示的选择。
如先前所述,在有利于减少执行任务的时间优于减少执行任务的电力消耗进行选择的实施例中,核心655和/或755的核心基于关于哪些核心能够更快地执行各任务部分的确定来选择。对于核心655和/或755的哪些核心能够更快地执行任务部分的考虑因素包括但不限于各核心的时钟频率、各核心可用的(一个或多个)高速缓存的大小以及每种类型的核心上的各任务部分的可能性能的分析。作为替代或补充,核心655和/或755的核心被选择成增加所选核心之间的局部性程度,以便通过减少进程间通信量(其必须经过网络999相比经过处理装置600中的内部总线发生)来减少执行任务的时间。再次预计耦合处理装置600中以及处理器组件650和750的每个中的核心的总线本身能够以比经由网络999可能的速率要高的速率来传达数据。
如先前所述,在有利于减少执行任务的电力消耗优于减少执行任务所需的时间进行选择的实施例中,核心655和/或755的核心基于其相对电力消耗率来选择。在具有比较相似的电力消耗率的核心655和/或755的核心之间,可确定哪些核心能够比其他核心更快地执行任务部分的给定任务部分,使得在那些核心之间以那个比较相似的电力消耗率执行那个任务部分将要求较少时间,以便减少总功率消耗。作为替代或补充,可分析任务的任务部分,以确定哪些任务部分将需要较长时间来执行,并且可将那些任务部分指配给具有较低功率消耗率的核心655和/或755的核心,以便使任务的多数由以较低速率消耗功率的核心来执行。与按照有利于减少执行任务的时间的方式来选择核心的情况形成对照,核心可与其在选择核心中的局部性无关地来选择,以减少功率消耗。这可基于如下假设:进程间通信主要由信号的比较简短交换来组成,使得在处理装置600之一中与处理装置600间传送那些信号之间的功率消耗的差被认为是相对可忽略的。
控制例程440可包括状态组件447,其是处理器组件450可执行的,以便接收(与通信组件449协作)指示任务部分的执行的当前状态的状态数据段。如先前所述,状态数据段可从单独处理器组件核心655和/或755来接收,并且详述任务部分例程171a-b和172a-b的对应例程的执行的当前状态。处理器组件核心655和/或755可向调度服务器400提供这种状态数据,而无需通过来自调度服务器400的查询来提示这样做,使得处理器组件核心655和/或755能够说成是“推送”其状态数据。状态组件447可将所接收资源数据段聚合为状态资源数据437。此外,状态组件447可通过向提交装置100传送状态数据437的至少一部分以向其传达执行任务的当前状态的指示,来响应经由网络999对来自提交装置100的查询的接收(与通信组件449协作接收)。
更具体来看图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的配套电路。
路由组件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能够对其内容起作用。
处理装置600之一的控制例程640可包括资源组件643,其是处理器组件650可执行的,以向调度服务器400传送(与通信组件449协作)资源数据。在一些实施例中,资源组件可执行处理器组件650和/或处理装置600的一个或多个测试,以便动态确定哪些处理和/或其他资源是可用的。这可在那些资源可随时间而改变的实施例中进行。
处理装置600之一的控制例程640可包括执行组件645的多个实例,其是处理器组件650的独立核心655可执行的,以便通过实现各种任务部分例程之一(例如任务部分例程171a或172a其中之一)的执行来执行所指配任务部分。执行组件645的各实例可至少包括操作系统的独立可执行部分、库函数和/或装置驱动程序的一个或多个库。当调度服务器400向核心655的每个传送关于被选择成执行任务部分的指示时,这类指示可作为任务部分描述数据434的单独实例来接收。对于核心655的每个,任务部分描述数据434的对应实例可指示将要运行的任务部分例程171a或172a的特定例程以及检索其副本的位置。任务部分描述数据434的各实例还可指示至少检索任务输入数据133(若存在的话)的对应部分的位置和/或存储任务输出数据337(若存在的话)的位置。任务部分描述数据434的各实例还可指示传送指示在运行任务部分例程的实例中的进度的当前状态的状态数据637的实例的位置。
更具体来说,在运行执行组件645的对应实例时,核心655等待接收任务部分描述数据434的实例。在接收任务部分描述数据434的实例时,核心655从存储服务器300来检索任务部分例程171a或172a的适当例程连同如任务部分描述数据434中指示的任务输入数据133。执行组件645的实例的进一步执行使核心655开始运行其任务部分例程171a或172a其中之一的关联实例(使核心655“跳转”到任务部分例程的那个实例的指令)。在任务部分例程171a或172a的任一个的实例的执行期间,任务部分例程171a或172a其中之一的指令或者执行组件645的实例的指令的任一个使核心655向调度服务器400传送状态数据637(与通信组件649协作)。又在任务部分例程171a或172a的任一个的实例的执行期间,使核心655向存储服务器300传送(再次与通信组件649协作)任务输出数据337(若存在的话)。在完成任务部分例程171a或172a的执行时,通过执行组件645的执行使核心655再次等待接收指示要执行的下一个任务部分的方面的任务部分描述数据434的新实例。
现在具体来看图6,处理子系统700之一的控制例程740可包括与执行基本上相同功能的控制例程的组件基本上对应的组件。具体来说,除了通信组件749(如先前所述)之外,控制例程740还包括资源组件743以及执行组件745的多个实例以供核心755的每个单独运行。
图7示出逻辑流程2100的一个实施例。逻辑流程2100可表示由本文所述的一个或多个实施例所运行的操作的部分或全部。更具体来说,逻辑流程2100可示出由处理器组件450在至少运行控制例程440中所执行和/或由调度服务器400的(一个或多个)其他组件所执行的操作。
在2110,分布式处理系统的调度服务器的处理器组件(例如分布式处理系统1000的调度服务器400的处理器组件450)从分布式处理系统的各种处理装置(例如处理装置600)来接收资源数据。如先前所述,资源数据指示与处理装置的每个中的各处理器组件(例如基本处理器组件650和/或子系统处理组件750的每个)关联的处理和/或其他资源。又如先前所述,这种资源数据可按处理装置或者按处理器组件来接收。
在2120,接收描述将要由分布式处理系统的处理装置所执行的任务的数据(例如任务描述数据134)。如先前所述,这种任务描述数据指定待执行任务的各种参数,包括但不限于要执行的不同任务部分的数量、要执行的各任务部分的实例的数量、可查找任务部分例程和/或输入数据(若有的话)的位置、将要对其传送任何状态数据的位置和/或将要存储任何输出数据的位置。
在2130,接收按照有利于减少执行任务的时间优于减少执行任务中的电力消耗的方式来选择处理器核心以供任务的任务部分的指配的指示。更具体来说,减少电力消耗的核心的选择仅当进行这样操作的选择没有增加执行任务的时间量或者将执行任务的时间增加相对可忽略程度时才进行。如先前所述,调度服务器的处理器组件可从配置数据(例如已经存储在存储装置460中的缺省配置数据435或者从提交装置100所接收的任务配置数据135)来接收这种指示。
在2140,响应这种指示,确定从处理装置的每个的各基本处理器组件(例如处理器组件650之一)和每个子系统处理器组件(例如处理器组件750之一)当前可用的每种类型的核心的数量。如先前所述,处理装置的一个或多个中的基本或者子系统处理器组件的任一个的一个或多个核心仍然可参与运行实现另一个任务的任务部分的逻辑的任务部分例程,并且因此可能还不可用来对新任务的任务部分进行指配。
在2150,任务的任务部分的每个的处理器核心的可用类型选择成使得减少执行各任务部分所需的时间。换句话说,对于待执行的各任务部分,评估核心的可用不同类型的每个,以确定哪一个能够更快地执行任务部分。然后,如果可能的话(例如,如果更快执行的任一种类型的充分核心是可用的),则能够更快地执行任务部分的该类型的核心被选择以执行那个任务部分的实例。
在2160,在从可用核心之中进行选择时,还进行核心的选择,以便使进程间通信通过耦合处理装置的网络(例如网络999)的发生为最少。换句话说,核心选择成使得增加所选核心之间的局部性程度,以使得所选核心的多数在物理上位于较少独立处理装置中。如先前所述,设想在跨总线和/或各处理装置的处理组件中的核心之间发生的进程间通信能够比跨处理装置之间的网络的进程间通信更快地执行。
在2170,采用那些选择的指示向具有选择成被指配执行任务的任务部分的核心的处理装置发信号通知。如先前所述,在具有这样选择的核心的处理装置的每个中所选的核心可以是基本处理器组件的核心或者子系统处理器组件的核心或者两者。又如先前所述,这类指示可通过向每个所选核心传送任务部分描述数据来提供,由此为各核心提供检索对应任务部分例程和/或任何任务输入数据等所需的信息。
图8示出逻辑流程2200的一个实施例。逻辑流程2200可表示由本文所述的一个或多个实施例所运行的操作的部分或全部。更具体来说,逻辑流程2200可示出由处理器组件450在至少运行控制例程440中所执行和/或由调度服务器400的(一个或多个)其他组件所执行的操作。
在2210,分布式处理系统的调度服务器的处理器组件(例如分布式处理系统1000的调度服务器400的处理器组件450)从分布式处理系统的各种处理装置(例如处理装置600)来接收资源数据。在2220,还接收描述将要由分布式处理系统的处理装置所执行的任务的数据(例如任务描述数据134)。
在2230,接收按照有利于减少执行任务的电力消耗优于减少执行任务所需的时间的方式来选择处理器核心以供任务的任务部分的指配的指示。更具体来说,减少所需时间的核心的选择仅当进行这样操作的选择没有增加执行任务所消耗的电力量或者将执行任务的电力消耗增加相对可忽略程度时才进行。如先前所述,调度服务器的处理器组件可从配置数据(例如已经存储在存储装置460中的缺省配置数据435或者从提交装置100所接收的任务配置数据135)来接收这种指示。
在2240,当前可用的基本处理器组件的核心(例如处理器组件650的核心655)和子系统处理器组件的核心(例如处理器组件750的核心755)根据其相对功率消耗率来分级,以识别具有较低功率消耗率的那些核心。在2250,分析执行各任务部分所需的相对时间长度,以识别将要求更多时间来执行的任务部分。
在2260,把要求更多时间来执行的任务部分指配给具有最低功率消耗率的核心。如先前所述,这有效地引起任务的多数在总体上被指配给具有最低功率消耗率的核心,由此减少总功率消耗。在2270,采用那些选择的指示向具有选择成被指配执行任务的任务部分的核心的处理装置发信号通知。
图9示出逻辑流程2300的一个实施例。逻辑流程2300可表示由本文所述的一个或多个实施例所运行的操作的部分或全部。更具体来说,逻辑流程2300可示出由处理器组件650在至少运行控制例程640中所执行和/或由处理装置600的至少一个的(一个或多个)其他组件所执行的操作。
在2310,分布式处理系统的处理装置的基本处理器组件(例如分布式处理系统1000的处理装置600之一的处理器组件650之一)操作处理装置到网络的接口(例如将处理装置600之一耦合到网络999的接口690),以监测网络送往与处理装置的处理器组件关联的多个IP地址的分组。如先前所述,用作处理装置600之一的基本处理器组件的处理器组件650可操作那个处理装置600的接口690,以便提供用作子系统处理器组件的处理器组件750的每个的“虚拟存在”。因此,多个IP地址可与一个处理装置600关联。在2320,在网络上检测送往IP地址之一的分组。
在2330,检查分组是否送往基本处理器组件的IP地址。如果是这样的话,则分组由基本处理器组件来接收(并且随后对其起作用)。但是,如果分组不是送往基本处理器组件的IP地址,则分组在2340路由到网络上提供有与分组所送往的IP地址对应的IP地址。分组的这种路由选择经过将子系统处理器组件耦合到基本处理器组件的一个或多个总线(例如总线659)进行。
图10示出适合于实现如先前所述的各个实施例的处理架构3000的一实施例。更具体来说,处理架构3000(或者其变体)可实现为计算装置100、400或600中的一个或多个的部分和/或由处理子系统700来实现。应当注意,向处理架构3000的组件给予参考标号,其中最后两位数对应于先前作为这些计算装置的部分所示和所述的组件的至少一部分的参考标号的最后两位数。这作为对相互关连每个的组件的辅助进行。
处理架构3000可包括在数字处理中常用的各种元件,非限制性地包括一个或多个处理器、多核处理器、协处理器、存储器单元、芯片组、控制器、外设、接口、振荡器、定时装置、视频卡、音频卡、多媒体输入/输出(I/O)组件、电源等。如本申请所使用的术语“系统”和“组件”预计表示执行数字处理的计算装置的实体,那个实体作为硬件、硬件和软件的组合、软件或者执行中的软件,其示例通过这种所示示范处理架构来提供。例如,组件能够非限制性地是运行于处理器组件的进程、处理器组件本身、可采用光和/或磁存储介质的存储装置(例如硬盘驱动器、阵列中的多个存储驱动器等)、软件对象、指令的可执行序列执行的线程、程序和/或整个计算装置(例如整个计算机)。作为说明,运行于服务器的应用和服务器能够是组件。一个或多个组件能够驻留在过程和/或执行线程中,以及组件能够定位在一个计算装置上和/或分布在两个或更多计算装置之间。此外,组件可通过各种类型的通信介质在通信上相互耦合,以便协调操作。协调可涉及单向或双向信息交换。例如,组件可采取通过通信介质所传递的信号形式来传递信息。信息能够实现为分配给一个或多个信号线的信号。消息(包括命令、状态、地址或数据消息)可以是这类消息其中之一,或者可以是多个这类消息,并且可经过多种连接和/或接口的任一种串行或者基本上并行地传送。
如所示,在实现处理架构3000中,计算装置可至少包括处理器组件950、存储装置960、到其他装置的接口990和耦合959。如将进行说明,取决于实现处理架构3000的计算装置的各个方面、包括其预计用途和/或使用条件,这种计算装置还可包括附加组件、非限制性地例如显示器接口985或者一个或多个处理子系统900。
耦合959可包括一个或多个总线、点对点互连、收发器、缓冲器、交叉点开关和/或在通信上至少将处理器组件950耦合到存储装置960的其他导体和/或逻辑。耦合959还可将处理器组件950耦合到接口990、音频子系统970和显示器接口985中的一个或多个(取决于这些和/或其他组件中的哪一个也存在)。随着处理器组件950通过耦合959这样耦合,处理器组件950能够执行以上对于实现处理架构3000的上述计算装置的无论哪一个(哪些)详细描述的任务的各种任务。耦合959可采用多种技术或者技术(用以光和/或电传达信号)的组合的任一种来实现。此外,耦合959的至少部分可采用符合大量工业标准的任一种的定时和/或协议,非限制性地包括加速图形端口(AGP)、CardBus、扩展工业标准架构(E-ISA)、微通道架构(MCA)、NuBus、外设部件互连(扩展)(PCI-X)、PCI Express (PCI-E)、个人计算机存储卡国际协会(PCMCIA)总线、HyperTransport™、QuickPath等。
如先前所述,处理器组件950(对应于处理器组件150、450、650或750中的一个或多个)可包括采用大量技术的任一种并且采用按照多种方式的任一种物理结合的一个或多个核心的大量市场销售处理器中的任一种。
如先前所述,存储装置960(对应于存储装置160、460、660或760中的一个或多个)可由基于大量技术或者技术组合的任一种的一个或多个不同存储装置来组成。更具体来说,如所示,存储装置960可包括易失性存储装置961(例如基于RAM技术的一种或多种形式的固态存储装置)、非易失性存储装置962(例如不要求电力的恒定提供以保存其内容的固态、铁磁或其他存储装置)以及可拆卸介质存储装置963(例如可拆卸磁盘或固态存储卡存储装置,可用以在计算装置之间传送信息)。存储装置960示为可能包括多种不同类型的存储装置是按照计算装置中多于一种类型的存储装置的常见用途,其中一种类型提供较快的读取和写入能力,从而实现由处理器组件950对数据的更快操控(但是可能使用不断要求电力的易失性摂技术),而另一种类型提供非易失性存储的较高密度(但是可能提供较慢的读取和写入能力)。
给定采用不同技术的不同存储装置的经常不同的特性,还常见的是使这类不同存储装置经过不同存储控制器(其经过不同接口耦合到其不同存储装置)来耦合到计算装置的其他部分。作为举例,在易失性存储装置961存在并且基于RAM技术的情况下,易失性存储装置961可在通信上经过存储控制器965a耦合到耦合959,从而提供到易失性存储装置961(其也许采用行和列寻址)的适当接口,并且其中存储控制器965a可执行行刷新和/或其他维护任务以帮助保存易失性存储装置961中存储的信息。作为举例,在非易失性存储装置962存在并且包括一个或多个铁磁和/或固态磁盘驱动器的情况下,非易失性存储装置962可在通信上经过存储控制器965b耦合到耦合959,从而提供到非易失性存储装置962(其也许采用信息块和/或柱面和扇区的寻址)的适当接口。作为又一个示例,在可拆卸介质存储装置963存在并且包括采用一个或多个机器可读存储介质969的一个或多个光和/或固态磁盘驱动器的情况下,可拆卸介质存储装置963可在通信上经过存储控制器965c耦合到耦合959,从而提供到可拆卸介质存储装置963(其也许采用信息块的寻址)的适当接口,并且其中存储控制器965c可按照延长机器可读存储介质969的使用期限特定的方式来协调读、擦除和写操作。
易失性存储装置961或者非易失性存储装置962中的一个或另一个可包括采取机器可读存储介质(其上可存储包括由处理器组件950可执行以实现各个实施例的指令序列的例程)的形式的制造产品,这取决于作为每个的基础的技术。作为举例,在非易失性存储装置962包括基于铁磁的磁盘驱动器(例如所谓的“硬盘驱动器”)的情况下,每个这种磁盘驱动器通常采用一个或多个旋转盘片,其上沉积并且按照各种图案磁性定向了磁性响应微粒,以便按照与例如软盘等的存储介质类似的方式来存储信息、例如指令序列。作为另一个示例,非易失性存储装置962可由固态存储装置组来组成,以便按照与致密闪存卡类似的方式来存储信息、例如指令序列。再次常见的是在不同时间、在计算装置中采用不同类型的存储装置来存储可执行例程和/或数据。因此,包括将要由处理器组件950所运行以实现各个实施例的指令序列的例程最初可存储在机器可读存储介质969上,以及可拆卸介质存储装置963随后可用于将那个例程复制到非易失性存储装置962,以供不要求机器可读存储介质969和/或易失性存储装置961的持续存在的较长期存储,以便实现由处理器组件950的更快访问,因为那个例程被运行。
如先前所述,接口990(对应于接口190、490、690或790中的一个或多个)可采用与可用来在通信上将计算装置耦合到一个或多个其他装置的多种通信技术的任一种对应的多种信令技术的任一种。各种形式的有线或无线信令中的一个或两者再次可用来使处理器组件950能够可能经过网络(例如网络999)或者一组互连网络与输入/输出装置(例如,所示示例键盘920或打印机925)和/或其他计算装置进行交互。按照常常必须由任一个计算装置来支持的多种类型的信令和/或协议的经常极为不同特征,接口990示为包括多个不同接口控制器995a、995b和995c。接口控制器995a可采用多种类型的有线数字串行接口或射频无线接口的任一种从用户输入装置、例如所示键盘920来接收串行传送的消息。接口控制器995b可采用多种基于电缆布线或无线信令、定时和/或协议的任一种、经过所示网络999(也许由一个或多个链路所组成的网络、较小网络或者也许因特网)来访问其他计算装置。接口995c可采用多种导电电缆布线的任一个,从而实现将数据输送到所示打印机925的串行或并行信号传输的使用。可在通信上经过接口990的一个或多个接口控制器耦合的装置的其他示例非限制性地包括话筒、遥控、触控笔、读卡器、指纹读取器、虚拟现实交互手套、图形输入平板、操纵杆、其他键盘、视网膜扫描仪、触摸屏的触摸输入组件、轨迹球、各种传感器、监测人们的移动以接受人们经由手势和/或脸部表情发信号通知的命令和/或数据的照相装置或照相装置阵列、激光打印机、喷墨打印机、机械机器人、铣床等。
在计算装置在通信上耦合到(或者也许实际上结合)显示器(例如所示示例显示器980,对应于显示器180和380中的一个或多个)的情况下,实现处理架构3000的这种计算装置还可包括显示器接口985。虽然更一般化类型的接口可用于在通信上耦合到显示器,但是在显示器上视觉显示各种形式的内容中常常所需的稍微专门的附加处理以及所使用的基于电缆布线的接口的稍微专门的性质常常使不同显示器接口的提供是合乎需要的。可由显示器接口985用于显示器980的通信耦合中的有线和/或无线信令技术可利用符合多种工业标准的任一种的信令和/或协议,非限制性地包括多种模拟视频接口、数字视频接口(DVI)、DisplayPort等的任一种。
更一般来说,本文所述和所示的计算装置的各种元件可包括各种硬件元件、软件元件或者两者的组合。硬件元件的示例可包括装置、逻辑装置、组件、处理器、微处理器、电路、处理器组件、电路元件(例如晶体管、电阻器、电容器、电感器等)、集成电路、专用集成电路(ASIC)、可编程逻辑装置(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、存储器单元、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片组等。软件元件的示例可包括软件组件、程序、应用、计算机程序、应用程序、系统程序、软件开发程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、功能、方法、过程、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或者它们的任何组合。但是,确定一个实施例是否使用硬件元件和/或软件元件来实现可按照任何数量的因素而改变,例如预期计算速率、功率级、耐热性、处理周期预算、输入数据速率、输出数据速率、存储器资源、数据总线速度以及如对于给定实现所预期的其他设计和性能限制。
一些实施例可使用表达“一个实施例”或“一实施例”连同其派生来描述。这些术语表示结合该实施例所述的特定特征、结构或特性包含在至少一个实施例中。词语“在一个实施例中”在说明书的各个位置的出现不一定全部表示同一个实施例。此外,一些实施例可使用表达“耦合”和“连接”连同其派生来描述。这些术语不一定是要作为彼此的同义词。例如,一些实施例可使用术语“连接”和/或“耦合”来描述,以指示两个或更多元件相互直接物理或电接触。但是,术语“耦合”还可表示两个或更多元件不是相互直接接触,但仍然相互配合或交互。此外,可组合来自不同实施例的方面或元件。
要强调,提供本公开的摘要以允许读者快速确定技术公开的性质。要理解,它的提供并不是要用于解释或限制权利要求书的范围或含意。另外,在以上详细描述中能够看到,各种特征集中到单个实施例中,用于简化本公开。公开的这种方法不是要被解释为反映了要求保护的实施例要求超过各权利要求中明确描述的特征的意图。相反,如以下权利要求书所反映,发明主题在于少于单个公开实施例的全部特征。因此,以下权利要求书结合到详细描述中,其中各权利要求本身代表独立实施例。在所附权利要求书中,术语“包括”和“其中”分别用作相应术语“包含”和“其中”的普通英语等效体。此外,术语“第一”、“第二”、“第三”等只用作标号,而不是意在对其对象施加数字要求。
以上描述的是所公开架构的示例。当然,不可能描述组件和/或方法的每一个可设想组合,但是本领域的技术人员可知道,许多其他组合和置换是可能的。相应地,新架构预计包含落入所附权利要求书的精神和范围之内的所有这类改变、修改和变更。本详细公开现在转到提供与其他实施例有关的示例。下面所提供的示例不是要进行限制。
在一些示例中,一种指配处理器组件核心以执行任务部分的设备可包括:处理器组件;接口,将处理器组件耦合到网络,以接收指示分布式处理系统的处理装置的基本处理器组件和子系统处理器组件的可用核心的数据,子系统处理器组件在网络上经过基本处理器组件是可访问的;以及核心选择组件,供处理器组件来运行,以便基于运行任务部分例程的实例所需的计算时间与功率消耗之间的所选平衡从可用核心之中选择核心来运行任务的任务部分例程的实例。
作为补充或替代,该设备可包括资源组件供处理器组件来运行,以接收资源数据,其指示至少一个基本处理器组件中存在的核心的数量以及分布式处理系统的处理装置的至少一个子系统处理器组件中存在的核心的数量。
作为补充或替代,资源数据可包括关于与至少一个基本处理器组件关联的存储量以及与至少一个子系统处理器组件关联的存储量的指示。
作为补充或替代,该设备可包括状态组件供处理器组件来运行,以接收状态数据,其指示可用于任务部分的指配的至少一个基本处理器组件中存在的核心的数量的子集,并且指示可用于任务部分的指配的至少一个子系统处理器组件中存在的核心的数量的子集。
作为补充或替代,该设备可包括状态组件供处理器组件来运行,以接收第一状态数据,其指示由所选核心之一对任务的任务部分例程的实例的执行的当前状态。
作为补充或替代,状态组件可从提交装置接收对任务的执行的当前状态的查询,并且传送第二状态数据,其基于由所选核心对任务部分例程的实例的执行的当前状态来指示任务的执行的当前状态。
作为补充或替代,核心选择组件可确定执行任务的各任务部分所需的相对时间周期,并且可基于相对时间周期从可用核心中包含的核心类型之中选择一种类型的核心来执行各任务部分。
作为补充或替代,核心选择组件可响应包括有利于减少所消耗电力优于减少所需时间的所选折衷而从可用核心之中选择所选核心进行指配以执行要求较长时间周期来执行的任务部分的实例。
作为补充或替代,核心选择组件可响应包括有利于减少所需时间优于减少所消耗电力的所选折衷而从可用核心之中选择所选核心以增加所选核心之间的局部性程度,以便使处理装置的处理装置之间的进程间通信为最少。
作为补充或替代,核心选择组件可经由接口向所选核心传送所选核心的选择的指示。
在一些示例中,运行任务部分例程的设备可包括:基本处理器组件;接口,将基本处理器组件耦合到网络;子系统处理器组件;总线,在通信上将子系统处理器组件耦合到基本处理器组件;以及路由组件,供基本处理器组件来运行,以便从网络接收分组,确定分组所送往的因特网协议(IP)地址,并且基于IP地址经由总线将分组路由到子系统处理器组件。
作为补充或替代,该设备可包括:第一资源组件,供基本处理器组件来运行,以便通过网络在第一分组中传送指示基本处理器中存在的核心的数量的第一资源数据,第一分组指示与基本处理器关联的作为其源的第一IP地址;以及第二资源组件,供子系统处理器组件来运行,以便经由总线在第二分组中向路由组件传送指示子系统处理器中存在的核心的数量的第二资源数据,路由组件通过网络传送第二分组,第二分组指示与子系统处理器关联的作为其源的第二IP地址。
作为补充或替代,该设备可包括:第一通信组件,供基本处理器组件来运行,以便使基本处理器组件存在于网络上的第一IP地址,以使基本处理器组件能够接收送往第一IP地址的分组,并且在基于分组所送往的IP地址(包括第一IP地址)的基本处理器组件来接受分组;以及第二通信组件,供子系统处理器组件来运行,以便在基于分组要送往的IP地址(包括第二IP地址)的子系统处理器组件来接受分组,路由组件使子系统处理器组件存在于网络上的第二IP地址,以使子系统处理器组件能够接收送往第二IP地址的分组。
作为补充或替代,该设备可包括:第一执行组件,供基本处理器组件来运行,以便运行在送往第一IP地址的至少一个分组中从网络所接收的第一任务部分例程;以及第二执行组件,供子系统处理器组件来运行,以便运行在送往第二IP地址的至少一个分组中从网络所接收的第二任务部分例程。
作为补充或替代,第一执行组件可在指示第一IP地址作为源的分组中经由网络向调度服务器传送指示第一任务部分的执行的状态的第一状态数据。
作为补充或替代,第二执行组件可向路由组件传送指示第二任务部分的执行的状态的第二状态数据,以及路由组件在指示第二IP地址作为源的分组中经由网络向调度服务器传送指示第二任务部分的执行的状态的第二状态数据。
在一些示例中,一种用于指配处理器组件核心以执行任务部分的计算机实现的方法可包括:接收指示分布式处理系统的处理装置的基本处理器组件和子系统处理器组件的可用核心的状态数据,子系统处理器组件在网络上经过基本处理器组件是可访问的;基于减少运行任务部分例程的实例所需的时间与减少所消耗电力之间的所选折衷从可用核心之中选择核心,以运行任务的任务部分例程的实例;以及经由接口向所选核心传送关于所选核心的选择的指示。
作为补充或替代,该方法可包括接收指示与分布式处理系统的各处理装置的各基本处理器组件和各子系统处理器组件关联的资源的资源数据。
作为补充或替代,与各基本处理器组件和各子系统处理器组件关联的资源可包括至少一个基本处理器组件中或者至少一个子系统处理器组件中存在的核心的数量、基本处理器组件或子系统处理器组件的核心的高速缓存的大小或者与基本处理器组件或子系统处理器组件关联的存储量其中之一。
作为补充或替代,该方法可包括接收指示可用于任务部分的指配的至少一个基本处理器组件或者至少一个子系统处理器组件中存在的核心的数量的子集的状态数据。
作为补充或替代,该方法可包括接收指示由所选核心之一对任务的任务部分例程的实例的执行的当前状态的第一状态数据,从提交装置接收对任务的执行的当前状态的查询,并且经由接口传送基于由所选核心对任务部分例程的实例的执行的当前状态来指示任务的执行的当前状态的第二状态数据。
作为补充或替代,该方法可包括确定执行任务的各任务部分所需的相对时间周期,并且基于相对时间周期从可用核心中包含的核心类型之中选择一种类型的核心来执行各任务部分。
作为补充或替代,该方法可包括响应包括有利于减少所消耗电力优于减少所需时间的所选折衷而从可用核心之中选择所选核心进行指配以执行要求较长时间周期来执行的任务部分的实例。
作为补充或替代,该方法可包括响应包括有利于减少所需时间优于减少所消耗电力的所选折衷而从可用核心之中选择所选核心以增加所选核心之间的局部性程度,以便使处理装置的处理装置之间的进程间通信为最少。
在一些示例中,至少一个机器可读存储介质可包括指令,其在由计算装置运行时使计算装置执行下列步骤:接收指示分布式处理系统的处理装置的基本处理器组件和子系统处理器组件的可用核心的状态数据,子系统处理器组件在网络上经过基本处理器组件是可访问的;基于减少运行任务部分例程的实例所需的时间与减少所消耗电力之间的所选折衷从可用核心之中选择核心,以运行任务的任务部分例程的实例;以及经由接口向所选核心传送关于所选核心的选择的指示。
作为补充或替代,可使计算装置接收指示与分布式处理系统的各处理装置的各基本处理器组件和各子系统处理器组件关联的资源的资源数据。
作为补充或替代,与各基本处理器组件和各子系统处理器组件关联的资源可包括至少一个基本处理器组件中或者至少一个子系统处理器组件中存在的核心的数量、基本处理器组件或子系统处理器组件的核心的高速缓存的大小或者与基本处理器组件或子系统处理器组件关联的存储量其中之一。
作为补充或替代,可使计算装置接收指示可用于任务部分的指配的至少一个基本处理器组件或者至少一个子系统处理器组件中存在的核心的数量的子集的状态数据。
作为补充或替代,可使计算装置接收指示由所选核心之一对任务的任务部分例程的实例的执行的当前状态的第一状态数据,从提交装置接收对任务的执行的当前状态的查询,并且经由接口传送基于由所选核心对任务部分例程的实例的执行的当前状态来指示任务的执行的当前状态的第二状态数据。
作为补充或替代,可使计算装置确定执行任务的各任务部分所需的相对时间周期,并且基于相对时间周期从可用核心中包含的核心类型之中选择一种类型的核心来执行各任务部分。
作为补充或替代,可使计算装置响应包括有利于减少所消耗电力优于减少所需时间的所选折衷而从可用核心之中选择所选核心进行指配以执行要求较长时间周期来执行的任务部分的实例。
作为补充或替代,可使计算装置响应包括有利于减少所需时间优于减少所消耗电力的所选折衷而从可用核心之中选择所选核心以增加所选核心之间的局部性程度,以便使处理装置的处理装置之间的进程间通信为最少。
在一些示例中,至少一个机器可读存储介质可包括指令,其在由计算装置运行时使计算装置执行上述步骤的任一个。
在一些示例中,一种指配处理器组件核心以执行任务部分的设备可包括用于执行上述步骤的任一个的部件。
Claims (20)
1.一种指配处理器组件核心以执行任务部分的设备,包括:
处理器组件;
接口,用于将所述处理器组件耦合到网络,以接收指示分布式处理系统的处理装置中包括的基本处理器组件和子系统处理器组件的可用核心的数据,所述子系统处理器组件在所述网络上经过所述基本处理器组件是可访问的;以及
核心选择组件,供所述处理器组件来运行,以便基于运行任务部分例程的实例所需的计算时间与功率消耗之间的所选平衡从所述可用核心之中选择核心以运行任务的所述任务部分例程的所述实例,
其中,所述核心选择组件用于响应包括有利于减少所需时间优于减少所消耗电力的所述所选平衡而从所述可用核心之中选择所选核心以增加所述所选核心之间的局部性程度,以便使所述处理装置的处理装置之间的进程间通信为最少。
2.如权利要求1所述的设备,包括资源组件,供所述处理器组件来运行,以便接收指示至少一个基本处理器组件中存在的核心的数量以及所述分布式处理系统的处理装置的至少一个子系统处理器组件中存在的核心的数量的资源数据。
3.如权利要求2所述的设备,所述资源数据包括关于与所述至少一个基本处理器组件关联的存储量以及与所述至少一个子系统处理器组件关联的存储量的指示。
4.如权利要求2所述的设备,包括状态组件,供所述处理器组件来运行,以接收状态数据,其指示可用于任务部分的指配的所述至少一个基本处理器组件中存在的核心的数量的子集,并且指示可用于任务部分的指配的所述至少一个子系统处理器组件中存在的核心的数量的子集。
5.如权利要求1所述的设备,包括状态组件,供所述处理器组件来运行,以接收第一状态数据,其指示由所选核心之一对所述任务的任务部分例程的实例的执行的当前状态。
6.如权利要求5所述的设备,所述状态组件用于从提交装置接收对所述任务的执行的当前状态的查询,并且传送第二状态数据,其基于由所述所选核心对所述任务部分例程的所述实例的执行的当前状态来指示所述任务的执行的当前状态。
7.如权利要求1所述的设备,所述核心选择组件用于确定执行所述任务的各任务部分所需的相对时间周期,并且可基于所述相对时间周期从所述可用核心中包含的核心类型之中选择一种类型的核心来执行各任务部分。
8.如权利要求7所述的设备,所述核心选择组件用于响应包括有利于减少所消耗电力优于减少所需时间的所述所选平衡而从所述可用核心之中选择所选核心进行指配以执行要求较长时间周期来执行的任务部分的实例。
9.如权利要求1所述的设备,其中,每个任务部分被编译为不同的编译版本,从而产生要供不同类型的核心来运行的不同任务部分例程。
10.如权利要求1所述的设备,所述核心选择组件用于经由所述接口向所选核心传送所述所选核心的选择的指示。
11.一种用于指配处理器组件核心以执行任务部分的计算机实现的方法,包括:
接收指示分布式处理系统的处理装置中包括的基本处理器组件和子系统处理器组件的可用核心的状态数据,所述子系统处理器组件在网络上经过所述基本处理器组件是可访问的;
基于减少运行任务部分例程的实例所需的时间与所消耗的电力之间的所选折衷从所述可用核心之中选择核心来运行任务的所述任务部分例程的实例;以及
经由接口向所选核心传送所述所选核心的选择的指示,
其中,所述选择要响应包括有利于减少所需时间优于减少所消耗电力的所述所选折衷而增加所述所选核心之间的局部性程度,以便使所述处理装置的处理装置之间的进程间通信为最少。
12.如权利要求11所述的计算机实现的方法,包括接收指示与所述分布式处理系统的各处理装置的各基本处理器组件和各子系统处理器组件关联的资源的资源数据。
13.如权利要求12所述的计算机实现的方法,与各基本处理器组件和各子系统处理器组件关联的所述资源包括至少一个基本处理器组件中或者至少一个子系统处理器组件中存在的核心的数量、基本处理器组件或子系统处理器组件的核心的高速缓存的大小或者与基本处理器组件或子系统处理器组件关联的存储量其中之一。
14.如权利要求13所述的计算机实现的方法,包括接收指示可用于任务部分的指配的所述至少一个基本处理器组件或者所述至少一个子系统处理器组件中存在的核心的所述数量的子集的状态数据。
15.如权利要求11所述的计算机实现的方法,包括:
接收指示由所述所选核心之一对所述任务的任务部分例程的实例的执行的当前状态的第一状态数据;
从提交装置接收对所述任务的执行的当前状态的查询;以及
经由所述接口传送基于由所述所选核心对所述任务部分例程的所述实例的执行的当前状态来指示所述任务的执行的当前状态的第二状态数据。
16.如权利要求11所述的计算机实现的方法,包括:
确定执行所述任务的各任务部分所需的相对时间周期;以及
基于所述相对时间周期从所述可用核心中包含的核心类型之中选择一种类型的核心来执行各任务部分。
17.如权利要求16所述的计算机实现的方法,包括响应包括有利于减少所消耗电力优于减少所需时间的所述所选折衷而从所述可用核心之中选择所述所选核心进行指配以执行要求较长时间周期来执行的任务部分的实例。
18.如权利要求11所述的计算机实现的方法,其中,每个任务部分被编译为不同的编译版本,从而产生要供不同类型的核心来运行的不同任务部分例程。
19.一种接收命令的设备,包括用于执行如权利要求11-18中的任一项所述的方法的部件。
20.一种机器可读介质,其上面存储指令,所述指令在被执行时导致所述机器执行如权利要求11-18中任一项所述的方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2013/083847 WO2015039320A1 (en) | 2013-09-19 | 2013-09-19 | Techniques for distributed processing task portion assignment |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105453044A CN105453044A (zh) | 2016-03-30 |
CN105453044B true CN105453044B (zh) | 2020-06-12 |
Family
ID=52669231
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380079006.6A Expired - Fee Related CN105453044B (zh) | 2013-09-19 | 2013-09-19 | 用于分布式处理任务部分指配的技术 |
Country Status (4)
Country | Link |
---|---|
US (2) | US9652297B2 (zh) |
CN (1) | CN105453044B (zh) |
DE (1) | DE112013007263T5 (zh) |
WO (1) | WO2015039320A1 (zh) |
Families Citing this family (98)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015109071A (ja) * | 2013-10-25 | 2015-06-11 | トヨタ自動車株式会社 | 制御装置 |
US9250953B2 (en) * | 2013-11-12 | 2016-02-02 | Oxide Interactive Llc | Organizing tasks by a hierarchical task scheduler for execution in a multi-threaded processing system |
CN103645954B (zh) * | 2013-11-21 | 2018-12-14 | 华为技术有限公司 | 一种基于异构多核体系的cpu调度方法、装置和系统 |
US9128779B1 (en) | 2014-07-31 | 2015-09-08 | Splunk Inc. | Distributed tasks for retrieving supplemental job information |
CN105446653B (zh) | 2014-08-27 | 2018-12-14 | 阿里巴巴集团控股有限公司 | 一种数据合并方法和设备 |
US9898348B2 (en) | 2014-10-22 | 2018-02-20 | International Business Machines Corporation | Resource mapping in multi-threaded central processor units |
US9891964B2 (en) | 2014-11-19 | 2018-02-13 | International Business Machines Corporation | Network traffic processing |
US9400685B1 (en) * | 2015-01-30 | 2016-07-26 | Huawei Technologies Co., Ltd. | Dividing, scheduling, and parallel processing compiled sub-tasks on an asynchronous multi-core processor |
US10185547B2 (en) * | 2015-06-26 | 2019-01-22 | Intel Corporation | Techniques for distributed operation of secure controllers |
US10650045B2 (en) | 2016-02-05 | 2020-05-12 | Sas Institute Inc. | Staged training of neural networks for improved time series prediction performance |
US10642896B2 (en) | 2016-02-05 | 2020-05-05 | Sas Institute Inc. | Handling of data sets during execution of task routines of multiple languages |
US9684543B1 (en) * | 2016-02-05 | 2017-06-20 | Sas Institute Inc. | Distributed data set storage, retrieval and analysis |
US10795935B2 (en) | 2016-02-05 | 2020-10-06 | Sas Institute Inc. | Automated generation of job flow definitions |
US11169788B2 (en) * | 2016-02-05 | 2021-11-09 | Sas Institute Inc. | Per task routine distributed resolver |
US10650046B2 (en) | 2016-02-05 | 2020-05-12 | Sas Institute Inc. | Many task computing with distributed file system |
US11513850B2 (en) | 2016-02-05 | 2022-11-29 | Sas Institute Inc. | Coordinated performance controller failover in many task computing |
US11455190B2 (en) | 2016-02-05 | 2022-09-27 | Sas Institute Inc. | Implicit status in many task computing |
US11734064B2 (en) | 2016-02-05 | 2023-08-22 | Sas Institute Inc. | Automated virtual machine resource management in container-supported many task computing |
US11474863B2 (en) | 2018-06-22 | 2022-10-18 | Sas Institute Inc. | Federated area coherency across multiple devices in many-task computing |
US10884761B2 (en) | 2016-03-22 | 2021-01-05 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd | Best performance delivery in heterogeneous computing unit environment |
US10860499B2 (en) | 2016-03-22 | 2020-12-08 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd | Dynamic memory management in workload acceleration |
US10203747B2 (en) | 2016-03-22 | 2019-02-12 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Workload placement based on heterogeneous compute performance per watt |
US10372484B2 (en) * | 2016-06-27 | 2019-08-06 | Microsoft Technology Licensing, Llc | Secured computing system |
US11334463B2 (en) | 2016-07-29 | 2022-05-17 | Microsoft Technology Licensing, Llc | Detection of computing resource leakage in cloud computing architectures |
EP3370125A1 (en) * | 2017-03-01 | 2018-09-05 | PLETHORA IIoT, S.L. | Device and system including multiple devices for supervision and control of machines in industrial installation |
US10359954B2 (en) | 2017-05-31 | 2019-07-23 | Alibaba Group Holding Limited | Method and system for implementing byte-alterable write cache |
US10884926B2 (en) | 2017-06-16 | 2021-01-05 | Alibaba Group Holding Limited | Method and system for distributed storage using client-side global persistent cache |
US10303241B2 (en) * | 2017-06-19 | 2019-05-28 | Alibaba Group Holding Limited | System and method for fine-grained power control management in a high capacity computer cluster |
US10678443B2 (en) | 2017-07-06 | 2020-06-09 | Alibaba Group Holding Limited | Method and system for high-density converged storage via memory bus |
US10564856B2 (en) | 2017-07-06 | 2020-02-18 | Alibaba Group Holding Limited | Method and system for mitigating write amplification in a phase change memory-based storage device |
US10423508B2 (en) | 2017-08-11 | 2019-09-24 | Alibaba Group Holding Limited | Method and system for a high-priority read based on an in-place suspend/resume write |
US10303601B2 (en) | 2017-08-11 | 2019-05-28 | Alibaba Group Holding Limited | Method and system for rearranging a write operation in a shingled magnetic recording device |
US10642522B2 (en) | 2017-09-15 | 2020-05-05 | Alibaba Group Holding Limited | Method and system for in-line deduplication in a storage drive based on a non-collision hash |
US10496829B2 (en) | 2017-09-15 | 2019-12-03 | Alibaba Group Holding Limited | Method and system for data destruction in a phase change memory-based storage device |
US10796350B2 (en) * | 2017-09-25 | 2020-10-06 | Oracle International Corporation | Systems and methods for using facade API for phased upgrade of core API |
US10789011B2 (en) | 2017-09-27 | 2020-09-29 | Alibaba Group Holding Limited | Performance enhancement of a storage device using an integrated controller-buffer |
US10503409B2 (en) | 2017-09-27 | 2019-12-10 | Alibaba Group Holding Limited | Low-latency lightweight distributed storage system |
US10860334B2 (en) | 2017-10-25 | 2020-12-08 | Alibaba Group Holding Limited | System and method for centralized boot storage in an access switch shared by multiple servers |
US10445190B2 (en) | 2017-11-08 | 2019-10-15 | Alibaba Group Holding Limited | Method and system for enhancing backup efficiency by bypassing encoding and decoding |
US10877898B2 (en) | 2017-11-16 | 2020-12-29 | Alibaba Group Holding Limited | Method and system for enhancing flash translation layer mapping flexibility for performance and lifespan improvements |
CN109976899A (zh) * | 2017-12-28 | 2019-07-05 | 李耀庭 | 一种分布式运算系统 |
US10909738B2 (en) * | 2018-01-05 | 2021-02-02 | Nvidia Corporation | Real-time hardware-assisted GPU tuning using machine learning |
US10496548B2 (en) | 2018-02-07 | 2019-12-03 | Alibaba Group Holding Limited | Method and system for user-space storage I/O stack with user-space flash translation layer |
US10891239B2 (en) | 2018-02-07 | 2021-01-12 | Alibaba Group Holding Limited | Method and system for operating NAND flash physical space to extend memory capacity |
US10831404B2 (en) | 2018-02-08 | 2020-11-10 | Alibaba Group Holding Limited | Method and system for facilitating high-capacity shared memory using DIMM from retired servers |
US10402112B1 (en) | 2018-02-14 | 2019-09-03 | Alibaba Group Holding Limited | Method and system for chunk-wide data organization and placement with real-time calculation |
WO2019222958A1 (en) | 2018-05-24 | 2019-11-28 | Alibaba Group Holding Limited | System and method for flash storage management using multiple open page stripes |
US10921992B2 (en) | 2018-06-25 | 2021-02-16 | Alibaba Group Holding Limited | Method and system for data placement in a hard disk drive based on access frequency for improved IOPS and utilization efficiency |
CN111902804B (zh) | 2018-06-25 | 2024-03-01 | 阿里巴巴集团控股有限公司 | 用于管理存储设备的资源并量化i/o请求成本的系统和方法 |
US10871921B2 (en) | 2018-07-30 | 2020-12-22 | Alibaba Group Holding Limited | Method and system for facilitating atomicity assurance on metadata and data bundled storage |
US10747673B2 (en) | 2018-08-02 | 2020-08-18 | Alibaba Group Holding Limited | System and method for facilitating cluster-level cache and memory space |
US10996886B2 (en) | 2018-08-02 | 2021-05-04 | Alibaba Group Holding Limited | Method and system for facilitating atomicity and latency assurance on variable sized I/O |
US11327929B2 (en) | 2018-09-17 | 2022-05-10 | Alibaba Group Holding Limited | Method and system for reduced data movement compression using in-storage computing and a customized file system |
US10852948B2 (en) | 2018-10-19 | 2020-12-01 | Alibaba Group Holding | System and method for data organization in shingled magnetic recording drive |
TWI673610B (zh) * | 2018-11-09 | 2019-10-01 | 財團法人資訊工業策進會 | 遠端工作系統及其工作方法 |
US11327808B2 (en) * | 2018-11-13 | 2022-05-10 | Western Digital Technologies, Inc. | Decentralized data processing architecture |
US10795586B2 (en) | 2018-11-19 | 2020-10-06 | Alibaba Group Holding Limited | System and method for optimization of global data placement to mitigate wear-out of write cache and NAND flash |
US10769018B2 (en) | 2018-12-04 | 2020-09-08 | Alibaba Group Holding Limited | System and method for handling uncorrectable data errors in high-capacity storage |
US10977122B2 (en) | 2018-12-31 | 2021-04-13 | Alibaba Group Holding Limited | System and method for facilitating differentiated error correction in high-density flash devices |
US10884654B2 (en) | 2018-12-31 | 2021-01-05 | Alibaba Group Holding Limited | System and method for quality of service assurance of multi-stream scenarios in a hard disk drive |
US11061735B2 (en) | 2019-01-02 | 2021-07-13 | Alibaba Group Holding Limited | System and method for offloading computation to storage nodes in distributed system |
US11132291B2 (en) | 2019-01-04 | 2021-09-28 | Alibaba Group Holding Limited | System and method of FPGA-executed flash translation layer in multiple solid state drives |
US11200337B2 (en) | 2019-02-11 | 2021-12-14 | Alibaba Group Holding Limited | System and method for user data isolation |
US10922234B2 (en) | 2019-04-11 | 2021-02-16 | Alibaba Group Holding Limited | Method and system for online recovery of logical-to-physical mapping table affected by noise sources in a solid state drive |
US10908960B2 (en) | 2019-04-16 | 2021-02-02 | Alibaba Group Holding Limited | Resource allocation based on comprehensive I/O monitoring in a distributed storage system |
US11169873B2 (en) | 2019-05-21 | 2021-11-09 | Alibaba Group Holding Limited | Method and system for extending lifespan and enhancing throughput in a high-density solid state drive |
US10860223B1 (en) | 2019-07-18 | 2020-12-08 | Alibaba Group Holding Limited | Method and system for enhancing a distributed storage system by decoupling computation and network tasks |
US11126561B2 (en) | 2019-10-01 | 2021-09-21 | Alibaba Group Holding Limited | Method and system for organizing NAND blocks and placing data to facilitate high-throughput for random writes in a solid state drive |
US11042307B1 (en) | 2020-01-13 | 2021-06-22 | Alibaba Group Holding Limited | System and method for facilitating improved utilization of NAND flash based on page-wise operation |
US11449455B2 (en) | 2020-01-15 | 2022-09-20 | Alibaba Group Holding Limited | Method and system for facilitating a high-capacity object storage system with configuration agility and mixed deployment flexibility |
US11983557B2 (en) * | 2020-01-31 | 2024-05-14 | Salesforce, Inc. | Orchestration for data pipeline execution plans |
KR20210101071A (ko) | 2020-02-07 | 2021-08-18 | 삼성전자주식회사 | 이종의 다중-프로세서에 기반하여 스케줄링을 수행하기 위한 전자 장치 및 그의 동작 방법 |
US10923156B1 (en) | 2020-02-19 | 2021-02-16 | Alibaba Group Holding Limited | Method and system for facilitating low-cost high-throughput storage for accessing large-size I/O blocks in a hard disk drive |
US10872622B1 (en) | 2020-02-19 | 2020-12-22 | Alibaba Group Holding Limited | Method and system for deploying mixed storage products on a uniform storage infrastructure |
US11150986B2 (en) | 2020-02-26 | 2021-10-19 | Alibaba Group Holding Limited | Efficient compaction on log-structured distributed file system using erasure coding for resource consumption reduction |
US11144250B2 (en) | 2020-03-13 | 2021-10-12 | Alibaba Group Holding Limited | Method and system for facilitating a persistent memory-centric system |
CN111401745B (zh) * | 2020-03-16 | 2024-02-09 | 合肥科大智能机器人技术有限公司 | 一种基于5g的巡检机器人集群任务分配方法及系统 |
US11200114B2 (en) | 2020-03-17 | 2021-12-14 | Alibaba Group Holding Limited | System and method for facilitating elastic error correction code in memory |
US11385833B2 (en) | 2020-04-20 | 2022-07-12 | Alibaba Group Holding Limited | Method and system for facilitating a light-weight garbage collection with a reduced utilization of resources |
US11281575B2 (en) | 2020-05-11 | 2022-03-22 | Alibaba Group Holding Limited | Method and system for facilitating data placement and control of physical addresses with multi-queue I/O blocks |
US11461262B2 (en) | 2020-05-13 | 2022-10-04 | Alibaba Group Holding Limited | Method and system for facilitating a converged computation and storage node in a distributed storage system |
US11494115B2 (en) | 2020-05-13 | 2022-11-08 | Alibaba Group Holding Limited | System method for facilitating memory media as file storage device based on real-time hashing by performing integrity check with a cyclical redundancy check (CRC) |
US11218165B2 (en) | 2020-05-15 | 2022-01-04 | Alibaba Group Holding Limited | Memory-mapped two-dimensional error correction code for multi-bit error tolerance in DRAM |
US11556277B2 (en) | 2020-05-19 | 2023-01-17 | Alibaba Group Holding Limited | System and method for facilitating improved performance in ordering key-value storage with input/output stack simplification |
US11507499B2 (en) | 2020-05-19 | 2022-11-22 | Alibaba Group Holding Limited | System and method for facilitating mitigation of read/write amplification in data compression |
US11263132B2 (en) | 2020-06-11 | 2022-03-01 | Alibaba Group Holding Limited | Method and system for facilitating log-structure data organization |
US11354200B2 (en) | 2020-06-17 | 2022-06-07 | Alibaba Group Holding Limited | Method and system for facilitating data recovery and version rollback in a storage device |
US11422931B2 (en) | 2020-06-17 | 2022-08-23 | Alibaba Group Holding Limited | Method and system for facilitating a physically isolated storage unit for multi-tenancy virtualization |
US11354233B2 (en) | 2020-07-27 | 2022-06-07 | Alibaba Group Holding Limited | Method and system for facilitating fast crash recovery in a storage device |
US11372774B2 (en) | 2020-08-24 | 2022-06-28 | Alibaba Group Holding Limited | Method and system for a solid state drive with on-chip memory integration |
KR20220046221A (ko) * | 2020-10-07 | 2022-04-14 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
US11487465B2 (en) | 2020-12-11 | 2022-11-01 | Alibaba Group Holding Limited | Method and system for a local storage engine collaborating with a solid state drive controller |
US11734115B2 (en) | 2020-12-28 | 2023-08-22 | Alibaba Group Holding Limited | Method and system for facilitating write latency reduction in a queue depth of one scenario |
US11416365B2 (en) | 2020-12-30 | 2022-08-16 | Alibaba Group Holding Limited | Method and system for open NAND block detection and correction in an open-channel SSD |
US11726699B2 (en) | 2021-03-30 | 2023-08-15 | Alibaba Singapore Holding Private Limited | Method and system for facilitating multi-stream sequential read performance improvement with reduced read amplification |
US11461173B1 (en) | 2021-04-21 | 2022-10-04 | Alibaba Singapore Holding Private Limited | Method and system for facilitating efficient data compression based on error correction code and reorganization of data placement |
US11476874B1 (en) | 2021-05-14 | 2022-10-18 | Alibaba Singapore Holding Private Limited | Method and system for facilitating a storage server with hybrid memory for journaling and data storage |
US12009660B1 (en) | 2023-07-11 | 2024-06-11 | T-Mobile Usa, Inc. | Predicting space, power, and cooling capacity of a facility to optimize energy usage |
Family Cites Families (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6779118B1 (en) * | 1998-05-04 | 2004-08-17 | Auriq Systems, Inc. | User specific automatic data redirection system |
US7100020B1 (en) * | 1998-05-08 | 2006-08-29 | Freescale Semiconductor, Inc. | Digital communications processor |
US6370583B1 (en) * | 1998-08-17 | 2002-04-09 | Compaq Information Technologies Group, L.P. | Method and apparatus for portraying a cluster of computer systems as having a single internet protocol image |
JP2001168915A (ja) * | 1999-12-10 | 2001-06-22 | Nec Corp | Ipパケット転送装置 |
JP2001251349A (ja) * | 2000-03-06 | 2001-09-14 | Fujitsu Ltd | パケットプロセッサ |
US7360245B1 (en) * | 2001-07-18 | 2008-04-15 | Novell, Inc. | Method and system for filtering spoofed packets in a network |
US6804632B2 (en) * | 2001-12-06 | 2004-10-12 | Intel Corporation | Distribution of processing activity across processing hardware based on power consumption considerations |
US8645954B2 (en) * | 2001-12-13 | 2014-02-04 | Intel Corporation | Computing system capable of reducing power consumption by distributing execution of instruction across multiple processors and method therefore |
US7395354B2 (en) * | 2002-02-21 | 2008-07-01 | Corente, Inc. | Methods and systems for resolving addressing conflicts based on tunnel information |
US8032891B2 (en) * | 2002-05-20 | 2011-10-04 | Texas Instruments Incorporated | Energy-aware scheduling of application execution |
US7093147B2 (en) * | 2003-04-25 | 2006-08-15 | Hewlett-Packard Development Company, L.P. | Dynamically selecting processor cores for overall power efficiency |
KR100601874B1 (ko) * | 2004-01-27 | 2006-07-19 | 삼성전자주식회사 | 네트워크 프린팅 기기의 mac 컨트롤러 및 네트워크프린팅 기기의 버스 대역폭 확장방법 |
US8230426B2 (en) * | 2004-10-06 | 2012-07-24 | Digipede Technologies, Llc | Multicore distributed processing system using selection of available workunits based on the comparison of concurrency attributes with the parallel processing characteristics |
US7788670B2 (en) * | 2004-10-26 | 2010-08-31 | Intel Corporation | Performance-based workload scheduling in multi-core architectures |
US7848332B2 (en) * | 2004-11-15 | 2010-12-07 | Cisco Technology, Inc. | Method and apparatus for classifying a network protocol and aligning a network protocol header relative to cache line boundary |
JP4318664B2 (ja) | 2005-05-12 | 2009-08-26 | 株式会社ソニー・コンピュータエンタテインメント | 情報処理装置およびタスク実行方法 |
US7490254B2 (en) * | 2005-08-02 | 2009-02-10 | Advanced Micro Devices, Inc. | Increasing workload performance of one or more cores on multiple core processors |
JP3938387B2 (ja) * | 2005-08-10 | 2007-06-27 | インターナショナル・ビジネス・マシーンズ・コーポレーション | コンパイラ、制御方法、およびコンパイラ・プログラム |
US7412353B2 (en) * | 2005-09-28 | 2008-08-12 | Intel Corporation | Reliable computing with a many-core processor |
US7774590B2 (en) * | 2006-03-23 | 2010-08-10 | Intel Corporation | Resiliently retaining state information of a many-core processor |
US8046775B2 (en) * | 2006-08-14 | 2011-10-25 | Marvell World Trade Ltd. | Event-based bandwidth allocation mode switching method and apparatus |
US7616635B2 (en) * | 2006-09-29 | 2009-11-10 | Intel Corporation | Address mapping for data packet routing |
US8490103B1 (en) | 2007-04-30 | 2013-07-16 | Hewlett-Packard Development Company, L.P. | Allocating computer processes to processor cores as a function of process utilizations |
CN101303657B (zh) * | 2008-06-13 | 2011-08-10 | 上海大学 | 一种多处理器实时任务执行功耗优化方法 |
US8219994B2 (en) * | 2008-10-23 | 2012-07-10 | Globalfoundries Inc. | Work balancing scheduler for processor cores and methods thereof |
CN101403982B (zh) * | 2008-11-03 | 2011-07-20 | 华为技术有限公司 | 一种多核处理器的任务分配方法和系统 |
US9104411B2 (en) * | 2009-12-16 | 2015-08-11 | Qualcomm Incorporated | System and method for controlling central processing unit power with guaranteed transient deadlines |
US20120036398A1 (en) * | 2010-04-22 | 2012-02-09 | Freescale Semiconductor, Inc. | Multiple core data processor with usage monitoring |
US8516493B2 (en) * | 2011-02-01 | 2013-08-20 | Futurewei Technologies, Inc. | System and method for massively multi-core computing systems |
US8875146B2 (en) | 2011-08-01 | 2014-10-28 | Honeywell International Inc. | Systems and methods for bounding processing times on multiple processing units |
CN102710477B (zh) * | 2012-05-15 | 2014-11-05 | 浙江大学 | 一种基于vpx总线结构的数据处理系统 |
CN104995610B (zh) * | 2013-03-15 | 2018-11-16 | 英特尔公司 | 用于与计算设备的本地组件进行通信的装置、系统、方法、存储介质及计算机系统 |
-
2013
- 2013-09-19 CN CN201380079006.6A patent/CN105453044B/zh not_active Expired - Fee Related
- 2013-09-19 DE DE112013007263.7T patent/DE112013007263T5/de not_active Withdrawn
- 2013-09-19 WO PCT/CN2013/083847 patent/WO2015039320A1/en active Application Filing
- 2013-09-19 US US14/129,921 patent/US9652297B2/en not_active Expired - Fee Related
-
2017
- 2017-05-15 US US15/595,900 patent/US20180004578A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
CN105453044A (zh) | 2016-03-30 |
DE112013007263T5 (de) | 2016-04-07 |
US20180004578A1 (en) | 2018-01-04 |
WO2015039320A1 (en) | 2015-03-26 |
US9652297B2 (en) | 2017-05-16 |
US20150082317A1 (en) | 2015-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105453044B (zh) | 用于分布式处理任务部分指配的技术 | |
CN107851152B (zh) | 用于安全控制器的分布式操作的装置和方法 | |
KR101744126B1 (ko) | 비대칭적 프로세서 코어 간의 협력적 실행을 위한 기법 | |
KR101855311B1 (ko) | 그래픽 처리 유닛을 위한 작업 부하 일괄 제출 메커니즘 | |
US7783811B2 (en) | Efficient interrupt message definition | |
EP2778840B1 (en) | Techniques for power saving on graphics-related workloads | |
JP5643903B2 (ja) | 階層的キャッシュ設計におけるキャッシュ間の効率的通信のための方法および装置 | |
TW200413889A (en) | Mechanism for processor power state aware distribution of lowest priority interrupts | |
CN1818856A (zh) | 具有加速器的数字信号系统及其操作方法 | |
WO2021013019A1 (zh) | 一种图片处理方法及装置 | |
US10120731B2 (en) | Techniques for controlling use of locks | |
US20160026436A1 (en) | Dynamic Multi-processing In Multi-core Processors | |
US10255093B2 (en) | Techniques for portable computing device virtualization | |
US9589311B2 (en) | Independent thread saturation of graphics processing units | |
CN114721975A (zh) | 链表处理方法、装置、加速器、电路板、设备和存储介质 | |
KR102551076B1 (ko) | 멀티모달 인터페이스 | |
CN102736949A (zh) | 改善对非连贯设备要执行的任务的调度 | |
EP3053026A1 (en) | Techniques for heterogeneous core assignment | |
CN118245114A (zh) | 一种处理器及其任务调度方法、芯片、存储介质 | |
CN1310138C (zh) | 多进程下寄存器文件置入操作时保持数据一致性的方法 | |
CN117130787A (zh) | 资源调度方法、装置、电子设备及存储介质 | |
CN116089028A (zh) | 处理器中断扩展特征 | |
CN110832462A (zh) | 反向平铺 | |
JP2015046184A (ja) | 階層的キャッシュ設計におけるキャッシュ間の効率的通信のための方法および装置 | |
KR20160100183A (ko) | 복수의 제어 라인을 통한 데이터 전송 방법 및 그 시스템 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20200612 Termination date: 20200919 |
|
CF01 | Termination of patent right due to non-payment of annual fee |