一种资源调度装置、系统和方法与流程

文档序号:12463666阅读:246来源:国知局
一种资源调度装置、系统和方法与流程

本发明涉及计算机技术领域,特别涉及一种资源调度装置、系统和方法。



背景技术:

计算资源池化,作为一种新型集中式的计算体系,已逐渐应用到复杂计算任务需求中。为了使计算资源能够均衡高效的工作,计算资源的调度越来越重要。

目前,计算资源的调度方式主要通过网络实现,即各个计算节点资源与调度中心通过网络连接,即调度中心通过网络调度计算节点资源。而网络在进行数据传输过程中,由于网络带宽等的影响,常常造成计算资源的调度延迟较高。



技术实现要素:

本发明实施例提供了一种资源调度装置、系统和方法,能够有效地降低资源调度的延迟。

第一方面,一种资源调度装置,包括:数据链路交互模块和资源动态控制模块,其中,

所述数据链路交互模块分别连接外部的服务器、外部的至少两个处理器以及所述资源动态控制模块;

所述资源动态控制模块连接所述外部的服务器,用于监测所述外部的服务器负载的预分配任务对应的任务量,根据所述负载量生成对应的路由切换指令,并将路由切换指令发送给所述数据链路交互模块;

所述数据链路交互模块,用于接收所述外部的服务器分配的预分配任务以及所述资源动态控制模块发送的路由切换指令,并根据所述路由切换指令将所述预分配任务传输给至少一个目标处理器。

优选地,所述数据链路交互模块包括:第一FPGA芯片、第二FPGA芯片和×16带宽PCIE总线,其中,

所述第一FPGA芯片,用于对所述×16带宽PCIE总线进行一路转四路;

所述第二FPGA芯片,用于对所述四路转十六路,并通过所述十六路中的每一路与一个外部的所述处理器相连;

所述资源动态控制模块连接所述第二FPGA芯片,用于发送所述路由切换指令给所述第二FPGA芯片;

所述第二FPGA芯片,用于根据所述路由切换指令,在所述十六路中选定至少一个任务传输链路,并通过所述至少一个任务传输链路将所述任务传输给所述至少一个任务传输链路对应的至少一个目标处理器。

优选地,所述资源动态控制模块,包括:计算子模块和指令生成子模块,其中,

所述计算子模块,用于确定单个所述外部的处理器的计算容量,并根据所述单个所述外部的处理器的计算容量和监测到的任务量,计算目标处理器的个数;

所述指令生成子模块,用于获取所述外部的服务器提供的处理器使用情况,根据所述处理器使用情况和所述计算子单元计算出的目标处理器的个数,生成对应的路由切换指令。

优选地,所述计算子模块,进一步用于:

根据下述计算公式,计算目标处理器的个数;

其中,Y表征目标处理器的个数;M表征任务量;N表征单个所述外部的处理器的计算容量。

优选地,

所述资源动态控制模块,进一步用于监测所述外部的服务器负载的预分配任务对应的优先级,当所述预分配任务对应的优先级高于当前运行任务时,则发送中止指令给所述数据链路交互模块;

所述数据链路交互模块,进一步用于当接收到所述中止指令时,中止外部的处理器处理所述当前运行任务,并将所述预分配任务传输给至少一个目标处理器。

第二方面,一种资源调度系统,包括:上述任一所述的资源调度装置、服务器和至少两个处理器,其中,

所述服务器,用于接收外部输入的预分配任务,并通过所述资源调度装置将所述预分配任务分配给所述至少两个处理器中的至少一个目标处理器。

优选地,

所述服务器,进一步用于统计所述至少两个处理器使用情况,并将所述两个处理器使用情况发送给所述资源调度装置;

所述资源调度装置,根据所述至少两个处理器使用情况,生成对应的路由切换指令,并通过所述路由切换指令将所述预分配任务分配给所述至少两个处理器中的至少一个目标处理器。

优选地,

所述服务器,进一步用于对所述预分配任务进行优先级标记;

所述资源调度装置,用于获取所述服务器标记的所述预分配任务的优先级,根据标记的所述预分配任务的优先级,当所述预分配任务的优先级大于当前处理器处理的当前运行任务时,则中断所述当前处理器对所述当前运行任务的处理,并将所述预分配任务分配给所述当前处理器。

第三方面,一种资源调度方法,包括:

通过资源动态控制模块监测外部的服务器负载的预分配任务对应的任务量;

根据所述负载量,生成对应的路由切换指令,并将路由切换指令发送给数据链路交互模块;

所述数据链路交互模块根据所述路由切换指令将所述预分配任务传输给至少一个目标处理器。

优选地,上述方法进一步包括:通过资源动态控制模块确定单个处理器的计算容量;

在所述监测外部的服务器负载的预分配任务对应的任务量之后,在所述生成对应的路由切换指令之前,进一步包括:

根据所述单个所述外部的处理器的计算容量和监测到的任务量,计算目标处理器的个数,并获取所述外部的服务器提供的处理器使用情况;

所述生成对应的路由切换指令,包括:根据所述处理器使用情况和计算出的目标处理器的个数,生成对应的路由切换指令。

优选地,所述计算目标处理器的个数,包括:

根据下述计算公式,计算目标处理器的个数;

其中,Y表征目标处理器的个数;M表征任务量;N表征单个所述外部的处理器的计算容量。

本发明实施例提供了一种资源调度装置、系统和方法,通过数据链路交互模块分别连接外部的服务器、外部的至少两个处理器以及所述资源动态控制模块;资源动态控制模块连接所述外部的服务器,通过监测所述外部的服务器负载的预分配任务对应的任务量,根据所述负载量生成对应的路由切换指令,并将路由切换指令发送给所述数据链路交互模块;通过数据链路交互模块接收所述外部的服务器分配的预分配任务以及所述资源动态控制模块发送的路由切换指令,并根据所述路由切换指令将所述预分配任务传输给至少一个目标处理器,任务分配给处理器的过程通过数据链路交互模块,而数据链路交互模块连通服务器与处理器,实现服务器与处理器间任务以及任务计算结果的交互,而无须网络的进行数据分享,能够有效地降低资源调度的延迟。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明一个实施例提供的一种资源调度装置的结构示意图;

图2是本发明另一个实施例提供的一种资源调度装置的结构示意图;

图3是本发明又一个实施例提供的一种资源调度装置的结构示意图;

图4是本发明一个实施例提供的一种资源调度系统的结构示意图;

图5是本发明一个实施例提供的一种资源调度方法的流程图;

图6是本发明另一个实施例提供的一种资源调度系统的结构示意图;

图7是本发明另一个实施例提供的一种资源调度方法的流程图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图1所示,本发明实施例提供一种资源调度装置,该资源调度装置可包括:数据链路交互模块101和资源动态控制模块102,其中,

所述数据链路交互模块101分别连接外部的服务器、外部的至少两个处理器以及所述资源动态控制模块102;

所述资源动态控制模块102连接所述外部的服务器,用于监测所述外部的服务器负载的预分配任务对应的任务量,根据所述负载量生成对应的路由切换指令,并将路由切换指令发送给所述数据链路交互模块101;

所述数据链路交互模块101,用于接收所述外部的服务器分配的预分配任务以及所述资源动态控制模块102发送的路由切换指令,并根据所述路由切换指令将所述预分配任务传输给至少一个目标处理器。

在图1所示的实施例中,通过资源动态控制模块连接所述外部的服务器,通过监测所述外部的服务器负载的预分配任务对应的任务量,根据所述负载量生成对应的路由切换指令,并将路由切换指令发送给所述数据链路交互模块;通过数据链路交互模块接收所述外部的服务器分配的预分配任务以及所述资源动态控制模块发送的路由切换指令,并根据所述路由切换指令将所述预分配任务传输给至少一个目标处理器,任务分配给处理器的过程通过数据链路交互模块,而数据链路交互模块连通服务器与处理器,实现服务器与处理器间任务以及任务计算结果的交互,而无须网络的进行数据分享,能够有效地降低资源调度的延迟。

在本发明另一实施例中,如图2所示,所述数据链路交互模块101包括:第一FPGA芯片1011、第二FPGA芯片1012和×16带宽PCIE总线1013,其中,

所述第一FPGA芯片1011,用于对所述×16带宽PCIE总线1013进行一路转四路;

所述第二FPGA芯片1012,用于对所述四路转十六路,并通过所述十六路中的每一路与一个外部的所述处理器相连;

所述资源动态控制模块102连接所述第二FPGA芯片1012,用于发送所述路由切换指令给所述第二FPGA芯片1012;

所述第二FPGA芯片1012,用于根据所述路由切换指令,在所述十六路中选定至少一个任务传输链路,并通过所述至少一个任务传输链路将所述任务传输给所述至少一个任务传输链路对应的至少一个目标处理器。

上述FPGA芯片上具有多个端口,可以通过端口可以实现与处理器、其他FPGA芯片、传输总线以及资源动态控制模块等,并为每个端口分配对应的功能,从而实现数据交互。

例如:X16带宽的PCIE总线A一端连接外设的服务器,另一端连接第一FPGA芯片,则PCIE总线A经过第一FPGA芯片实现PCIE总线数据的1路转4路交换,即端口A1,A2,A3,A4。端口A1,A2,A3,A4分别经过第二FPGA芯片实现PCIE总线数据的4路转16路交换,即形成数据下行链路接口A11,A12,A13,A14,A21,A22,A23,A24,A31,A32,A33,A34,A41,A42,A43,A44,从而实现1路转16路的X16带宽PCIE总线的交换传输。

如图3所示,在本发明又一实施例中,所述资源动态控制模块102,包括:计算子模块1021和指令生成子模块1022,其中,

所述计算子模块1021,用于确定单个所述外部的处理器的计算容量,并根据所述单个所述外部的处理器的计算容量和监测到的任务量,计算目标处理器的个数;

所述指令生成子模块1022,用于获取所述外部的服务器提供的处理器使用情况,根据所述处理器使用情况和所述计算子单元1021计算出的目标处理器的个数,生成对应的路由切换指令。

在本发明另一实施例中,所述计算子模块,进一步用于:

根据下述计算公式,计算目标处理器的个数;

其中,Y表征目标处理器的个数;M表征任务量;N表征单个所述外部的处理器的计算容量。

在本发明又一实施例中,所述资源动态控制模块102,进一步用于监测所述外部的服务器负载的预分配任务对应的优先级,当所述预分配任务对应的优先级高于当前运行任务时,则发送中止指令给所述数据链路交互模块101;

所述数据链路交互模块101,进一步用于当接收到所述中止指令时,中止外部的处理器处理所述当前运行任务,并将所述预分配任务传输给至少一个目标处理器。

在本发明另一实施例中,所述资源动态控制模块102包括:ARM芯片。

如图4所示,本发明实施例提供一种资源调度系统,包括:上述任一所述的资源调度装置401、服务器402和至少两个处理器403,其中,

所述服务器402,用于接收外部输入的预分配任务,并通过所述资源调度装置401将所述预分配任务分配给所述至少两个处理器403中的至少一个目标处理器。

在本发明另一实施例中,所述服务器402,进一步用于统计所述至少两个处理器使用情况,并将所述两个处理器使用情况发送给所述资源调度装置401;

所述资源调度装置401,根据所述至少两个处理器使用情况,生成对应的路由切换指令,并通过所述路由切换指令将所述预分配任务分配给所述至少两个处理器403中的至少一个目标处理器。

在本发明又一实施例中,所述服务器402,进一步用于对所述预分配任务进行优先级标记;

所述资源调度装置401,用于获取所述服务器402标记的所述预分配任务的优先级,根据标记的所述预分配任务的优先级,当所述预分配任务的优先级大于当前处理器处理的当前运行任务时,则中断所述当前处理器对所述当前运行任务的处理,并将所述预分配任务分配给所述当前处理器。

如图5所示,本发明实施例提供一种资源调度方法,该方法可以包括如下步骤:

步骤501:通过资源动态控制模块监测外部的服务器负载的预分配任务对应的任务量;

步骤502:根据所述负载量,生成对应的路由切换指令,并将路由切换指令发送给数据链路交互模块;

步骤503:数据链路交互模块根据所述路由切换指令将所述预分配任务传输给至少一个目标处理器。

在本发明一个实施例中,为了保证任务的处理效率,上述方法进一步包括:通过资源动态控制模块确定单个处理器的计算容量;并在步骤501之后,在步骤502之前,进一步包括:根据所述单个所述外部的处理器的计算容量和监测到的任务量,计算目标处理器的个数,并获取所述外部的服务器提供的处理器使用情况;步骤502的具体实施方式,包括:根据所述处理器使用情况和计算出的目标处理器的个数,生成对应的路由切换指令。

在本发明一个实施例中,所述计算目标处理器的个数,包括:根据下述计算公式,计算目标处理器的个数;

其中,Y表征目标处理器的个数;M表征任务量;N表征单个所述外部的处理器的计算容量。

在本发明一个实施例中,为了能够实现对优先级较高的任务优先进行处理,上述方法进一步包括:通过资源动态控制模块监测外部的服务器负载的预分配任务对应的优先级,当所述预分配任务对应的优先级高于当前运行任务时,则发送中止指令给所述数据链路交互模块;当数据链路交互模块接收到所述中止指令时,中止外部的处理器处理所述当前运行任务,并将所述预分配任务传输给至少一个目标处理器。

下面以图6所示的资源调度系统对任务A进行处理为例,进一步说明资源调度方法,如图7所示,该资源调度方法可以包括如下步骤:

步骤701:服务器接收到任务A的处理请求,并通过任务调度装置中的数据链路交互模块获取各个处理器的使用情况;

如图6所示,服务器602通过任务调度装置中的×16PCIE总线60113连接到第一FPGA芯片60111,第一FPGA芯片60111通过四个端口A1,A2,A3及A4连接到第二FPGA芯片60112上,通过第二FPGA芯片60112上的16个端口A11,A12,A13,A14,A21,A22,A23,A24,A31,A32,A33,A34,A41,A42,A43,A44分别连接一个处理器(GPU),即为服务器挂载16个处理器(GPU)。上述×16PCIE总线60113、第一FPGA芯片60111以及第二FPGA芯片60112组合成为任务调度装置601中的数据链路交互模块6011。

由于服务器602通过任务调度装置601中的数据链路交互模块6011与16个GPU连接,则在该步骤中,服务器602通过数据链路交互模块6011获取各个处理器(GPU)的使用情况,该使用情况可包括:处于待机状态或者处于工作状态,以及处于工作状态时,处理器处理的任务等。

步骤702:服务器标记任务A的优先级;

在该步骤中,服务器可以针对任务的类型等对任务的优先级进行标记,例如:任务A为某一正在处理任务B的前序任务,则任务A的优先级应该高于任务B的优先级。

步骤703:任务调度装置中的资源动态控制模块确定单个处理器的计算容量;

在图6所示的任务调度系统中,每一个处理器(GPU)的计算容量相同,例如:计算容量为服务器CPU的20%等。

步骤704:任务调度装置中的资源动态控制模块监测服务器接收到的任务A的任务量及任务A的优先级;

如图6所示,任务调度装置601中的资源动态控制模块6012与服务器602相连,监测服务器602接收到任务A的任务量和任务A的优先级,该资源动态控制模块6012可以为ARM芯片。

步骤705:资源动态控制模块根据单个处理器的计算容量和监测到的任务量,计算所需目标处理器的个数;

该步骤的计算结果,可以通过下述计算公式(1),计算得到:

其中,Y表征目标处理器的个数;M表征任务量;N表征单个所述外部的处理器的计算容量。

另外,每一个目标处理器的处理量可以通过下述计算公式(2),计算得到:

其中,W表征每个目标处理器的处理量,M表征任务量;Y表征目标处理器的个数。

通过计算公式(2)计算目标处理器的处理量,可以实现任务量均衡分担,从而保证任务的处理效率。

另外,还可以按照单个处理器的计算容量为每一个目标处理器分配任务。

步骤706:根据计算出的所需目标处理器的个数,生成对应的路由切换指令;

该步骤生成的路由切换指令主要是控制图6所示的数据链路交互模块6011的连通线路,例如:将任务A分配给A11,A12以及A44端口连接的处理器时,则该步骤生成的路由切换指令使A11,A12以及A44端口所在的线路联通,以方便服务器与处理器间进行数据传输。

步骤707:根据各个处理器的使用情况,确定处于待机状态的处理器个数;

步骤708:判断处于待机状态的处理器个数是否不小于所需目标处理器的个数,如果是,则执行步骤709;否则,执行步骤710;

该步骤主要是后续是否暂停其他处理器的基础,当处于待机状态的处理器个数不小于所需目标处理器的个数时,现有的处于待机状态的处理器即可完成任务A的计算,则无需暂停其他处理器,当处于待机状态的处理器个数小于所需目标处理器的个数时,现有的处于待机状态的处理器不足以完成任务A的计算,则需要进一步根据任务A的优先级判断是否需要为任务A暂停其他处理器。

步骤709:根据路由切换指令,在处于待机状态的处理器中选定至少一个目标处理器,并将任务A传输给至少一个目标处理器,结束当前流程;

如图6所示,A11,A12,A33及A44端口对应的处理器处于待机状态,而任务A仅需要3个处理器即可完成,则资源动态控制模块6012可随机将任务A分配给A11,A12及A44端口对应的处理器,即资源动态控制模块6012生成对应的路由切换指令,该步骤根据路由切换指令,将任务A分配给A11,A12及A44端口对应的处理器。

步骤710:当任务A的优先级高于处理器正在处理的其他任务的优先级时,中止部分处理器处理其他任务;

例如:任务A需要5个目标处理器进行处理,而当前仅有4个处理器处于待机状态,而处理器中正在处理的任务B的优先级低于任务A的优先级,则需要将任意一个运行有任务B的处理器中止,以满足任务A所需要的5个目标处理器。

步骤711:将任务A分配给处于待机状态的处理器和中止的部分处理器。

根据上述方案,本发明的各实施例,至少具有如下有益效果:

1.通过数据链路交互模块分别连接外部的服务器、外部的至少两个处理器以及所述资源动态控制模块;资源动态控制模块连接所述外部的服务器,通过监测所述外部的服务器负载的预分配任务对应的任务量,根据所述负载量生成对应的路由切换指令,并将路由切换指令发送给所述数据链路交互模块;通过数据链路交互模块接收所述外部的服务器分配的预分配任务以及所述资源动态控制模块发送的路由切换指令,并根据所述路由切换指令将所述预分配任务传输给至少一个目标处理器,任务分配给处理器的过程通过数据链路交互模块,而数据链路交互模块连通服务器与处理器,实现服务器与处理器间任务以及任务计算结果的交互,而无须网络的进行数据分享,能够有效地降低资源调度的延迟。

2.由于数据间通过PCIE总线进行传输,与现有的网络传输,能够有效地提高数据传输的及时性和稳定性。

3.通过确定单个所述外部的处理器的计算容量,并根据所述单个所述外部的处理器的计算容量和监测到的任务量,计算目标处理器的个数,并根据获取的外部的服务器提供的处理器使用情况和计算出的目标处理器的个数,生成对应的路由切换指令,保证目标处理器的个数能够满足任务的处理,从而保证处理任务的高效性。

4.通过监测服务器负载的预分配任务对应的优先级,当所述预分配任务对应的优先级高于当前运行任务时,通过中止指令中止外部的处理器处理当前运行任务,并将预分配任务传输给至少一个目标处理器,实现了按照优先级处理任务,进一步保证了计算性能。

需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个〃·····”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质中。

最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1