CN101807160B - 信息处理*** - Google Patents
信息处理*** Download PDFInfo
- Publication number
- CN101807160B CN101807160B CN201010122251.9A CN201010122251A CN101807160B CN 101807160 B CN101807160 B CN 101807160B CN 201010122251 A CN201010122251 A CN 201010122251A CN 101807160 B CN101807160 B CN 101807160B
- Authority
- CN
- China
- Prior art keywords
- task
- host node
- client computer
- node
- processing
- 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
- 230000010365 information processing Effects 0.000 title abstract description 4
- 238000012545 processing Methods 0.000 claims abstract description 199
- 238000000034 method Methods 0.000 claims description 70
- 230000008569 process Effects 0.000 claims description 50
- 238000003860 storage Methods 0.000 claims description 34
- 238000004364 calculation method Methods 0.000 abstract description 16
- 230000006870 function Effects 0.000 description 32
- 238000005516 engineering process Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 230000003750 conditioning effect Effects 0.000 description 5
- 239000012467 final product Substances 0.000 description 5
- 238000010276 construction Methods 0.000 description 4
- 238000009826 distribution Methods 0.000 description 4
- 230000008676 import Effects 0.000 description 4
- 239000000047 product Substances 0.000 description 4
- 238000004220 aggregation Methods 0.000 description 3
- 230000002776 aggregation Effects 0.000 description 3
- 238000005520 cutting process Methods 0.000 description 3
- 239000006185 dispersion Substances 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 239000006227 byproduct Substances 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000007429 general method Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000000704 physical effect Effects 0.000 description 1
- 239000010454 slate Substances 0.000 description 1
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/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/5038—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 the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- 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/5072—Grid computing
-
- 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/505—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 the load
-
- 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/5013—Request control
-
- 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
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5019—Workload prediction
-
- 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/506—Constraint
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Multi Processors (AREA)
- Computer And Data Communications (AREA)
Abstract
提供一种信息处理***,其可以减轻主节点的过负荷,使主节点可以高效地进行向各节点分配任务的处理。客户机(10)将构成大规模运算的多个任务划分为若干块,以块为单位以主节点(20)始终对规定数量以下的任务进行分配处理的方式,向主节点(20)请求任务的处理。在此,上述规定数量理想的是使主节点(20)例如即使在节点数较多时也可以高效地进行向各节点分配这些任务的处理的数量。这样,客户机(10)具有控制主节点(20)的负荷的功能,因此可以防止主节点(20)的负荷增加。
Description
本申请为2006年8月17日递交的、申请号为200680030814.3、发明名称为“信息处理***”的专利申请的分案申请。
技术领域
本发明涉及通过进行了网络连接的多个计算机分担执行由多个任务(Job)构成的大规模运算处理的信息处理***。
背景技术
作为基于计算机的信息处理的高效率化技术之一,存在分散处理。分散处理是以多个设备执行任务,并列地进行处理的技术。特别是作为以多个设备分担处理的技术,存在被称为多元***和网格计算(Grid Computing)等技术。
其中,多元***是当设备出现故障等问题时,出于保护至此所处理的数据、或继续进行提供中的服务的目的而使用的技术。因此,在多元***中以多个设备执行同一处理。
另一方面,网格计算代表性地是以网络连接多个计算机和存储介质,虚拟地用作大规模高性能的计算机的技术。例如,通过以多个计算机分担执行需要大量计算的运算处理,可以实质上快速求得运算结果。
然而,为了以多个计算机分担执行运算处理,需要向各设备分配任务的功能。所述功能一般通过被称为负荷平衡器(load balancer)或负荷分散(loadsharing)软件的工具来实现。
接着,说明网格计算中的负荷平衡器的一般使用方法。图7是使用网格计算技术而构建的现有信息处理***的概略结构图。所述信息处理***如图7所示,具备客户机110、主节点(master node)120、四个节点130a、130b、130c、130d。这些设备110、120、130a、130b、130c、130d通过网络连接。客户机110是大规模运算的请求源。例如客户机110向主节点120请求由1000个任务构成的大规模运算。在此,所谓“任务”是一个运算的单位。例如是以“z=x+y”的运算来求得“z”。并且,此时使代入x和y的变量为n组。即,在一个任务中,进行依存于所代入的变量的数量的数量的运算。因此,虽然任务数为1000个,但总体的运算数达到其几十倍、几百倍的数量。
在此,由客户机110向主节点120请求的大规模运算,被存储在规定的存储装置中。该大规模运算的数据原本从与客户机110通过网络连接的其它计算机发送、或者通过负责人使用客户机110的输入装置而输入。此时,存在大规模运算的数据在已被分割为规定数量(例如1000个)任务的状态下被发送或输入的情况、或者没有被分割为规定数量的任务的状态下被发送或输入的情况等。在后一种情况下,客户机110根据规定的规则,将该发送或输入的大规模运算的数据分割为规定数量的任务。以下,在本说明书中,只要不事先说明,便对大规模运算的数据从最初被分割为1000个任务的状态下被发送或输入到客户机的案例进行说明。
主节点120是实现负荷平衡器的功能的计算机,进行向各节点130a、130b、130c、130d分配任务的处理。关于该任务分配技术,提出了根据各节点的性能和负荷状况等,以适当数量向该节点发送适当大小的任务的技术(例如参照专利文献1、专利文献2)。另外,各节点130a、130b、130c、103d是进行通过主节点120分配的任务的运算处理的计算机。
首先,客户机110,当接收到由1000个任务构成的大规模运算的数据时,将该1000个任务发送至主节点120。接着,主节点120将该接收到的1000个任务分配至各节点130a、130b、130c、130d。各节点130a、130b、130c、130d进行从主节点120发送的任务的运算处理,在该处理结束后向主节点120报告该任务已结束。当接收到所述报告时,若还存在未分配的未处理任务,则主节点120将该任务发送至该节点。于是,主节点120通过重复进行向各节点发送未处理的任务的处理、和接收表示任务已结束的报告的处理,使四个节点130a、130b、130c、130d执行全部任务的运算处理。
另外,主节点120只限于实现将从客户机110请求的任务高效地分配至各节点130a、130b、130c、130d的功能,对于各节点130a、130b、130c、130d中的运算处理结果不实施任何数据处理。即,前提是各节点130a、130b、130c、130d中的运算处理结果最终汇集到作为大规模运算的请求源的客户机110。因此,例如当从各节点130a、130b、130c、130d返回运算处理结果时,主节点120需要将该运算处理结果发送至客户机110。
专利文献1:日本专利申请公开平7-219907号公报
专利文献2:日本专利申请公开2002-269062号公报
发明内容
如上所述,主节点监视其管理下的各节点的处理状况·负荷状况,同时进行将任务逐个适当分配然后发送至各节点的任务分配处理。然而,当主节点管理下的节点数增多时,存在当进行任务分配处理时,在主节点中即使仅监视各节点的处理状况·负荷状况也会产生相当大负荷的问题。而且,主节点根据各节点的处理状况·负荷状况来进行用于向适当节点分配适量任务的最适当化处理,但该最适当化处理也成为高负荷。
另外,当从客户机向主节点请求的任务数增多时,在主节点中频繁地发生将从各节点返回的运算处理数据发送至客户机的处理。因此,在主节点中有时与运算处理结果的发送相对应的负荷提高,主节点进行的原本最重要的处理、即任务分配处理的处理速度降低。
而且,即使节点的数量不是特别多,由于请求的任务的数量增加,在主节点中,进行任务的分配处理时选择适当任务的负荷增大,同时,额外地产生了和维持与客户机的连接来监视来自客户机的处理结果的请求相对应的负荷。另外,同样地,对于客户机而言,由于向主节点请求的任务数增加,监视任务处理结果的负荷也增加。
为了解决这些问题,理想的是例如实现具有可以进行主节点自身的负荷控制的结构的信息处理***。
本发明是根据上述情况而提出的发明,目的在于提供一种信息处理***,其可以减轻主节点的过负荷,使主节点可以高效地进行作为其本来功能的向各节点分配任务的处理。
用于实现上述目的的第一形态的发明,其特征在于,在通过以网络连接请求由多个任务构成的大规模运算的处理的客户机、执行各任务的处理的多个节点、以及将从所述客户机请求的多个任务的处理分配给所述各节点的主节点而构成的信息处理***中,所述客户机将存储单元中存储的、构成所述大规模运算的多个任务划分为若干块,以所述块为单位以所述主节点始终对规定数量以下的任务进行分配处理的方式,向所述主节点请求任务的处理。
第二形态的发明的特征在于,在第一形态的发明的信息处理***中,所述客户机将构成所述大规模运算的多个任务中的规定数量的任务作为第1块,将其它任务分别作为第n块(n=2,3,...,N),并且,最初向所述主节点请求作为所述第1块的规定数量的任务的处理,每当从所述主节点发送表示针对一个任务处理已结束的通知时,向所述主节点请求尚未请求处理的所述块中的规定的一个块的处理。
第三形态的发明的特征在于,在第一或第二形态的发明的信息处理***中,所述客户机针对构成所述大规模运算的多个任务估计各任务的处理的负荷,根据该估计而得的结果,按照从负荷较重的任务到负荷较轻的任务的顺序,向所述主节点请求各任务的处理。
用于实现上述目的的第四形态的发明的计算机可读取的记录介质,记录了用于使计算机实现第一、第二或第三形态的发明中的任意一项所述的信息处理***的功能的程序。
用于实现上述目的的第五形态的发明的程序,用于使计算机实现第一、第二或第三形态的发明中任意一项所述的信息处理***的功能。
用于实现上述目的的第六形态的发明,是一种向负荷平衡器请求由多个任务构成的大规模运算的处理的信息处理装置,其特征在于,具备:分组处理单元,将存储单元中存储的、构成所述大规模运算的多个任务,根据所述存储单元中存储的分组规则信息而汇集为若干个任务组;以及管理单元,针对通过所述分组处理单元生成的多个任务组,以向所述负荷平衡器请求处理的任务组的数量始终在规定数量以下的方式,向所述负荷平衡器请求任务组的处理。
第七形态的发明的特征在于,在第六形态的信息处理装置中,还具备负荷估计单元,针对通过所述分组处理单元生成的多个任务组,根据所述存储单元中存储的负荷估计规则信息来估计各任务组的处理的负荷,所述管理单元根据通过所述负荷估计单元而取得的、针对各任务组的处理的负荷的估计结果,按照从负荷较重的任务组到负荷较轻的任务组的顺序,向所述负荷平衡器请求各任务组的处理。
用于实现上述目的的第八形态的发明的程序,使计算机实现第六或第七形态的发明中任意一项所述的信息处理装置的功能。
在第一形态的发明中,客户机将构成大规模运算的多个任务划分为若干块,以块为单位以主节点始终对规定数量以下的任务进行分配处理的方式,向主节点请求任务的处理。由此,客户机可以不像以往那样将全部任务的处理汇集起来向主节点请求,而将多个任务划分为包含小规模任务的若干块,以决为单位每次少量地向主节点请求。在此,在从1到上述规定数量的范围内适当地决定各块中包含的任务数。另外,上述规定数量理想的是,即使当例如节点数较多时,该主节点仍可以高效率地进行向各节点分配这些任务的处理的数量。可以认为这种客户机具有控制主节点的负荷的功能。因此,主节点始终仅对上述规定数量以下的任务进行向各节点的分配处理即可,因此可以防止主节点的负荷增加。并且,如上所述可以减轻主节点的负荷,所以主节点不仅可以高效地进行向各节点分配任务的处理,而且可以高效地进行与来自客户机的运算结果监视请求相对应的处理。而且,对于客户机而言,由于向主节点请求的任务数减少,因此运算结果监视的处理所对应的负荷减轻。
在第二形态的发明中,客户机将构成大规模运算的多个任务中的规定数量的任务作为第1块,将其它任务分别作为第n块(n=2,3,...,N),并且最初向主节点请求作为第1块的规定数量的任务的处理,每当从主节点发送表示针对一个任务处理已结束的通知时,向主节点请求尚未请求处理的块中的规定的一个块的处理。通过客户机如上所述地向主节点进行任务的请求,主节点可以向各节点高效地分配各任务,因此可以防止在各节点中产生较长的处理等待时间,可以提高各节点的处理效率。
在第三形态的发明中,客户机针对构成大规模运算的多个任务,估计各任务的处理的负荷,根据该估计而得的结果,按照从负荷较重的任务到负荷较轻的任务的顺序,向主节点请求各任务的处理。由此,主节点可以将负荷最重的任务的处理分配至处理能力最高的节点,在该节点最初执行,并且可以通过使各节点的总体处理时间大体平均的方式进行任务的分配处理,因此可以缩短大规模运算总体的处理时间。
在第六形态的发明中,分组处理单元,根据存储单元中存储的分组规则信息,将存储单元中存储的、构成大规模运算的多个任务汇集为若干任务组。例如1000个任务通过分组处理单元被汇集为600个任务组。管理单元,针对由该分组处理单元生成的多个任务组,以向负荷平衡器请求的任务组的数量始终在规定数量以下的方式向负荷平衡器请求任务组的处理。例如,当将上述规定数量设定为300个时,向负荷平衡器始终请求最多300个的任务组的处理。由此,负荷平衡器不需要始终管理1000个任务,仅对300个以下的任务组中包含的任务数的任务进行向各节点的分配处理即可。因此可以防止负荷平衡器的负荷增加。而且,由于如上所述可以减轻负荷平衡器的负荷,所以负荷平衡器不仅可以高效地进行向各节点分配任务组的处理,而且可以高效地进行与来自信息处理装置的运算结果监视请求相对应的处理。而且,对于信息处理装置而言,由于向负荷平衡器请求的任务数减少,因此也减轻运算结果监视处理所对应的负荷。
在第七形态的发明中,负荷估计单元,针对由分组处理单元生成的多个任务组,根据存储单元中存储的负荷估计规则信息估计各任务组的处理的负荷。并且,管理单元,根据由该负荷估计单元而得到的、针对各任务组的处理的负荷的估计结果,按照从负荷较重的任务组到负荷较轻的任务组的顺序,向负荷平衡器请求各任务组的处理。由此,负荷平衡器可以将负荷最重的任务组的处理分配至处理能力最高的节点,在该节点最初执行,并且可以通过使各节点的总体处理时间大体平均的方式进行任务组的分配处理,因此可以缩短大规模运算总体的处理时间。
附图说明
图1是本发明一个实施方式的信息处理***的概略结构图。
图2是本实施方式的信息处理***中的客户机的概略结构框图。
图3是用于说明构成大规模运算的任务的一例的图。
图4是表示通过客户机的列表生成单元生成的列表的一例的图。
图5是用于说明客户机通过第一请求方法进行的处理的步骤的流程图。
图6是用于说明客户机通过第二请求方法进行的处理的步骤的流程图。
图7是使用网格计算技术构建的现有信息处理***的概略结构图。
符号说明
10客户机;11输入装置;12显示装置;13通信部;14存储部;15控制部;15a分组处理单元;15b负荷估计单元;15c列表生成单元;15d管理单元;20主节点;30a、30b、30c、30d节点
具体实施方式
以下,参照附图说明用于实施本申请中的发明的最佳方式。图1是本发明的一个实施方式的信息处理***的概略结构图。
本实施方式的信息处理***,例如是通过多个计算机分担执行大规模运算时所使用的信息处理***,如图1所示,具备客户机10、主节点20以及四个节点30a、30b、30c、30d。使用个人计算机或工作站等作为客户机10、主节点20、各节点30a、30b、30c、30d。另外,客户机10、主节点20、各节点30a、30b、30c、30d通过网络相连。在此,作为网络而使用例如因特网或LAN·WAN的公司内部网络等。此外,客户机10相当于第六形态的发明中的信息处理装置。
客户机10接收大规模运算的数据,同时向主节点20请求所述大规模运算的处理。大规模运算由多个任务构成。在此,所谓“任务”是一个运算的单位。该大规模运算的数据,通常从外部计算机等通过网络被发送至客户机10,但也可以例如由客户机10的负责人自行输入。从外部计算机等发送或者由负责人输入的大规模运算的数据,在由客户机10取得时可以已经被分割为“任务”这种单位,也可以尚未被分割为“任务”这种单位。客户机10当取得被分割为“任务”这种单位前的状态的大规模运算的数据时,通过客户机10具有的任务分割功能,将该大规模运算的数据分割为规定数量的任务。在后面对该任务分割功能的具体内容进行描述。
另外,客户机10针对构成大规模运算的多个任务,进行将互相具有依存性的任务汇集为一个任务组的处理。在本实施方式中实际上以该任务组单位来进行大规模运算的处理的请求。而且,客户机10进行监视已向主节点20请求的任务组的处理结果的处理。具体而言,客户机10每隔一定期间或者根据需要在任意时刻对主节点20查询已向主节点20请求的任务组的处理是否结束。另外,客户机10在接收到全部任务组的处理结果时,进行将这些结果汇总的处理。此外,具有这种功能的客户机10,例如可以通过在工作站中安装用于实现该功能的软件来实现。
另外,虽然客户机10在接收到任务组的处理结果时进行将这些结果汇总的处理,但这并不意味着客户机10一定进行某种信息处理。另外,有时客户机10不进行汇总任务组的处理结果的汇总处理,而由外部设备(machine)进行汇总处理。即,例如针对1000个任务而得到1000个结果时,若将1000个结果本身发送至外部设备,则客户机10不需要进行汇总处理。
主节点20是实现负荷平衡器功能的计算机,进行将客户机10请求的各任务组的处理分配给四个节点30a、30b、30c、30d的处理。在此,向各节点30a、30b、30c、30d各分配例如一个任务组。在分配的处理本身中可以应用现有技术中所说明的技术。当决定了将哪个任务组分配给哪个节点时,客户机10将该任务组的内容、即该任务组中包含的任务的运算内容和该运算中所使用的变量发送至分配了该任务组的节点。或者也可以将任务的运算内容以及该运算中所使用的变量存储在规定的存储单元(未图示)中,客户机10将任务组的识别信息、和表示该任务组中包含的任务的运算内容以及该运算中所使用的变量的位置的信息一起,发送至分配了该任务组的节点。在这种情况下,各节点30a、30b、30c、30d访问上述存储单元,取得分配给自己的任务组中包含的任务的运算内容和该运算中所使用的变量。
另外,主节点20根据来自客户机10的查询,将例如表示各节点30a、30b、30c、30d中的任务组的处理已结束的通知发送至客户机10。在此,主节点20不仅在接收到来自客户机10的查询时、而且在从各节点30a、30b、30c、30d接收到表示任务组的处理已结束的报告时,也可以向客户机10发送处理结束的通知。而且,主节点20当从各节点30a、30b、30c、30d取得任务组的处理结果时,将该处理结果发送至客户机10。此外,具有这种功能的主节点20,例如可以通过在工作站中安装用于实现该功能的软件来实现。
各节点30a、30b、30c、30d接收来自主节点20的指示,执行分配给自己的任务组的处理。在来自主节点20的指示中包含任务组的处理内容或处理结果的存储目的地(或发送目的地)等信息。在此,在本实施方式中,作为处理结果的存储目的地(或发送目的地)而指定了主节点20。各节点30a、30b、30c、30d,当任务组的运算处理结束时向主节点20报告该任务组的处理已结束,并且向主节点20发送其处理结果。然后,各节点30a、30b、30c、30d等待发送来下一指示。如此,通过重复进行从主节点20向各节点30a、30b、30c、30d的指示、从各节点30a、30b、30c、30d向主节点20的报告,来执行大规模运算的处理。此时,主节点20通过其负荷平衡器功能还进行如下控制:减少从各节点30a、30b、30c、30d报告任务组的处理结束开始直到收到下一指示为止的等待时间。
接着,对客户机10的结构进行详细说明。图2是本实施方式的信息处理***中的客户机10的概略结构框图。
客户机10如图2所示,具备输入装置11、显示装置12、通信部13、存储部14和控制部15。输入装置11例如是输入各种命令或者输入大规模运算的数据的装置。作为该输入装置11而使用键盘或鼠标等。另外,显示装置12例如是显示用于输入大规模运算的数据的输入画面、或者显示该大规模运算的处理结果的装置。
通信部13是向主节点20或其它设备(计算机或数据库等)发送信息、或者从主节点20或其它设备接收信息的装置。具体而言,作为从其它设备发送至客户机10的信息,存在例如大规模运算的数据等。另外,作为从客户机10发送至主节点20的信息,存在用于请求任务组的处理的处理命令、用于处理结果监视的查询等,作为从主节点20发送至客户机10的信息,存在各任务组的处理结果等。
存储部14是存储各种应用程序或各种数据等的装置。作为存储部14,可以使用客户机10内的存储器或硬盘驱动器、外部存储装置等。例如,在该存储部14中存储:大规模运算的数据、分组规则信息、负荷估计规则信息、任务组的列表、主节点20进行分配处理的任务组的上限数、各任务组的处理结果等。在后面对分组规则信息、负荷估计规则信息、任务组的列表、主节点20进行分配处理的任务组的上限数进行描述。
在此,对大规模运算进行具体说明。假设此时从外部设备通过网络向客户机10发送大规模运算的数据。客户机10的通信部13,当接收所述大规模运算的数据时,将其存储在存储器14中。图3是用于说明构成大规模运算的任务的一例的图。在此例中,该大规模运算由1000个任务构成。其中,任务“1”是“z1=x+y”的运算,其变量的组(x,y)例如有10组。任务“2”是“z=z1×x1”的运算。即,该任务“2”的变量是任务“1”的处理结果z1和变量x1。若变量x1取两个值,则变量的组(z1,x1)有20组。另外,任务“3”是“z=x+y1+y2”的运算。该变量的组(x,y1,y2)例如有20组。针对其它任务也指定了其运算内容和变量。大规模运算由这种任务的集合构成。此外,在图3所示的大规模运算的例子中,一个任务中包含一个运算内容(运算式),但一般有时在一个任务中包含多个运算内容。另外,虽图3所示的大规模运算的例子中,各任务所包含的运算内容(运算式)分别不同,但在构成大规模运算的多个任务中也可以存在运算内容相同而仅仅变量不同的多个任务。
另外,客户机10如上所述,有时在不将大规模运算的数据分割为“任务”这种单位的状态下从外部设备对其进行接收。即,大规模运算的数据中包含的全部运算内容和它们中所使用的变量的数据,有时不在例如图3所示被分割为从任务“1”到任务“1000”共计1000个任务的状态下、而在其分割前的状态下从外部设备被发送至客户机10。在这种情况下,客户机10利用该客户机10所具有的任务分割功能,将该发送的大规模运算的数据按每个运算进行分割,通过将该分割后的各运算和其中所使用的变量进行组合,可以得到被分割为“任务”这种单位的状态的大规模运算的数据。另外,大规模运算的数据有时不从外部设备直接发送至客户机10,而被存储在外部数据库中。在这种情况下,客户机10仅从外部设备预先接收外部数据库的位置信息、和成为大规模运算的数据的分割判断基准的数据。并且,客户机10利用任务分割功能,访问该外部数据库,根据分割的判断基准将该大规模运算的数据分割为多个任务,由此可以取得被分割为“任务”单位的状态的大规模运算的数据。
控制部15总体控制客户机10的各部。该控制部15如图2所示,具有分组处理单元15a、负荷估计单元15b、列表生成单元15c和管理单元15d。
分组处理单元15a,针对构成大规模运算的多个任务,进行将互相具有依存性的任务汇集为一个任务组的分组处理。若在某任务和某任务之间有关联性或者有依存关系时,则有时不适合单独地处理这些任务。例如,如图3所示,当使用任务“1”的处理结果来进行任务“2”的运算时,在向主节点20请求任务“1”的处理之前请求了任务“2”的处理,因此不可能执行任务“2”的处理。因此,分组处理单元15a读出在存储部14中存储的分组规则信息,按照该读出的分组规则信息,进行将构成大规模运算的多个任务汇集为若干个任务组的分组处理。所述分组规则信息按作为运算对象的每个大规模运算而预先存储在存储部14中。另外,还有时分组规则信息和大规模运算的数据一起从外部设备发送,此时存储在存储部14中。例如,在用于计算物体轨道的大规模运算所对应的分组规则信息中,可以确定将运算对象在物体的科学性质或物理性质方面相同的任务汇集为一个组的规则;在工厂等中用于制定产品的生产计划的大规模运算所对应的分组规则信息中,可以确定将运算对象在产品的品种或大小方面相同的任务汇集为一个组的规则。另外,在图3所示的大规模运算所对应的分组规则信息中,可以确定将存在变量的利用关系的任务彼此汇集为一个组的规则。当应用该规则信息时,在图3的例子中,分组处理单元15a针对各任务来分析变量的利用关系,将任务“1”和任务“2”汇集为一个任务组。而且,在分组规则信息中设定可以包含在一个任务组中的任务的上限数,可以确定在不超过该上限数的范围内将多个任务汇集为一个组的规则。另外,也可以确定将多个上述规则进行组合而得的规则。例如,在工厂等中用于制定产品的生产计划的大规模运算所对应的分组规则信息中,可以确定将运算对象在产品的品种或大小方面相同的任务汇集为一个组,并且使各组中不包含超过规定上限数的任务的规则。在本实施方式中,具体而言,分组处理单元15a针对图3所示的1000个任务进行分组处理,如图1所示,得到600个任务组。
负荷估计单元15b,针对通过分组处理单元15a而得的各任务组,按照存储部14中存储的负荷的估计规则信息来估计其处理的负荷。例如,在负荷估计规则信息中决定了:应该根据有关构成该任务组的各任务的变量的组的数量和来估计各任务组的处理负荷。该变量的组的数量和是进行该任务组的运算时进行其中包含的任务运算的次数。因此,若各任务的运算内容大体为相同程度,则可以认为变量的组的数量和越多、该任务组的处理的负荷越大。此外,若各任务的运算内容有较大差异,则负荷也与之对应地变化。在这种情况下,为了准确地估计负荷,可以变更负荷估计规则信息的内容,使其不仅考虑变量的组的数量,还考虑任务内容。为了进行这种还考虑了任务的内容的负荷估计,例如需要从外部提供表示任务的运算内容程度的参数,或者需要将上次使用的参数存储在存储部14中、再次读出来进行利用。
此外,若负荷估计单元15b的估计结果为存在负荷非常高的任务组时,负荷估计单元15b可以将该任务组返回分组处理单元15a,使分组处理单元15a进行将该任务组进一步分割为小规模的处理。在这种情况下,在分组规则信息中需要包含用于判断是否将任务组进一步分割为小规模的负荷阈值信息、和用于进行该进一步分割的规则。特别是由于不能将互相具有依存关系的任务分别分在不同组中,因此也需要在该分组规则信息中包含关于这种无法分割的任务的规则。一般地,包含在分组规则信息中的规则,可以通过if-then规则或范围指定规则等多种形式的规则来定义。
列表生成单元15c,根据通过负荷估计单元15b估计出的各任务组的处理的负荷,生成按照其负荷从重到轻的顺序将多个任务组分类而得的任务组的列表、并存储在存储部14中。图4中表示由列表生成单元15c生成的列表的一例。在该列表中设有任务组ID栏和对象任务栏。在任务组ID栏中记载赋予该任务组的ID号码(识别信息),在对象任务栏中记载构成该任务组的任务的号码。图4的列表是针对根据图3所示的1000个任务而得到的600个任务组的列表。在该列表的最上部记载了负荷最重的任务组,越向下记录负荷越轻的任务组。在此例中,仅由任务“1000”构成的ID号码“001”的任务组的负荷最重,其次,由任务“5”、任务“6”以及任务“7”构成的ID号码“002”的任务组的负荷第二重。如此,在图4的例子中,列表生成单元15c按照从负荷重的任务组开始的顺序对600个任务组赋予了ID号码。因此,任务组的ID号码不仅起到识别任务组的作用,还起到了表示负荷轻重的顺序的作用。另外,在该列表中,针对各任务组设有已请求栏和已接收栏。已请求栏是用于标注表示已向主节点20请求了该任务的处理的已请求标志的栏,已接收栏是用于标注表示已接收到表示该任务组的处理已结束的通知的已接收标志的栏。具体而言,在本实施方式中,在已请求栏和已接收栏中分别在该处理不是“已完成”状态时标注标志“0”,而在该处理是“已完成”状态时标注标志“1”。此外,通过管理单元15d管理所述已请求标志和已接收标志。
管理单元15d向主节点20请求构成大规模运算的各任务组的处理。具体而言,管理单元15d将构成大规模运算的多个任务组划分为若干个块,以该块为单位以主节点20始终对规定数量以下的任务组进行分配处理的方式,向主节点20请求任务组的处理。在此,适宜在从1到上述固定数量的范围内决定各块中包含的任务组的数量。即,若将上述规定数量(主节点20进行分配处理的任务组的上限数)设为M,则在一个块中包含m个任务组。在此,m是1以上M以下的自然数。另外,主节点20进行分配处理的任务组的上限数M理想的是,例如即使节点数较多时主节点20也可以高效地将这些任务组向各节点进行分配处理的数。即,根据主节点20的处理能力来决定该主节点20进行分配处理的任务组的上限数M。例如,在本实施方式中,将主节点20进行分配处理的任务组的上限数M决定为300。在此,将该主节点20进行分配处理的任务组的上限数M存储在存储部14中。
另外,理想的是管理单元15d根据图4所示的内容,按照从负荷较重的任务组到负荷较轻的任务组的顺序向主节点20请求各任务组的处理。如果在最后向主节点20请求负荷最重的任务组的处理,则在某一节点花费较长时间处理该任务组,针对大规模运算总体的处理时间变得很长。通过按照从负荷较重的任务组开始的顺序向主节点20请求其处理,主节点20将负荷最重的任务组的处理分配给处理能力最高的节点,可以最初在该节点执行,并且可以通过使各节点的总体处理时间大体平均的方式进行任务组的分配处理,因此可以缩短该大规模运算总体的处理时间。
另外,作为管理单元15d对主节点20进行的任务组的请求方法,考虑各种方法。在本实施方式中,代表性地说明以下表示的两种请求方法。
在第一请求方法中,如图4所示,在构成大规模运算的600个任务组中,将图4的列表上从最上方开始到第300个为止记载的300个任务组作为第1块,将其它任务组按照从图4的列表上从上方开始的顺序,分别作为第n块(n=2、3、...、N)。在此,N=301。即,将从ID号码“001”到ID号码“300”的300个任务组作为第1块,将ID号码“301”的任务组作为第2块,将ID号码“302”的任务组作为第3块,...,将ID号码“600”的任务组作为第301块。然后,管理单元15d最初向主节点20请求作为第1块的300个任务组的处理,每当从主节点20发送表示针对一个任务组的处理已结束的通知时,向主节点20请求尚未请求处理的块中的规定的一个块的处理。在此,针对规定的一个块的处理的请求,除去此刻已经请求的块,针对在图4的列表上最上方记载的块而进行。例如,当前时刻已向主节点20请求了从第1块到第100块的共计100个块时,当发送了表示针对一个任务组的处理已结束的通知时,管理单元15d向主节点20请求第101块的处理。
另外,在第二请求方法中,在构成大规模运算的600个任务组中,将图4的列表上从最上方开始到第300个记载的300个任务组作为第1块,将该列表上从第301到第600个所记载的300个任务组作为第2块。然后,管理单元15d最初向主节点20请求作为第1块的300个任务组的处理,在该请求的所有任务组的处理结束之后,向主节点20请求作为第2块的300个任务组的处理。
当使用第一请求方法时,主节点20可以将各任务组高效地分配给各节点30a、30b、30c、30d,因此可以防止在各节点30a、30b、30c、30d中产生较长的处理等待时间,可以提高各节点30a、30b、30c、30d的处理效率。另一方面,当使用第二请求方法时,也同样可以提高各节点30a、30b、30c、30d的处理效率。但在第二请求方法中,从第1块的处理结束直到第2块的处理实际开始为止,在各节点30a、30b、30c、30d中可能产生若干处理等待时间,因此若考虑到这一点,则第一请求方法与第二请求方法相比,各节点的处理效率更优秀。
于是,在本实施方式中,管理单元15d将构成大规模运算的600个任务组划分为若干块,以该块为单位以主节点20始终对300个以下的任务组进行分配处理的方式,向主节点20请求任务组的处理。因此,若虚拟地来看,则主节点20与以往相比针对最多300个的比较小规模的任务组进行向节点的分配处理,因此可以防止主节点20的负荷增加。即在本实施方式中,客户机10(管理单元15d)实现主节点20的负荷控制功能,由此,主节点20以及客户机10整体从高负荷状态中解放出来。
另外,管理单元15d利用由列表生成单元15c生成的列表来管理各任务组的处理的请求状况。即管理单元15d当向主节点20请求任务组的处理时,在图4的列表中,在该请求了的任务组所对应的已请求栏中标注已请求标志“1”。另外,管理单元15d每隔一定期间或者根据需要在任意时刻,对主节点20查询该请求了的任务组的处理是否结束,而当从主节点20发送表示该任务组的处理已结束的通知时,在图4的列表中,在接收到该通知的任务组所对应的已接收栏中标注已接收标志“1”。因此,管理单元15d通过判断在列表上是否针对各任务组标注了已请求标志“1”,可以识别是否向主节点20请求了该任务组的处理,并且通过判断在列表上是否针对各任务组标注了已接收标志“1”,可以识别该任务组的处理是否已结束。
接着,说明在本实施方式的信息处理***中处理大规模运算的步骤。
最初,说明在客户机10通过第一请求方法进行处理时,在本实施方式的信息处理***中处理大规模运算的步骤。图5是用于说明客户机10通过第一请求方法进行的处理的步骤的流程图。
首先,例如通过网络向客户机10发送大规模运算的数据。在此,所述大规模运算由图3所示那样的1000个任务构成。客户机10当接收到所述大规模运算的数据时,针对构成该大规模运算的1000个任务进行将互相具有依存性的任务汇集为一个任务组的分组处理(S11)。在此,客户机10通过进行分组处理,如图1所示得到了600个任务组。
接着,客户机10针对各任务组估计其处理的负荷(S12)。例如根据与构成该任务组的各任务相关的变量的组的数量和,进行所述负荷的估计。在这种情况下,客户机10判定为变量的组的数量和越多,该任务组的负荷越大。
接着,客户机10根据在步骤S12中得到的各任务组的处理的负荷,生成按照其负荷从重到轻的顺序对600个任务组分类而得的任务组的列表(S13)。在此,生成图4所示的列表。
接着,客户机10将600个任务组划分为301个块。具体而言,将图4的列表上从最上方开始到第300个记载的ID号码从“001”到ID号码“300”为止的300个任务组作为第1块,将其它任务组分别按照图4的列表上从上开始的顺序作为第2块、第3块、...、第301块。在此,在第1块中包含300个任务组,在第n块(n=2,3,...,301)中仅包含1个任务组。于是得到共计301个块。然后,客户机10最初向主节点20请求作为第1块的300个任务组的处理(S14)。然后,客户机10当向主节点20请求任务组的处理时,在列表上在该已请求的任务组所对应的已请求栏中标注已请求标志“1”。
当如此从主机10请求300个任务组的处理时,主节点20将这些任务组的处理分配给各节点30a、30b、30c、30d。各节点30a、30b、30c、30d执行分配给自己的任务组的处理。各节点30a、30b、30c、30d,当该任务组的处理结束时将表示该情况的报告和处理结果一起发送至主节点20。
另一方面,客户机10当向主节点20请求了任务组的处理时,每隔一定期间或者根据需要在任意时刻对主节点20查询该已请求的任务组的处理是否已结束。主节点20当接收到该查询时,若存在处理已结束的任务组,则将表示该任务组的处理已结束的通知以及其处理结果发送至客户机10。然后,客户机10当接收到表示该任务组的处理已结束的通知时,在列表上该任务组所对应的已接收栏中标注已接收标志“1”(S15)。
在步骤S15的处理后,客户机10判断是否存在在列表上未标注已请求标志“1”的任务组(S16)。若还存在未标注已请求标志“1”的任务组,则客户机10除当前时刻正请求的任务组以外,向主节点20请求在图4的列表上最上方记载的任务组的处理(S17)。另外,客户机10在列表上该已请求的任务组所对应的已请求栏中标注已请求标志“1”。然后转移至步骤S15。只要步骤S 16中客户机10判断为存在未标注已请求标志“1”的任务组,则重复进行步骤S15、S16以及S17的处理。在此,只要存在未标注已请求标志“1”的任务组,则向主节点20请求了处理的任务组的数量始终为300个。即只要存在未标注已请求标志“1”的任务组,则主节点20始终对300个任务组进行向各节点30a、30b、30c、30d的分配处理。
当所述步骤S15、S16以及S17的处理重复进行了300次后,当客户机10接收到表示某任务组的处理已结束的通知时(S15),客户机10判断为在列表上不存在未标注已请求标志“1”的任务组(S16)。即,在该时刻已向主节点20请求了全部600个任务组的处理。接着,客户机10判断是否存在在列表上未标注已接收标志“1”的任务组(S18)。若还存在未标注已接收标志“1”的任务组,则转移至步骤S19。在该步骤S19中,当客户机10接收到表示某任务组的处理已结束的通知时,在列表上该任务组所对应的已接收栏中标注已接收标志“1”。然后转移至步骤S18。只要在步骤S18中客户机10判断为存在未标注已接收标志“1”的任务组,则重复进行步骤S18和S19的处理。此时,每当进行一次步骤S19的处理,向主节点20请求处理的任务组的数量就减少一个。从而,在列表上对全部任务组标注了已请求标志“1”之后,主节点20始终对300个以下的任务组进行向各节点30a、30b、30c、30d的分配处理。
在重复进行300次步骤S18和步骤S19的处理后,客户机10判断为在列表上不存在未标注已接收标志“1”的任务组(S18)。于是,客户机10识别出大规模运算的处理已结束,进行处理结果的汇总(S20)。以上,图5所示的客户机10的处理流程结束。
接着,说明当客户机10通过第二请求方法进行处理时,在本实施方式的信息处理***中处理大规模运算的步骤。图6是用于说明客户机10通过第二请求方法进行的处理的步骤的流程图。
图6的处理流程中的步骤S51、步骤S52、步骤S53的各处理的内容,分别与图5的处理流程中的步骤S11、步骤S12、步骤S13的各处理的内容相同。因此省略其说明。
在步骤S53的处理后,客户机10将600个任务组划分为两个块(S54)。具体而言,将图4的列表上从最上方开始到第300个所记载的300个任务组作为第1块,将该列表上从第301个开始到第600个所记载的300个任务组作为第2块。
接着,客户机10向主节点20请求一个块的处理(S55)。在此,向主节点请求的块的顺序为:最初是第1块,然后是第2块。从而,在这种情况下首先向主节点20请求作为第1块的300个任务组的处理。另外,客户机10当向主节点20请求了任务组的处理时,在列表上在该已请求的任务组所对应的已请求栏中标注已请求标志“1”。
然后,客户机10每隔一定期间或者根据需要在任意时刻,对主节点20查询该已请求的任务组的处理是否已结束。然后,客户机10当针对该查询从主节点20接收到表示某任务组的处理已结束的通知时,在列表上该任务组所对应的已接收栏中标注已接收标记“1”(S56)。
接着,客户机10判断在列表上标注了已请求标志“1”的任务组中,是否存在未标注已接收标志“1”的任务组(S57)。若还存在未标注已接收标志“1”的任务组,则转移至步骤S56。只要判断为此次请求的300个任务组的处理未全部结束,就重复进行步骤S56以及步骤S57的处理。
在所述步骤S56以及步骤S57的处理重复进行299次后,当客户机10接收到表示任务组的处理已结束的通知时(S56),客户机10针对列表上标注了已请求标志“1”的全部任务组判断为标注了已接收标志“1”(S57)。即,此时作为第1块的300个任务组的处理已全部结束。接着,客户机10根据列表上的已请求标志“1”,判断是否存在尚未向主节点20请求处理的块(S58)。在这种情况下,针对第2块中包含的任务组,由于尚未向主节点20请求处理、未标注已请求标志“1”,因此该步骤S58的判断为肯定性判断。若步骤S58的判断为肯定性判断,则转移至步骤S55。在该步骤S55中,向主节点20请求作为第2块的300个任务组的处理。
于是,当作为第2块的300个任务组的处理全部结束(S57)、不存在未向主节点20请求处理的块时(S58),客户机10识别出大规模运算的处理已结束,进行处理结果的汇总(S59)。以上,图6所示的客户机10的处理流程结束。
在本实施方式的信息处理***中,客户机将构成大规模运算的多个任务汇集为若干任务组后,将这些任务组进一步划分为块,并且以块为单位以主节点始终对规定数量以下的任务组进行分配处理的方式,向主节点请求任务组的处理。由此,客户机可以不像以往那样将全部任务的处理一起向主节点请求,而是以块为单位每次少量地向主节点请求多个任务组的处理。可以认为这种客户机具有控制主节点负荷的功能。因此,主节点始终进行仅将上述规定数量的任务组中包含的任务数的任务向各节点分配的处理即可,因此可以防止主节点的负荷增加。而且,由于可以这样减轻主节点的负荷,因此主节点不仅可以高效地进行向各节点分配任务组的处理,而且也可以高效地进行与来自客户机的运算结果监视请求相对应的处理。而且,对于客户机而言,由于减少向主节点请求的任务数,因此减轻运算结果监视处理所对应的负荷。
此外,本发明不限于上述实施方式,在其主旨范围内可以进行各种变形。
在上述实施方式中说明了在从主节点向各节点的指示中作为处理结果的存储目的地而指定了主节点,各节点将任务组的处理结果发送至主节点,主节点将该处理结果发送至客户机的情况,但例如也可以在从主节点向各节点的指示中作为处理结果的存储目的地而指定规定的数据库。在这种情况下,各节点当结束任务组的运算处理时,向主节点报告该任务组的处理已结束,并且将其处理结果存储在该指定的数据库中。然后,客户机当从主节点取得任务组的处理结束的通知时访问该数据库,取得该任务组的处理结果。
另外,在上述实施方式中说明了客户机估计各任务组的处理负荷,根据该估计而得的结果,按照从负荷较重的任务组到负荷较轻的任务组的顺序向主节点请求各任务组的处理的情况,但客户机不需要一定估计任务组的处理负荷、按照从其负荷较重的任务组开始的顺序向主节点请求各任务组。即,客户机可以按照任意顺序向主节点请求各任务组。
而且,在上述实施方式中说明了客户机进行将互相具有依存性的某任务汇集为一个组的分组处理的情况,但若例如使用互相没有依存性的任务,则客户机不需要一定进行任务的分组处理。另外,作为运算的基本单位,也可以将不依存于其它运算结果的运算定义为“任务”。在这些情况下,当然可以将任务和任务组视为相同。此外,当使用互相没有依存性的任务时,作为分组规则信息而使用关于一个任务组中可以包含的任务的上限数的信息,分组处理单元可以根据关于该上限数的信息,将多个任务划分为若干任务组。
另外,在上述实施方式中说明了从一个客户机向一个主节点进行任务(或任务组)的请求的情况,但也考虑了例如从多个客户机向一个主节点同时进行任务(或任务组)的请求的情况。在这种情况下理想的是,使多个客户机除了以块为单位进行任务(或任务组)的请求的本发明的特征功能以外,还具有在这些客户机之间取得协作的功能。由此,各客户机可以互相取得协作来进行调整,以使向主节点请求的任务(或任务组)的合计数始终在规定数以下。作为实现这种协作功能的方法,可以使用如下方法:各客户机互相进行通信,相互通知关于当前向主节点请求的任务(或任务组)的数量的信息。另外,作为其它方法,可以使用如下方法:在主节点、或客户机和主节点以外的其它设备上设有管理当前向主节点请求的任务(或任务组)的数量的任务数管理单元。具体而言,该任务数管理单元具有关于主节点可以接受请求的任务(或任务组)的上限数的信息。各客户机,当向主节点请求任务(或任务组)的处理时,对任务数管理单元发送关于该请求的任务(或任务组)的数量的信息。任务数管理单元,当从各客户机发送了关于任务(或任务组)的数量的信息时,若接受了所述任务(或任务组)的请求,则判断向主节点请求的任务(或任务组)的合计数是否超过上述上限数。并且,任务数管理单元当判断为该合计数未超过上述上限数时,向该客户机发送表示允许任务(或任务组)的请求的指示,另一方面,当判断为该合计数超过上述上限数时,对该客户机发送表示应该待机或者中止任务(或任务组)的请求的命令。因此,在从多个客户机向一个主节点进行任务的请求时,也可以减轻主节点的处理负荷。
另外,当相反地从一个客户机向多个主节点进行任务(或任务组)的请求时,也可以应用本发明。这种任务(或任务组)的请求形态适用于从客户机请求的任务(或任务组)的数量很大的情况、或者任务(或任务组)的负荷非常高的情况。这种情况的处理步骤与上述实施方式大体相同。但是也存在多个主节点的负荷平衡器功能由分别不同供应商的产品构成等无法取得统一的情况。在这种情况下,可以认为关于如下处理也需要进行调整:从客户机向主节点的任务(或任务组)的交接处理、对在节点的任务处理结果进行汇总的处理等。例如,不在客户机、主节点、节点间直接收发任务的运算内容或变量、节点的任务的处理结果等,而经由共同的外部数据库在它们之间进行交接,最终由客户机进行从外部数据库收集该处理结果然后汇总的处理即可。此外,根据上述可知,在从多个客户机向多个主节点进行任务(或任务组)的请求时也可以应用本发明。
而且,在上述实施方式中说明了客户机将构成大规模运算的多个任务(或任务组)划分为若干块,以块为单位以主节点始终对规定数量以下的任务(或任务组)进行分配处理的方式,向主节点请求任务(或任务组)的处理的情况,但是例如客户机也可以和以往相同地将全部任务(或任务组)的处理汇集起来向主节点请求,主节点将该请求的多个任务(或任务组)划分为若干块,以该块为单位进行任务(或任务组)的分配处理。即也可以不在客户机中而在主节点中设置本发明的特征功能。由此,即使例如从客户机请求了1000个任务,主节点也可以将向各节点的分配处理的对象始终限制为规定数量(例如300)以下的任务,因此可以充分减轻主节点的处理的负荷。即,在现有的信息处理***中,例如向主节点请求了1000个任务的处理时,主节点必须将1000个任务全部作为负荷平衡器功能的对象而始终管理,但在本发明的信息处理***中,可以将主节点必须始终管理的任务抑制到例如300个。但在这种情况下,客户机与以往同样地将全部任务的处理汇集起来向主节点请求,因此在客户机中发生无用的处理等待,与上述实施方式相比,客户机的处理效率可能会有所下降。然而,作为信息处理***整体可以减轻处理负荷。
此外,在上述实施方式中说明了分别通过工作站等实现客户机和主节点的情况,但也可以例如通过一个工作站等实现客户机和主节点。即,可以在一个工作站中安装用于实现客户机以及主节点功能的软件,而且该工作站也可以兼有节点的功能。此外,在上述实施方式中说明了某工作站固定地作为客户机或主节点的情况、或某工作站兼有客户机以及主节点功能的情况,但本发明不限于此。即,若在多个工作站中安装了用于作为客户机、主节点以及节点的各功能而工作的软件,则这些各工作站也可以实现有时作为客户机而工作、有时作为主节点或节点而工作这样流动的运用。
本发明的目的当然也可以如下来实现:将实现上述实施方式的装置的功能的软件的程序代码(包含执行形式),通过记录其全体或一部分的记录介质提供给本实施方式的装置,该装置的计算机(或CPU、MPU)读出存储在记录介质中的程序代码,执行动作的全部或一部分。在这种情况下,从记录介质读出的程序代码本身实现本实施方式的功能,记录该程序代码的记录介质构成本发明。
作为用于提供程序代码的记录介质可以使用ROM、软盘(floppy disc)(注册商标)、硬盘、光盘、光磁盘、CD-ROM、CD-R、DVD-ROM、磁带、非易失性存储卡等。而且可以通过经由通信线路下载来提供程序代码,也可以利用JAVA(注册商标)等技术提供程序代码来执行。
另外,本发明当然还包含如下情况:不仅通过执行计算机所读出的程序代码来实现本实施方式的功能,而且根据该程序代码的指示由计算机上运行的OS等进行一部分实际处理或全部实际处理,通过该处理来实现本实施方式的功能。
而且,本发明当然还包含如下情况:将从记录介质读出的程序代码写入***计算机的功能扩展板或计算机所连接的功能扩展单元所具备的存储器后,根据该程序代码的指示,由该功能扩展板或功能扩展单元所具备的CPU等进行一部分实际处理或全部实际处理,通过该处理实现本实施方式的功能。
此外,本发明也可以是程序产品(program product),该程序产品包含用于使计算机实现上述实施方式的装置功能的程序。在此,所谓程序产品不仅是计算机程序,还包含记录了程序的记录介质或计算机。
产业上的可利用性
如上所述,本发明的信息处理***中,客户机将构成大规模运算的多个任务划分为若干块,以块为单位以主节点始终对规定数量以下的任务进行分配处理的方式,向主节点请求任务的处理。由此,客户机可以不像以往那样将全部任务的处理汇集起来向主节点请求,而将多个任务划分为包含小规模任务的若干块,以该块为单位每次少量地向主节点请求。可以认为这种客户机具有控制主节点的负荷的功能。因此,主节点始终仅对上述规定数量以下的任务进行向各节点的分配处理即可,因此可以防止主节点的负荷增加。而且,由于如上所述可以减轻主节点的负荷,因此主节点不仅可以高效地进行向各节点分配任务的处理,还可以高效地进行与来自客户机的运算结果监视请求相对应的处理。而且,对于客户机而言,向主节点请求的任务的数量减少,因此减轻运算结果监视处理所对应的负荷。因此,本发明可以应用于通过网络连接的多个计算机分担执行由多个任务构成的大规模运算的处理的信息处理***。
Claims (10)
1.一种信息处理***,通过以网络连接以下装置而构成:取得由多个任务构成的大规模运算的处理请求的客户机、执行各任务的处理的多个节点、将从所述客户机请求的多个任务的处理分配给所述各节点的至少一个主节点、以及用于存储所述大规模运算的数据的存储单元,
所述信息处理***的特征在于,
所述客户机将构成所述大规模运算的多个任务划分为若干块,以所述块为单位以所述主节点始终对预定数量以下的任务进行分配处理的方式,向所述主节点请求任务的处理,并且
将所述块的识别信息、和表示存储在所述存储单元中的任务的运算内容以及该运算中所使用的变量的位置的信息一起,发送至分配了该块的节点。
2.根据权利要求1所述的信息处理***,其特征在于,
所述各节点对于分配给所述主节点的块中包含的任务,根据表示所述位置的信息访问所述大规模运算,取得任务的运算内容以及该运算中所使用的变量,来执行任务的处理。
3.根据权利要求2所述的信息处理***,其特征在于,
所述各节点将任务的处理结果发送至所述存储单元并进行存储。
4.根据权利要求1所述的信息处理***,其特征在于,
多个客户机与所述网络连接,各客户机还具有相互通知与向所述主节点请求的任务的数量有关的信息的功能,由此调整成向同一个主节点请求的任务数量的总和始终在预定数量以下。
5.根据权利要求1所述的信息处理***,其特征在于,
任务数量管理单元通过所述网络与多个客户机连接,该任务数量管理单元对所述客户机向主节点请求的任务的数量进行管理,
为了所述多个客户机向所述主节点请求的任务的数量总和始终在预定数量以下,所述任务数量管理单元当从所述客户机接收到请求的任务数量的信息时,判断如果接受了该任务向主节点请求的任务数量的总和是否超过上限数,当没有超过上限数时向客户机发送表示允许任务请求的指示。
6.根据权利要求1所述的信息处理***,其特征在于,
一个计算机能够作为所述客户机而工作,或者作为所述主节点而工作,或者作为所述节点而工作。
7.一种信息处理***,通过以网络连接以下装置而构成:取得由多个任务构成的大规模运算的处理请求的客户机、执行各任务的处理的多个节点、以及将从所述客户机请求取得的多个任务的处理请求分配给所述各节点的主节点,
所述信息处理***的特征在于,
所述客户机将在存储单元中存储的、构成所述大规模运算的多个任务划分为若干块,以所述块为单位以所述主节点始终对预定数量以下的任务进行分配处理的方式,向所述主节点请求任务的处理,
所述客户机每隔一定期间或者根据需要在任意时刻对请求了所述任务的处理的主节点查询该处理是否结束,当从所述主节点发送表示处理结束的通知时,向所述主节点请求尚未请求处理的所述块中的预定块的处理。
8.根据权利要求7所述的信息处理***,其特征在于,
一个计算机能够作为所述客户机而工作,或者作为所述主节点而工作,或者作为所述节点而工作。
9.一种信息处理***,通过以网络连接以下装置而构成:取得由多个任务构成的大规模运算的处理请求的客户机、执行各任务的处理的多个节点、以及将从所述客户机请求取得的多个任务的处理请求分配给所述各节点的主节点,
所述信息处理***的特征在于,
所述客户机将存储单元中存储的、构成所述大规模运算的多个任务中的预定数量的任务作为一个块,并设定多个该块,
向所述主节点请求作为第一块的预定数量任务的处理,当从所述主节点发送表示对于该块处理全部结束的通知时,向所述主节点请求处理尚未请求处理的所述块中的一个块。
10.根据权利要求9所述的信息处理***,其特征在于,
一个计算机能够作为所述客户机而工作,或者作为所述主节点而工作,或者作为所述节点而工作。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005239381 | 2005-08-22 | ||
JP2005-239381 | 2005-08-22 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200680030814.3A Division CN101248419B (zh) | 2005-08-22 | 2006-08-17 | 信息处理*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101807160A CN101807160A (zh) | 2010-08-18 |
CN101807160B true CN101807160B (zh) | 2012-01-25 |
Family
ID=37771474
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200680030814.3A Active CN101248419B (zh) | 2005-08-22 | 2006-08-17 | 信息处理*** |
CN201010122251.9A Active CN101807160B (zh) | 2005-08-22 | 2006-08-17 | 信息处理*** |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200680030814.3A Active CN101248419B (zh) | 2005-08-22 | 2006-08-17 | 信息处理*** |
Country Status (5)
Country | Link |
---|---|
US (1) | US8607236B2 (zh) |
JP (2) | JP4621999B2 (zh) |
CN (2) | CN101248419B (zh) |
GB (1) | GB2443136B (zh) |
WO (1) | WO2007023726A1 (zh) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4776571B2 (ja) * | 2007-03-16 | 2011-09-21 | 富士通株式会社 | 実行制御プログラム,実行制御方法及び実行制御装置 |
WO2008117339A1 (ja) * | 2007-03-27 | 2008-10-02 | Fujitsu Limited | 計算ジョブ情報管理装置、端末、および、計算ジョブ情報管理システム |
US8812578B2 (en) | 2008-11-07 | 2014-08-19 | International Business Machines Corporation | Establishing future start times for jobs to be executed in a multi-cluster environment |
JP2010183416A (ja) * | 2009-02-06 | 2010-08-19 | Ricoh Co Ltd | 画像処理装置、画像処理方法、プログラムおよび記録媒体 |
DE102010002111A1 (de) * | 2009-09-29 | 2011-03-31 | Native Instruments Gmbh | Verfahren und Anordnung zur Verteilung der Rechenlast in Datenverarbeitungseinrichtungen bei einer Durchführung von blockbasierten Rechenvorschriften sowie ein entsprechendes Computerprogramm und ein entsprechendes computerlesbares Speichermedium |
CN102054509A (zh) * | 2009-10-30 | 2011-05-11 | 炬力集成电路设计有限公司 | 一种随机播放方法和装置 |
WO2011142227A1 (ja) * | 2010-05-14 | 2011-11-17 | インターナショナル・ビジネス・マシーンズ・コーポレーション | コンピュータ・システム、方法及びプログラム |
US8863128B2 (en) * | 2010-09-30 | 2014-10-14 | Autodesk, Inc | System and method for optimizing the evaluation of task dependency graphs |
US8595732B2 (en) * | 2010-11-15 | 2013-11-26 | International Business Machines Corporation | Reducing the response time of flexible highly data parallel task by assigning task sets using dynamic combined longest processing time scheme |
US8875146B2 (en) * | 2011-08-01 | 2014-10-28 | Honeywell International Inc. | Systems and methods for bounding processing times on multiple processing units |
US9207977B2 (en) | 2012-02-06 | 2015-12-08 | Honeywell International Inc. | Systems and methods for task grouping on multi-processors |
US9678791B2 (en) * | 2012-02-14 | 2017-06-13 | International Business Machines Corporation | Shared resources in a docked mobile environment |
US9373074B2 (en) * | 2012-10-09 | 2016-06-21 | Qualcomm Incorporated | Method and apparatus for time management and scheduling for sychronous processing on a cluster of processing nodes |
US9612868B2 (en) | 2012-10-31 | 2017-04-04 | Honeywell International Inc. | Systems and methods generating inter-group and intra-group execution schedules for instruction entity allocation and scheduling on multi-processors |
US20140130056A1 (en) * | 2012-11-05 | 2014-05-08 | Rational Systems Llc | Parallel Execution Framework |
US9379954B2 (en) | 2013-03-15 | 2016-06-28 | Chef Software Inc. | Configuration management for a resource with prerequisites |
US8621062B1 (en) * | 2013-03-15 | 2013-12-31 | Opscode, Inc. | Push signaling to run jobs on available servers |
US20180198855A1 (en) * | 2014-11-24 | 2018-07-12 | Alibaba Group Holding Limited | Method and apparatus for scheduling calculation tasks among clusters |
CN105630583A (zh) * | 2014-11-26 | 2016-06-01 | 阿里巴巴集团控股有限公司 | 一种数据处理方法和装置 |
GB2550053B (en) | 2016-04-01 | 2020-12-09 | Romar International Ltd | Apparatus and method for removing magnetic particles from liquids or slurries from an oil or gas process |
US10296380B1 (en) * | 2016-09-19 | 2019-05-21 | Amazon Technologies, Inc. | Distributed computing with adaptive parallelization |
CN107580197B (zh) * | 2017-08-15 | 2021-03-16 | 移康智能科技(上海)股份有限公司 | 任务处理方法、电子设备及计算机可读存储介质 |
CN112486638A (zh) * | 2019-09-11 | 2021-03-12 | 百度时代网络技术(北京)有限公司 | 用于执行处理任务的方法、装置、设备和存储介质 |
US20230102795A1 (en) * | 2021-09-30 | 2023-03-30 | International Business Machines Corporation | Automatic selection of nodes on which to perform tasks |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5522070A (en) | 1992-03-19 | 1996-05-28 | Fujitsu Limited | Computer resource distributing method and system for distributing a multiplicity of processes to a plurality of computers connected in a network |
JPH0612392A (ja) * | 1992-03-19 | 1994-01-21 | Fujitsu Ltd | 計算機資源分散方法及びシステム |
JPH07219907A (ja) | 1994-02-07 | 1995-08-18 | Fuji Xerox Co Ltd | 負荷分散制御装置 |
JP3847364B2 (ja) * | 1996-02-14 | 2006-11-22 | 富士通株式会社 | ロードシェアシステム |
US6128657A (en) | 1996-02-14 | 2000-10-03 | Fujitsu Limited | Load sharing system |
JP2000293387A (ja) * | 1999-04-05 | 2000-10-20 | Nec Corp | イベント通知システム |
US20020065870A1 (en) * | 2000-06-30 | 2002-05-30 | Tom Baehr-Jones | Method and apparatus for heterogeneous distributed computation |
JP2002073576A (ja) * | 2000-08-31 | 2002-03-12 | Toshiba Corp | バッチジョブ制御システム |
US20020069279A1 (en) | 2000-12-29 | 2002-06-06 | Romero Francisco J. | Apparatus and method for routing a transaction based on a requested level of service |
JP2003006175A (ja) * | 2001-06-26 | 2003-01-10 | Hitachi Ltd | プロセス実行時のプログラム動作特性に基づくプロセススケジューリング方法及びこれを用いたプログラム及びデータ処理装置 |
JP2004171234A (ja) | 2002-11-19 | 2004-06-17 | Toshiba Corp | マルチプロセッサシステムにおけるタスク割り付け方法、タスク割り付けプログラム及びマルチプロセッサシステム |
JP2004280371A (ja) * | 2003-03-14 | 2004-10-07 | Mitsubishi Electric Information Systems Corp | サーバ装置及びプログラム |
-
2006
- 2006-08-17 US US12/064,414 patent/US8607236B2/en active Active
- 2006-08-17 JP JP2007532078A patent/JP4621999B2/ja active Active
- 2006-08-17 CN CN200680030814.3A patent/CN101248419B/zh active Active
- 2006-08-17 WO PCT/JP2006/316161 patent/WO2007023726A1/ja active Application Filing
- 2006-08-17 GB GB0803290A patent/GB2443136B/en active Active
- 2006-08-17 CN CN201010122251.9A patent/CN101807160B/zh active Active
-
2010
- 2010-08-27 JP JP2010190357A patent/JP4737728B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
GB2443136A (en) | 2008-04-23 |
CN101807160A (zh) | 2010-08-18 |
CN101248419B (zh) | 2010-05-19 |
US8607236B2 (en) | 2013-12-10 |
US20090254913A1 (en) | 2009-10-08 |
JPWO2007023726A1 (ja) | 2009-02-26 |
WO2007023726A1 (ja) | 2007-03-01 |
CN101248419A (zh) | 2008-08-20 |
JP4737728B2 (ja) | 2011-08-03 |
JP4621999B2 (ja) | 2011-02-02 |
GB0803290D0 (en) | 2008-04-02 |
JP2010287255A (ja) | 2010-12-24 |
GB2443136B (en) | 2011-04-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101807160B (zh) | 信息处理*** | |
CN100465900C (zh) | 信息***、负载控制方法、负载控制程序和记录媒体 | |
JP3818655B2 (ja) | タスク・スケジューリングの方法、システム、およびプログラム製品 | |
US20050091351A1 (en) | Policy driven automation - specifying equivalent resources | |
CN105141541A (zh) | 一种基于任务的动态负载均衡调度方法及装置 | |
CN1225472A (zh) | 服务器内调度和分派排队客户请求的装置和方法 | |
CN1602468A (zh) | 多策略资源调度的方法和*** | |
US20080144084A1 (en) | Method for managing one or more print processing queues | |
CN101986272A (zh) | 一种云计算环境下的任务调度方法 | |
CN110162388A (zh) | 一种任务调度方法、***及终端设备 | |
CN103401947A (zh) | 多个服务器的任务分配方法和装置 | |
CN103246592A (zh) | 一种监控采集***及方法 | |
CN102929707A (zh) | 并行任务动态分配方法 | |
CN104199912B (zh) | 一种任务处理的方法及装置 | |
KR20200062299A (ko) | 블록체인 트랜잭션들을 선택하기 위한 트랜잭션 선택 디바이스 | |
CN105868008A (zh) | 基于关键资源和数据预处理的资源调度方法及识别*** | |
Khodar et al. | New scheduling approach for virtual machine resources in cloud computing based on genetic algorithm | |
CN105187531A (zh) | 应用于云计算虚拟化服务器集群的负载均衡的***及方法 | |
US8892702B2 (en) | Policy driven autonomic computing-programmatic policy definitions | |
CN103713852A (zh) | 一种信息处理方法、服务平台及电子设备 | |
Kumar et al. | An Approach for Energy-Efficient Resource Allocation Through Early Planning of Virtual Machines to Servers in Cloud Server Farms | |
Yusoh et al. | Clustering composite SaaS components in cloud computing using a grouping genetic algorithm | |
Lin | Scheduling efficiency on correlated parallel machine scheduling problems | |
CN105872109A (zh) | 云平台负载运行方法 | |
Thakor et al. | PDLB: an effective prediction-based dynamic load balancing algorithm for clustered heterogeneous computational environment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C56 | Change in the name or address of the patentee |
Owner name: NIPPON STEEL + SUMITOMO METAL SYSTEM INTEGRATION C Free format text: FORMER NAME: NIPPON STEEL SYTEM INTEGRATION CO. LTD. |
|
CP01 | Change in the name or title of a patent holder |
Address after: Tokyo, Japan, Japan Patentee after: Nippon Steel & Sumitomo Metal System Integration Co., Ltd. Address before: Tokyo, Japan, Japan Patentee before: Nippon Steel Sytem Integration Co., Ltd. |