CN103365714B - 分布式处理系统、调度器节点、调度方法及程序产生设备 - Google Patents
分布式处理系统、调度器节点、调度方法及程序产生设备 Download PDFInfo
- Publication number
- CN103365714B CN103365714B CN201310120824.8A CN201310120824A CN103365714B CN 103365714 B CN103365714 B CN 103365714B CN 201310120824 A CN201310120824 A CN 201310120824A CN 103365714 B CN103365714 B CN 103365714B
- Authority
- CN
- China
- Prior art keywords
- task
- node
- reconfigurable processor
- scheduler
- processor
- 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.)
- Active
Links
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
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- 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/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5044—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Stored Programmes (AREA)
- Logic Circuits (AREA)
- Multi Processors (AREA)
- Computer And Data Communications (AREA)
- Microcomputers (AREA)
Abstract
一种分布式处理系统、调度器节点、调度方法及程序产生设备。所述分布式处理系统包括:多个任务节点,每个任务节点被构造为具有使用可重构处理器处理任务的能力并且具有如果不使用可重构处理器处理任务则使用不可重构处理器处理任务的能力;调度器节点,被构造为从所述多个任务节点中选择用于处理任务的任务节点。
Description
本申请要求于2012年4月9日提交的第10-2012-0036921号韩国专利申请的权益,该申请的全部公开为了所有目的通过引用包含于此。
技术领域
以下描述涉及一种在计算环境下分配任务的技术。
背景技术
近来,对允许用户容易地使用与IT相关的服务(诸如通过互联网上的服务器存储数据、使用网络、使用内容、或本领域普通技术人员公知的其他与IT相关的服务)的云计算积极地开展了研究,并且已经对在不同物理位置的计算机的资源虚拟化的技术积极地开展了研究。随着数据的急剧增加的产生和收集,数据分析应用正在成为在云计算环境下操作的主要应用。
发明内容
在一个总的方面,一种分布式处理系统包括:多个任务节点,每个任务节点被构造为具有使用可重构处理器(RP)处理任务的能力以及当不使用可重构处理器处理任务时使用不可重构处理器(non-RP)处理任务的能力;调度器节点,被构造为从所述多个任务节点中选择用于处理任务的任务节点。
调度器节点还可被构造为选择任务处理方法,其中,选择的任务节点通过所述任务处理方法来处理任务。
调度器节点还可被构造为:基于RP成本和non-RP成本来计算RP增益;基于计算的RP增益选择任务节点和任务处理方法,其中,选择的任务节点通过所述任务处理方法来处理任务。
调度器节点还可被构造为基于RP增益的大小信息选择任务节点,并且基于RP增益的方向信息选择任务处理方法。
调度器节点还可被构造为基于不可重构处理器的任务处理时间和不可重构处理器的任务处理功率之一计算non-RP成本,或者基于不可重构处理器的任务处理时间和不可重构处理器的任务处理功率二者计算non-RP成本。
调度器节点还可被构造为基于可重构处理器的任务处理时间、或可重构处理器的任务处理的等待时间、或可重构处理器的重构时间、或可重构处理器的重构的等待时间、或可重构处理器的任务处理功率、或可重构处理器的重构功率、或它们的任意组合来计算RP成本。
任务可包括:用于不可重构处理器的non-RP逻辑;用于可重构处理器的RP逻辑,其中,当RP逻辑与non-RP逻辑处理相同任务时,RP逻辑与non-RP逻辑产生相同结果。
选择的任务节点还可被构造为响应于来自调度器节点的请求执行RP逻辑与non-RP逻辑中选择的一个。
所述多个任务节点中的每个任务节点还可被构造为具有使用可重构处理器处理任务的一部分的能力、当不使用可重构处理器处理所述任务的一部分时使用不可重构处理器处理所述任务的一部分的能力、使用可重构处理器顺序、交替、并行或同时处理多个任务的能力、以及当不使用可重构处理器处理所述多个任务时使用不可重构处理器顺序、交替、并行或同时处理所述多个任务的能力;调度器节点还可被构造为从所述多个任务节点中选择用于处理所述任务的一部分或所述多个任务的任务节点。
在另一个总的方面,一种分布式处理系统包括:至少一个任务节点,包括可重构处理器(RP)和不可重构处理器(non-RP);调度器节点,被构造为:基于任务产生用于重构可重构处理器的可重构处理器逻辑;将可重构处理器逻辑传送到所述至少一个任务节点。
所述至少一个任务节点可以是多个任务节点,每个任务节点包括可重构处理器和不可重构处理器。
调度器节点还可被构造为:基于RP成本和non-RP成本来计算RP增益;基于计算的RP增益从所述至少一个任务节点中选择用于处理任务的任务节点。
调度器节点还可被构造为基于RP增益的大小信息选择任务节点。
在另一个总的方面,一种分布式处理系统,包括:至少一个任务节点,包括可重构处理器(RP)和不可重构处理器(non-RP);调度器节点,被构造为基于任务从可重构处理器和不可重构处理器中选择用于处理所述任务的至少一部分的处理器。
调度器节点还可被构造为:从所述至少一个任务节点中选择用于处理任务的任务节点;选择任务处理方法,其中,选择的任务节点通过所述任务处理方法来处理任务。
在另一个总的方面,一种任务节点包括:任务信息接收器,被构造为接收任务和关于任务处理方法的信息;控制器,被构造为驱动与任务处理方法相应的处理器;至少一个处理单元,每个处理单元包括可重构处理器(RP)和不可重构处理器(non-RP);其中,任务处理方法是RP逻辑或non-RP逻辑;控制器还可被构造为:当任务处理方法是RP逻辑时,驱动可重构处理器;当任务处理方法是non-RP逻辑时,驱动不可重构处理器。
在另一个总的方面,一种分布式处理系统中的调度器节点,所述调度器节点包括被构造为从多个任务节点中选择用于处理任务的任务节点的调度器,所述多个任务节点中的每个任务节点被构造为具有使用可重构处理器(RP)处理任务的能力以及当不使用可重构处理器处理任务时使用不可重构处理器(non-RP)处理任务的能力。
调度器节点还可包括作业分割单元,所述作业分割单元被构造为:从客户端节点接收用于处理作业的请求;将作业分割为多个任务;将每个任务输出到调度器。
调度器还可被构造为输出调度信息;调度器节点还可包括被构造为基于调度器的调度信息将任务执行请求发送到选择的任务节点的执行请求单元。
调度信息可包括:选择的任务节点的标识信息;指定任务处理方法的信息,其中,任务节点通过所述任务处理方法来处理任务。
所述多个任务节点中的每个任务节点还可被构造为具有使用可重构处理器处理任务的一部分的能力、当不使用可重构处理器处理所述任务的一部分时使用不可重构处理器处理所述任务的一部分的能力、使用可重构处理器顺序、交替、并行或同时处理多个任务的能力、以及当不使用可重构处理器处理所述多个任务时使用不可重构处理器顺序、交替、并行或同时处理所述多个任务的能力;调度器还可被构造为从所述多个任务节点中选择用于处理所述任务的一部分或所述多个任务的任务节点。
在另一个总的方面,一种分布式处理系统的调度方法,所述方法包括:针对多个任务节点中的每个任务节点比较可重构处理器(RP)成本和不可重构处理器(non-RP)成本,所述多个任务节点中的每个任务节点被构造为具有使用可重构处理器处理任务的能力以及当不使用可重构处理器处理任务时使用不可重构处理器处理任务的能力;基于比较结果计算RP增益;基于计算的RP增益选择任务节点和任务处理方法,其中,选择的任务节点通过所述任务处理方法来处理任务。
所述多个任务节点中的每个任务节点还可被构造为具有使用可重构处理器处理任务的一部分的能力、当不使用可重构处理器处理所述任务的一部分时使用不可重构处理器处理所述任务的一部分的能力、使用可重构处理器顺序、交替、并行或同时处理多个任务的能力、以及当不使用可重构处理器处理所述多个任务时使用不可重构处理器顺序、交替、并行或同时处理所述多个任务的能力;选择步骤可包括基于计算的RP增益选择任务节点和任务处理方法,其中,选择的任务节点通过所述任务处理方法来处理所述任务的一部分或所述多个任务。
在另一个总的方面,一种使用包括可重构处理器(RP)的任务节点的方法包括:接收任务;基于任务产生用于重构可重构处理器的可重构处理器(RP)逻辑;将可重构处理器逻辑传送到任务节点。
所述方法还可包括:将可重构处理器逻辑应用到可重构处理器,以重构可重构处理器;使用可重构处理器处理任务的至少一部分。
所述方法还可包括:当接收到任务时从多个任务节点中选择任务节点。
任务节点还可包括不可重构处理器(non-RP);选择任务节点的步骤可包括:基于RP成本和non-RP成本计算RP增益;基于计算的RP增益选择任务节点。
任务节点还包括不可重构处理器(non-RP);所述任务可包括:用于不可重构处理器的non-RP逻辑;用于可重构处理器的RP逻辑,其中,当RP逻辑与non-RP逻辑处理相同任务时,RP逻辑与non-RP逻辑产生相同结果。
在另一个总的方面,一种使用包括可重构处理器(RP)和不可重构处理器(non-RP)的任务节点的方法包括:接收任务;基于所述任务从可重构处理器和不可重构处理器中选择用于处理所述任务的至少一部分的处理器;请求选择的处理器处理所述任务的至少一部分。
所述方法还可包括:基于处理所述任务的可重构处理器的RP成本和处理所述任务的不可重构处理器的non-RP成本来计算RP增益;选择步骤可包括:基于计算的RP增益选择处理器。
在另一个总的发面,提供一种在包括多个任务节点和调度器节点的分布式处理系统中的程序产生设备,所述多个任务节点的每个任务节点被构造为具有使用可重构处理器(RP)处理任务的能力以及当不使用可重构处理器处理任务时使用不可重构处理器(non-RP)处理任务的能力,所述调度器节点被构造为从所述多个任务节点中选择用于处理任务的任务节点。所述程序产生设备被构造为产生包括用于可重构处理器的RP逻辑的程序包,其中,当RP逻辑与用于不可重构处理器的non-RP逻辑处理相同任务时,RP逻辑与non-RP逻辑产生相同结果。
所述多个任务节点中的每个任务节点还可被构造为具有使用可重构处理器处理任务的一部分的能力、当不使用可重构处理器处理所述任务的一部分时使用不可重构处理器处理所述任务的一部分的能力、使用可重构处理器顺序、交替、并行或同时处理多个任务的能力、以及当不使用可重构处理器处理所述多个任务时使用不可重构处理器顺序、交替、并行或同时处理所述多个任务的能力;调度器节点还可被构造为从所述多个任务节点中选择用于处理所述任务的一部分或所述多个任务的任务节点。
在另一个总的方面,一种分布式处理系统包括:多个任务节点;调度器节点,被构造为从所述多个任务节点中选择用于处理任务的任务节点,其中,所述多个任务节点包括:第一任务节点,包括可重构处理器(RP)和不可重构处理器(non-RP);第二任务节点,包括可重构处理器但不包括不可重构处理器;第三任务节点,包括不可重构处理器但不包括可重构处理器。
调度器节点还可被构造为:基于关于使用可重构处理器处理任务的多个任务节点中的每个任务节点的RP成本以及关于使用不可重构处理器处理任务的多个任务节点中的每个任务节点的non-RP成本,来计算关于所述多个任务节点中的每个任务节点的RP增益;基于计算的关于所述多个任务节点中的每个任务节点的RP增益从所述多个任务节点中选择用于处理任务的任务节点。
关于不包括不可重构处理器的第二任务节点的non-RP成本可以是能够被调度器节点处理的最大可能的non-RP成本;关于不包括可重构处理器的第三任务节点的RP成本可以是能够被调度器节点处理的最大可能的RP成本。
调度器节点还可被构造为基于计算的RP增益从RP处理方法和non-RP处理方法中选择处理方法,其中,选择的任务节点通过所述处理方法来处理任务。
通过以下详细描述、附图和权利要求,其他特点和方面将是清楚的。
附图说明
图1是示出分布式处理系统的示例的示图;
图2是示出调度器节点的示例的示图;
图3是用于解释选择任务处理节点和任务处理方法的示例的示图;
图4是示出调度器的示例的示图;
图5是示出程序包的示例的示图;
图6A是示出任务节点的示例的示图;
图6B是示出任务节点的另一示例的示图;
图7是示出程序产生设备的示例的示图;
图8是示出分布式处理系统的调度方法的示例的流程图。
具体实施方式
提供以下描述,以帮助读者得到在此描述的方法、设备和/或系统的全面理解。然而,在此描述的方法、设备和/或系统的各种改变、修改和等同物对于本领域的普通技术人员将是明显的。另外,为了增加的清楚和简明,可省略本领域的普通技术人员公知的功能和结构的描述。
贯穿附图和详细描述,相同的附图标号指示相同的元件。附图不必成比例,并且为了清楚、说明和方便,可夸大附图中的元件的相对大小、比例和描绘。
图1是示出分布式处理系统100的示例。图1中示出的分布式处理系统100可被用于各种目的。例如,分布式处理系统100可被应用于在金融和医疗领域或需要大量数据处理的本领域的普通技术人员已知的任何其他领域中的用于大量数据处理的计算系统,或可被应用于特定数据处理服务(例如,数据加密、图像处理或本领域的普通技术人员已知的任何其他特定数据处理服务)的计算系统。另外,分布式处理系统100可被应用于包括云计算的各种网络环境或本领域的普通技术人员已知的任何其他网络环境。
参照图1,分布式处理系统100包括网络101和连接到网络101的多个节点102a至102c、104a至104d、106。网络101可以是有线网络或无线网络。节点102a至102c、104a至104d、106中的每个节点是分析并处理数据的计算设备。节点102a至102c、104a至104d、106被分类为多个客户端节点102a、102b和102c、多个任务节点104a、104b、104c和104d以及至少一个调度器节点106。
客户端节点102a、102b和102c中的每个客户端节点请求调度器节点106处理作业或作业的任务。通常,作业由多个任务组成,但在以下描述中,为了便于描述,术语“作业”和“任务”将被交替使用。
任务节点104a、104b、104c和104d中的每个节点从调度器节点106接收任务,处理任务,随后将处理的结果返回给调度器节点106。调度器节点106布置处理的结果,并随后将布置的结果发送给发出处理任务的请求的客户端节点。
任务节点104a、104b、104c和104d中的每个节点使用可重构处理器(在下文中,称为“RP核”)120和不可重构处理器(在下文中,称为“non-RP核”)140中的选择的一个处理器来处理任务。例如,任务节点104a、104b、104c和104d中的每个节点根据来自调度器节点106的指令激活RP核120或non-RP核,从而激活的RP核120或non-RP核140执行任务。在任何给定的时间,任务节点104a、104b、104c和104d中的所有节点可激活RP核120,任务节点104a、104b、104c和104d中没有节点可激活non-RP核140;或任务节点104a、104b、104c和104d中的所有节点可激活non-RP核140,任务节点104a、104b、104c和104d中没有节点可激活RP核120;或任务节点104a、104b、104c和104d中的一些节点可激活RP核120,任务节点104a、104b、104c和104d中的一些节点可激活non-RP核120。
RP核120可具有现场可编程门阵列(FGPA)或粗粒度阵列(CGA)结构,non-RP核140可以是通用中央处理单元(CPU)、图形处理单元(GPU)或超长指令字(VLIW)机器。然而,这些仅是RP核120和non-RP核140的示例,可使用能够操作为RP核120或non-RP核140的本领域的普通技术人员已知的任何装置。
任务节点104a、104b、104c和104d中的每个节点包括RP核120和non-RP核140中的至少一个。例如,任务节点可包括RP核120和non-RP核140两者(如,TN#0104a和TN#1104b),或可包括仅RP核120(如,TN#2104c),或可包括仅non-RP核140(如,TN#n104d)。然而,任务节点104a、104b、104c和104d中的每个节点可包括RP核120和non-RP核140两者。包括在任务节点104a、104b、104c和104d中的RP核120和non-RP核140可根据需要作为相同的类型或不同的类型。
任务节点104a、104b、104c和104d中的每个节点可被构造为具有使用RP核120处理任务的能力、当不使用RP核120处理任务时使用non-RP核140处理任务的能力、使用RP核120处理任务的一部分的能力、当不使用RP核120处理任务的一部分时使用non-RP核140处理任务的一部分的能力、使用RP核依次、交替、并行或同时处理多个任务的能力和当不使用RP核120处理多个任务时使用non-RP核140依次、交替、并行或同时处理多个任务的能力。
任务节点104a、104b、104c和104d中的每个节点周期性地更新自身的状态信息,并向调度器节点106报告更新的信息。状态信息可包括关于是否正在使用RP核120的信息、关于RP核120将被使用的期望时间的信息、RP核120的构造信息、关于RP核120的作业处理状态的信息或关于RP核120的任何其他信息。
调度器节点106从任务节点104a、104b、104c和104d选择将执行任务、任务的一部分、或多个任务的任务处理节点。可从客户端节点102a、102b、102c接收任务,或可通过对从客户端节点102a、102b、102c接收的作业进行分割来创建任务。
调度器节点106选择任务处理节点和任务处理方法,其中,任务处理节点通过所述任务处理方法处理相应的任务。任务处理方法可以是通过RP核120处理任务的RP方法和通过non-RP核140处理任务的non-RP方法。
调度器节点106计算任务节点104a、104b、104c和104d中的每个节点的RP成本和non-RP成本。RP成本可以是使用RP核120处理任务所需的时间或功率,non-RP成本可以是使用non-RP核140处理任务所需的时间或功率。换句话讲,RP成本可以是当通过RP核120处理任务时所需的成本,non-RP成本可以是当通过non-RP核140处理任务时所需的成本。基于任务处理时间、或任务处理的等待时间、或重构时间、或重构的等待时间、或RP核120的任务处理功率、或RP核120的重构功率或其任何组合来计算RP成本。RP核120的任务处理功率是在处理任务时由RP核120消耗的功率,RP核120的重构功率是在重构RP核120时由RP核120消耗的功率。基于任务处理时间、或任务处理的等待时间、或non-RP核140的任务处理功率或其任何组合来计算non-RP成本。non-RP核140的任务处理功率是在处理任务时由non-RP核140消耗的功率。
调度器节点106计算任务节点104a、104b、104c和104d中的每个节点的RP增益。RP增益表示使用RP核120处理任务比使用non-RP核140处理任务更有利多少的数值。例如,调度器节点106可使用通过从non-RP成本减去RP成本而获得的值作为RP增益。
调度器节点106基于各个任务节点104a、104b、104c和104d的计算的RP增益,选择将被执行任务的任务节点。例如,调度器节点106可基于RP增益的大小信息来选择任务节点。RP增益的大小信息可以是RP增益的绝对值。例如,调度器节点106可选择具有最大绝对值的RP增益的任务节点、或具有RP增益的最大绝对值的多个任务节点。
除了选择用于执行任务的任务节点之外,调度器节点106基于RP增益选择选择的任务节点的任务处理方法。例如,调度器节点106可基于RP增益的方向信息选择任务处理方法。RP增益的方向信息可以是RP增益值的标志。例如,调度器节点106可在选择的任务节点是正数的情况下选择RP方法,在任务节点的RP增益是负数的情况下选择non-RP方法。
可选择地,调度器节点106可基于通过从RP成本减去non-RP成本而获得的值来计算non-RP增益,并根据计算的non-RP增益选择任务节点和任务处理方法。
在此示例中,将假设调度器节点106已从客户端节点CN#0102a接收了任务处理请求。为了选择用于处理任务的任务节点,调度器节点106计算各个任务节点104a、104b、104c和104d的RP增益。使用相应的任务节点的RP成本和non-RP成本计算每个RP增益。如果计算的任务节点104a、104b、104c和104d的RP增益分别是“+100”、“+50”、“+30”和“-10”,则调度器节点106将具有最大绝对值的RP增益的任务节点TN#0104选择为将执行任务的任务节点。另外,由于任务节点TN#0104a的RP增益是正数,因此调度器节点106将RP方法选择为任务处理方法。通过调度器节点106进行调度的任务节点TN#0104a执行由客户端节点CN#0102请求的任务,并将执行的结果返回给调度器节点106。
可选择地,调度器节点106可选择具有RP增益的两个最大绝对值的两个任务节点TN#0104a和TN#1104b,而不选择具有RP增益的最大绝对值的任务节点TN#0104a。由于RP增益也是正数,因此调度器节点106选择RP方法,并且通过任务节点TN#0104a和TN#1104b分布执行所述任务。
图2是示出调度器节点200的示例的示图。参照图2,调度器节点200包括作业分割单元202、调度器204、确定信息DB(数据库)206和执行请求单元208。图3中所示的调度器节点200是图2中所示的调度器节点106的示例。
调度器204接收任务处理请求,并动态地选择将根据接收的任务处理请求处理任务的任务节点和运行时环境中任务节点的任务处理方法。根据接收的任务处理请求,调度器204基于存储在确定信息DB206中的信息计算每个任务节点的RP增益。确定信息DB206存储调度器204可能需要用来选择任务节点和任务节点的任务处理方法的每个任务节点的调度策略、先前处理的作业的记录、硬件状态信息、作业设置信息、程序配置信息、数据输入/输出时间、所需功率和关于分布式处理系统100和已被处理、正被处理或将被处理的作业的任何其他信息。
在此示例中,使用下面的等式1来计算RP增益(RP Gain)。
RP Gain=Cost_nonRP-Cost_RP (1)
在等式1,Cost_nonRP是表示当通过non-RP核处理任务时所需的时间或功率的non-RP成本,Cost_RP是表示当通过RP核处理任务时所需的时间或功率的RP成本。
为了易于理解,non-RP成本可通过下面的等式2被表示为时间的函数。
Cost_nonRP=Time_WaitForExecutionWithoutRP+Time_ExecutionWithoutRP (2)
在等式2中,Time_WaitForExecutionWithoutRP表示通过non-RP核执行任务的等待时间,Time_ExecutionWithoutRP表示non-RP核的任务处理时间。
另外,为了易于理解,RP成本可通过下面的等式3被表示为时间的函数。
Cost_RP=Time_WaitForRP+Time_ToRP+Time_WaitForExecutionWithRP
+Time_ExecutionWithRP (3)
在等式3中,Time_WaitForRP是重构RP核的等待时间、Time_ToRP是RP核的重构执行时间、Time_WaitForExecutionWithRP是RP核的任务执行的等待时间、Time_ExecutionWithRP是RP核的任务处理时间。
在等式2和等式3中,时间已被用作用于计算成本的成本因素,但是可使用所需要的功率作为成本因素来计算成本。另外,可根据应用的目的将权重分配给一些因素。在等式2和等式3的示例中,等待时间已被计算为区别于处理时间的单独的因素,但是等待时间和处理时间可被计算为一个成本因素。
调度器204使用通过等式1、等式2和等式3计算的每个节点的RP增益选择将处理任务的任务节点和任务处理方法。以下将参照图3对此进行详细描述。
图3是用于解释选择任务处理节点和任务处理方法的方法的示例的示图。在图3的情况I中,“节点#0”的RP增益是“100”。这意味着“节点#0”的non-RP成本和RP成本之间的差是100。例如,如果“节点#0”的non-RP核需要150秒来处理任务,“节点#0”的RP核需要50秒来处理任务,则“节点#0”的RP增益被计算为100(=150-50)。换句话讲,这意味着与当使用non-RP方法来处理任务时相比,“节点#0”在使用RP方法来处理任务时具有增益100。类似地,在情况II的“节点#2”的情况中,RP增益“-100”意味着当与使用non-RP方法来处理任务相比,当使用RP方法来处理任务时存在损失100。换句话讲,这意味着与当使用RP方法来处理任务时相比,情况II的“节点#2”在使用non-RP方法来处理任务时具有增益100。
在图3的情况I中,假设各个任务节点的RP增益分别是100、70和50。在情况I中,图2中的调度器204将具有RP增益的最大绝对值的任务节点“节点#0”选择为任务处理节点。另外,由于选择的“节点#0”的RP增益是正数,因此调度器204将RP方法选择为任务处理方法。
在图3的情况II中,假设各个任务节点的RP增益是-50、-70和-100。在情况2中,图2中的调度器204将具有RP增益的最大绝对值的任务节点“节点#2”选择为任务处理节点。另外,由于选择的“节点#2”的RP增益是负数,因此调度器204将non-RP方法选择为任务处理方法。即,在情况II中,由于当使用RP方法(而不是non-RP方法)时,没有任务节点具有较好的结果,因此使用non-RP方法并选择具有最大non-RP增益(即,最小RP增益)的“节点#2”。
类似地,在图3的情况III中,图2中的调度器204将“节点#0”选择为任务处理节点,并将RP方法选择为任务处理方法,在图3的情况IV中,图2中的调度器204将“节点#2”选择为任务处理节点,并将non-RP方法选择为任务处理方法。
然而,图3仅示出能够易于理解的简单示例,并且可以以其他任何方式选择任务处理节点和任务处理方法。例如,可通过根据RP增益分配预定优先级来选择用于处理任务的两个或更多任务节点。另外,可基于RP增益和预定阈值之间的比较结果来选择任务处理方法,而不需要取决于RP增益是否是正/负数。另外,还可将预定RP成本和预定non-RP成本分配给具有仅RP核或具有仅non-RP核的任务节点。RP成本、non-RP成本、计算成本和增益的方法、用于选择任务处理节点和任务处理方法的策略以及与其相关的任何其他信息可被存储在确定信息DB206中。
再次返回图2,调度器204将调度信息传送到执行请求单元208,其中,所述调度信息包括选择的任务处理节点的标识信息和关于选择的任务处理方法的信息。执行请求单元208根据调度信息请求选择的任务节点处理相应的任务。在此示例中,如果当RP方法被选择为任务处理方法时,选择的任务节点的RP核不处于用于执行任务的待机状态,则执行请求单元208可在请求任务的处理之前请求RP核的重构。
输入到调度器204的任务可历经预处理。例如,当调度器节点200从客户端节点接收作业执行请求时,作业分割单元202将所述作业分割为多个任务,并以列表的形式将每个任务发送给调度器204。调度器204选择每个任务的任务处理节点和任务处理方法,并以列表的形式向执行请求单元208提供包括选择的任务处理节点和任务处理方法的调度信息。
图4是示出调度器400的示例的示图。参照图4,调度器400包括成本计算单元401、增益计算单元402、节点选择单元403、方法选择单元404和调度信息提供单元405。图4中所示的调度器400是图2中所示的调度器204的示例。
成本计算单元401计算每个任务节点的RP成本和non-RP成本。RP成本是当任务节点使用RP核处理任务时所需的成本,non-RP是当任务节点使用non-RP核处理任务时所需的成本。如果特定任务节点包括仅RP核或仅non-RP核,则不存在于任务节点中的核可被分配适当的成本值。例如,不存在于任务节点中的核可被分配可通过调度器400处理的最大成本。如果在任务节点包括non-RP核时将RP成本设置为最大成本,则可排除将选择RP核的可能性。类似地,如果在任务节点不包括non-RP核时将non-RP成本设置为最大成本,则可排除将选择non-RP核的可能性。
增益计算单元402将RP成本与non-RP成本进行比较,以计算RP/non-RP增益。例如,增益计算单元402将通过从RP成本减去non-RP成本而获得的值设置为RP增益。
节点选择单元403基于计算的增益选择将处理任务的任务处理节点。例如,节点选择单元403基于RP增益的大小信息选择任务处理节点。
方法选择单元404基于计算的增益选择任务处理节点的任务处理方法。例如,方法选择单元404基于表示RP增益的标志的方向信息选择任务处理方法。
调度信息提供单元405创建调度信息,所述调度信息包括关于选择的任务处理节点和选择的任何处理方法的信息。向执行请求单元208(见图2)或选择的任务处理节点提供创建的调度信息。
图5是示出程序包500的示例的示图。参照图5,程序包500与将在每个任务节点中执行的任务相应,并包括non-RP逻辑510和RP逻辑520。如上所述,根据来自调制器节点的请求在任务节点中通过non-RP方法或RP方法处理任务。non-RP逻辑510是当选择non-RP方法时通过non-RP核执行的程序部分。例如,non-RP逻辑510可以是用于通用CPU的任务的执行代码。RP逻辑520是当选择RP方法时通过RP核执行的程序部分。例如,RP逻辑520可以是用于可重构处理器的任务的执行代码。
RP逻辑520可包括用于与RP核进行交互的逻辑和用于RP核的重构的逻辑。用于RP核的重构的逻辑与RP逻辑的构造信息相关,并可以以二进制数据(例如,比特流)、元数据描述构造信息或逻辑语言的形式被重构。
在此示例中,non-RP逻辑510可1:1映射到RP逻辑520,从而当RP逻辑处理相同的任务时,non-RP逻辑510和RP逻辑520均产生相同的结果。可通过程序产生设备自动产生RP逻辑520。这样的程序产生设备可基于用于与RP核进行交互的任务和逻辑产生用于RP核的重构的逻辑。用于RP核的重构的逻辑被传送到任务节点,并被用于在执行相应的任务之前重构RP核。
在图5的示例中,程序包500还包括共同逻辑530。共同逻辑530是不管RP方法还是non-RP方法的通过non-RP核和RP核共同执行的程序部分。在图5中,共同逻辑530被示出为单独的逻辑,但是共同逻辑530可以是non-RP逻辑510或RP逻辑520的一部分。另外,可通过仅non-RP核(例如,通用CPU)来执行共同逻辑530,而不是通过non-RP核和RP核共同地执行共同逻辑530。
图6A是示出任务节点600的示例的示图。参照图6A,任务节点600可包括non-RP核602、RP核604和控制器606。non-RP核602可以是通用CPU,RP核604可以是根据预定构造信息被改变硬件构造的FGPA或CGA。图6A中所示的任务节点是图1中所示的任务节点104a和104b的示例。
控制器606控制non-RP核602和RP核604的操作,以根据调度器节点(例如,图1中的调度器节点106)的调度结果使用non-RP核602和RP核604中的任意一个来处理任务。例如,如果控制器606从调度节点106接收请求通过RP核604处理任务的任务处理请求,则控制器606根据RP方法将相应的比特流直接加载到RP核604,或将来自可重构处理器逻辑库的相应的比特流加载到RP核604,或遵守用户的逻辑来产生比特流并将所述比特流加载到RP核604。
控制器606可起non-RP核602和/或RP核604的接口的作用。另外,如果因为仍然正由RP核604执行先前的任务或仍然正对先前任务执行RP核604的重构或处于用于执行的待机状态,所以难以重构用于新接收的任务的RP核604,则新接收的任务在待机状态下被存储在预定队列中,控制器606获取RP核604的锁以管理待机状态下的新接收的任务。
在图6A的示例中,控制器606与non-RP核602逻辑地分离,从而它们可单独操作,但控制器606和non-RP核602可被构造为在物理上相同的通用CPU中操作。
图6B是示出任务节点610的另一示例的示图。任务节点610包括任务信息接收器620、控制器630和处理器单元640。图6B中所示的任务节点610是图1中所示的任务节点104a和104b的示例。
处理器单元640包括可重构的处理器641或不可重构的处理器642,或者包括可重构的处理器641和不可重构的处理器642两者。为了易于理解,图6B示出处理器单元包括可重构的处理器641和不可重构的处理器642两者的情况。然而,处理器单元640可包括仅可重构的处理器641或仅不可重构的处理器642。
任务信息接收器620从调度器节点(例如,图1中的调度器节点106)接收任务和关于任务处理方法的信息。任务处理方法是RP逻辑或non-RP逻辑。通过调度器节点106选择所述任务处理方法。
控制器630响应于接收的任务处理方法驱动可重构处理器641或不可重构处理器642。例如,如果接收到的任务处理方法是RP逻辑,则控制器630驱动可重构处理器641,如果接收到的任务处理方法是non-RP逻辑,则控制器630驱动不可重构处理器642。
图7是示出程序产生设备700的示例的示图。参照图7,用户产生用于通用CPU的non-RP逻辑701。non-RP逻辑701被输入到程序产生设备700。已接收到non-RP逻辑701的程序产生设备700执行与non-RP逻辑701相同的功能,产生用于RP核的RP逻辑702,并将non-RP逻辑7011:1映射到RP逻辑702,从而当RP逻辑处理相同的任务时,non-RP逻辑701和RP逻辑702均产生相同的结果,以产生程序包703。向任务节点(例如,图1中的任务节点104a)提供程序包703,任务节点104a在调度器节点(例如,图1中的调度器节点106)的控制下,选择性地执行non-RP逻辑701或RP逻辑702。
程序产生设备700可被包括在图2的调度器节点200中,其中,图2的调度器节点200是图1中的调度器节点106的示例。当调度器节点200从客户端节点(例如,图1中的客户端节点102a)接收作业请求时,调度器节点200中的作业分割单元202将与所述作业请求相应的作业分割为多个任务。程序产生设备700产生包括与每个任务相应的non-RP逻辑701和RP逻辑702的程序包703,并将程序包703传送到调度器节点200中的调度器204。调度器204将程序包703和调度信息传送到调度器节点200中的执行请求单元208,其中,所述调度信息包括选择的任务处理节点的标识信息和关于选择的任务处理方法的信息。执行请求单元208根据所述调度信息请求选择的任务节点(例如,图1中的任务节点104a)处理相应的任务,并向选择的任务节点提供程序包703。选择的任务节点根据选择的任务处理方法选择性地执行程序包703中的non-RP逻辑701或RP逻辑702。
图7示出non-RP逻辑701被输入到程序产生设备700的情况,但non-RP逻辑701和RP逻辑702两者也可被输入到程序产生设备700。换句话讲,用户可产生non-RP逻辑701和RP逻辑702两者。如果non-RP逻辑701和RP逻辑702均被输入到程序产生设备700,则程序产生设备700将non-RP逻辑7011:1映射到RP逻辑702,从而当RP逻辑处理相同的任务时non-RP逻辑701和RP逻辑702均产生相同的结果,以产生程序包703。
图8是示出分布式处理系统的调度方法的示例的流程图。参照图1和图8,响应于作业请求或任务请求计算每个任务节点的RP增益(801)。例如,如图3中所示,调度节点106基于每个任务节点的RP成本和non-RP成本计算每个任务节点的RP增益。
随后,基于计算的RP增益选择任务处理节点和任务处理方法(802)。例如,如图3中所示,调度器节点106基于RP增益的大小和表示RP增益的标志的方向选择任务处理节点和任务处理方法。
如果选择non-RP方法,则用于处理相应任务的任务处理请求被发到送到选择的任务处理节点(805)。因此,所述任务处理节点使用non-RP核处理任务。
如果选择RP方法,则确定选择的任务处理节点是否需要构造(803)。例如,调度器节点106基于从任务处理节点接收的状态信息确定任务处理节点是否需要构造。如果确定任务处理节点需要构造,则调度器节点106请求任务处理节点的重构(804),并且当完全准备执行所述任务时请求相应任务的处理(805)。如果确定任务处理节点不需要构造来准备执行所述任务,则调度器节点106立即请求任务的处理(805)。
如上所述,由于在通用处理器与可重构处理器共存的情况下使用分布式处理系统处理作业或任务,并且调度器节点在运行时间环境中实时选择最佳任务处理节点和最佳任务处理方法,因此可使用对作业优化的处理器来处理作业并同时有效地使用资源。
可使用一个或多个硬件组件、一个或多个软件组件或一个或多个硬件组件和一个或多个软件组件的组合来实现上述的客户端节点102a、102b和102c;任务节点104a、104b、104c、104d、600和610;调度器节点106和200;RP核120和604;non-RP核140和602;作业分割单元202;调度器204和400;确定信息DB206;执行请求单元208;成本计算单元401;增益计算单元402、节点选择单元403、方法选择单元404、调度信息提供单元405;控制器606和630;任务信息接收器620;可重构处理器641;不可重构处理器642和程序产生设备700。
硬件组件可以是例如物理上执行一个或多个操作的物理装置,但不限于此。硬件组件的示例包括放大器、低通滤波器、高通滤波器、带通滤波器、模拟数字转换器、数字模拟转换器和处理装置。
软件组件可由例如由用于执行一个或多个操作的软件或指令控制的处理装置来执行,但不限于此。计算机、控制器或其他控制装置可使处理装置运行软件组件或执行指令。可由一个处理装置执行一个软件组件,或者可由一个处理装置执行两个或更多个软件组件,或者可由两个或更多个处理装置执行一个软件组件,或者可由两个或更多个处理装置执行两个或更多个软件组件。
可使用一个或多个通用计算机或专用计算机来实现处理装置,诸如,例如处理器、控制器和算术逻辑单元、数字信号处理器、微计算机、现场可编程阵列、可编程逻辑单元、微处理器或能够运行软件或执行指令的任何其他装置。处理装置可运行操作系统(OS),并可运行在OS下操作的一个或多个软件应用。当运行软件或执行指令时,处理装置可访问、存储、操作、处理和创建数据。为简单起见,单数术语“处理装置”可用于描述中,但是本领域普通技术人员将理解,处理装置可包括多个处理元件以及多种类型的处理元件。例如,处理装置可包括一个或多个处理器或者一个或多个处理器和一个或多个控制器。此外,不同的处理配置是可行的,诸如并行处理器或多核处理器。
被构造为执行软件组件以执行操作A的处理装置可包括被编程为运行软件或执行指令以控制处理器执行操作A的处理器。此外,被构造为执行软件组件以执行操作A、操作B和操作C的处理装置可具有各种配置,诸如,被构造为执行软件组件以执行操作A、操作B和操作C的处理器;被构造为执行软件组件以执行操作A的第一处理器和被构造为执行软件组件以执行操作B和操作C的第二处理器;被构造为执行软件组件以执行操作A和操作B的第一处理器和被构造为执行软件组件以执行操作C的第二处理器;被构造为执行软件组件以执行操作A的第一处理器、被构造为执行软件组件以执行操作B的第二处理器和被构造为执行软件组件以执行操作C的第三处理器;被构造为执行软件组件以执行操作A、操作B和操作C的第一处理器和被构造为执行软件组件以执行操作A、操作B和操作C的第二处理器;或者分别执行操作A、操作B和操作C中的一个或多个的一个或多个处理器的任何其他配置。虽然这些示例表示三个操作A、B和C,但是可执行的操作的数量不限于三个,而可以是实现期望的结果或执行期望的任务所需的任何数量的操作。
用于控制执行软件组件的处理装置的软件或指令可包括计算机程序、一条代码、指令或它们的某种组合,以独立地或整体地指示或配置处理装置执行一个或多个期望的操作。软件或指令可包括可由处理装置直接执行的机器代码(诸如由编译器产生的机器代码)和/或可由处理装置使用解释器执行的高级代码。软件或指令以及任何相关的数据、数据文件和数据结构可被永久地或临时地包含在任何类型的机器、组件、物理或虚拟设备、计算机存储介质或装置、或者能够将指令或数据提供给处理装置或能够被处理装置解释的传播信号波中。软件或指令以及任何相关的数据、数据文件和数据结构还可分布在网络连接的计算机系统上,从而软件或指令以及任何相关的数据、数据文件和数据结构以分布方式被存储和执行。
例如,软件或指令以及任何相关的数据、数据文件和数据结构可被记录、存储或固定在一个或多个非暂时性计算机可读存储介质中。非暂时性计算机可读存储介质可以是能够存储软件或指令以及任何相关的数据、数据文件和数据结构以便它们可由计算机系统或处理装置读取的任何数据存储装置。非暂时性计算机可读存储介质的示例包括只读存储器(ROM)、随机存取存储器(RAM)、闪存、CD-ROM、CD-R、CD+R、CD-RW、CD+RW、DVD-ROM、DVD-R、DVD+R、DVD-RW、DVD+RW、DVD-RAM、BD-ROM、BD-R、BD-R LTH、BD-RE、磁带、软盘、磁光数据存储装置、光学数据存储装置、硬盘、固态盘或本领域普通技术人员公知的任何其他非暂时性计算机可读存储介质。
用于实现这里公开的示例的功能程序、代码和代码段可以由该示例所属领域的编程技术人员基于这里提供的附图以及相应的描述容易地解释。
尽管本公开包括特定示例,但是本领域普通技术人员将清楚的是,在不脱离权利要求及其等同物的精神和范围的情况下,可以对这些示例进行形式和细节上的各种改变。这里描述的示例仅以描述性意义被考虑,而不是限制的目的。每个示例中的特征或方面的描述将被考虑为可应用于其他示例的相似特征或方面。如果描述的技术以不同的顺序被执行,和/或如果描述的系统、架构、装置或电路中的组件以不同的方式组合和/或被其他组件或它们的等同物替换或补充,则可实现适当的结果。因此,本公开的范围不是由详细描述限定,而是由权利要求及其等同物限定,并且权利要求及其等同物的范围之内的所有变化将被解释为包括在本公开中。
Claims (55)
1.一种分布式处理系统,包括:
多个任务节点,每个任务节点被构造为具有使用可重构处理器(RP)处理任务的能力以及当不使用可重构处理器处理任务时使用不可重构处理器(non-RP)处理任务的能力;
调度器节点,被构造为从所述多个任务节点中选择用于处理任务的任务节点,
其中,调度器节点还被构造为选择任务处理方法,其中,选择的任务节点通过所述任务处理方法来处理任务,
其中,调度器节点基于所述多个任务节点的状态信息,选择用于处理任务的任务节点和任务处理方法。
2.如权利要求1所述的分布式处理系统,其中,所述任务处理方法包括RP方法和non-RP方法中的至少一个。
3.如权利要求1所述的分布式处理系统,其中,调度器节点还被构造为:
基于RP成本和non-RP成本来计算RP增益;
基于计算的RP增益选择任务节点和任务处理方法,其中,选择的任务节点通过所述任务处理方法来处理任务。
4.如权利要求3所述的分布式处理系统,其中,调度器节点还被构造为基于RP增益的大小信息选择任务节点,并且基于RP增益的方向信息选择任务处理方法。
5.如权利要求3所述的分布式处理系统,其中,调度器节点还被构造为基于不可重构处理器的任务处理时间和不可重构处理器的任务处理功率之一计算non-RP成本,或者基于不可重构处理器的任务处理时间和不可重构处理器的任务处理功率二者计算non-RP成本。
6.如权利要求3所述的分布式处理系统,其中,调度器节点还被构造为基于可重构处理器的任务处理时间、或可重构处理器的任务处理的等待时间、或可重构处理器的重构时间、或可重构处理器的重构的等待时间、或可重构处理器的任务处理功率、或可重构处理器的重构功率、或它们的任意组合来计算RP成本。
7.如权利要求1所述的分布式处理系统,其中,任务包括:
用于不可重构处理器的non-RP逻辑;
用于可重构处理器的RP逻辑,其中,当RP逻辑与non-RP逻辑处理相同任务时,RP逻辑与non-RP逻辑产生相同结果。
8.如权利要求7所述的分布式处理系统,其中,选择的任务节点还被构造为响应于来自调度器节点的请求执行RP逻辑与non-RP逻辑中选择的一个。
9.如权利要求1所述的分布式处理系统,其中,所述多个任务节点中的每个任务节点还被构造为具有使用可重构处理器处理任务的一部分的能力、当不使用可重构处理器处理所述任务的一部分时使用不可重构处理器处理所述任务的一部分的能力、使用可重构处理器顺序、交替、并行或同时处理多个任务的能力、以及当不使用可重构处理器处理所述多个任务时使用不可重构处理器顺序、交替、并行或同时处理所述多个任务的能力;
调度器节点还被构造为从所述多个任务节点中选择用于处理所述任务的一部分或所述多个任务的任务节点。
10.一种分布式处理系统,包括:
至少一个任务节点,每个任务节点包括可重构处理器(RP)和不可重构处理器(non-RP);
调度器节点,被构造为:
从所述至少一个任务节点选择用于处理任务的任务节点,
基于任务产生用于重构可重构处理器的可重构处理器逻辑;
将可重构处理器逻辑传送到所述至少一个任务节点,
其中,调度器节点基于所述至少一个任务节点的状态信息,选择用于处理任务的任务节点。
11.如权利要求10所述的分布式处理系统,其中,所述至少一个任务节点是多个任务节点,每个任务节点包括可重构处理器和不可重构处理器。
12.如权利要求10所述的分布式处理系统,其中,调度器节点还被构造为:
基于RP成本和non-RP成本来计算RP增益;
基于计算的RP增益从所述至少一个任务节点中选择用于处理任务的任务节点。
13.如权利要求12所述的分布式处理系统,其中,调度器节点还被构造为基于RP增益的大小信息选择任务节点。
14.如权利要求12所述的分布式处理系统,其中,调度器节点还被构造为基于不可重构处理器的任务处理时间和不可重构处理器的任务处理功率之一计算non-RP成本,或者基于不可重构处理器的任务处理时间和不可重构处理器的任务处理功率二者计算non-RP成本。
15.如权利要求12所述的分布式处理系统,其中,调度器节点还被构造为基于可重构处理器的任务处理时间、或可重构处理器的任务处理的等待时间、或可重构处理器的重构时间、或可重构处理器的重构的等待时间、或可重构处理器的任务处理功率、或可重构处理器的重构功率、或它们的任意组合来计算RP成本。
16.如权利要求10所述的分布式处理系统,其中,任务包括:
用于不可重构处理器的non-RP逻辑;
用于可重构处理器的RP逻辑,其中,当RP逻辑与non-RP逻辑处理相同任务时,RP逻辑与non-RP逻辑产生相同结果。
17.一种分布式处理系统,包括:
至少一个任务节点,包括可重构处理器(RP)和不可重构处理器(non-RP);
调度器节点,被构造为基于任务从可重构处理器和不可重构处理器中选择用于处理所述任务的至少一部分的处理器,
其中,调度器节点基于所述至少一个任务节点的状态信息,选择所用于处理所述任务的至少一部分的处理器。
18.如权利要求17所述的分布式处理系统,其中,调度器节点还被构造为:
从所述至少一个任务节点中选择用于处理任务的任务节点;
选择任务处理方法,其中,选择的任务节点通过所述任务处理方法来处理任务。
19.如权利要求17所述的分布式处理系统,其中,调度器节点还被构造为:
基于RP成本和non-RP成本来计算RP增益;
基于计算的RP增益选择任务节点和任务处理方法,其中,选择的任务节点通过所述任务处理方法来处理任务。
20.如权利要求19所述的分布式处理系统,其中,调度器节点还被构造为:
基于RP信息的增益的大小信息选择任务节点;
基于RP增益的方向信息选择任务处理方法。
21.如权利要求19所述的分布式处理系统,其中,调度器节点还被构造为基于不可重构处理器的任务处理时间和不可重构处理器的任务处理功率之一计算non-RP成本,或者基于不可重构处理器的任务处理时间和不可重构处理器的任务处理功率二者计算non-RP成本。
22.如权利要求19所述的分布式处理系统,其中,调度器节点还被构造为基于可重构处理器的任务处理时间、或可重构处理器的任务处理的等待时间、或可重构处理器的重构时间、或可重构处理器的重构的等待时间、或可重构处理器的任务处理功率、或可重构处理器的重构功率、或它们的任意组合来计算RP成本。
23.如权利要求17所述的分布式处理系统,其中,任务包括:
用于不可重构处理器的non-RP逻辑;
用于可重构处理器的RP逻辑,其中,当RP逻辑与non-RP逻辑处理相同任务时,RP逻辑与non-RP逻辑产生相同结果。
24.如权利要求23所述的分布式处理系统,其中,任务节点响应于来自调度器节点的请求执行RP逻辑与non-RP逻辑中选择的一个。
25.一种任务节点,包括:
任务信息接收器,被构造为接收任务和关于任务处理方法的信息;
控制器,被构造为驱动与任务处理方法相应的处理器;
至少一个处理单元,每个处理单元包括可重构处理器(RP)和不可重构处理器(non-RP);
其中,任务处理方法是RP逻辑或non-RP逻辑;
控制器还被构造为:
当任务处理方法是RP逻辑时,驱动可重构处理器;
当任务处理方法是non-RP逻辑时,驱动不可重构处理器,
其中,所述信息是基于所述任务节点的状态信息的信息。
26.一种分布式处理系统中的调度器节点,所述调度器节点包括被构造为从多个任务节点中选择用于处理任务的任务节点的调度器,所述多个任务节点中的每个任务节点被构造为具有使用可重构处理器(RP)处理任务的能力以及当不使用可重构处理器处理任务时使用不可重构处理器(non-RP)处理任务的能力,其中,调度器基于所述多个任务节点的状态信息,选择用于处理任务的任务节点。
27.如权利要求26所述的调度器节点,其中,调度器还被构造为选择任务处理方法,其中,选择的任务节点通过所述任务处理方法来处理任务。
28.如权利要求26所述的调度器节点,其中,调度器还被构造为:
基于RP成本和non-RP成本来计算RP增益;
基于计算的RP增益选择任务节点和任务处理方法,其中,选择的任务节点通过所述任务处理方法来处理任务。
29.如权利要求28所述的调度器节点,其中,调度器还被构造为:
基于RP增益的大小信息选择任务节点;
基于RP增益的方向信息选择任务处理方法。
30.如权利要求28所述的调度器节点,其中,调度器还被构造为基于不可重构处理器的任务处理时间和不可重构处理器的任务处理功率之一计算non-RP成本,或者基于不可重构处理器的任务处理时间和不可重构处理器的任务处理功率二者计算non-RP成本。
31.如权利要求28所述的调度器节点,其中,调度器还被构造为基于可重构处理器的任务处理时间、或可重构处理器的任务处理的等待时间、或可重构处理器的重构时间、或可重构处理器的重构的等待时间、或可重构处理器的任务处理功率、或可重构处理器的重构功率、或它们的任意组合来计算RP成本。
32.如权利要求26所述的调度器节点,还包括作业分割单元,所述作业分割单元被构造为:
从客户端节点接收用于处理作业的请求;
将作业分割为多个任务;
将每个任务输出到调度器。
33.如权利要求26所述的调度器节点,其中,调度器还被构造为输出调度信息;
调度器节点还包括被构造为基于调度器的调度信息将任务执行请求发送到选择的任务节点的执行请求单元。
34.如权利要求33所述的调度器节点,其中,调度信息包括:
选择的任务节点的标识信息;
指定任务处理方法的信息,其中,任务节点通过所述任务处理方法来处理任务。
35.如权利要求26所述的调度器节点,其中,所述多个任务节点中的每个任务节点还被构造为具有使用可重构处理器处理任务的一部分的能力、当不使用可重构处理器处理所述任务的一部分时使用不可重构处理器处理所述任务的一部分的能力、使用可重构处理器顺序、交替、并行或同时处理多个任务的能力、以及当不使用可重构处理器处理所述多个任务时使用不可重构处理器顺序、交替、并行或同时处理所述多个任务的能力;
调度器还被构造为从所述多个任务节点中选择用于处理所述任务的一部分或所述多个任务的任务节点。
36.一种分布式处理系统的调度方法,所述方法包括:
针对多个任务节点中的每个任务节点比较可重构处理器(RP)成本和不可重构处理器(non-RP)成本,所述多个任务节点中的每个任务节点被构造为具有使用可重构处理器处理任务的能力以及当不使用可重构处理器处理任务时使用不可重构处理器处理任务的能力;
基于比较结果计算RP增益;
基于计算的RP增益选择任务节点和任务处理方法,其中,选择的任务节点通过所述任务处理方法来处理任务,
其中,选择任务节点和任务处理方法的步骤还包括:基于所述多个任务节点的状态信息,选择用于处理任务的任务节点和任务处理方法。
37.如权利要求36所述的调度方法,其中,所述多个任务节点中的每个任务节点还被构造为具有使用可重构处理器处理任务的一部分的能力、当不使用可重构处理器处理所述任务的一部分时使用不可重构处理器处理所述任务的一部分的能力、使用可重构处理器顺序、交替、并行或同时处理多个任务的能力、以及当不使用可重构处理器处理所述多个任务时使用不可重构处理器顺序、交替、并行或同时处理所述多个任务的能力;
选择步骤包括基于计算的RP增益选择任务节点和任务处理方法,其中,选择的任务节点通过所述任务处理方法来处理所述任务的一部分或所述多个任务。
38.一种使用任务节点的方法,所述任务节点包括可重构处理器(RP),所述方法包括:
接收任务;
基于任务产生用于重构可重构处理器的可重构处理器(RP)逻辑;
将可重构处理器逻辑传送到任务节点,
其中,所述任务节点是从多个任务节点选择的任务节点,
其中,所述任务节点是基于所述多个任务节点的状态信息从所述多个任务节点选择的任务节点。
39.如权利要求38所述的方法,还包括:
将可重构处理器逻辑应用到可重构处理器,以重构可重构处理器;
使用可重构处理器处理任务的至少一部分。
40.如权利要求38所述的方法,其中,当接收到任务时从所述多个任务节点中选择任务节点。
41.如权利要求40所述的方法,其中,任务节点还包括不可重构处理器(non-RP);
选择任务节点的步骤还包括:
基于RP成本和non-RP成本计算RP增益;
基于计算的RP增益选择任务节点。
42.如权利要求41所述的方法,还包括:基于不可重构处理器的任务处理时间和不可重构处理器的任务处理功率之一计算non-RP成本,或者基于不可重构处理器的任务处理时间和不可重构处理器的任务处理功率二者计算non-RP成本。
43.如权利要求41所述的方法,还包括:基于可重构处理器的任务处理时间、或可重构处理器的任务处理的等待时间、或可重构处理器的重构时间、或可重构处理器的重构的等待时间、或可重构处理器的任务处理功率、或可重构处理器的重构功率、或它们的任意组合来计算RP成本。
44.如权利要求38所述的方法,其中,任务节点还包括不可重构处理器(non-RP);
所述任务包括:
用于不可重构处理器的non-RP逻辑;
用于可重构处理器的RP逻辑,其中,当RP逻辑与non-RP逻辑处理相同任务时,RP逻辑与non-RP逻辑产生相同结果。
45.一种使用任务节点的方法,所述任务节点包括可重构处理器(RP)和不可重构处理器(non-RP),所述方法包括:
接收任务;
基于所述任务从可重构处理器和不可重构处理器中选择用于处理所述任务的至少一部分的处理器;
请求选择的处理器处理所述任务的至少一部分,
其中,基于所述任务节点的状态信息,选择用于处理所述任务的至少一部分的处理器。
46.如权利要求45所述的方法,还包括:基于处理所述任务的可重构处理器的RP成本和处理所述任务的不可重构处理器的non-RP成本来计算RP增益;
其中,选择步骤还包括:基于计算的RP增益选择处理器。
47.如权利要求45所述的方法,还包括:基于不可重构处理器的任务处理时间和不可重构处理器的任务处理功率之一计算non-RP成本,或者基于不可重构处理器的任务处理时间和不可重构处理器的任务处理功率二者计算non-RP成本。
48.如权利要求45所述的方法,还包括:基于可重构处理器的任务处理时间、或可重构处理器的任务处理的等待时间、或可重构处理器的重构时间、或可重构处理器的重构的等待时间、或可重构处理器的任务处理功率、或可重构处理器的重构功率、或它们的任意组合来计算RP成本。
49.如权利要求45所述的方法,其中,所述任务包括:
用于不可重构处理器的non-RP逻辑;
用于可重构处理器的RP逻辑,其中,当RP逻辑与non-RP逻辑处理相同任务时,RP逻辑与non-RP逻辑产生相同结果。
50.一种分布式处理系统中的程序产生设备,所述分布式处理系统包括多个任务节点和调度器节点,所述多个任务节点的每个任务节点被构造为具有使用可重构处理器(RP)处理任务的能力以及当不使用可重构处理器处理任务时使用不可重构处理器(non-RP)处理任务的能力,所述调度器节点被构造为从所述多个任务节点中选择用于处理任务的任务节点,其中,所述程序产生设备被构造为产生包括用于可重构处理器的RP逻辑的程序包,其中,当RP逻辑与用于不可重构处理器的non-RP逻辑处理相同任务时,RP逻辑与non-RP逻辑产生相同结果,
其中,调度器节点基于所述多个任务节点的状态信息,选择用于处理任务的任务节点。
51.如权利要求50所述的程序产生设备,其中,所述多个任务节点中的每个任务节点还被构造为具有使用可重构处理器处理任务的一部分的能力、当不使用可重构处理器处理所述任务的一部分时使用不可重构处理器处理所述任务的一部分的能力、使用可重构处理器顺序、交替、并行或同时处理多个任务的能力、以及当不使用可重构处理器处理所述多个任务时使用不可重构处理器顺序、交替、并行或同时处理所述多个任务的能力;
调度器节点还被构造为从所述多个任务节点中选择用于处理所述任务的一部分或所述多个任务的任务节点。
52.一种分布式处理系统,包括:
多个任务节点;
调度器节点,被构造为从所述多个任务节点中选择用于处理任务的任务节点,
其中,所述多个任务节点包括:
第一任务节点,包括可重构处理器(RP)和不可重构处理器(non-RP);
第二任务节点,包括可重构处理器但不包括不可重构处理器;
第三任务节点,包括不可重构处理器但不包括可重构处理器,
其中,调度器节点还被构造为选择任务处理方法,其中,选择的任务节点通过所述任务处理方法来处理任务,
其中,调度器节点基于所述多个任务节点的状态信息,选择用于处理任务的任务节点和任务处理方法。
53.如权利要求52所述的分布式处理系统,其中,调度器节点还被构造为:
基于关于使用可重构处理器处理任务的多个任务节点中的每个任务节点的RP成本以及关于使用不可重构处理器处理任务的多个任务节点中的每个任务节点的non-RP成本,来计算关于所述多个任务节点中的每个任务节点的RP增益;
基于计算的关于所述多个任务节点中的每个任务节点的RP增益从所述多个任务节点中选择用于处理任务的任务节点。
54.如权利要求53所述的分布式处理系统,其中,关于不包括不可重构处理器的第二任务节点的non-RP成本是能够被调度器节点处理的最大可能的non-RP成本;
关于不包括可重构处理器的第三任务节点的RP成本是能够被调度器节点处理的最大可能的RP成本。
55.如权利要求53所述的分布式处理系统,其中,调度器节点还被构造为基于计算的RP增益从RP处理方法和non-RP处理方法中选择处理方法,其中,选择的任务节点通过所述处理方法来处理任务。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2012-0036921 | 2012-04-09 | ||
KR1020120036921A KR101893982B1 (ko) | 2012-04-09 | 2012-04-09 | 분산 처리 시스템, 분산 처리 시스템의 스케줄러 노드 및 스케줄 방법, 및 이를 위한 프로그램 생성 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103365714A CN103365714A (zh) | 2013-10-23 |
CN103365714B true CN103365714B (zh) | 2018-10-02 |
Family
ID=48095619
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310120824.8A Active CN103365714B (zh) | 2012-04-09 | 2013-04-09 | 分布式处理系统、调度器节点、调度方法及程序产生设备 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9965322B2 (zh) |
EP (1) | EP2650786A3 (zh) |
JP (1) | JP6266221B2 (zh) |
KR (1) | KR101893982B1 (zh) |
CN (1) | CN103365714B (zh) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10270709B2 (en) | 2015-06-26 | 2019-04-23 | Microsoft Technology Licensing, Llc | Allocating acceleration component functionality for supporting services |
CN104253850A (zh) * | 2014-01-07 | 2014-12-31 | 深圳市华傲数据技术有限公司 | 一种任务分布式调度方法和系统 |
US10437650B2 (en) * | 2014-06-19 | 2019-10-08 | Nec Corporation | Controlling execution of tasks in a series of operational processing by identifying processing units based on task command, task setting information, state of operational processing |
CN104320433B (zh) * | 2014-09-28 | 2018-11-23 | 北京京东尚科信息技术有限公司 | 数据处理方法和分布式数据处理系统 |
CN105700956A (zh) * | 2014-11-28 | 2016-06-22 | 国际商业机器公司 | 用于处理分布式作业的方法和系统 |
US9792154B2 (en) | 2015-04-17 | 2017-10-17 | Microsoft Technology Licensing, Llc | Data processing system having a hardware acceleration plane and a software plane |
US10511478B2 (en) | 2015-04-17 | 2019-12-17 | Microsoft Technology Licensing, Llc | Changing between different roles at acceleration components |
US10296392B2 (en) | 2015-04-17 | 2019-05-21 | Microsoft Technology Licensing, Llc | Implementing a multi-component service using plural hardware acceleration components |
US10198294B2 (en) | 2015-04-17 | 2019-02-05 | Microsoft Licensing Technology, LLC | Handling tenant requests in a system that uses hardware acceleration components |
US10027543B2 (en) | 2015-04-17 | 2018-07-17 | Microsoft Technology Licensing, Llc | Reconfiguring an acceleration component among interconnected acceleration components |
US10216555B2 (en) | 2015-06-26 | 2019-02-26 | Microsoft Technology Licensing, Llc | Partially reconfiguring acceleration components |
JP6669961B2 (ja) * | 2015-12-24 | 2020-03-18 | 富士通株式会社 | プロセッサ、再構成可能回路の制御方法及びプログラム |
CN105975334A (zh) * | 2016-04-25 | 2016-09-28 | 深圳市永兴元科技有限公司 | 任务分布式调度方法及系统 |
US10223172B2 (en) | 2016-05-10 | 2019-03-05 | International Business Machines Corporation | Object storage workflow optimization leveraging storage area network value adds |
US10225343B2 (en) | 2016-05-10 | 2019-03-05 | International Business Machines Corporation | Object storage workflow optimization leveraging underlying hardware, operating system, and virtualization value adds |
JP6743568B2 (ja) * | 2016-08-09 | 2020-08-19 | 富士通株式会社 | 制御装置、情報処理システム、プログラム及び情報処理方法 |
CN106815070B (zh) * | 2016-12-30 | 2020-06-19 | 北京哲源科技有限责任公司 | 一种用于图像分析的高性能计算框架方法及系统 |
US10459817B2 (en) * | 2017-01-18 | 2019-10-29 | International Business Machines Corporation | Evaluating performance improvement of executing instructions in a first processor over execution on a second processor |
CN106874047B (zh) * | 2017-01-25 | 2020-08-04 | 广东神马搜索科技有限公司 | 分布式系统调度方法、装置及分布式系统 |
CN108363615B (zh) * | 2017-09-18 | 2019-05-14 | 清华大学 | 用于可重构处理系统的任务分配方法和系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101504619A (zh) * | 2005-04-12 | 2009-08-12 | 学校法人早稻田大学 | 多粒度并行化编译方法 |
CN101652750A (zh) * | 2007-03-28 | 2010-02-17 | 索尼计算机娱乐公司 | 数据处理装置、分散处理系统、数据处理方法及数据处理程序 |
CN102043673A (zh) * | 2009-10-21 | 2011-05-04 | Sap股份公司 | 并行处理期间资源分配的校准 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6810426B2 (en) * | 2001-01-30 | 2004-10-26 | Nomadix, Inc. | Methods and systems providing fair queuing and priority scheduling to enhance quality of service in a network |
US7065764B1 (en) * | 2001-07-20 | 2006-06-20 | Netrendered, Inc. | Dynamically allocated cluster system |
CA2410118C (en) | 2001-10-26 | 2007-12-18 | Research In Motion Limited | System and method for controlling configuration settings for mobile communication devices and services |
US7908313B2 (en) * | 2004-07-21 | 2011-03-15 | The Mathworks, Inc. | Instrument-based distributed computing systems |
JP2006190167A (ja) * | 2005-01-07 | 2006-07-20 | Renesas Technology Corp | データ処理装置 |
US20070033592A1 (en) | 2005-08-04 | 2007-02-08 | International Business Machines Corporation | Method, apparatus, and computer program product for adaptive process dispatch in a computer system having a plurality of processors |
JP4936517B2 (ja) | 2006-06-06 | 2012-05-23 | 学校法人早稲田大学 | ヘテロジニアス・マルチプロセッサシステムの制御方法及びマルチグレイン並列化コンパイラ |
KR100893527B1 (ko) * | 2007-02-02 | 2009-04-17 | 삼성전자주식회사 | 재구성 가능 멀티 프로세서 시스템에서의 매핑 및 스케줄링방법 |
US8205208B2 (en) * | 2007-07-24 | 2012-06-19 | Internaitonal Business Machines Corporation | Scheduling grid jobs using dynamic grid scheduling policy |
KR100956636B1 (ko) | 2007-12-07 | 2010-05-11 | 한국전자통신연구원 | 가상 서버 환경에서의 서비스 수준 관리 시스템 및 그 방법 |
US8924987B2 (en) | 2008-11-21 | 2014-12-30 | Samsung Electronics Co., Ltd. | Flat or extended architecture using an integrated application and operating system component for computing systems and environments |
US9052958B2 (en) | 2008-11-21 | 2015-06-09 | Samsung Electronics Co., Ltd. | Extending the capability of computing devices by using dynamically scalable external resources |
US8239538B2 (en) | 2008-11-21 | 2012-08-07 | Samsung Electronics Co., Ltd. | Execution allocation cost assessment for computing systems and environments including elastic computing systems and environments |
US9122487B2 (en) | 2009-06-23 | 2015-09-01 | Oracle America, Inc. | System and method for balancing instruction loads between multiple execution units using assignment history |
US8560465B2 (en) | 2009-07-02 | 2013-10-15 | Samsung Electronics Co., Ltd | Execution allocation cost assessment for computing systems and environments including elastic computing systems and environments |
KR20110002509A (ko) | 2009-07-02 | 2011-01-10 | 이정우 | 사람의 이동 수단 기기(장치) |
US8601534B2 (en) | 2009-07-02 | 2013-12-03 | Samsung Electronics Co., Ltd. | Securely using service providers in elastic computing systems and environments |
US8707314B2 (en) * | 2011-12-16 | 2014-04-22 | Advanced Micro Devices, Inc. | Scheduling compute kernel workgroups to heterogeneous processors based on historical processor execution times and utilizations |
-
2012
- 2012-04-09 KR KR1020120036921A patent/KR101893982B1/ko active IP Right Grant
-
2013
- 2013-04-08 US US13/858,334 patent/US9965322B2/en active Active
- 2013-04-09 CN CN201310120824.8A patent/CN103365714B/zh active Active
- 2013-04-09 EP EP13162963.6A patent/EP2650786A3/en active Pending
- 2013-04-09 JP JP2013080972A patent/JP6266221B2/ja active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101504619A (zh) * | 2005-04-12 | 2009-08-12 | 学校法人早稻田大学 | 多粒度并行化编译方法 |
CN101652750A (zh) * | 2007-03-28 | 2010-02-17 | 索尼计算机娱乐公司 | 数据处理装置、分散处理系统、数据处理方法及数据处理程序 |
CN102043673A (zh) * | 2009-10-21 | 2011-05-04 | Sap股份公司 | 并行处理期间资源分配的校准 |
Also Published As
Publication number | Publication date |
---|---|
JP6266221B2 (ja) | 2018-01-24 |
KR101893982B1 (ko) | 2018-10-05 |
EP2650786A2 (en) | 2013-10-16 |
KR20130114497A (ko) | 2013-10-18 |
US9965322B2 (en) | 2018-05-08 |
US20130268937A1 (en) | 2013-10-10 |
EP2650786A3 (en) | 2016-08-24 |
JP2013218700A (ja) | 2013-10-24 |
CN103365714A (zh) | 2013-10-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103365714B (zh) | 分布式处理系统、调度器节点、调度方法及程序产生设备 | |
Casas et al. | GA-ETI: an enhanced genetic algorithm for the scheduling of scientific workflows in cloud environments | |
Pacini et al. | Balancing throughput and response time in online scientific Clouds via Ant Colony Optimization (SP2013/2013/00006) | |
CN109471727A (zh) | 一种任务处理方法、装置及系统 | |
CN106951330A (zh) | 一种云服务中心服务效用最大化的虚拟机分配方法 | |
CN103729246B (zh) | 一种任务调度方法和装置 | |
CN104516773B (zh) | 用于物理机的数据分配方法和数据分配装置 | |
CN106936883A (zh) | 用于云系统的方法和装置 | |
Mahato et al. | On scheduling transactions in a grid processing system considering load through ant colony optimization | |
CN110389824A (zh) | 处理计算任务的方法、设备和计算机程序产品 | |
Manikandan et al. | LGSA: Hybrid task scheduling in multi objective functionality in cloud computing environment | |
Koehler et al. | Design of an adaptive framework for utility-based optimization of scientific applications in the cloud | |
CN103677996B (zh) | 用于平衡工作负荷分布的协作方法和系统 | |
Kaur et al. | Improved hyper-heuristic scheduling with load-balancing and RASA for cloud computing systems | |
Nino-Ruiz et al. | Elastic scaling of e-infrastructures to support data-intensive research collaborations | |
Roy et al. | Efficient resource management for running multiple concurrent jobs in a computational grid environment | |
Ghazali et al. | CLQLMRS: improving cache locality in MapReduce job scheduling using Q-learning | |
CN108369527A (zh) | 用于基于时间的任务调度的方法和设备 | |
Kang et al. | Evaluation of acceleration effect of dynamic sequencing of design process in a multiproject environment | |
Karoczkai et al. | A meta-brokering framework for science gateways | |
Singh et al. | Workflow scheduling in cloud computing | |
Ramu | Soft Computing Techniques to Analyze the Load Balancing in Cloud Environment | |
Kumpati et al. | A review on efficient scheduling techniques for cloud computing | |
Reshmi et al. | Bigdata and HPC Convergence with Locality Based Cuckoo Search Method | |
Pan et al. | Optimizing communication in deep reinforcement learning with xingtian |
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 |