任务分配方法和任务分配装置的制作方法

文档序号:6563613阅读:155来源:国知局
专利名称:任务分配方法和任务分配装置的制作方法
技术领域
本发明涉及在由具有处理器的多个节点构成的分散处理系统中,对各节点分配任务的技术。
背景技术
在由具有处理器的多个节点构成的分散处理系统中,为了执行应用,需要决定应由哪个节点执行应用的任务。这种情况下,对于某个事件的结果会对全部的节点产生影响的重要的计算,总是成为维持匹配性的问题。在以往,已知有将事件在节点间相互地通信从而由各节点维持匹配性的方式,或通过代表节点起到专用服务器的作用,仅由代表节点执行重要的任务而维持匹配性的方式。
但是,在上述第1方式,有时各节点中的运算结果不同而失去匹配性。而在第2方式,采取在起专用服务器的作用的代表节点上连接其他节点的方式。因此,在应用的执行中难以将代表节点变更为其他节点,并追加新的节点。

发明内容
本发明鉴于这样的课题而完成,其目的是,在由具有处理器的多个节点构成的分散处理系统中,提供用于判定应该对哪个节点分配应用的任务的技术。
本发明的一个方式是任务分配方法,在包含可相互通信地连接了分别具备处理器的多个节点的分散处理系统中,将具有先后关系的多个任务分配到各节点。在该方法中,使一个或多个处理器执行以下处理对于各任务,计算将最早可处理开始时刻的最先开始时刻和时间制约内结束任务的最迟开始时刻的最迟开始时刻,计算最先开始时刻和最迟开始时刻之间的差分的任务可动范围,从任务可动范围小的任务起顺序地决定分配目的地节点。
这里,‘任务’指为了实现某个目的而被编程的应用或该任务中所包含的信息处理的内容,可以与应用对应,可以与输入输出控制或用户指定的命令等比应用小的单位对应,也可以与几个处理或功能的单位对应。
根据该方案,由于各任务的分配目的地节点基于任务可动范围而决定,所以能够事先不确定代表节点,而将应用任务从处理时间的观点分配给最合适的节点。
再有,将本发明的结构部件和表现在系统、计算机程序、存储了计算机程序的记录媒体之间相互置换所得到的方案,作为本发明的方式也是有效的。


图1是实施方式的分散应用执行系统的结构图。
图2是表示构成各节点的通用计算机的概略结构的图。
图3是表示在各节点所执行的任务和任务间的执行顺序的制约的图。
图4是表示一例任务分配结果的图。
图5是实施方式的执行任务分配处理的节点的功能方框图。
图6是任务分配处理的主流程图。
图7(a)是示意地表示AEST的计算方法的图,图7(b)是表示一例任务间的依存关系的图。
图8是AEST的计算处理的流程图。
图9(a)是示意地表示ALST的计算方法的图,图9(b)是表示一例任务间的依存关系的图。
图10是ALST的计算处理的流程图。
图11是图6中的任务分配处理的流程图。
图12是节点选择单元的详细功能方框图。
图13是图11中的节点选择处理的流程图。
图14是图13中的前处理的详细流程图。
图15是图13中的主循环(loop)的详细流程图。
图16是图13中的主循环的详细流程图。
图17是图13中的后处理的详细流程图。
图18是图15、图16中的空闲时间检测处理的流程图。
图19(a)、图19(b)是示意地表示空闲时间检测处理的计算方法的图。
图20是说明图18的S200中的‘PUSH型插入’的图。
图21是表示作为任务分配的执行对象的任务路径的具体例的图。
图22是表示记载了任务处理时间、通信时间、事先指定节点的任务路径的图。
图23是表示图22的各任务的AEST、ALST、任务可动范围的表。
图24是表示将任务1-4和任务1-5分组后的任务路径的图。
图25是表示图24的各任务的AEST、ALST、任务可动范围的表。
图26是表示将任务1-4、1-5、1-6分配到节点1后的任务路径的图。
图27是表示任务分配处理后的任务路径的图。
具体实施例方式
以下,参照优选实施方式来说明本发明。这并不意味着限定本发明的范围,而只是例示本发明。
本发明涉及在由多个节点构成的分散处理系统中,在执行应用时,将任务分配到各节点以使任务具有的时间制约充足的技术。
以下,在说明了本发明的一实施方式的系统结构、以及该系统所执行的任务的概略后,参照流程图而详细地说明各功能块的动作。
图1是本发明的实施方式的分散应用执行系统的结构图。各节点10由通用计算机构成,分别具备一个以上的CPU。设各CPU可使用同一命令集。各节点10通过以因特网为首的网络30而相互可进行数据发送接收地构成。在图1中,节点1~5的5台计算机被连接到网络30,但在构成分散处理系统的节点的数目上没有限制。
在图1的环境中,分散应用被执行。这里,‘分散应用’指同时使用由网络连接的多个CPU装载设备,并推行分担处理形式的应用。
图2表示构成各节点的通用计算机100的概略结构。计算机100包括CPU12、主存储器14、存储装置16、输入输出接口20和显示控制装置28。CPU12对计算机100的整体进行控制,同时执行对节点的任务分配程序。主存储器14存储各种数据或扫描处理程序等。它们通过总线18而被连接,相互可进行数据的发送接收。显示控制装置28上,连接将应用执行的结果所生成的图像输出的显示器26。输入输出接口20上,连接CD-ROM、DVD-ROM或硬盘驱动器等的外部存储装置22,以及用于对计算机100输入数据的键盘或鼠标等的输入装置24。输入输出接口20控制对于外部存储装置22及输入装置24的数据的输入输出。输入输出接口20读入外部存储装置22中所存储的数据或程序,并将其提供给主存储器14。在输入输出接口20上,还连接与构成其他节点的计算机进行通信,从而取得数据和程序的通信装置60。
在以下的实施方式中,作为分散应用,假定说明网络对抗型的格斗游戏,但可应用本发明的应用不限于此,能够适用于任务需要用多个节点的任意的分散处理系统。
图3表示在上述游戏应用中,由担当对各参与者的处理的节点所要执行的任务、及任务间的执行顺序的制约的概略。图中的方框分别表示任务,箭头表示任务间的执行顺序的制约。实线的长方形框表示应仅由各参与者的担当节点所执行的任务。例如,如果BGM演奏31、密钥输入32、背景显示36、角色显示39、效果音产生40的任务不在各节点对各个参与者执行,则不形成作为游戏应用的意义。长方形中加入纵线的框表示用被网络连接的任意的节点可执行的任务。角色移动、坐标计算33和损失计算37仅在各参与者的节点输出使用了该计算结果的显示,不选择被执行的节点。
双重包围的框表示应由一处的节点执行对所有参与者的计算的任务。被执行的节点是任意的。冲突判定34是计算游戏环境内的角色间的接触结果的任务,但这样的计算在由多个节点执行时有未获得匹配的情况,所以在全部参与者的坐标计算结束后应由一处的节点集中运算。而且,虚线的长方形框表示可以由一个节点计算,也可以由分散的多个节点计算的任务。计算与游戏环境内的角色的移动无关地变化的背景的背景变化计算35,如果其计算结果被提供给各节点,则用一个节点执行就可以。
图4表示本实施方式的一例任务分配结果。图4中的节点1-5与图1的节点1-5对应。其中,节点1是担当参与者1的处理的节点,节点5是担当参与者2的处理的节点,节点2~4设为没有参与者的节点。在图4中,在实线长方形的框和长方形中加入纵线的框中,没有斜线的框表示与参与者1有关的任务,带有斜线的框表示与参与者2有关的任务。
如图4所示,密钥输入32、BGM演奏31、背景显示36这样的任务被分配到对各参与者所分配的节点1、节点5上。在图4中,有关参与者1的角色移动、坐标计算33不是被分配到节点1而是被分配到节点2,有关参与者2的角色移动、坐标计算33不是被分配到节点5而是被分配到节点4。此外,应由一处节点执行的冲突判定34从节点2和节点4的角色移动、坐标计算33分别接受数据并在节点3上执行,其计算结果被传送到对节点1、2、5所分配的任务中。其结果,在全部的节点上保持计算结果的匹配性,同时在节点1和节点5中,实现声音再现和画面显示。再有,该任务分配是一例,其他分配结果也当然存在。
这样,简单来说,谈到任务,是应该用特定的节点进行处理,还是用任意的节点进行处理等,条件是各种各样的。此外,每个任务的处理时间也不同,在任务间传送运算结果所需的时间也不相同。而且,游戏应用伴随画面的扫描,所以在1帧(例如1/60秒)以内必须将参与者一个人的处理、即从密钥输入至画面显示为止的一连串的处理结束。
因此,在分散应用执行环境中,将应用内的任务分配到哪个节点,对全部节点的运算结果的匹配性、用于确保实时性的处理等会产生很大的影响。
以下,说明有关在图1所示的分散应用执行系统中,将应用的任务自动并且合适地分配的任务分配方法。
图5是执行实施方式的任务分配处理的节点10的功能方框图。各框执行必要的处理,以便在分散应用执行环境中实现任务分配。再有,节点10能够由CPU、RAM、ROM等结构硬件地实现,也可以由发挥数据输入功能、数据保持功能、运算功能、通信功能等诸功能的程序软件地实现,但在图5中绘制有通过它们的协同而实现的功能块。因此,这些功能块可以通过硬件、软件的组合而以各种各样的形式来实现。
用户输入单元102通过键盘或鼠标等的输入装置接受来自用户的数据输入。
信息收集单元102收集用于决定任务分配所需的各种信息。信息收集单元108包括取得与任务有关的信息的任务信息取得单元110;取得与节点有关的信息的节点信息取得单元112;以及接受后述的事先指定的事先指定接受单元118。
在任务信息取得单元110取得的任务信息中,包含任务间的先后关系、为确保实时性而对各任务所判定的时间制约、作为最差情况下的各任务的处理所需的时间的任务处理时间、任务间的传送数据量。这里,控制制约例如是将某个应用以规定的间隔周期性地重复执行时,该间隔可变成时间制约,或将某个应用的执行从开始至结束的限制时间也是制约条件之一。该时间制约在以下的说明中作为‘截止期限时刻’来表现。
在节点信息取得单元112取得的节点信息中,包含节点表、节点间通信等待时间(latency)、节点间通信吞吐量、节点资源信息。其中,节点资源信息是与应分配任务的各节点中的计算负载的状态、各节点的CPU处理能力、存储器容量有关计算资源的信息。这些信息通过未图示的负载监视单元从连接于网络的各节点接受当前时刻的负载量的通知,或通过在操作系统中设置用于传送这些信息的机构而取得。
再有,从任务间的传送数据量、节点的等待时间、吞吐量信息,能够计算任务间的通信时间。
此外,在事先指定接受单元118接受的信息中,包含任务分配节点事先指定、任务组事先指定。
各任务的时间制约、任务处理时间、任务间传送数据量、节点表、节点间通信等待时间、节点间通信吞吐量使用所执行的应用的编程器预先输入的参数,或也可以使用程序解析单元104用程序解析工具对应用程序进行解析而估计的结果。节点间通信等待时间和节点间通信吞吐量也可以使用从网络结构所估计的估计值。
存储单元130存储由信息收集单元108取得的任务分配处理上所需的各种数据。任务信息存储单元120存储任务先后关系、任务时间制约、任务处理时间、任务间传送数据量、任务分配节点事先指定信息、任务组事先指定信息。节点信息存储单元126存储节点列表、节点间通信等待时间、节点间通信吞吐量、节点资源信息。
任务分配单元140参照存储单元130中存在的各种信息中至少一个信息,执行对网络内的节点分配应用任务的任务分配处理。任务分配单元140包括开始时刻计算单元144、对象任务选择单元146、节点选择单元148。
开始时刻计算单元144对于各任务或任务组,分别计算最先开始时刻(AESTAbsolute Earliest Start Time)和最迟开始时刻(ALSTAbsolute LatestStart Time)。有关AEST的计算,参照图7和图8进行说明,有关LAST的计算,参照图9和图10进行说明。
对象任务选择单元146选择成为任务分配的对象的任务。在这种选择中,利用上述AEST和ALST。有关这种对象任务选择处理,参照图11的流程图进行说明。
节点选择单元148执行将成为任务分配的对象的任务(以下,称为‘分配对象任务’)分配到网络内的哪个节点的节点选择处理。有关这种处理,参照图13~图17的流程图进行说明。
任务配置单元150根据任务分配单元140中的处理结果而将任务配置到各节点,传送使任务实际地动作的必要的信息,即任务的程序码、初始数据、有先后关系的被分配任务的节点等信息。也可以取代程序码本身,在各节点的存储装置中预先记录多个码,从而传送必要的码的管理号等。
配置的任务在各节点被分散处理。此时,即使各节点分别方便地开始任务的执行,也有可能不能取得统一控制。因此,为了等待可执行分散应用的全部任务,实现在全部节点一起开始任务的执行等的处理,任务配置单元150将执行的开始、中断、停止等的命令发行到各节点就可以。
任务配置单元150在网络内的各节点的状况变化,例如,被追加了新的节点,或节点从网络被切断,从而难以执行各任务的情况下,也可以对任务分配单元140指示以进行任务的再配置。
下面,说明本实施方式的任务分配处理的概要。
对于各任务,求任务的最先开始时刻AEST和用于维护截止期限(deadline)时刻的最迟开始时刻ALST,选择其差最小的任务,即时间上裕度最少的任务,决定该任务的分配目的地的节点。AEST或ALST考虑任务处理时间和任务间的通信时间等来计算。决定了一个任务的分配目的地节点后,根据该结果而对全部任务再计算AEST和ALST,根据该计算结果决定下个分配对象任务。这样不断进行,从重要的任务起决定分配目的地的节点。
图6是在节点10实施的任务分配处理的主流程图。
首先,应用的编程器将与节点和任务有关的规定的信息存储在网络内的其中一个节点中。该存储目的地优选是执行任务分配处理的节点上所连接的存储装置,但也可以是通过网络连接的其他节点的存储装置。应存储的信息是上述时间制约和任务处理时间。在有应仅在特定的节点执行的任务的情况下,还存储节点事先指定信息和组事先指定信息。取代将上述信息作为固定值而预先准备,也可以通过各节点对应用程序进行解析而求这些信息。
接着,网络内的某个节点的信息收集单元108取得上述任务信息、节点信息和事先指定信息(S12)。接着,决定是否对各节点分配哪个任务。该任务分配处理分成五阶段执行。首先,对于节点事先指定的某个任务执行分配处理(S14)。这里,将任务简单地分配到所指定的节点。但是,此时,在对有节点事先指定的任务中有组事先指定的情况下,对指定的节点分配组的全部任务。接着,将没有节点事先指定的任务分别分配到其他的虚拟节点(S16)。但是,此时,对于有组事先指定的任务,对每组分配到相同的虚拟节点。接着,在对虚拟节点所分配的任务中,对于有截止期限制约的任务,参照图11执行后述的任务分配处理(S18)。进而,对虚拟节点所分配的任务中,对于没有截止期限制约的任务,执行后述的任务分配处理(S20)。最后,在将节点上所分配的全部任务的执行时刻设定为S14~S20中所计算的AEST的基础上,任务配置单元150对各节点进行配置,以使任务在各个AEST的时刻被执行(S22)。
再有,担当图6的任务分配处理的节点优选是产生分散应用的执行请求的节点。因此,分配处理的担当节点有可能是应用的全体执行请求者。但是,由于分配处理同时并行进行,所以在各节点的负载状态等以这种定时被更新时,根据需要而构成可进行分配处理的再执行。
再有,也可以将分散应用执行系统内的其中一个节点按其他方法决定为担当任务分配处理的节点。这种情况下,将担当分配处理的节点预先限定为系统内的几个节点就可以。
这里,对于AEST和ALST进行说明。
最先开始时刻AEST表示对某个任务最早可处理开始的时刻。最先开始时刻如以下那样来求。对于计算对象的任务的全部的先行任务,在该先行任务的最先开始时刻,求将该先行任务的处理时间和从该先行任务至计算对象任务为止的通信时间相加的时刻,该计算值为最大(即,最大时刻的延迟)的时刻成为计算对象任务的AEST。
最迟开始时刻ALST表示用于将某个任务在时间制约内结束的最迟开始时刻。最迟开始时刻如以下那样来求。(1)在计算对象的任务中有截止期限制约的情况下,(1-1)对于计算对象任务的全部后续任务,计算从该后续任务的最迟开始时刻中减去计算对象任务的处理时间和从计算对象任务至其后续任务为止的通信时间所得的时刻,(1-2)计算从计算对象的截止期限时刻减去该计算对象任务的处理时间所得的时刻,这些计算值中最小的时刻(即,最早的时刻)成为计算对象任务的ALST。(2)在计算对象的任务中没有截止期限制约的情况下,对于计算对象任务的全部的后续任务,计算从该后续任务的最迟开始时刻减去计算对象任务的处理时间和从计算对象任务至其后续任务为止的通信时间所得的时刻,该计算值最小(即,最早的时刻)的时刻成为计算对象任务的ALST。
关于AEST、ALST的运算方法,记载于Yu-Kwong Kwok,Ishfaq Ahmad,Dynamic Critical-Path SchedulingAn Effective Technique for Allocating TaskGraphs to Multiprocessors,IEEE Transactions on Parallel and Distributed Systems,1996 March,vol.7,pp.506-521。在本说明书中仅说明其概要。
图7(a)示意地表示AEST的计算方法,图7(b)表示一例任务间的依存关系。在图7(b)中,白圈内的数字表示任务号,箭头表示依存关系。即,在图7(b)中,作为‘任务4’的先行任务,表示有‘任务1’、‘任务2’、‘任务3’。
这里,‘任务间的依存关系’是指某个任务的处理结果被用于其他任务的处理的关系。在相互为依存关系的任务中,将比对象任务时间上先行的任务称为‘先行任务(也称为母任务)’,将时间上后续的任务称为‘后续任务(也称为子任务)’。
任意的节点J中的某个任务ni的AEST按以下算式计算。再有,ni是作为AEST的计算对象的任务,nik是任务ni的第k的先行任务,设1≤k≤p,即ni的先行任务为p个。
AEST(ni,J)=max1≤k≤p{AEST(nik,PE(nik))+w(nik)+r(PE(nik),J)cki}…(1)其中,PE(nik)是分配了任务ni的第k的先行任务的节点号。w(nik)表示先行任务nik的处理时间。如果先行任务的分配节点PE(nik)和对象任务的分配节点J为相同的节点,则r(PE(nik),J)为0,不同的情况下为1的系数。cki是从先行任务至对象任务的通信时间。在算式(1)中,左边表示‘对象任务ni的节点J中的AEST’,右边的第1项表示‘先行任务nik的AEST’,第2项表示‘先行任务nik的处理时间’,第3项表示‘先行任务nik和对象任务ni间的通信时间’。
但是,对于先头的任务(入口(entry)任务),先行任务不是一个,所以AEST=0。
以下,以图7(b)所示的任务间的依存关系为例,对于计算任务4的AEST的步骤具体地论述。在图7(b)中,任务4的先行任务为任务1~任务3的三个任务,所以k=1~3。而在算式(1)中i=4,n4为任务4,n41为任务1,n42为任务2,n43为任务3。
任务1、任务2、任务3被分别分配到节点1、2、3时,PE(n41)=PE(1)=1,PE(n42)=PE(2)=2,PE(n43)=PE(3)=3。该条件下,根据算式(1)计算将任务4分配到节点2时的AEST(4,2)时,变成如下面算式(图7(a)的块168)。
AEST(4,,2)=max1≤k≤3{AEST(n4k,PE(n4k))+w(n4k)+r(PE(n4k),2)ck4}…(2)在算式(2)中k=1时,因n41对应于任务1(块162),所以下面算式成立。
AEST(1,PE(1))+w(1)+r(PE(1),2)c14=AEST(1,1)+w(1)+r(1,2)c14…(3)在算式(2)中k=2时,因n42对应于任务2(块164),所以下面算式成立。
AEST(2,PE(2))+w(2)+r(PE(2),2)c24=AEST(2,2)+w(2)+r(2,2)c24=AEST(2,2)+w(2)…(4)在算式(2)中k=3时,因n43对应于任务3(块166),所以下面算式成立。
AEST(3,PE(3))+w(3)+r(PE(3),2)c34=AEST(3,3)+w(3)+r(3,2)c34…(5)在算式(3)至算式(5)的计算结果中,将最大的结果决定为AEST(4,2)。
图8将上述处理作为流程图来表示。首先,将对象任务ni假设分配到某个节点J(S50)。开始时刻计算单元144计算对象任务ni的先行任务的AEST(S52),从任务信息存储单元120取得先行任务的处理时间(S54)。此外,开始时刻计算单元144从任务信息存储单元120取得任务间传送数据量,从节点信息存储单元126取得等待时间、吞吐量,计算将对象任务ni分配到节点J时的从先行任务至对象任务ni的任务间通信时间(S56)。在先行任务和对象任务ni处于同一节点的情况下,通信时间为‘0’。
接着,根据算式(1),将S52~S56中取得的值相加(S58)。即,将S52中算出的先行任务AEST、S54中取得的先行任务处理时间和S56中取得的任务间通信时间相加。对于对象任务ni的全部的先行任务nik执行以上的S50~S58的运算,并将S58中算出的计算结果中最大值决定为对象任务ni的AEST(S60)。
图9(a)示意地表示ALST的计算方法,图9(b)表示一例任务间的依存关系。与图7(b)同样,白圈内的数字表示任务号,箭头表示依存关系。即,在图9(b)中,表示作为‘任务1’的后续任务是‘任务4’,作为‘任务2’的后续任务是‘任务4’和‘任务5’,作为‘任务3’的后续任务是‘任务5’。
ALST表示为了使全部任务结束而应开始该任务的处理的最后的定时。任意节点J上的某个任务ni的ALST按下面算式计算。再有,ni是作为ALST的计算对象的任务,nim是任务ni的第m的后续任务,设1≤m≤q,即ni的后续任务为q个。
ALST(ni,J)=min1≤m≤q{ALST(nim,PE(nim))-r(PE(nim),J)cim-w(ni),Deadline(ni)-w(ni)}…(6)其中,PE(nim)是分配了任务ni的第m的后续任务的节点号。w(ni)表示对象任务的处理时间。r(PE(nim),J)是如果后续任务nim的分配节点PE(nim)和对象任务的分配节点J相同则为0,不同的情况下为1的系数。cim是从对象任务至后续任务的通信时间。在算式(6)中,左边表示‘对象任务ni的节点J中的ALST’,右边的第1项表示‘后续任务nim的ALST’,第2项表示‘对象任务ni和后续任务nim间的通信时间,第3项表示‘对象任务ni的处理时间’。
但是,对于最后的任务(出口任务)如以下那样。
有截止期限的情况ALST=(截止期限时间Deadline(ni))-(处理时间w(ni))无截止期限时刻的指定的情况ALST=∞因此,在对于无截止期限时刻的指定的路径和有截止期限时刻的路径分别计算了ALST的情况下,经常采用有截止期限时刻的路径的ALST。
再有,截止期限制约不仅是出口任务,而且也可设定在路径中途的任务中。
以下,以图9(b)所示的任务间的依存关系为例,对于计算有关任务2的ALST的步骤,具体地进行论述。在图9(b)中,任务2的后续任务有任务4和任务5两个,所以m=1,2。此外,在算式(6)中使i=2,n2为任务2,n21为任务4,n22为任务5。
任务4、5被分别分配到节点1、3时,PE(n21)=PE(4)=1,PE(n22)=PE(5)=3。在该条件之下,根据算式(6)计算将任务2分配到节点2时的ALST(2,2),变成下面算式。
ALST(2,2)=min1≤m≤2{ALST(n2m,PE(n2m))-r(PE(n2m),J)c2m-w(n2),Deadline(n2)-w(n2)} …(7)在算式(7)中m=1时,因n21对应于任务4(块178),所以下面算式成立。
{ALST(4,PE(4))-r(PE(4),2)c24-w(2),Deadline(2)-w(2)}={ALST(4,1))-r(1,2)c24-w(2),Deadline(2)-w(2)}…(8)在算式(7)中m=2时,因n22对应于任务5(块184),所以下面算式成立。
{ALST(5,PE(5))-r(PE(5),2)c25-w(2),Deadline(2)-w(2)}={ALST(5,3))-r(3,2)c25-w(2),Deadline(2)-w(2)}…(9)将算式(8)、算式(9)的计算结果中最小的结果决定为ALST(2,2)。在图9(a)的例子中,与算式(8)的结果对应的块174的ALST(2,2)比与算式(9)的结果对应的块180的ALST(2,2)小,即时刻早,所以块174的ALST(2,2)被采用。
图10将上述处理作为流程图来表示。首先,将对象任务ni虚拟地分配到某个节点J(S70)。开始时刻计算单元144计算对象任务ni的后续任务的ALST(S72),从任务信息存储单元120取得对象任务ni的处理时间(S74)。此外,开始时刻计算单元144从任务信息存储单元120取得任务间传送数据量,从节点信息存储单元126取得等待时间和吞吐量,计算将对象任务ni分配到节点J时的从对象任务ni至后续任务的通信时间(S76)。与AEST的情况同样,对象任务ni和后续任务处于同一节点的情况下,通信时间为‘0’。
接着,对于S72~S76中计算的值,计算‘后续任务ALST-(对象任务处理时间+通信时间)’(S78)。进而,开始时刻计算单元144计算从截止期限时刻减去对象任务的处理时间所得的时间(S80)。对于对象任务ni的先行任务nim全体执行S70~S80的一连串的运算,将S78、S80中算出的计算结果中最小值决定为对象任务ni的ALST(S82)。
接着,详细论述图6的流程图的各步骤。
图11是图6中的任务分配处理S18、S20的流程图。S18、S20只是作为分配对象的任务有所不同,但重复进行相同的处理内容。这里,将没有节点事先指定的任务分配到各个虚拟节点的状态作为初始状态,执行将各节点分配到实际存在的节点的处理。任务分配处理包括以下所述的S30~S44的对象任务选择处理和S46的节点选择处理。
首先,开始时刻计算单元144根据图8的流程图计算作为对象的全部任务的AEST(S30),接着根据图10的流程图计算全部任务的ALST(S32)。对象任务选择单元146判定作为对象的全部任务是否已分配到不是虚拟节点的其中一个节点(S34)。如果已分配(S34为“是”),则结束任务分配处理。而如果有未被分配到虚拟节点的任务(S34为“否”),则对象任务选择单元146对于未分配的任务计算ALST和AEST的差分(ALST-AEST)(以下,将它称为‘任务可动范围’),并选择任务可动范围为最小的任务(S36)。如果在S36中能够选择一个任务(S38为“是”),则跳过S40~S44。在S36中任务可动范围相等的任务有多个的情况下(S38为“否”),对象任务选择单元146在它们之中选择与在先行任务或后续任务之间具有最长的任务间通信时间的路径的任务(S40)。如果在S40中能够选择一个任务(S42为“是”),则跳过S44。在S42,通信时间相等的任务有多个的情况下(S42为“否”),对象任务选择单元146从这些任务之中选择具有最小的AEST的任务(S44)。因而,决定作为分配的对象的任务时,节点选择单元148将执行节点选择处理从而将分配对象任务分配到其中一个节点(S46)。其结果,由于其他任务的AEST和ALST也变化,所以重复进行自S30起的处理。
再有,在S40中,通信路径的两侧的任务,即发送端的任务和接收端的任务都在未分配的阶段,所以不能求任务间通信时间。这种情况下,对象任务选择单元146也可以使接收端的任务(换句话说,更后续端的任务)优先而作为分配对象的任务来选择。由此,能够优先实施后述的任务的分组。
图11的分配处理在对虚拟节点(包含后述的用于分组的虚拟节点)上所分配的全部任务在被分配到不是虚拟的实际存在的节点上的时刻结束(参照图17)。
再有,有关计算虚拟节点的任务间通信时间时使用的等待时间、吞吐量,可考虑使用预先确定的固定值,或使用实际存在的节点的等待时间、吞吐量的平均值的方法。
将图11的流程图中的处理归纳时,在本实施方式中,‘最重要的’任务按以下三个基准来选择。
评价基准1ALST和AEST的差分(任务可动范围)最小的任务评价基准2在作为候选的任务有多个时,具有最长的任务间通信时间的路径的任务评价基准3在基准2中也作为候选的任务有多个时,AEST最小的任务图12是节点选择单元148的详细的功能方框图。在该图中,这些功能块能够通过硬件、软件的组合而以各种各样的形式实现。
节点选择单元148包括前处理单元200、节点选择判定单元210和后处理单元230。
前处理单元200在选择任务的分配目的地节点时执行必要的处理。对象任务确认单元202从存储单元130取得分配对象任务的截止期限时刻的有无、处理时间、通信时间、是否有节点事先指定和组事先指定的信息。先后任务确认单元204从存储单元130取得有关分配对象任务的先行任务和后续任务的信息。节点表生成单元206参考对象任务确认单元202和先后任务确认单元204的信息,生成包含了可配置分配对象任务的节点信息的节点表。
节点选择判定单元210基于AEST、ALST和前处理单元200准备的信息等,选择将分配对象任务分配的节点。
节点表生成单元206生成的节点表被存储在节点表存储单元220中。此外,图5的开始时刻计算单元144算出的AEST和ALST被存储在开始时刻存储单元222中。
空闲时间检测单元214在选择了将分配对象任务虚拟地分配的节点(以下,称为‘候选节点’)后,使用开始时刻存储单元222内的AEST和ALST,检测使候选节点上的分配对象任务的执行可进行的空闲时间。更具体地说,对各节点计算将分配对象任务分配的情况下的虚拟AEST。如果能够将分配对象任务分配到候选节点,则假定为分配以在该虚拟AEST中开始,求能够最早开始分配对象任务的最重要的后续任务的时刻(后续任务AEST)。然后,将后续任务AEST最小的节点作为分配对象任务的分配目的地来选择。在候选节点有多个的情况下,使虚拟AEST最小的节点优先。AEST条件判定单元224执行由空闲时间检测单元214算出的AEST的条件判定。
再有,‘最重要的后续任务’从分配对象任务的后续任务之中,根据上述评价基准1~3来决定。此时,对于ALST和AEST的差分和AEST,使用有关各后续任务的值,但对于任务间通信时间,要注意的是使用分配对象任务和各后续任务之间的通信时间。
后处理单元230接受由节点选择单元210选择出的节点,执行必要的后处理。后处理单元230根据需要而包括用于执行将任务分组的分组单元226。
图13是节点选择处理的流程图。在前处理,生成用于列举作为分配对象任务ni的分配目的地候选的节点的节点表(S90)。对于节点表内的各节点执行主循环,从而选择将分配对象任务ni配置的节点(S92)。在后处理,在将分配对象任务ni分配到所选择的节点后,在该节点为后述的虚拟节点的情况下,执行任务的分组(S94)。
图14是图13中的S90的前处理的流程图。
节点表生成单元206判定是否有分配对象任务ni的节点事先指定(S100)。如果有节点事先指定(S100为“是”),则将该节点加入到节点表中(S102)。如果没有节点事先指定(S100为“否”),则检索有可配置分配对象任务ni的空闲资源的节点,将该节点加入到节点表中(S104)。
接着,节点表生成单元206确认在分配对象任务ni中是否存在截止期限时刻(S106)。在没有截止期限时刻的情况下(S106为“否”),跳过后续的S108、S110。在有截止期限时刻的情况下(S106为“是”),进而判定分配对象任务的最重要的先行任务是否已分配到其中一个节点(S108)。如果已分配(S108为“否”),则跳过S110,如果未分配(S108为“是”),则在节点表中追加虚拟节点(S110)。该虚拟节点用于将任务临时地分组。然后,对主循环使用的各变量设置初始值(S112)。前处理至此结束。
再有,‘最重要的先行任务’从分配对象任务的先行任务之中,根据上述评价基准1~3来决定。此时,对于ALST和AEST的差分和AEST,使用有关各先行任务的值,但对于任务间通信时间,要注意的是使用各先行任务和分配对象任务之间的通信时间。
图15和图16是图13中的S92的主循环的流程图。
空闲时间检测单元214判定有关节点表内的全部节点的检测处理是否结束(S120)。在未结束的情况下,从节点表中将一个节点作为侯选节点J来选择(S122),对候选节点J判定是否仅剩余将分配对象任务ni分配的资源(S123)。如果在资源上没有裕度(S123为“否”),则返回到S120。如果资源剩余(S123为“是”),则对该节点执行空闲时间检测处理,从而求分配对象任务ni的虚拟AEST(S214)。如果可计算虚拟AEST(S126为“是”),则进至图16。如果不能计算虚拟AEST(S126为“否”),则返回到S120。
转移到图16,空闲时间检测单元214判定是否有对象任务ni的重要后续任务nc(S140)。在有重要后续任务nc的情况下(S140为“是”),将任务ni虚拟地分配到侯选节点J(S142)。空闲时间检测单元214判定是否有任务nc的节点指定(S146)。这种节点指定包含节点事先指定和通过它的算法而决定分配目的地的情况的两者。在没有节点指定的情况下(S146为“否”),通过空闲时间检测处理,计算将后续任务nc分配到侯选节点J时的后续任务的AEST(S148)。在有节点指定的情况下(S146为“是”),计算将后续任务nc对指定节点分配时的后续任务的AEST(S150)。如果重要后续任务nc已经分配,则值因分配对象任务ni而改变,所以对重要后续任务nc的AEST进行再计算。在重要后续任务nc中有节点事先指定,并且该指定的节点中没有充分的资源的情况下,使重要后续任务nc的AEST为‘∞’。再有,在不存在重要后续任务nc的情况下,使后续任务AEST为‘0’。计算后续任务的AEST时,将虚拟分配的分配对象任务ni原样返回(S152)。
接着,AEST条件判定单元224判定在S148或S150中求出的后续任务AEST是否低于S156中设置的最小后续任务AEST(S154)。即,在分配对象任务ni的分配目的地节点中,使后续任务AEST最小的任务优先。这是因为后续任务的AEST越小,使节点路径越短,从而能够缩短任务间通信时间。如果后续任务AEST最小(S154为“是”),则AEST条件判定单元224将侯选节点J暂定地设为最佳节点,并将最小后续任务AEST用当前的后续任务AEST盖写。而且,将最小对象任务AEST用对象任务AEST盖写(S158)。流程返回到图15的S120,对于节点表内的其他节点重复进行上述处理。
后续任务AEST为最小后续任务AEST以上的情况下(S154为“否”),AEST条件判定单元224进而判定后续任务AEST是否与最小后续任务AEST相等,并且虚拟AEST是否低于S158中被设定的最小虚拟AEST(S156)。如果后续任务AEST与最小后续任务AEST相等,并且虚拟AEST最小(S156为“是”),则进至S158。在后续任务AEST比最小后续任务AEST大,或虚拟AEST不是最小的情况下,由于不能将对象任务分配到该侯选节点J,所以流程返回到S120,对于其他节点重复进行上述处理。
图17是图13中的S94的后处理的流程图。
在图15的S120中,在对于节点表内的全部节点的处理结束时,流程移动到图17。后处理单元232判定在上述处理中是否存在最佳节点(S170)。在不存在最佳节点的情况下,即看不到分配对象任务ni的虚拟节点的情况下(S170为“否”),该节点选择处理失败(S172),执行合适的后续处理。在存在最佳节点的情况下(S170为“是”),将分配对象任务ni分配到该最佳节点(S174)。在所分配的节点为虚拟节点的情况下(S176为“是”),分组单元226在执行了任务的分组处理后(S178),将节点表复位(S180),本次的节点选择处理成功(S182)。在所分配的节点不是虚拟节点的情况下(S176为“否”),跳过S178和S180。
图18是图15的S124、图16的S148和S150的空闲时间检测处理的详细流程图。空闲时间检测单元214对于已分配到候选节点J上的全部任务,计算AEST和ALST(S190)。再有,这种计算也可以由开始时刻计算单元144执行。接着,选择可配置对象任务的位置(S192),在从先行任务的结束时刻至后续任务的开始时刻为止的期间,判定是否有对象任务ni的处理时间的空闲(S194)。如果有空闲时间(S194为“是”),则输出该任务的AEST(S196)。如果没有空闲时间(S194为“否”),则在该节点内,判定是否对于有配置对象任务的可能性的全部位置进行了研讨(S198),如果有未研讨的配置(S198为“否”),则返回到S192而对其他配置进行研讨。在对全部为位置进行确认的情况下(S198为“是”),判定能否利用‘PUSH型插入’的配置(S200)。
这里,对PUSH型插入进行说明。通过使已经分配到侯选节点J上的各任务的ALST延迟,从而研讨是否将对象任务ni(分组后的任务的情况下,相同组的全部任务)分配到候选节点J。即,容许应用整体的结束时刻延迟,从而可将对象任务必须分配到其中一个实际存在的节点。
如果可进行利用PUSH型插入的配置(S200为“是”),则输出该任务的AEST(S196)。如果不能进行利用PUSH型插入的配置(S200为“否”),则不能对该节点J进行对象任务的分配。
图19(a)、图19(b)是示意地说明图18的空闲时间检测处理的图。在空闲时间检测处理,不使已经分配到侯选节点J上的各任务的最迟开始时刻ALST延迟,判定能否将对象任务ni分配到侯选节点J。
空闲时间检测单元214在侯选节点J上已经分配任务njk和任务njk+1时,判定是否还可配置分配对象任务ni。但是,在比对象任务ni的插入位置(即,任务njk和任务njk+1之间)更后面,不存在对象任务ni的先行任务,在比插入位置更前面,不存在对象任务ni的后续任务。
任务ni的处理结束时刻使用AEST和任务nj的处理时间,以{ALST(nj,J)+w(nj)}表示。而任务nj的最先开始时刻以AEST(nj,J)表示。因此,能否将分配对象任务配置在任务jk和任务njk+1之间,只要作为任务njk的结束时刻和任务njk+1的开始时刻的差分的‘任务可执行范围’在对象任务ni的处理时间以上就可以,所以下面算式成立就可以。
min{ALST(ni,J)+w(ni),ALST(njk+1,J)}-max{AEST(ni,J),AEST(njk,J)+w(njk)}-(AEST(ni)-ALST(ni))≥w(ni) …(10)在第1项中,将任务njk+1的最迟开始时刻和对象任务ni的处理结束时刻中最慢的情况比较,选择时刻早的一方。在第2项中,将对象任务ni的最先开始时刻和任务njk的处理结束时刻中最早的情况比较,选择时刻慢的一方。如果它们的差分比对象任务ni本身的处理时间长,则可将对象任务ni配置在任务jk和任务njk+1之间,如果差分比对象任务ni自身的处理时间短,则被判定为不能将对象任务ni配置在它们之间。再有,第3项是基于作为AEST和ALST的基准的时刻有所不同的校正项。即,作为AEST=0或ALST=0的各任务的基准时刻根据被分配该任务的节点而变动,所以第3项变得必要。
如果可进行分配,则空闲时间检测单元214返回能够配置对象任务nj的最前面的AEST。如果不可分配,则研讨利用上述‘PUSH型插入’的配置。
参照图19(a)、图19(b),进一步进行说明。为了简单,在图19(a)、图19(b),未考虑算式(10)的第3项。图19(a)的情况下,对象任务ni的最先开始时刻AEST(ni,J)是比任务njk的处理结束时刻AEST(njk,J)+w(njk)更慢的时刻,所以对象任务ni的最先开始时刻被采用。而对象任务ni的处理结束时刻ALST(ni,J)+w(ni)是比任务nik+1的最迟开始时刻ALST(njk+1,J)更早的时刻,所以对象任务ni的处理结束时刻被采用。因此,这种情况下对象任务ni的可执行范围如下面算式。
(可执行范围)={ALST(ni,J)+w(ni)}-AEST(ni,J) …(11)图19(b)的情况下,任务njk的处理结束时刻AEST(nik,J)+w(njk)是比对象任务ni的最先开始时刻AEST(ni,J)更慢的时刻,所以任务njk的处理结束时刻被采用。而任务njk+1的最迟开始时刻ALST(njk+1,J)是比对象任务ni的处理结束时刻ALST(ni,J)+w(ni)更早的时刻,所以任务njk+1的ALST被采用。因此,这种情况下对象任务ni的可执行范围如下面算式。
(可执行范围)=ALST(njk+1,J)-{AEST(njk,J)+w(njk)}…(12)图20是说明图18的S200中的‘PUSH型插入’的图。如图20左侧的框270所示,在对象任务ni的可执行范围内,有时不将对象任务ni的处理时间与njk+1的处理时间重叠就不能将对象任务ni配置到节点J。此时,如图20右侧的框272所示,空闲时间检测单元214通过变更任务njk+1的ALST而将任务njk+1的开始时刻错开到后面,从而实现对象任务ni的配置。这关联到使应用整体的结束时刻延迟。
如以上说明,在空闲时间检测处理,作为任务的分配目的地节点的选择方法,在分配对象任务和其最重要的后续任务(即,在未对虚拟节点分配的后续任务中,其AEST和ALST的差为最小的任务)时,可选择后续任务AEST为最小的节点。由此,由于考虑对象任务的1步骤后的后续任务的分配为止而选择对象任务的分配目的地节点,所以对象任务的AEST在早期,但后续任务的AEST延迟,作为结果,能够避免整体的处理时间长期化的状况。
(实施例)对于本发明的实施方式,已详细地说明。以下,参照具体例来说明采用了实施方式中论述的各处理而将任务分配到节点的状况。
在图1所示的包含5个节点的分散应用执行系统中,对于图21所示的处理有先后关系的任务的情况进行说明。图中,白圈内的数字表示‘参与者的号-任务号’,例如‘1-1’表示‘参与者1的第1任务’。在图21中,作为与参与者1关联的任务包含‘1-1’~‘1-6’,作为与参与者2关联的任务包含‘2-1’~‘2-6’,而且,如上述对抗游戏应用的冲突处理那样,将对于两参与者的运算作为应在同一节点执行的任务而被规定‘3-1’。
而且,作为节点事先指定,设对于任务‘1-1’‘1-6’被指定节点1,对于任务‘2-1’‘2-6’被指定节点5。它们是利用控制器的输入处理或对显示器的画面显示等的只应在各参与者的节点实施的任务。而对于任务‘3-1’,设被指定节点4。
此外,作为截止期限时刻,对于参与者1的路径被设定200ms,对于参与者2的路径被设定250ms。
而且,为了简化说明,用于各任务间的通信时间计算的等待时间为5ms,吞吐量统一为100Mbps。此外,设与各节点同样计算资源十分充裕。
首先,通过信息收集单元108,取得各任务的处理时间、等待时间、吞吐量、传送数据量。图22是取得它们后的任务相关图,图中记载着它们的值。白圈的左下方或右下方的数字是任务的处理时间,沿箭头写的数字是传送数据量。任务间通信时间按‘等待时间+(吞吐量×传送数据量)’计算。
接着,节点事先指定的任务被配置到各自的节点。此时,任务间的先后关系当然被考虑,而且根据需要,各节点的空闲资源也被确认。
接着,将没有节点事先指定的任务配置到虚拟节点,通过开始时刻计算单元144,对于各任务计算AEST和ALST。就该计算来说,从前面所述的截止期限时刻,使用任务的处理时间、通信时间,并使用上述算式来计算。例如,对于任务2-6,从截止期限时刻250ms减去任务2-6的处理时间10ms所得的240ms成为ALST。对于任务2-5,从任务2-6的AEST240ms减去5Mb部分的通信时间50ms、等待时间5ms、任务2-5的处理时间20ms所得的165ms成为ALST。对于其他的任务也是同样。再有,对于任务3-1,计算从任务1-6追寻左侧的路径和从任务2-6追寻右侧的路径两者,所以ALST被求两个,但这样的情况下,作为从左侧的路径求出的更小值-5ms成为ALST。
对于AEST,任务1-1和2-1的AEST为0,从那时起附加任务处理时间和通信时间。例如,如果是任务1-2,附加了任务1-1的处理时间10ms、1Mb部分的通信时间10ms和等待时间5ms的25ms成为AEST。对于其他任务也是同样。
接着,计算以(ALST-AEST)来求的任务可动范围。以上的计算结果、各任务的AEST、ALST、任务可动范围成为图23所示的表。
接着,转移到节点的选择。在最没有裕度的路径、即任务可动范围最小(-130ms)的任务中,检测通信时间的最长的任务。从图23可知,适合于该任务的路径是任务1-4和任务1-5间的路径(以下,称为路径A)、以及任务1-5和任务1-6间的路径(以下,称为路径B)。两个路径A、B的通信时间为55ms,是相等的,所以为了决定对象任务,进而对于它们的后续任务的AEST进行研讨。这种情况下,比较路径A的后续任务1-5的AEST(245ms)和路径B的后续任务1-6的AEST(320ms)时,任务1-5的AEST一方小,所以首先考虑任务1-5的配置。
两个路径A、B的通信时间为55ms,是相等时,也可以交换地以下面的步骤决定对象任务。首先,考虑路径A时,由于任务1-4和任务1-5都非分配,所以如上述那样,为了优先进行分组而将后续侧的任务1-5作为分配侯选。接着,考虑路径B时,由于任务1-6已分配,所以任务1-5成为分配候选。因此,首先考虑任务1-5的配置。
这里,通过空闲时间检测处理,求任务1-5的最佳节点、后续任务AEST、虚拟AEST。在最初的状态下,由于作为任务1-5的先行任务的1-4未分配,所以假设仅分配任务1-4的虚拟节点0。在该时刻,任务1-5的最佳节点为零值,后续任务AEST、虚拟AEST为‘∞’。此外,在可分配任务1-5的节点的表中,虚拟节点0和节点1~5的6个节点被注册。这里,首先考虑对位于开头的虚拟节点分配任务1-5的情况。进行上述算式(2)的计算时,对虚拟节点分配的情况下的任务1-的虚拟AEST为190ms。
接着,作为重要后续任务nc,选择任务1-6。在将任务1-5分配到虚拟节点0的情况下,任务1-6的AEST为265ms。
因此,由于后续任务AEST(265ms)<最小后续任务AEST(∞),所以对最佳节点代入虚拟节点0,对最小后续任务AEST代入‘265’,对最小虚拟AEST代入‘190’。
对于剩余的节点1-5重复进行与上述同样的计算。在J=1时,由于后续任务AEST为265ms,虚拟AEST为245ms,所以最佳节点仍为0而未被变更。对于J=2~5也是同样。
这样,与DCP方法有所不同,使后续任务AEST小的一方优先,但在后续任务AEST相同的情况下,使虚拟AEST小的一方优先。
其结果,由于最佳节点为‘0’,所以任务1-5被分配到虚拟节点0。即,被判断为应分配到与任务1-4相同的节点,任务1-4和1-5被进行分组(参照图24)。分组后的任务在以后的计算中被看成一个任务来处理。即,组内的任务间的通信时间为0,按仅相加任务的处理时间来计算。
在1-4和1-5被分组的状态下,将全部任务的AEST和ALST更新。由于被进行分组并配置在同一节点上,所以1-4和1-5之间的通信时间为‘0’,从而全部任务的AEST、ALST被更新。更新后的各任务的AEST、ALST、任务可动范围示于图25。
其结果,本次任务可动范围为-80ms的任务成为分配对象,作为它们中通信时间最长的路径,任务2-4和2-5之间、任务2-5和2-6之间(55ms)被检测。与上述同样,对于任务2-5,执行节点选择处理。其结果,2-4和2-5被进行分组。
接着,实施对任务1-4和1-5的组的计算,根据其计算结果,任务1-4、1-5、1-6成为相同的组。这里,任务1-6被指定为配置到节点1。因此,任务1-4、1-5、1-6被决定为分配到节点1(参照图26)。
通过这样重复进行计算,最终各任务如图27所示被分配到节点。
如以上说明那样,根据实施方式,从作为最先开始时刻AEST和最迟开始时刻ALST的差分的任务可动范围为最小的任务起执行对节点的分配。此外,在执行任务的对节点的分配时,从将重要的路径、即任务间的通信时间为最大的任务分配的节点起顺序地执行分配。由此,能够高效率地削减通信延迟时间。此外,由于从更重要的任务起顺序地决定分配,所以能够避免资源首先被重要度低的任务消耗,能够首先确保在任务的实施上所需的资源。
此外,在计算最迟开始时刻ALST时,考虑并计算任务的截止期限时刻。由此,考虑对于任务的结束期限的裕度时间,从而能够计算最迟开始时刻ALST。
此外,通过执行任务分配,能够在网络内的多个节点间互换计算资源(例如,CPU时间、存储器容量等)。由此,可发挥单一设备的性能以上的能力。
以往,在分散网络环境中的格斗游戏等中,准备专门担当冲突判定的专用服务器来维持匹配性。在这种方式,服务器和节点间的通信造成的延迟时间往往增大。此外,随着参与者人数的增加,冲突判定的运算量也增大,所以需要增强服务器。
相反,在本实施方式,由于全部的运算由节点执行而不准备专用服务器,所以不需要考虑专用服务器的增强。
此外,通过采用本发明的结构,即使是并行系统或分散系统,也可以执行实时处理。
在以往,在事先不清楚网络中存在的节点数、各节点的性能、网络的构造等的情况下,或在应用执行中发生节点的增减的分散网络环境中,不可能进行在节点间实时交换任务的处理。相反,在本发明,即使通过重组网络间的连接而改变网络的构造,或即使是发生了节点的追加或减少等的情况,通过对有关节点的信息进行处理,能够继续进行合适的任务分配处理。
而且,在本发明,由于可将分配特定任务的节点事先指定,所以当然可以将如果密钥输入或声音输出、图像输出等的不用特定用户的担当节点执行就没有意义的任务分配到担当节点。
此外,也可以对具有由多个任务使用的相同的前后关系数据的任务进行指定,以使其通过分组而集中分配到相同的节点。由此,可以削减通信量和通信次数,而且可以使通信延迟的影响最小。
这样,在本发明,通过灵活使用节点事先指定,可以处理多样的种类和性质的任务。
在本发明,与以往的方法比较,任务分配上所需的计算量有增加的趋势,但如上述各种特征那样,由于分配任务的节点选择的灵活性提高,所以可实现将整体的处理更快地结束的任务配置。
以上,根据实施方式说明了本发明。这些实施方式是例示,本领域技术人员应该理解,在各构成元素或处理的组合上可形成各种各样的变形例,而这样的变形例也在本发明的范围内。
实施方式中所述的构成元素的任意的组合、将本发明的表现在方法、装置、系统、计算机程序、记录媒体等之间变换所得的方案,作为本发明的形态仍是有效的。此外,本说明书作为流程图记载的方法,除了按照其顺序被时序地执行的处理以外,也包含被并行或单独地执行的处理。
在将本发明的一连串的处理通过软件执行的情况下,也可以作为使构成这种软件的程序被装入到专用的硬件中的计算机来实现,或者,也可以在可通过安装各种程序而执行各种功能的通用计算机中,通过从网络或记录媒体安装软件来实现。
在实施方式中,论述了有关多个节点由网络连接的分散应用执行环境,但在一个节点上存在多个处理器的多处理器系统中,即使对于这些处理器间分担处理的‘并行应用执行环境’,也可以采用本发明。这种情况下,将分散环境下的节点间的等待时间、吞吐量用节点内的处理器间的等待时间、吞吐量置换,就可以采用与上述同样的算法。
而且,即使对于这些多处理器系统的节点之间用网络连接的环境,也可以采用本发明。这种情况下,通过适当地设定在一个节点内存在的多个处理器间的等待时间、吞吐量、以及直至其他节点的处理器为止的等待时间、吞吐量,就可以采用与上述同样的算法。
权利要求
1.一种任务分配方法,在包含可相互通信地连接了分别具备处理器的多个节点的分散处理系统中,将具有先后关系的多个任务分配到各节点,其特征在于,对于一个或多个处理器,使其执行以下处理对于各任务,计算最早可处理开始时刻的最先开始时刻和为了在时间制约内结束任务的最迟开始时刻的最迟开始时刻,计算所述最先开始时刻和所述最迟开始时刻之间的差分的任务可动范围,从所述任务可动范围小的任务起顺序地决定分配目的地节点的处理。
2.如权利要求1所述的任务分配方法,其特征在于,在所述最先开始时刻和最迟开始时刻的计算中插入任务间的数据通信时间。
3.如权利要求1所述的任务分配方法,其特征在于,还执行以下处理将具有先后关系的多个任务分组,以使可一体地处理,以组为单位计算所述任务可动范围,从所述任务可动范围小的组起以组为单位决定分配目的地节点的处理。
4.如权利要求1所述的任务分配方法,其特征在于,在所述分散处理系统中,在至少沿两个节点路径并行处理任务的情况下,为在所述节点路径上保持匹配性而接受被分配任务的节点的事先指定。
5.一种任务分配方法,在包含可相互通信地连接了分别具备处理器的多个节点的分散处理系统中,将具有先后关系的多个任务分配到各节点,其特征在于,使一个或多个处理器执行以下处理考虑所述任务间的通信时间而进行分配,从对象任务和后续任务之间的通信费用大的节点路径起顺序地决定分配目的地节点。
6.一种任务分配装置,在包含可相互通信地连接了分别具备处理器的多个节点的分散处理系统中,将具有先后关系的多个任务分配到各节点,其特征在于,它包括任务先后关系取得单元,取得各任务间的先后关系;时间制约取得单元,取得各任务的时间制约;开始时刻计算单元,参照所述任务先后关系和所述时间制约,对各任务,计算最早可开始处理时刻的最先开始时刻和为了在所述时间制约内结束该任务的最迟开始时刻的最迟开始时刻;节点选择单元,对于所述多个任务中未分配到节点的分配对象任务,参照所述最先开始时刻和最迟开始时刻而选择分配目的地节点;以及任务配置单元,对所选择的节点配置各任务。
7.如权利要求6所述的任务分配装置,其特征在于,所述任务分配装置还包括用于取得任务间的数据通信时间的任务间通信时间取得单元,所述开始时刻计算单元考虑任务间通信时间而计算所述最先开始时刻和所述最迟开始时刻。
8.如权利要求6或7所述的任务分配装置,其特征在于,所述任务分配装置还包括用于对特定的任务接受分配目的地节点的指定的事先指定接受单元,所述节点选择单元在将所述特定的任务优先分配到所指定的分配目的地节点后,对剩余的任务选择分配目的地节点。
9.如权利要求6或7所述的任务分配装置,其特征在于,所述节点选择单元从所述最先开始时刻和所述最迟开始时刻之间的差分的任务可动范围小的分配对象起顺序地选择分配目的地节点。
10.如权利要求9所述的任务分配装置,其特征在于,所述节点选择单元在所述任务可动范围对于多个分配对象任务为相同的情况下,对于分配对象任务和其后续任务之间的通信时间大的分配对象任务,优先地选择分配目的地节点。
11.如权利要求10所述的任务分配装置,其特征在于,所述节点选择单元将优先地决定了分配目的地节点的分配对象任务和其后续任务分配到同一节点。
12.如权利要求10所述的任务分配装置,其特征在于,所述节点选择单元在与后续任务之间的通信时间对于多个分配对象任务是相同的情况下,对于全部的分配对象任务,参照最重要的后续任务的最先开始时刻,决定应优先地选择分配目的地节点的分配对象任务。
13.如权利要求7所述任务分配装置,其特征在于,所述节点选择单元还包括对于已经分配有一个以上的任务的节点判定能否再将分配对象任务分配的空闲时间检测单元。
14.如权利要求13所述的任务分配装置,其特征在于,所述空闲时间检测单元通过使已分配到所述节点的任务的最迟开始时刻延迟,从而判定是否将分配对象任务分配到该节点。
15.如权利要求7所述的任务分配装置,其特征在于,所述节点选择单元还包括将有先后关系的对象任务和后续任务进行分组的分组单元,所述开始时刻计算单元将所述组作为单位而计算所述最先开始时刻和最迟开始时刻,所述节点选择单元以所述组作为单位而选择分配目的地节点,并对选择出的分配目的地节点分配组内的全部的任务。
16.如权利要求15所述的任务分配装置,其特征在于,所述分组单元在判断为分配对象任务和后续任务之间的通信费用比规定值大时执行所述分组。
17.如权利要求15所述的任务分配装置,其特征在于,所述事先指定接受单元接受将多个任务进行分组的指定,所述分组单元按照指定而执行任务的分组。
18.一种任务分配程序,在包含可相互通信地连接了分别具备处理器的多个节点的分散处理系统中,可在一个或多个处理器中执行,其特征在于,所述程序使处理器执行对于各任务,计算将最早可处理开始该任务的时刻的最先开始时刻和用于在时间制约内结束任务的最迟开始时刻的最迟开始时刻的计算功能;计算所述最先开始时刻和所述最迟开始时刻之间差分的任务可动范围的功能;以及从所述任务可动范围小的任务起顺序地决定分配目的地节点的功能。
全文摘要
在分散执行环境中,有时各节点中的运算结果不同并失去匹配性。本发明用于解决上述课题。分散处理系统包括可相互通信地连接了分别具备处理器的多个节点(10)。任务信息取得单元(110)取得任务间的先后关系。节点信息取得单元(112)取得各任务的时间制约。开始时刻计算单元(144)参照时间制约,对于各任务,计算最早可处理开始时刻的最先开始时刻和用于在时间制约内结束该任务的最迟开始时刻的最迟开始时刻。节点选择单元(148)对于多个任务中未分配到节点的分配对象任务,参照最先开始时刻和最迟开始时刻而选择分配目的地节点。任务配置单元(150)使各任务在所选择的节点被处理。
文档编号G06F9/46GK1967488SQ200610160369
公开日2007年5月23日 申请日期2006年11月15日 优先权日2005年11月15日
发明者飞田高雄, 村田诚二, 永田章人, 金子济, 村田贤一 申请人:索尼计算机娱乐公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1