用于安排网格计算系统中的网格作业的方法和设备转让专利

申请号 : CN200610138895.0

文献号 : CN1956457B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 维克多尔斯·伯斯蒂斯布赖恩·李奥纳多凯尔·J.·布里斯藤巴克艾伦·K.·哈珀贾斯廷·L.·扬布拉德

申请人 : 国际商业机器公司

摘要 :

用于根据多种动态负载因素安排网格项目的执行的方法和设备。本发明提供了用于基于计算设备的网格中的节点上的处理器负载和网络流量负载两者确定网格节点可用性的机制。此可用性信息用于确定网格项目的运行的调度。

权利要求 :

1.一种网格计算系统中的用于安排网格作业的方法,该方法包括:基于网格作业对执行网格作业所需要的基于网络的资源的依赖关系,特征化网格作业,以形成特征化的网格作业,其中所述基于网络的资源是从网格节点的外面访问的资源;

基于网格作业的所述依赖关系从多个网格节点中选择一个网格节点,以形成所选择的网格节点;以及将特征化的网格作业发送到所选择的网格节点,

其中,多个网格节点中的一个网格节点上的网络利用率监视器监视该网格节点和其他网格节点之间的网络流量,其中,网络利用率监视器确定数据包将在该网格节点和其他网格节点之间传播的最可能的路由;并且其中基于网格节点的处理容量、所确定的与该网格作业相关的数据分组将经过的最可能的路由、以及多个链路上的网络流量来确定所述所选择的网格节点以处理至少所述网格作业的一部分。

2.根据权利要求1所述的方法,其中,多个网格节点中的一个网格节点上的处理器利用率监视器监视网格节点的关于网格和非网格工作负荷的处理器利用率。

3.根据权利要求1所述的方法,其中,确定两个网格节点之间的最小容量链路,其中,所述最小容量链路被设置为两个节点之间的网络流量的最大容量。

4.根据权利要求2所述的方法,进一步包括:

区别与网格相关的和与非网格相关的工作负荷,其中,网格节点上的网格客户端软件维护一个数据结构,该数据结构存储与网格节点上的网格作业处理关联的线程的标识符,其中,将该数据结构与关于在网格节点上处理的所有线程的统计信息进行比较。

5.根据权利要求1所述的方法,其中,通过收集“n”分钟间隔内的网络和处理器利用率统计信息来确定预期的网络和处理器容量,其中,综合网络和处理器利用率统计信息,并从统计学上对它们进行评估,以确定重复周期的平均值。

6.根据权利要求1所述的方法,其中,选择网格节点的步骤进一步包括:根据网格节点的网络邻近程度,利用群集算法,将网格计算系统中的多个网格节点映射到以下项中的至少一个:提交点、数据库以及其他网格节点。

7.根据权利要求1所述的方法,进一步包括:

基于每一个群集的处理器资源可用性和网络资源可用性两者,生成网格节点群集的二维图。

8.根据权利要求1所述的方法,其中,选择步骤包括:

识别具有足够的总的处理器和网络容量以满足最小处理器阈值和最小网络阈值的所选择的网格节点,以在指定的时间段内执行网格作业。

9.根据权利要求8所述的方法,其中,如果没有识别所选择的网格节点,则降低最小处理器阈值和最小网络阈值。

10.根据权利要求9所述的方法,其中,如果降低最小阈值以包括额外的网格节点导致缩小的识别结果,则表明适当的安排无法实现。

11.根据权利要求1所述的方法,进一步包括:

从多个额外的网格节点的来源中选择额外的网格节点的来源,以将计算网格扩展为包括额外的网格节点。

12.一种网格计算系统中的用于安排网格作业的设备,该设备包括:用于基于网格作业对执行网格作业所需要的基于网络的资源的依赖关系,特征化网格作业,以形成特征化的网格作业的装置,其中所述基于网络的资源是从网格节点的外面访问的资源;

用于基于网格作业的所述依赖关系从多个网格节点中选择一个网格节点,以形成所选择的网格节点的装置;以及用于将特征化的网格作业发送到所选择的网格节点的装置,

其中,由多个网格节点中的一个网格节点上的网络利用率监视器监视该网格节点和其他网格节点之间的网络流量;

其中,网络利用率监视器确定数据包将在该网格节点和其他网格节点之间传播的最可能的路由;并且其中基于网格节点的处理容量、所确定的与该网格作业相关的数据分组将经过的最可能的路由、以及多个链路上的网络流量来确定所述所选择的网格节点以处理至少所述网格作业的一部分。

13.根据权利要求12所述的设备,其中,由多个网格节点中的一个网格节点上的处理器利用率监视器监视网格节点的关于网格和非网格工作负荷的处理器利用率。

14.根据权利要求12所述的设备,还包括:用于确定两个网格节点之间的最小容量链路的装置,其中,所述最小容量链路被设置为两个节点之间的网络流量的最大容量。

15.根据权利要求13所述的设备,进一步包括:

区别与网格相关的和与非网格相关的工作负荷的装置,其中,网格节点上的网格客户端软件维护一个数据结构,该数据结构存储与网格节点上的网格作业处理关联的线程的标识符,其中,将该数据结构与关于在网格节点上处理的所有线程的统计信息进行比较。

16.根据权利要求12所述的设备,还包括:用于通过收集“n”分钟间隔内的网络和处理器利用率统计信息来确定预期的网络和处理器容量的装置,其中,综合网络和处理器利用率统计信息,并从统计学上对它们进行评估,以确定重复周期的平均值。

17.根据权利要求12所述的设备,其中,用于选择网格节点的装置进一步包括:根据网格节点的网络邻近程度,利用群集算法,将网格计算系统中的多个网格节点映射到以下项中的至少一个的装置:提交点、数据库以及其他网格节点。

18.根据权利要求12所述的设备,进一步包括:

基于每一个群集的处理器资源可用性和网络资源可用性两者,生成网格节点群集的二维图的装置。

19.根据权利要求12所述的设备,其中,用于选择网格节点的装置包括:识别具有足够的总的处理器和网络容量以满足最小处理器阈值和最小网络阈值的所选择的网格节点,以在指定的时间段内执行网格作业的装置。

20.根据权利要求19所述的设备,其中,如果没有识别所选择的网格节点,则降低最小处理器阈值和最小网络阈值。

21.根据权利要求20所述的设备,其中,如果降低最小阈值以包括额外的网格节点导致缩小的识别结果,则表明适当的安排无法实现。

22.根据权利要求12所述的设备,进一步包括:

从多个额外的网格节点的来源中选择额外的网格节点的来源,以将计算网格扩展为包括额外的网格节点的装置。

说明书 :

用于安排网格计算系统中 的网格作业的方法和设备

技术领域

[0001] 一般来说,本发明涉及一种改进的数据处理系统。具体来说,本发明涉及改进的网格计算系统,其中,根据多种动态负载因素安排网格作业。

背景技术

[0002] 在1990年代,计算机科学家们开始探索被称为“计算网格”的计算机基础架构的设计和开发,其设计是基于当时已知的电力网格。网格计算最初是为大规模的资源密集的科学应用(如探索外星人(SETI)计划的计算网格)而设计的,这些应用与少量的计算设备在单个管理域中所能够提供的资源相比,需要更多的资源。从那时起,网格计算变得越来越普及,因为它作为用于处理计算任务的机制的名声越来越响。
[0003] 计算网格能使来自在地理位置上分散的计算设备的计算机资源被共享和聚合,以便用于解决大规模的资源密集的问题。计算网络也可以简称为“网格”。为构建网格,需要低级别和高级别的两种服务。网格的低级别服务包括安全性、信息、目录和资源管理服务。高级别服务包括用于进行应用程序开发,资源管理、资源安排、等等的工具。在这些服务中,资源管理和安排是最难以最佳地执行的难题。
[0004] 已知的网格计算系统,如来自United Devices,Berkley OpenInfrastructure for TMNetwork Computing(BOINC)的Legion、DataSynapse、Platform Computing、Grid MP ,PBS ProTM Grid fromAltair,the Globus Toolkit(伊利诺斯州芝加哥市阿尔贡国立实验室推出),以及开放式网格服务体系结构(OGSA)主要基于计算网格中的各种节点(即,计算设备)的处理器负载来执行资源管理和安排,并考虑到某些其他非动态先决条件因素,以确定可以利用计算网格中的哪些节点。如此,如果一个节点满足所有的非动态先决条件因素,并且其当前处理器负载低于预先确定的阈值,则可以安排网格作业在该节点上运行。如果该节点的处理器负载大于预先确定的阈值,则该节点不再是运行网格作业的候选节点,直到其处理器负载再次低于预先确定的阈值。
[0005] 由于已知网格计算系统只将处理器负载作为判断作业安排的动态因素来考虑,并且未能考虑网格作业可能产生的网络流量,因此,常常会导致次最优安排。结果,计划以关于节点的正常运行不引人注目的方式执行的网格作业,可能会对节点上的现有负载产生不利的影响。
[0006] 由于这种因为只使用处理器负载作为进行安排的根据而导致的次最优安排,许多科研机构和商业企业不愿使用网格计算,因为它可能会对他们现有的信息技术基础架构产生负面的影响。首先,这些企业不能断定网格活动可能会在多大程度上干扰他们现有的工作负荷,其次,他们对于关键项目不愿意使用计算网格,因为他们不能量化在所需的时间跨度内运行与网格项目关联的网格作业所需的他们的网格的容量。
[0007] 现有网格计算系统所存在的这些问题根植于这样的事实:这些网格计算系统中的资源管理和安排没有考虑到用于执行网格作业的必需的网络流量或此流量可能会对网格中的节点的现有负载产生的影响。网络流量可能会对网格中的节点上现有工作负荷的性能以及网格作业本身的性能产生负面影响。

发明内容

[0008] 本发明提供了用于安排网格计算系统中的网格作业的机制。可以基于网格作业对执行网格作业可能需要的基于网络的资源的依赖关系,特征化网格作业。然后,可以基于网格作业对基于网络的资源的依赖关系,将此特征化的网格作业发送到从多个网格节点中选择的网格节点。在下面的对优选实施例的详细描述中,描述了本发明的这些及其他特征和优点,或者,对于那些本领域技术人员将变得显而易见。

附图说明

[0009] 在所附的权利要求中阐述了本发明的新颖的特征。然而,本发明本身,以及优选的使用模式,进一步的目标和优点,通过参考对说明性的实施例的详细描述并参考附图,将得到最好的理解,其中:
[0010] 图1是其中可以实现本发明的网格计算环境的示范图;
[0011] 图2是显示了网格管理系统和各种网格节点上的网格代理的交互的示范图;
[0012] 图3是根据本发明的一个示范性实施例的网格代理的示范性方框图;
[0013] 图4显示了根据本发明的示范性实施例的用于确定网格节点之间的链路的容量的示范性过程,以便最小容量链路被设置为两个网格节点之间可用的最大容量;
[0014] 图5是显示了根据本发明的一个示范性实施例的网格管理系统的示范图;
[0015] 图6A是根据本发明的一个示范性实施例的网格项目模型化语言创建的网格项目模型的示范图;
[0016] 图6B是描述了一个网格项目的网格项目模型化语言高级别XML代码脚本的示范性例图。
[0017] 图7是显示了根据本发明的示范性实施例的其中可以描述计算网格的资源可用性曲线的图形用户界面的示范图;
[0018] 图8是显示了根据本发明的一个示范性实施例的使用资源可用性图表描述网格项目的执行的一个机制的示范图;
[0019] 图9是显示了其中执行网格项目的开始时间已经改变的如图8所示的同一个网格项目的图形描述的示范图;
[0020] 图10是显示了根据本发明的一个示范性实施例的扩展的网格对图8和9的网格项目的影响的示范图;
[0021] 图11显示了根据本发明的一个示范性实施例的网格节点的群集;
[0022] 图12是基于处理器和网络资源可用性或容量的网格节点群集的示范性二维图;
[0023] 图13显示了根据本发明的一个示范性实施例的节流机制的操作;
[0024] 图14是概述了根据本发明的一个示范性实施例的当生成网格项目的模拟的直观表示时本发明的示范性操作的流程图;
[0025] 图15是概述了根据本发明的一个示范性实施例的当安排网格作业调度时本发明的示范性操作的流程图;以及
[0026] 图16是概述了根据本发明的一个示范性实施例的当节制与网格项目关联的网络流量时本发明的示范性操作的流程图。

具体实施方式

[0027] 图1是其中可以实现本发明的各个方面的计算网格环境的示范图。如图1所示,计算网格100包括通过一个或多个网络120-130连接在一起的多个网格节点110。网格节点可以是任何能够处理提供给它的网格作业和网格数据或者能够向其他网格节点提供这样的网格数据的计算设备类型。例如,网格节点110可以是服务器计算设备、客户端计算设备、工作站、个人计算机、数据库系统、大型计算机系统等等。
[0028] 计算网格100由网格管理系统140进行管理。网格管理系统140与网格节点110上存在的代理软件进行通信,以获取有关每一个网格节点110的信息,并向网格节点110提交网格作业和网格数据,以便供它们进行处理。网格管理系统140提供了必需的功能,用于判断计算网格100中的哪些网格节点110在线,哪些网格节点110具有处理网格作业的可用容量,并安排向各种网格节点110调度网格作业,接收并关联调度到网格节点110的网格作业的结果,并根据下面所描述的本发明的实施例执行其他网格管理功能。
[0029] 网格项目是网格上的一项最高级别的工作。网格项目有时也可以等效地称为“网格应用程序”。网格作业是执行网格项目所需的工作的一部分。即,一个网格项目被分解为可以调度到网格节点以供其进行处理的多个单个网格作业。执行一个网格项目的一组网格作业可以在网格中的不同的节点上并行地执行。网格作业有时也可以被称为事务、工作单元、任务或提交。计算网格100中的每一个网格节点110都可以执行它们的普通工作负荷,即,非与网格相关的处理,也可以执行从网格管理系统140提交给它们的网格作业的处理。然后,将这些网格作业的处理的结果返回到网格管理系统140或其他指定的节点,它们将各种网格作业的结果组合起来,以便获得完成网格项目所需要的数据。存在于网格节点110上的网格代理软件测量网格节点110的性能特征,并将这些测量结果提供到网格管理系统
140,以便网格管理系统140能够正确地安排向各种网格节点110调度网格作业。
[0030] 如上所述,在已知计算网格系统中,网格节点的可用的处理器容量是被用作确定网格作业的安排的根据的网格节点的动态特征。即,网格管理系统从网格节点上的网格代理软件获取指出网格节点的在各个时间的CPU使用率的信息。根据该信息,网格管理系统可以判断网格节点的CPU使用率何时很可能低于预先确定的阈值,如此能够安排在该预测的时间将网格作业调度到网格节点。
[0031] 只使用CPU可用性作为确定何时调度网格作业的量度标准所存在的问题是,可能会在慢速链路上发送大量数据,使用该数据的网格作业甚至在存储了所需数据的位置的附近也可能不能执行。这会导致更大的网络流量。如此,在慢速链路上发送的大量数据和由于数据在网格中的无效率的放置而产生的所需的更大的网络流量,将会导致对网络所带来的负载比最优的情况更大。这可能会对网格节点的正常操作产生不利的影响。如此,使用网格节点非但不引人注目,相反网格作业实际对这些网格节点所执行的正常工作产生负面影响。
[0032] 本发明的各个方面通过考虑处理器利用率和执行使用计算网格的网格项目的功能所需的网络利用率两者,避免了网格计算的负面影响。即,本发明利用存在于网格节点上的网格代理(这些网格代理监视关于网格和非网格工作两者的处理器利用率和网格节点的可用性两者,还监视网络利用率和网格节点之间的链路的可用性)来确定网格节点处理网格作业的可用性。然后,使用此信息来模型化网格活动,以模拟计算网格关于网格项目的处理的性能,安排向网格节点调度网格作业,并调节网格作业以及它们的数据向各种网格节点的传输,以便避免对网格节点的正常运行产生的不利影响。
[0033] 图2是显示了网格计算系统200的网格管理系统和各种网格节点上的网格代理的交互的示范图。如图2所示,网格管理系统210与计算网格240的网格节点230上的网格代理220进行通信,以获取处理器和网络可用性数据。网格代理220包括处理器利用率监视和网络利用率监视器,以获取关于网格和非网格作业处理的处理器和网络利用率的测量值。处理器利用率监视器确定,在一段时间内,网格节点的多少处理器资源正在被用来处理非网格工作,处理网格作业,以及多少处理器资源空闲。网络利用率监视器确定,在一段时间内,多少与到此网格节点的链路关联的网络容量正在被使用,以及还有多少容量可用。
[0034] 此处理器和网络利用率数据被传输到网格管理系统210,数据存储在那里的数据库215中以供以后使用。例如,本发明的网格管理系统210在生成网格项目描述模型、确定网格项目处理性能的模拟、安排网格作业调度,以及调节网格作业数据传输时会使用存储在数据库215中的信息。
[0035] 网格管理系统210从网格项目提交系统250接收网格项目。网格项目提交系统250可以与网格管理系统210进行通信,以提交网格项目,请求和查看网格项目的模拟,基于网格项目的模拟调整网格项目的调度参数,以及接收正在被计算网格240处理的网格项目的结果。
[0036] 当一个网格项目被网格项目提交系统250提交到网格管理系统210时,可以使用数据库215中维护的数据模拟网格项目该网格项目,以便可以确定各种开始时间、各种额外的网格节点等等的影响。根据该信息,网格项目提交系统的用户可以在将作为多个网格作业的网格项目调度到计算网格240的网格节点230时,选择适当的网格项目调度标准来使用。
[0037] 然后,网格管理系统210基于所选择的调度标准来安排网格作业的调度。此安排网格作业的过程可能涉及基于网格管理系统210所维护的有关网格节点的非动态特征信息,选择应该向其提交网格作业的某些网格节点。在预定的时间,网格管理系统210向适当的网格节点230上的网格代理220传输网格作业和/或对应的数据。优选情况下,网格代理220包括网格客户端软件,该软件允许网格代理220执行它们的相应的网格节点230上的网格作业。网格节点上的网格作业的调度和执行在当前技术中一般是已知的。例如,在使用网格客户端软件的网格节点上,可以使用Globus 或OGSA机制来执行网格作业。
[0038] 图3是根据本发明的一个示范性实施例的网格代理的示范性方框图。如图3所示,网格代理300包括控制器310、处理器利用率监视器320、网络利用率监视器330、网络接口340、网格客户端软件350、处理器/网络利用率统计信息存储器360,以及网格项目节流控制器370。网格代理300是作为软件指令实现的,软件指令由在其上面部署了网格代理300的网格节点的处理器来执行。网格代理300作为后台应用程序来执行,该后台应用程序不会轻易地被网格代理300在其上面运行的网格节点的用户觉察。
[0039] 控制器310对网格代理300的总体操作进行控制,并协调其他元件320-370的操作。处理器利用率监视器320监视关于网格和非网格工作负荷两者的网格节点的处理器利用率。处理器利用率区别器320会区别与网格工作负荷关联的处理器利用率和与非网格工作负荷关联的处理器利用率。此区别网格工作负荷的处理器利用率和非网格工作负荷的处理器利用率的过程是通过将处理器利用率监视器320的监视功能与网格客户端软件350捆绑起来而实现的。
[0040] 网格客户端软件350与网格管理系统进行通信,接受待执行的网格作业,在适当的环境下执行它们,然后,返回网格作业的结果。本发明的不同实施例的网格客户端软件350用于跟踪代表网格执行工作的进程和线程。即,网格客户端软件350,在执行进程和创建线程时,维护了一个数据结构,该数据结构存储与正在被网格节点处理的网格作业关联的进程或线程的标识符。在另一个数据结构中维护了有关由网格节点的处理器执行的所有线程的统计信息。这些统计信息可以包括,执行线程所需要的处理周期的量、存储器使用率、磁盘空间使用率、用于执行线程的CPU时间的量等等。
[0041] 通过比较两个数据结构,可以区别与涉及网格的线程关联的统计信息和与涉及非网格的线程关联的统计信息。涉及非网格的线程构成了系统上的不是由网格工作启动的工作负荷,如此,代表了系统上的普通工作负荷。如此,可以就在特定时间网格节点的处理器上有多少非网格工作负荷存在作出判断。结果,可以更准确地测量网格节点的实际处理器容量。
[0042] 网络利用率监视器330用于生成网格节点的网络利用率统计信息。网格作业常常需要大量的输入数据,这些输入数据必须传输到执行工作的,即,处理该网格作业的网格节点。网格作业也可能会产生大量输出数据。此外,除非在数据库(其中存储网格作业可能需要访问的所需数据)的附近的节点上安排网格作业,否则,可能会由于网络流量和需要从远程数据库中检索所需数据而发生严重的延迟。
[0043] 所有这些情况都会占据宝贵的网络带宽,并会在网络中产生严重的拥塞。结果,无论是网格节点的普通工作负荷还是网格作业本身,都可能受到来往于网格节点的链路上的网络带宽的消耗的负面影响。
[0044] 网格项目节流控制器370在处理器和网络利用率超过预先确定的预期处理器和网络可用性值的情况下,节制这样的利用率。如下面比较全面地讨论的,此节流机制防止由网格作业的执行所引起的网络拥塞和处理延迟,以便确保网格节点的正常操作,即,网格节点的普通的工作负荷,不会受网格作业和网格作业数据的传输和处理的不利影响。
[0045] 为收集确定网格节点的网络利用率所需的信息,网络利用率监视器330使用常规网络流量监视器来确定物理网络链路上的每一对网格节点之间的流量。即,网络的每一个网格节点都包括常规网络流量监视器,该监视器确定该网格节点和与该网格节点所链接的各个网格节点之间的链路上的网络流量。本发明的说明性示例的网络利用率监视器330确定将在该网格节点及其他网格和非网格节点之间传播的数据包的最可能的路由。然后,网络利用率监视器确定该路由中的最小容量链路。例如,网络利用率监视器330可以使用TM TMWindows 和Unix 操作系统中附带的跟踪路由实用程序(即,tracert或traceroute命令行程序)来确定数据包在任何两个网格节点之间遍历的可能的路由。沿着路由的网格节点和非网格节点两种节点的常规网络流量监视器可以用来确定网格节点之间链路的容量,以便最小容量链路被设置为两个网格节点之间可用的最大容量。最大容量是特定链路可以在两个节点之间支持的网络流量的最大值。
[0046] 图4中显示了此过程。如图4所示,网格节点410需要确定其本身及计算网格400的其他网格节点420-450之间可用的最大容量。网格节点410-450中的每一个网格节点都配备有网格代理,该网格代理包括常规网络流量监视器,用于监视沿着到该网格节点的连接或链路的流量和可用带宽。此外,非网格节点460-490也可以存在于中,它们不是计算网格400的一部分。这些非网格节点也可以配备有常规网络流量监视器,用于监视沿着到某一网格节点的连接的流量和可用带宽。
[0047] 在确定网格节点410其本身和每一个其他网格节点420-450之间可用的最大容量时,网格节点410在一个示范性实施例中,使用网格节点420-450的目标IP地址、通用资源定位器(URL)等等作为执行跟踪路由操作的根据,运行跟踪路由实用程序。可以在与网格代理关联的数据结构中维护网格节点410-450的IP地址、URL等等,供确定网络容量和利用率时使用。作为对网格节点420的IP地址运行跟踪路由实用程序的结果,跟踪路由实用程序确定从节点410发送到节点420的数据包的最可能的路由是包括链路A和B的路由。类似地,节点410和430之间的路由被跟踪路由实用程序确定为链路C。节点410和节点440之间的路由包括链路C、D和E,而节点410和450之间的路由包括链路C、F、G和H。
[0048] 沿着网络中的节点410-490之间的链路的网络容量可以使用网格节点410-450和非网格节点460-490的常规网络流量监视器来确定。所描述的示例是计算网格400的简化版本,以便网格节点410和其他网格节点之间的许多路由只包括单一链路(如虚线显示)。然而,在比较复杂的计算网格配置中,应该理解,单个路由可能涉及三个或更多个节点之间的链路,包括网格节点和非网格节点。
[0049] 网格节点410和网格节点440之间的路由是涉及多个节点的路由的一个示例。在此示例中,路由穿过网格节点430。如此,存在两个可测量的链路:网格节点410和430之间的链路C,以及网格节点430和440之间的链路I。确定每一个链路的网络容量或可用带宽,最小网络容量或可用带宽,被选为特定测量时间段内的网格节点410和网格节点440之间的最大网络容量。如此,可以推导(大约)任何两个网格节点之间可用的网络容量的值。
[0050] 返回到图3,处理器/网络利用率统计信息存储器360用来存储在“n”分钟间隔内收集的处理器利用率统计信息和网络容量或利用率统计信息数据,其中,“n”的值取决于本发明的实施例的特定实现方式,并可以设置为任何时间段。间隔可以由网格代理发送到网格管理系统,在那里,它们可以与从该网格节点及其他网格节点获取的其他统计量结果综合在一起。然后,可以从统计学上评估综合的处理器和网络利用率信息,以确定计算网格中的预期的处理器和网络容量的典型值,如每日、每周、每月或其他重复周期值。
[0051] 具体来说,在一个示范性实施例中,对于每一个收集点、网格节点,以及时间窗,存储处理器和网络可用容量的值的总和,这些值的平方的总和,以及所采用的样本的数量。存储这些数据允许计算收集的数据的标准偏差、平均值及其他统计信息,不需要保留整套的收集数据。然后,可以使用此数据来模拟网格项目在计算网格上在周、月、年等等各种时间的执行情况,以安排向网格节点调度网格作业,节制与网格作业关联的数据传输等等,如下面所讨论的。
[0052] 图5是显示了根据本发明的各个方面的网格管理系统的示范图。网格管理系统500可以以硬件、软件或硬件和软件的任何组合来实现。在本发明的说明性实施例中,网格管理系统500是作为由一个或多个数据处理设备执行的软件指令来实现的。
[0053] 如图5所示,网格管理系统500包括控制器510、网络接口520、网格项目存储接口530、网格项目存储系统535、网格项目可视化和模拟引擎540、节点处理器/网络可用性存储系统接口550、节点处理器/网络可用性数据存储系统555、网格项目安排引擎560,以及网格项目作业调度器580。这些元件通过控制/数据信号总线590彼此进行通信。虽然图
5显示了总线体系结构,但是,本发明的不同方面不仅限于这样的体系结构,在不偏离本发明的精神和范围的情况下,可以使用有助于上文所描述的元件之间的控制/数据信号的通信的任何体系结构。
[0054] 控制器510对网格管理系统500的总体操作进行控制,并协调此系统中的其他元件的操作。网络接口520提供用于接收和发送数据的通信通道。具体来说,网络接口520提供了通过其可以接收有关各种网格节点的处理器和网络可用性的统计数据的机制。类似地,网格项目作业和数据可以通过网络接口520传输到网格节点。这些网格项目作业的结果也可以通过网络接口520接收。
[0055] 网格项目存储接口530提供了通信接口,用于存储和从网格项目存储系统535检索网格项目数据。网格项目存储系统535中的网格项目数据可以包括实际网格项目数据,用于生成网格项目作业和网格项目作业所依赖的数据。或者,网格项目和网格项目作业所依赖的数据可以存储在一个或多个远程数据库中。网格项目可视化和模拟引擎540用于生成网格项目的模拟以及图形用户界面,通过该图形用户界面,用户可以查看模拟,以确定网格项目作业的最优安排。
[0056] 网格项目可视化和模拟引擎540使用通过网络接口520从各种网格节点获取的并且通过节点处理器/网络可用性数据存储系统接口550存储在节点处理器/网络可用性数据存储系统555中的处理器和网络可用性信息,来确定诸如天、星期、月或年之类的各种时间的网格处理器和网络可用性。此信息用于判断网格项目的各种开始时间将如何影响网格项目的完成时间,以及对网格处理器和网络可用性利用率有何影响,如下面所讨论的。
[0057] 网格项目安排引擎560用于安排向网格节点调度网格项目作业。响应用户使用由网格项目可视化和模拟引擎540所提供的图形用户界面选择网格项目的特定开始时间,可以执行网格项目的此安排过程。网格项目安排引擎560将网格项目和对应的网格项目数据分解为网格作业,并确定应该将每一个网格作业传输到其对应的网格节点的时间。网格项目作业调度器580实际执行通过一个或多个网络向网格节点调度网格作业以及它们对应的数据的操作。
[0058] 网格项目作业调度器580以与现有计算网格系统中已知的方式类似的方式工作,主要区别在于,根据网格项目安排引擎560,以及网格项目可视化和模拟引擎540的操作,确定由网格项目作业调度器580传输的网格作业和数据。
[0059] 当用户希望确定一个网格项目的尽可能好的安排时,用户登录到网格管理系统500中,并请求模拟在特定时间段内特定网格项目的执行情况。例如,当用户登录到网格管理系统500中,并选择通过由网格管理系统500所提供的图形用户界面(GUI)呈现的“网格项目模拟”选项时,将给用户呈现另一个GUI,通过该GUI,用户可以选择或输入网格项目标识符,模拟的时间窗,例如,开始日期/时间和结束日期/时间,以及模拟的统计学基础,如每天的平均处理器或网络可用性、每周的平均值、每月的平均值,每天的一个标准偏差处理器/网络可用性、每周的一个标准偏差等等。
[0060] 然后,网格项目可视化和模拟引擎540从节点处理器/网络可用性数据存储系统555中检索对应于所选择的特定时间窗的一段时间内的节点处理器/网络可用性数据。例如,如果用户选择从2004年2月1日到2004年2月29日的时间窗,则从存储系统555中检索对应于此时间窗的时间段的节点处理器/网络可用性数据。例如,可以检索代表一周中的每一天的节点处理器/网络可用性的数据,对于2004年2月1日到2004年2月29日之间的时间段内的每一个星期,重复此操作,从而模拟指定的时间段内的计算网格的处理器/网络可用性。
[0061] 从节点处理器/网络可用性数据存储系统555检索到的此节点处理器/网络可用性数据代表了在选定时间段内计算网格中的处理器和网络链路资源的总的可用性。此信息可以用来生成代表在所选择的时间段内计算网格的可用资源的曲线。这些曲线与有关调度所选择的网格项目的方式的信息一起使用,来确定网格项目的性能的模拟。有关调度所选择的网格项目的方式的信息是从网格项目的模型获取的,而该模型又是从网格项目存储系统535获取的。
[0062] 网格项目描述模型提供了网格项目的各个阶段的描述。网格项目的阶段包括,调度、执行,然后返回结果数据。网格项目的各个阶段是通过描述模型作为一组描述来进行描述的,包括,要调度的网格作业的数量、对应于每一个网格作业的数据量、在数据上执行网格作业的运行时量,以及对应于网格作业的执行结果的数据的估计量。各个阶段的描述还包括要并行地以及串行地执行的活动的描述。
[0063] 网格项目描述模型是使用网格项目模型化语言生成的,该语言用于描述网格项目的各个阶段。描述模型可以由用户或网格项目的提供商根据项目模型化语言而生成。
[0064] 网格项目模型化语言使用XML格式来定义一个网格项目的各个阶段的序列。图6B是描述了一个网格项目的网格项目模型化语言高级别XML代码脚本的说明性示例。
[0065] 网格项目模型化语言标识了网格项目的各个阶段。模型化语言阐明了网格项目阶段的序列。在每一个阶段内,可以有任意数量的要执行的并行活动的描述,包括CPU处理、网络活动或嵌套的子阶段。每一个描述都指定了所描述的活动的属性,如处理要求、预期的网络流量、前提条件、依赖关系、活动拆分限制以及特征,可靠性作用等等。
[0066] 图6A描述了根据本发明的一个示范性实施例的网格项目模型化语言创建的网格项目模型的图表。方框610中的网格项目模型600显示了在调度阶段通过一个或多个传输文件向一个或多个网格节点传输网格作业和/或网格项目数据的过程。方框630-645描述了在执行阶段网格节点并行地处理网格作业和/或网格数据的过程。虽然此说明性示例描述了将网格作业620单次拆分为四个并行的网格作业630-645处理,但是,在此阶段可以有任意数量的由任意数量的网格节点执行的并行活动。此外,在执行阶段,也可以多次分成并行活动。在方框650,在网格作业650中,可以对网格作业630-645的输出进行其他处理。在处理完成之后,网格作业620-650的输出在方框660-670中并行地传输回网格管理系统。
[0067] 通过本发明的说明性示例,可以分析网格项目模型,以确定网格项目的各个阶段和每一个阶段的各种特征。可以通过对网格项目描述模型进行处理,确定用于执行网格项目的各个阶段所要求的处理器和网络资源量。然后,对于选定时间段,将必需的处理器和网络资源量与处理器和网络可用性信息一起使用,来确定为要执行的网格项目的每一个阶段要花的时间长度。
[0068] 例如,为了执行网格项目的各个阶段所需的处理器和网络容量的使用量可以表示为基于从网格节点获取的网格资源可用性信息生成的处理器和网络可用性曲线所包围起来的区域。由于这些区域被资源可用性曲线包围起来,如果资源的可用性比执行网格项目的某一个阶段的特定部分所必需的可用性小,则需要更多的时间才能获得所需的面积。对于网格项目的每一个阶段,都可以这样做,以便用户可以查看网格项目的执行与计算网格的资源可用性之间的关系的完整的例图。
[0069] 图7是显示了根据本发明的示范性实施例的其中可以描述计算网格的资源可用性曲线的图形用户界面的示范图。如图7所示,图形用户界面(GUI)700包括字段710和715,用于输入模拟的开始时间/日期和结束时间/日期。字段720用于选择模拟表示形式的统计学基础,而字段730用于指定网格项目的模拟的图表的粒度。字段740用于选择图形表示类型,如,时间线图表或其他图形表示类型。字段750提供了一个字段,通过该字段,可以为模拟选择特定网格项目,760部分提供了一条资源可用性曲线,该曲线是根据节点处理器/网络可用性数据确定的,而节点处理器/网络可用性数据又是根据选定时间窗(即,开始时间和结束时间)检索到的。
[0070] 如图7所示,760部分包括两个线图-一个线图元素770显示了在时间窗内的循环的时间段的处理器可用性,而另一个线图元素780显示了在循环的时间段内的网络可用性。应该理解,760部分所显示的时间段的粒度可以是各种级别。例如,在760部分或其任何子部分,可以不显示时间窗内的循环的时间段,而显示完整的时间窗。此外,可以由用户更改或滚动所显示的时间段。
[0071] 线图770和780代表网格项目可以利用的处理器和网络资源的上限。诸如线图770和780中所显示的统计学图表,可以代表实际处理器和网络可用性、处理器和网络资源可用性的平均值、与实际或平均处理器和网络资源可用性的一个标准偏差中的至少一个,或其任何组合。此外,其他元素也可以在统计图中表示出来,要么单独出现,要么与实际处理器和网络可用性、处理器和网络资源可用性的平均值、与实际或平均处理器和网络资源可用性的一个标准偏差结合起来。
[0072] 这些线图770和780提供了判断完成网格项目的每一个阶段需要多长时间的根据。
[0073] 图8是显示了根据本发明的一个示范性实施例的使用资源可用性图表描述网格项目的执行的一个机制的示范图。如图8所示,在本发明的一个示范性实施例中,网格项目的每一个阶段被描述为代表计算网格资源可用性的网格线下面的区域。网格项目的阶段涉及其中处理器资源占主导地位的阶段和网格项目的其中网络资源占主导地位的阶段。
[0074] 在图8中在处理器和网络资源可用性下面的区域的不同阴影中描述了这些阶段。浅一点的阴影区810、820和830代表网格项目的其中网络可用性是判断网格项目的性能时的主要因素的那些阶段。深一点的阴影区840和850代表网格项目的在此处理器可用性是主要因素的那些部分。然而,应该理解,本发明的各个方面不是基于主导资源区别各个阶段,而是在网格项目的其中两种资源都被视为对于判断网格项目性能同样重要的阶段进行操作。
[0075] 如图8所示,网格项目包括由区域810表示的执行阶段,在该阶段,网格项目将网格作业和网格项目数据传输到网格节点。由区域840表示的操作的第二阶段,是网格节点对传输给它们的网格作业和数据进行处理的表示。由区域820表示的操作的第三阶段,是传输某些其他数据供网格节点进行处理的表示。由区域850表示的网格项目的第四阶段,是网格节点执行某些其他处理的表示。由区域830表示的网格项目的第五阶段代表了网格节点将诸如网格项目的执行结果之类的数据传输回网格管理系统。
[0076] 由网络资源可用性占主要地位的网格项目的810、820和830阶段主要由代表网络资源可用性的线图包围起来。如图8所示,区域810、820和830的某些部分超过处理器可用性线图但是低于网络可用性线图。类似地,区域840有一部分超过网络可用性线图但是低于处理器可用性线图。
[0077] 基于所选择的开始点、由网格项目模型定义的网格项目的阶段,以及从网格节点获取的和节点处理器/网络可用性数据存储系统中维护的资源可用性数据,对资源可用性线图下面的区域进行描述。用户可以通过将光标移到描述800的上方或以别的方式输入不同的开始时间来修改开始时间。网格管理系统基于开始时间的改变而修改网格项目性能的描述800。如此,用户可以查看不同开始时间对网格项目的性能的影响。
[0078] 例如,如果用户选择较早一些的开始时间,这将会导致可用于执行网格项目的各个阶段的处理器和网络资源量的不同。如果这种处理器和网络资源的不同量导致可用于特定阶段的资源量降低,那么,用于完成网格项目的这一阶段的时间段可能会延长。类似地,如果处理器和网络资源的不同量导致可用的资源量变大,则用于执行网格项目的这一阶段的时间段可能会缩短。
[0079] 如图8所示,在网格项目性能的模拟的图形描述中,同时描述了由处理器资源占主要地位的阶段和由网络资源占主要地位的阶段。如此,在网格项目的性能的模拟的图形描述中,分别显示了可用的网络资源和可用的处理器资源对网格项目的性能的影响。随着网格项目的开始时间的改变,区域810-850的大小仍保留一致,尽管维度,即,时间对资源量,可能会基于可用的处理器和网络资源量而改变。
[0080] 图9是显示了其中执行网格项目的开始时间已经改变的如图8所示的同一个网格项目的图形描述的示范图。如图9所示,响应改变的开始时间,网格项目的结束时间也已经改变。这因为,尽管完成网格项目所需的处理器和网络资源的量没有改变,但是,处理器和网络资源的可用性由于网格项目的开始时间的改变而发生改变。如此,通过改变网格项目的开始时间,结果,完成网格项目的结束时间也会改变。这可能对于完成网格项目截止日期比较重要。
[0081] 如此,本发明的各个方面提供了图形用户界面,通过该图形用户界面,提供了网格项目的在可用的处理器和网络资源方面的性能900的描述。图形用户界面可以让用户改变网格项目的开始时间,网格项目的描述900随着开始时间的改变而动态地改变。如此,用户可以在考虑到执行网格项目的网格节点使用处理器和网络资源的情况判断网格项目是否将在必需的时间段内完成。
[0082] 尽管上文的说明性示例就从网格节点获取的处理器和网络资源可用性数据而言进行描述的,在本发明的另一个示例中,可以使用图形用户界面判断添加额外的网格节点对网格项目的性能的影响。类似于改变启动网格项目的时间,向计算网格中引入额外的网格节点也会改变处理器和网络资源量。本发明的各个方面可以基于通过从通常在计算网格中可用的来源之外的其他来源添加网格节点提供的额外的资源,改变可用的处理器和网络资源的上限。然后,可以按与上文所描述的方式类似的方式描述这些额外的资源对网格项目的性能的影响。
[0083] 例如,用户可以判断所建立的计算网格的处理器和网络资源可用性不足以在确保达到用户的目的和截止日期的情况下执行网格项目。计算网格的提供商可能已经与其他计算系统提供商达成协议,在必要时提供有条件的计算系统和/或网络资源。对于不同的处理器和/或网络资源组,可以有许多这样的协议存在。可以使用图形用户界面确定包含这些组中的每一个组和对网格项目的性能所造成的影响。
[0084] 在图形用户界面中可以为图形用户界面的用户提供一个机制,用于选择查看具有扩展的网格的网格项目的模拟。此外,扩展网格的程度也是可以选择的。结果,可以从节点处理器/网络可用性数据存储系统检索这些额外的网格节点的资源可用性数据,这些数据是按与对于基本网格节点的如上文所描述的方式类似的方式获取的,这些数据用于修改处理器和网络资源可用性线图,这些线图定义了网格项目的各个阶段的区域的上限。由于通过添加额外的网格节点可以增加额外的资源,因此,添加这些额外的网格节点的结果,会缩短完成网格项目的执行所需要的时间量。
[0085] 在图10中显示了此结果,其中,描述了扩展的网格对图8和9描述网格项目的影响。如图10所示,包括额外的处理器和网络资源,会使线图代表有更多的资源量可用。结果,从开始时间到网格项目的完成的时间段缩短。与本发明的前面的实施例相同,用户可以再次修改网格项目的开始时间,并在网格项目的性能的描述1000中,查看对在所选择的扩展的计算网格内对网格项目的性能的影响。
[0086] 一旦呈现了网格项目的模拟,且用户已经确定网格项目的适当的开始时间,以及确定是否应该使用扩展的网格,网格管理系统就可以安排向特定网格节点调度网格项目作业了。此过程的一部分是基于网格项目模型生成网格项目作业,以及选择将向其中传输网格项目作业和数据的网格节点。基于网格项目生成网格项目作业在当前技术中一般是已知的,如此,这里就不提供详细描述。
[0087] 可以基于网格作业对执行网格作业可能需要的基于网络的资源的依赖关系,特征化网格作业。然后,可以基于网格作业对基于网络的资源的依赖关系,将此特征化的网格作业发送或调度到从多个网格节点中选择的网格节点。
[0088] 基于网络的资源是从网格节点的外面访问的资源。这些资源包括,网络带宽、数据库,以及对执行网格作业所需的其他设备的访问。可以基于网格作业对执行网格作业所需要的基于网络的资源的依赖关系,特征化网格作业。可以基于网格作业对于基于网络的资源的依赖关系,为该网格作业选择网格节点。
[0089] 在选择将向其中调度网格作业的网格节点时,首先要判断网格项目的网络特征。例如,网格项目安排引擎判断网格项目是否是下列一种:
[0090] 辐射类型的网格项目,其中,大量的数据在网格作业之间来往发送,所述网格作业在这样的网格节点的网格代理上执行,即所述网格节点来自在作业处理过程中其他通信最少的提交点。
[0091] 网格项目,其中网格作业主要从位于计算网格上的特定位置的数据库中访问数据;以及
[0092] 其中网格作业在它们的处理过程中彼此广泛地进行通信的网格项目。
[0093] 然后,基于对网格项目的特征的判断,使用群集算法,根据网络邻近程度,将网格节点集映射到下列中的至少一个:提交点、位于指定位置的数据库,以及其他网格节点或其任何组合。此外,在使用群集算法时,也可以考虑其他因素。
[0094] 群集算法在当前技术中一般是已知的,如此,这里就不提供群集算法的详细描述。基于上面确定的网格项目的类型,确定群集算法的基础。然后,根据已经去掉了由其他非网格或网格工作消耗的处理器和网络容量的处理器容量和网络容量,将所产生的群集分等级。
[0095] 例如,生成根据处理器容量分等级的网格节点群集的第一个表。再生成根据网络容量分等级的网格节点群集的第二个表。然后,使用这两个表来基于处理器和网络容量两者生成群集的二维图。然后,确定选择用于执行网格作业的节点的群集的处理器和网络资源的初始最低要求。然后,就高于最小的处理器阈值和最小网络阈值要求两者的网格节点的群集是否具有足够的容量来执行网格项目所需要的工作作出判断。如果没有,则调整初始最小处理器和网络容量,以便评估更多群集。
[0096] 可以重复此过程,直到高于最低要求的群集提供了足够的执行网格项目的容量或直到当使用更多群集时连续的重新计算显示了缩小的结果。如果发现了满足在由网格项目的模拟所指出的时间线(或以别的方式设置的时间线)内执行网格项目的容量要求的一组群集,那么,将该组群集用于安排网格项目的执行。如果当重新计算最小处理器和网络容量以及评估额外的群集时产生缩小的结果,那么,可以向用户返回不能完成适当的安排的指示。
[0097] 图11显示了根据本发明的一个示范性实施例的网格节点的群集。如描述1100所示,根据彼此的网络邻近程度,以及与网格作业的来源、或访问其中的数据以便执行网格作业的数据库的网络邻近程度,将网格节点群集化。网络群集算法在当前技术中一般是已知的,本发明的实施例可以使用任何已知的网络群集算法来确定网格节点的群集。
[0098] 基于所使用的特定群集算法,可以生成诸如群集1150-1170之类的各种群集。然后,标识多个网格节点的网络和处理器容量。作为此过程的一部分,为每一个群集确定在用于执行网格项目的时间段内每一个群集的平均处理器和网络容量,如使用本发明的实施例的图形用户界面和模拟机制所选择的。即,求出群集中的每一个网格节点的总的处理器和网络容量,对相关的时间段的总和进行平均,以便确定群集的平均资源可用性。
[0099] 然后,使用处理器和网络资源可用性或容量的平均值来在对应的表1180和1190中将群集分等级。表1180是根据平均处理器容量分等级的发现的群集的表。表1190是根据平均网络容量分等级的发现的群集的表。这些表用于在处理器容量对网络容量的二维图中描述群集。
[0100] 图12是基于处理器和网络资源可用性或容量的网格节点群集的示范性二维图。如图表1200所示,在此示范性实施例中,x轴是网络容量,y轴是处理器容量。然后,基于确定的平均处理器和网络容量,在此图形中绘制群集。
[0101] 然后,确定处理器和网络容量的最小阈值。这些最小值是用户选择的,或根据安排的网格项目中的说明选择的。最小值被表示为线1210和1220。然后,判断在图形的右上方(如在最小值线1210和1220的上方)绘制的群集是否具有足够的总处理器和网络容量,来在网格项目的模拟确定的时间段内(或在用户以别的方式指定的时间段内)完成网格项目的执行。如果答案是肯定的,那么,在图形的右上方识别的群集被选为将向其调度网格作业的群集,并安排由所选择的群集处理的这些网格作业。
[0102] 然而,如果图形的右上方的群集的总容量不足以在请求的时间段内完成网格项目,那么,重新计算最小处理器和网络资源容量线1210和1220,并评估更大的群集组。结果,生成新的最小容量线1230和1240,评估这些线右上方的群集,以判断它们的总资源容量是否可以足以在选定时间段内完成网格项目。可以重复此过程,直到发现具有足够资源容量的足够大的群集,或直到导致缩小的结果。
[0103] 一旦识别了一套群集,则网格项目安排引擎为群集中的每一个网格节点生成网格作业,并安排向网格节点调度这些网格作业,以便可以在选定时间段内完成网格项目的执行。网格作业向网格节点的实际调度是使用网格项目作业调度器以已知方式进行的,该网格项目作业调度器在预定时间内将网格作业(可选地,还包括网格作业所依赖的数据)传输给网格节点。
[0104] 如上所述,重新计算最小处理器和网络资源容量线可能会导致缩小的结果。在这样的情况下,可以提供一个选项,以按如上文所讨论的类似的方式对于网格项目的模拟扩展计算网格。即,根据与潜在的网格节点提供商的建立的关系,可以将额外的网格节点引入基本计算网格中。
[0105] 当判断不能适当地安排网格项目时,可以给用户提供一个考虑扩展计算网格对安排网格项目的能力的影响的选项。如果用户选择扩展计算网格,则可以提示用户指出哪些额外的网格节点将被添加到计算网格中。即,如果有多个可能的额外的网格节点的来源存在,那么,用户可以选择可以从中获取这些额外的网格节点的来源。
[0106] 一旦用户选择了扩展计算网格并选择了从中获取额外的网格节点的来源,则可以再次执行群集化和绘图。结果,用额外的处理器和网络资源生成额外的网格节点的群集。对于确定允许网格项目在选定时间段内执行的一组群集,执行如上文所讨论的相同过程。如果查找群集的集合的过程导致判断一组群集能使网格项目在内选定时间段完成,那么,使用这些网格节点来安排网格作业的调度。此安排过程可能涉及与额外的网格节点来源计算系统协调,以请求访问额外的网格节点以便执行对网格作业的处理。如此,可以对计算网格进行动态扩展,以便安排网格作业的调度,以便网格项目可以在通过网格项目的模拟确定的时间段内完成。
[0107] 如此,本发明的各个方面提供一个机制,通过该机制,用户可以获取基于在选择的时间段内网格节点的所测量的处理器和网络资源可用性/容量的网格项目的性能的模拟。用户可以查看改变网格项目的开始时间对网格项目在计算网格中的执行的方式的影响,更重要的是,对网格项目的完成时间/日期的影响。这就使得用户确定在计算网格上启动网格项目的最佳时间,以便实现性能目标。
[0108] 此外,本发明的各个方面提供了一种机制,用于在计算网格上安排网格作业的调度,无论是否使用模拟机制作为此安排的基础。借助于该安排机制,可以选择将向其中调度网格作业的网格节点的群集的最优集合,以便在用户所选择的时间段内完成网格项目。当判断当前的群集的集合将没有足够的处理器和/或网络可用性或容量来在指定截止日期内完成网格项目时,安排机制可以反复扩展考虑的群集集合。
[0109] 无论是利用模拟机制还是利用安排机制,本发明的实施例都提供了一种机制,用于通过与潜在的网格节点供应商或来源达成的协议,添加额外的网格节点来扩展基本计算网格。额外的网格节点可以映射到计算网格中,可以判断额外的网格节点对网格项目的模拟的行为和/或网格节点的群集的群集化和资源可用性的影响。如此,可以就扩展计算网格是否将导致网格项目在所希望的时间段内完成作出判断,如果是,则可以从额外的网格节点供应商/来源请求扩展计算网格。
[0110] 除了上文所述的之外,本发明的各个方面进一步提供了网格项目节流控制器,用于对网格节点上的网格作业的执行进行控制。节流机制的用途是保持对与网格作业关联的网络流量的预先确定的限制。即,利用如上文所描述的模拟机制,基于网络的可用容量(它是根据节点处理器/网络可用性数据确定的)确定最大数据传输量。然后,可以由网格项目节流控制器将网格作业的此最大数据传输或网络流量报告给与网格节点关联的网格代理,以便它们可以调节它们的网络接口处理的网格数据量。如此,网格管理系统根据此节流机制将网格作业和数据调度到网格节点。网格节点也根据节流机制在网格节点之间,以及网格管理系统之间传输数据。如此,可以防止网格项目压倒网络,并将其速度降低到已经计算的合理得保证网格节点的正常操作的速率。
[0111] 节流控制器是通过发现一组标识网格节点上的网格作业的网络活动的参数来操作的。该组参数包括标识网络活动的一个或多个参数。例如,可以为预期的网络可用性的速率和/或网格作业的预期的处理器可用性的速率设置该组参数。如果网格节点具有基于该组参数控制数据传输的应用程序,则可以将该组参数发送到网格节点上的应用程序。然后,可以基于从该网格节点进行数据传输的速率和组参数,来控制从该网格节点进行的数据传输的速率。如果数据传输的速率超过预期的网络可用性,则可以通过节流机制来限制数据传输的速率。
[0112] 图13显示了根据本发明的一个示范性实施例的网格项目节流控制器的操作。如1300所示,网格项目安排引擎1310向网格项目节流控制器1320提供资源要求信息,包括预期的网络和处理器可用性信息,指出网络资源的量,如,在网格项目的执行的每一个阶段每一个网格作业所需的带宽量。然后,将此信息封装到与网格作业1330和/或网格作业数据关联的包裹1325中,并由安排引擎1310提供到与网格作业和/或网格作业数据相关联的网格代理1340。网络接口1360的网络接口的应用程序编程接口(API)1350剥去包裹
1325,并处理预期的可用性信息,然后该信息使用来控制从网格节点1380跨网络发送网格数据的速率。
[0113] 即,网络接口1360处理指出了预期的网络可用性的信息。网格节点1380在其操作的各个阶段可以利用的网络资源,由预期的网络可用性阈值指出,其中,网格数据由网格节点1380传输到其他计算设备。预期的网络可用性信息对可以由网络接口1360传输来自网格代理的数据的速率作出了限制。结果,网络接口1360可以限制从与对应于网格代理1340的端口1375关联的缓冲器1370中检索网格数据并通过网络传输该网格数据的速率。
[0114] 如此,网格节点进行的数据传输由与从网格项目节流控制器1320接收到的节制信息相关的网格节点的网络接口1360来进行控制。
[0115] 当判断可归因于网格工作的数据传输的速率超过网格节点中的数据传输的预期的网络可用性阈值时,网格项目节流控制器1320用于启动对网格作业的网络利用率的节制,以便数据传输不超过预期的网络可用性。如此,网格节流控制器1320控制从网格节点1380发送的网格流量的速率,以便网格流量不对网格节点1380的正常操作造成负面影响。
[0116] 网格项目节流控制器1320还用于节制网格节点对网格作业的处理。网格节点可以用来处理网格作业的网格节点处理资源由预期的处理器可用性阈值来表示。就可归因于网格节点中的网格工作的处理器利用率是否超过处理器利用率的预期的处理器利用率可用性阈值作出判断。如果处理器利用率超过网格作业的预期的处理器利用率阈值,则节流控制器1320限制网格节点的处理器利用率,以便网格节点对非网格作业的处理不会受在网格节点中执行的网格作业的负面影响。
[0117] 预期的网络和处理器可用性值是基于由网格作业调度器、网格项目可视化和模拟引擎确定的,或者可选地,网格作业调度器和网格项目可视化和模拟引擎的组合确定的网格作业的安排而确定的。网格项目节流控制器1320还用于就网格节点中的网络和处理器利用率是归因于网格工作还是可归因于非网格工作作出判断。节流控制器1320可以基于任务标识或当前技术中已知的其他手段来作出此判断。节流控制器还收集有关诸如网格和非网格工作的处理器和网络使用状况之类的系统使用状况的统计信息。有关处理器利用率和网络利用率的统计信息是从位于网格节点上的处理器利用率监视器和网络利用率监视器收集的。节流控制器1320还可以去掉对网格节点工作荷载的网格影响。
[0118] 节流机制提供了进一步的优点在于,此节流机制提供了一个机制,如前面所讨论的,通过该机制,与网格代理关联的网络活动监视器可以将网络流量分类为网格和非网格类别。即,由于网络接口节制从网格节点发出的网络流量,因此,网络活动监视器知道,与网格作业关联的网络流量不能大于所确定的预期的网络可用性阈值。如此,如果网络链路满负荷地工作,那么,可以可归因于网格作业的最大值是节制阈值。在这些实施例中,全容量是消耗的全部带宽。
[0119] 图14-16是概述了前面所描述的本发明的某些实施例的各种操作的流程图。可以理解,流程图中的每一个步骤,以及流程图中的步骤的组合可以通过计算机程序指令来实现。这些计算机程序指令可以提供给处理器或其他可编程数据处理设备,以产生一个机器,以便在处理器或其他可编程数据处理设备上执行的指令创建用于实现流程图步骤中指定的功能的装置。这些计算机程序指令也可以存储在计算机可读的存储器或存储介质中,该存储器或存储介质可以指示处理器或其他可编程数据处理设备以特定方式运行,以便存储在计算机可读的存储器或存储介质中的指令产生一种包括可以实现流程图步骤中指定的功能的指令装置的产品。
[0120] 相应地,流程图的步骤支持用于执行指定的功能的装置的组合、用于执行指定的功能的步骤以及用于执行指定的功能的程序指令装置的组合。还应该理解,流程图的每一个步骤,以及流程图中的步骤的组合,可以通过执行指定的功能或步骤的基于专用硬件的计算机系统或专用硬件和计算机指令的组合来实现。
[0121] 图14是概述了根据本发明的一个示范性实施例的用于生成网格项目的模拟的直观表示的示范性操作的流程图。如图14的流程图1400所示,在步骤1410中,从用户那里接收索取在特定时间段内网格项目的执行的模拟的请求。在步骤1420中,通过给用户提供请求网格项目标识符、开始日期、开始时间、结束日期、结束时间、模拟的统计学基础、图形表示的类型和/或任何其他参数的GUI,可以请求用户输入或选择被请求的网格项目模拟的参数。
[0122] 网格项目的模拟是基于用户所输入的参数和网络可用性和处理器可用性数据生成的。在步骤1430中,从网络和处理器可用性数据存储系统中检索网络和处理器可用性数据。在步骤1440中,基于处理器/网络可用性数据,生成资源可用性图表。在步骤1450中,步骤1440中的资源可用性图表,以及,可选地,如上文所描述的,来自网格项目模型描述的信息,用于生成网格项目的执行的模拟。
[0123] 图15是概述了根据本发明的一个示范性实施例的用于安排网格作业调度的示范性操作的流程图。如图15的流程图1500所示,在步骤1510中,网格管理系统接收网格项目提交。在步骤1515中,确定网格项目的网络特征。在步骤1520中,利用网络群集算法,生成网格节点群集。可以利用任何已知的用于确定网格节点的群集的网络群集算法来生成网格节点群集。
[0124] 在步骤1525中,对于每一个群集的网络和处理器可用性,确定平均资源可用性。在步骤1530中,根据处理器和网络资源可用性的平均值,将每一个网格节点群集分等级。
[0125] 在步骤1535中,确定处理器容量的最小阈值和网络容量最小阈值。可以由用户选择最小阈值,或根据网格项目中的说明选择最小阈值。在步骤1540中,就网格节点群集是否超过了处理器和网络最小阈值两者以及该网格节点群集是否具有足够的总网络和处理器容量来执行网格作业作出判断。可以选择超过了最小阈值并具有足够的容量的网格节点。步骤1545根据所选择的网格节点群集来安排网格项目。
[0126] 如果没有群集满足步骤1540的要求,那么,在步骤1555中向下调整最小阈值,以允许评估额外的群集。可以重复该过程,直到发现了满足步骤1540的要求的群集,并在步骤1545中可以进行安排,或者直到在步骤1550中额外的重算导致缩小的结果,在这种情况下,在步骤1560中,向用户提供一个指示,说明不能完成安排。
[0127] 图16是概述了根据本发明的一个示范性实施例的用于调节与网格项目关联的网络流量的示范性操作的流程图。如图16的流程图1600所示,在步骤1610中确定预期的网络可用性和预期的处理器可用性阈值。如果在步骤1620中数据传输的速率超过预期的网络可用性阈值,则在步骤1630中节流控制器节制数据传输的速率。如果在步骤1640中处理器利用率超过预期的处理器可用性阈值,那么,在步骤1650中,节流控制器将用于处理网格作业的处理器利用率节制到预期的处理器可用性。
[0128] 节流控制器还收集有关处理器和网络资源的系统使用状况的统计信息。节流控制器还能够去掉网格作业对处理器和网络负载的影响。节流控制器可以通过任务标识或当前技术中已知的其他手段来识别网格工作。节流控制器只节制与网格工作关联的处理器和网络活动。如此,与网格节点上的网格代理关联的网格项目节流控制程序对网格节点上的网络/处理器利用率进行控制,以防止网格作业干扰非网格工作的执行。
[0129] 值得注意的是,尽管是在完全运转的数据处理系统的上下文中描述本发明的,那些本领域普通技术人员将认识到,本发明的进程能够以存储指令的计算机可使用的介质的形式和各种各样的形式进行分发,本发明同样适用,不管实际用于进行分发的承载信号的介质的特定类型是什么。
[0130] 本发明可以采用完全是硬件、完全是软件、或结合了软件和硬件元件的组合的形式。在优选实施例中,本发明可以以软件实现,包括,但不仅限于固件、常驻软件、微代码等等。
[0131] 此外,本发明可以采用可以从计算机可使用的或计算机可读的介质访问的计算机程序产品的形式,提供供计算机或任何指令执行系统使用的或与它们一起使用的程序代码。对于此描述,计算机可使用的或计算机可读取的介质可以是任何设备,可以包含、存储、通信、传播或输送供指令执行系统、设备使用的,或与它们一起使用的程序。
[0132] 介质可以是电子、磁性、光学、电磁、红外线或半导体系统(或设备)或传播介质。计算机可读的介质的示例包括半导体或固态存储器、磁带、可移动计算机磁盘、随机存取存储器(RAM)、只读存储器(ROM)、硬磁盘和光盘。光盘的当前示例包括光盘-只读存储器(CD-ROM)、光盘-读取/写入(CD-R/W)和DVD。
[0133] 适用于存储和/或执行程序代码的数据处理系统将包括通过系统总线直接或间接地连接到存储器元件。存储器元件可以包括在程序代码的实际执行过程中使用的本地存储器、大容量存储器、高速缓存存储器,这种高速缓存存储器提供用于存储至少某些程序代码的临时存储器,以便减少在执行过程中必须从大容量存储器中检索代码的次数。
[0134] 输入/输出或I/O设备(包括但不仅限于:键盘、显示器、指示设备等等)可以直接或者通过干涉I/O控制器连接到系统。
[0135] 也可以将网络适配器连接到系统,以使数据处理系统通过干涉专用或公共网络连接到其他数据处理系统或远程打印机或存储设备。调制解调器、电缆调制解调器和以太网卡是现行的几种网络适配器。
[0136] 本发明的说明书只作说明,而不是详尽的说明或限于所说明的形式。那些本领域普通技术人员将认识到,可以进行许多修改。所选择的实施例只是为了最好地说明本发明的原理,实际应用,并使本领域普通技术人员懂得,带有各种修改的各种实施例也是可以接受的。