掌桥专利:专业的专利平台
掌桥专利
首页

任务调度方法、系统及设备

文献发布时间:2023-06-19 11:52:33


任务调度方法、系统及设备

技术领域

本申请涉及计算机技术领域,尤其涉及一种任务调度方法、系统及设备。

背景技术

在高性能计算和人工智能领域,通常需要基于异构计算集群来加速处理计算任务。通常,异构计算集群中包括多个计算节点,每个计算节点上由至少一个中央处理器CPU和多个异构计算芯片组成。其中,异构计算芯片可以为GPU(Graphics Processing Unit,图像处理器)、FPGA(Field Programmable Gate Array,现场可编程门阵列)。

目前,有关异构计算集群的调度策略是将计算任务调度给可用的计算节点进行处理。这种调度方法简单,难以为计算任务寻找到合适的计算节点,影响计算任务的处理速度。

发明内容

鉴于上述问题,提出了本申请以提供一种解决上述问题或至少部分地解决上述问题的任务调度方法、系统及设备。

于是,在本申请的一个实施例中,提供了一种任务调度方法。该方法包括:

根据待调度任务,从异构计算集群中各计算节点上,确定出异构资源组合;

根据各异构资源组合的运行时信息,从确定出的异构资源组合中确定出目标异构资源组合;

将所述待调度任务调度给所述目标异构资源组合所在的目标计算节点,以由所述目标计算节点分配给所述目标异构资源组合进行处理。

在本申请的另一个实施例中,提供了一种任务调度方法。该方法包括

获取待调度任务及其处理需求;其中,所述处理需求中包括:处理所述待调度任务时,异构资源间所需的互联类型;

结合所述互联类型,从异构计算集群中计算节点上,确定出目标异构资源组合;

将所述待调度任务调度给所述异构计算集群中所述目标异构资源组合所在的目标计算节点,以由所述目标计算节点将所述待调度任务分配给所述目标异构资源组合进行处理。

在本申请的另一个实施例中,提供了一种任务调度系统。该系统包括:异构计算集群;所述异构计算集群中包括:调度器和多个计算节点;

所述调度器用于:根据待调度任务,从异构计算集群中各计算节点上,确定出异构资源组合;根据各异构资源组合的运行时信息,从确定出的异构资源组合中确定出目标异构资源组合;将所述待调度任务调度给所述目标异构资源组合所在的目标计算节点,以由所述目标计算节点分配给所述目标异构资源组合进行处理。

在本申请的另一个实施例中,提供了一种任务调度系统。该系统包括:异构计算集群;所述异构计算集群中包括:调度器和多个计算节点;

所述调度器用于:获取待调度任务及其处理需求;其中,所述处理需求中包括:处理所述待调度任务时,异构资源间所需的互联类型;根据所述互联类型,从异构计算集群中计算节点上,确定出目标异构资源组合;将所述待调度任务调度给所述异构计算集群中所述目标异构资源组合所在的目标计算节点,以由所述目标计算节点将所述待调度任务分配给所述目标异构资源组合进行处理。

在本申请的另一个实施例中,提供了一种任务调度方法。该方法包括:

根据待调度任务,从计算集群中各计算节点上,确定出计算资源组合;

根据各计算资源组合的运行时信息,从确定出的计算资源组合中确定出目标计算资源组合;

将所述待调度任务调度给所述目标计算资源组合所在的目标计算节点,以由所述目标计算节点分配给所述目标计算资源组合进行处理。

在本申请的另一个实施例中,提供了一种任务调度方法。该方法包括:

获取待调度任务及其处理需求;其中,所述处理需求中包括:处理所述待调度任务时,计算资源间所需的互联类型;

结合所述互联类型,从计算集群中计算节点上,确定出目标计算资源组合;

将所述待调度任务调度给所述计算集群中所述目标计算资源所在的目标计算节点,以由所述目标计算节点将所述待调度任务分配给所述目标计算资源组合进行处理。

在本申请的另一实施例中,提供了一种电子设备。该电子设备,包括:存储器和处理器,其中,

所述存储器,用于存储程序;

所述处理器,与所述存储器耦合,用于执行所述存储器中存储的所述程序,以用于:

根据待调度任务,从异构计算集群中各计算节点上,确定出异构资源组合;

根据各异构资源组合的运行时信息,从确定出的异构资源组合中确定出目标异构资源组合;

将所述待调度任务调度给所述目标异构资源组合所在的目标计算节点,以由所述目标计算节点分配给所述目标异构资源组合进行处理。

在本申请的另一实施例中,提供了一种电子设备。该电子设备,包括:存储器和处理器,其中,

所述存储器,用于存储程序;

所述处理器,与所述存储器耦合,用于执行所述存储器中存储的所述程序,以用于:

获取待调度任务及其处理需求;其中,所述处理需求中包括:处理所述待调度任务时,异构资源间所需的互联类型;

结合所述互联类型,从异构计算集群中计算节点上,确定出目标异构资源组合;

将所述待调度任务调度给所述异构计算集群中所述目标异构资源组合所在的目标计算节点,以由所述目标计算节点将所述待调度任务分配给所述目标异构资源组合进行处理。

在本申请的另一实施例中,提供了一种电子设备。该电子设备,包括:存储器和处理器,其中,

所述存储器,用于存储程序;

所述处理器,与所述存储器耦合,用于执行所述存储器中存储的所述程序,以用于:

根据待调度任务,从计算集群中各计算节点上,确定出计算资源组合;

根据各计算资源组合的运行时信息,从确定出的计算资源组合中确定出目标计算资源组合;

将所述待调度任务调度给所述目标计算资源组合所在的目标计算节点,以由所述目标计算节点分配给所述目标计算资源组合进行处理。

在本申请的另一实施例中,提供了一种电子设备。该电子设备,包括:存储器和处理器,其中,

所述存储器,用于存储程序;

所述处理器,与所述存储器耦合,用于执行所述存储器中存储的所述程序,以用于:

获取待调度任务及其处理需求;其中,所述处理需求中包括:处理所述待调度任务时,计算资源间所需的互联类型;

结合所述互联类型,从计算集群中计算节点上,确定出目标计算资源组合;

将所述待调度任务调度给所述计算集群中所述目标计算资源所在的目标计算节点,以由所述目标计算节点将所述待调度任务分配给所述目标计算资源组合进行处理。

在本申请的另一个实施例中,提供了一种任务调度方法。该方法包括:

根据待调度的图像识别任务,从异构计算集群中各计算节点上,确定出图形处理器GPU组合;

根据各GPU组合的运行时信息,从确定出的GPU组合中确定出目标GPU组合;

将所述图像识别任务调度给所述目标GPU组合所在的目标计算节点,以由所述目标计算节点分配给所述目标GPU组合进行加速处理。

在本申请的另一个实施例中,提供了一种任务调度方法。该方法包括:

获取待调度的图像识别任务及其处理需求;其中,所述处理需求中包括:处理所述图像识别任务时,GPU间所需的互联类型;

结合所述互联类型,从异构计算集群中计算节点上,确定出目标GPU组合;

将所述图像识别任务调度给所述异构计算集群中所述目标GPU组合所在的目标计算节点,以由所述目标计算节点将所述待调度任务分配给所述目标GPU组合进行加速处理。

在本申请的另一实施例中,提供了一种电子设备。该电子设备,包括:存储器和处理器,其中,

所述存储器,用于存储程序;

所述处理器,与所述存储器耦合,用于执行所述存储器中存储的所述程序,以用于:

根据待调度的图像识别任务,从异构计算集群中各计算节点上,确定出图形处理器GPU组合;

根据各GPU组合的运行时信息,从确定出的GPU组合中确定出目标GPU组合;

将所述图像识别任务调度给所述目标GPU组合所在的目标计算节点,以由所述目标计算节点分配给所述目标GPU组合进行加速处理。

在本申请的另一实施例中,提供了一种电子设备。该电子设备,包括:存储器和处理器,其中,

所述存储器,用于存储程序;

所述处理器,与所述存储器耦合,用于执行所述存储器中存储的所述程序,以用于:

获取待调度的图像识别任务及其处理需求;其中,所述处理需求中包括:处理所述图像识别任务时,GPU间所需的互联类型;

结合所述互联类型,从异构计算集群中计算节点上,确定出目标GPU组合;

将所述图像识别任务调度给所述异构计算集群中所述目标GPU组合所在的目标计算节点,以由所述目标计算节点将所述待调度任务分配给所述目标GPU组合进行加速处理。

本申请实施例提供的技术方案,异构资源组合的运行时信息是在异构计算集群运行时检测出来的,能够真实反应异构资源组合的真实运行情况。根据各异构资源组合的真实运行情况,能够为待调度任务匹配到合适的目标异构资源组合,提高待调度任务的处理速度。

本申请实施例提供的技术方案,会结合待调度任务自身处理所需求的互联类型,从异构计算集群中计算节点上,确定出最终用于处理待调度任务的目标异构资源组合。也就是说,本申请实施例提供的技术方案能够结合待调度任务的自身特性,选择合适的异构资源组合来处理待调度任务,可有效提高待调度任务的处理速度。

本申请实施例提供的技术方案,计算资源组合的运行时信息是在计算集群运行时检测出来的,能够真实反应计算资源组合的真实运行情况。根据各计算资源组合的真实运行情况,能够为待调度任务匹配到合适的目标计算资源组合,提高待调度任务的处理速度。

本申请实施例提供的技术方案,会结合待调度任务自身处理所需求的互联类型,从计算集群中,确定出最终用于处理待调度任务的目标计算资源组合。也就是说,本申请实施例提供的技术方案能够结合待调度任务的自身特性,选择合适的计算资源组合来处理待调度任务,可有效提高待调度任务的处理速度。

附图说明

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

图1a为本申请一实施例提供的任务调度方法的流程示意图;

图1b为本申请一实施例提供的计算节点的架构图;

图1c为本申请一实施例提供的虚拟机内部通信示意图;

图1d为本申请一实施例提供的任务调度系统的结构示意图;

图1e为本申请一实施例提供的任务调度方法的流程示意图;

图2为本申请又一实施例提供的任务调度方法的流程示意图;

图3为本申请又一实施例提供的任务调度方法的流程示意图;

图4为本申请又一实施例提供的任务调度方法的流程示意图;

图5为本申请一实施例提供的任务调度装置的结构框图;

图6为本申请又一实施例提供的任务调度装置的结构框图;

图7为本申请一实施例提供的电子设备的结构框图。

具体实施方式

发明人通过对大量人工智能模型训练和高性能计算的观察发现:GPU虽然具有强大的并行处理能力,能够极大加快数据处理的过程,但是在真正的规模化运算中所需要的算力,单机单卡的GPU运算并不能满足,这就需要单机多卡甚至多机多卡协作训练。在单机多卡或多机多卡协作处理时,影响处理速度的因素非常多,主要有以下几个方面:

1、同一主机上不同GPU之间的通信带宽不同,不同选择会带来不同的应用性能表现。在同一主机上,GPU和GPU之间会发生通信,而由于GPU物理拓扑结构关系,不同GPU之间的I/O通信开销不同。比如:位于同一个PCIe(PCI Express)总线上的两个GPU之间(例如:图1b中GPU0_80、GPU1_81、GPU2_82和GPU3_83位于同一PCIe总线上;GPU4_84、GPU5_85、GPU6_86和GPU7_87位于同一PCIe总线上)可以做到GPU Direct P2P(Peer-to-Peer)点对点通信;位于不同的PCIe总线上的两张GPU(例如:图1b中GPU0_80与GPU4_84位于不同的PCIe总线上)是需要QPI通信的,无法实现GPU Direct P2P(Peer-to-Peer)点对点通信。这使得位于同一PCIe总线上的两个GPU之间通过GPU Direct P2P(Peer-to-Peer)点对点通信的互联带宽明显大于位于不同的PCIe总线上的两张GPU之间通过QPI通信的互联带宽,可达到4倍甚至10倍的差距。

2.由于GPU P2P的虚拟化,虚拟机GPU之间通信的带宽开销顺序与物理机GPU的表现并不一致。使用PCI直通(PCI Pass-through)虚拟化技术可以将GPU卡的控制权完全授权给虚拟机(Virtual Machine、VM),使得虚拟机里的GPU驱动(GPU driver)可以直接控制GPU而不需要虚拟机监视器Hypervisor的参与,性能可以接近物理机。但是在PCI直通时,的PCIe通信都会被路由器RC路由到IOMMU(i/o memory management unit,i/o内存管理单元),也就是说,在点对点P2P通信时,同样也需要路由到IOMMU,如图1c所示,GPU0和GPU1之间的点对点通信开销由于上下流量(图1c中箭头代表了流量的走向)都压迫同一个PCIe交换机70(PCIe Switch),反而比图1b中的GPU0_80到GPU2_82的通信开销还要大,通信开销越大,通信带宽就越小。也就是说:在物理机上,PIX(Connection traversing a single PCIeswitch)通信的带宽大于PXB(Connection traversing multiple PCIe switches(withouttraversing the PCIe Host Bridge))通信的带宽;而在虚拟机上,正好相反,PXB通信的带宽大于PIX通信的带宽。注:图1b和图1c中的GPU0_80和GPU1_81之间的通信均属于PIX;图1b中的GPU0_80和GPU2_82之间的通信属于PXB。

3、木桶效应会影响单机多卡训练的效率。基于不同通信模式的GPU卡一起工作时,影响训练速度的是其中最窄的带宽。

4、由于容器引擎会对于选中的GPU卡顺序进行内部排序,例如:自动将id号分别为id3、id5、id0、id2的四个GPU进行排序形成一个通信环,也即数据传输路径:id0到id2,id2到id3,id3到id5,id5到id0。也就是说,真正有意义的带宽是id 0到id 2,id 2到id 3,id 3到id 5,id 5到id 0;而id 0到id 3,id 2到id 5的带宽实际上不需要考虑。

5、应用内部是否使用点对点P2P通信模式,同样也会影响到GPU卡的选择。

从上述几个方面分析可知,集群中不存在虚拟机时,根据GPU物理拓扑结构关系来判断真实场景下的通信开销或通信带宽是较为可靠的;一旦集群中存在虚拟机时,根据GPU物理拓扑结构关系就不能准确判断真实场景下的通信开销或通信带宽。因此,为了能够提高任务处理速度,发明人提出根据实际测试得到的GPU卡之间的互联带宽来选取GPU卡,可有效提高选取的合理性,提高处理速度;同时也提高了调度方法的普适性。并且,在选取GPU卡时,结合应用自身的特征,能够进一步提高选取的合理性,进一步提高处理速度。

为了使本技术领域的人员更好地理解本申请方案,下面将根据本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的其他实施例,都属于本申请保护的范围。

此外,在本申请的说明书、权利要求书及上述附图中描述的一些流程中,包含了按照特定顺序出现的多个操作,这些操作可以不按照其在本文中出现的顺序来执行或并行执行。操作的序号如101、102等,仅仅是用于区分各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。

图1d为本申请一实施例提供的调度系统的结构示意图。如图1d所示,该调度系统,包括:计算集群;所述计算集群中包括:调度器100和多个计算节点200;

所述调度器用于:根据待调度任务,从计算集群中各计算节点上,确定出计算资源组合;根据各计算资源组合的运行时信息,从确定出的计算资源组合中确定出目标计算资源组合;将所述待调度任务调度给所述目标计算资源组合所在的目标计算节点,以由所述目标计算节点分配给所述目标计算资源组合进行处理。

其中,每一个计算节点200上可包括多个计算资源2001。每一个计算计算节点可以为一台物理机或虚拟机(例如:云计算平台上的虚拟机)。其中,调度器具体也可以为一台物理机或虚拟机。

下面结合方法实施例,针对调度器对任务调度的过程进行详细说明。

图1e示出了本申请一实施例提供的任务调度方法的流程示意图。本申请实施例提供的该方法由上述调度器执行。如图1e所示,该方法包括:

101、根据待调度任务,从计算集群中各计算节点上,确定出计算资源组合。

102、根据各计算资源组合的运行时信息,从确定出的计算资源组合中确定出目标计算资源组合。

103、将所述待调度任务调度给所述目标计算资源组合所在的目标计算节点,以由所述目标计算节点分配给所述目标计算资源组合进行处理。

上述101中,计算集群中可包括多个计算节点,每个计算节点上均包含有多个计算资源。其中,一个计算节点可以为一台物理机或一台虚拟机(例如:云计算平台上的虚拟机)。计算资源可理解为计算节点在处理待调度任务时所需调用的计算单元,例如:CPU(central processing unit,中央处理器)、RAM(Random Access Memory,随机存取存储器)、GPU、FPGA等。

在一实例中,各计算资源组合的运行时信息中可包括其中计算资源间的数据传输性能指标、各计算资源的负载情况、运行异常与否信息中的一项或多项。

通常,处理一个待调度任务时,需要同时调用同一个计算节点或不同计算节点上的多个计算资源,且这多个计算资源之间需要进行数据传输,那么,计算资源之间的数据传输性能指标的大小,影响数据传输延时的长短,也即影响该计算节点处理待调度任务的处理速度。此外,计算资源各自的负载情况以及运行是否异常同样也影响该计算节点处理待调度任务的处理速度。

上述待调度任务也即是待计算任务。在人工智能算法模型的数据识别场景中,上述待调度任务具体可以为数据识别任务或数据识别任务中的子任务。其中,数据识别任务可以是模型训练过程中的数据识别任务(此时称为模型训练任务)或模型应用过程中的数据识别任务。在一实例中,数据识别任务可以为图像识别任务、视频识别任务等。目前,为了提高部署、运行环境切换的效率,容器化技术得到了广泛应用。当采用容器化技术时,可将待调度任务打包成容器或Pod。其中,容器中包含有待调度任务对应的应用程序及其环境依赖,Pod是一个或多个容器的封装结构。在一实例中,可将待调度任务打包成一个Pod,后续的任务即是将待调度任务对应的Pod调度到合适的计算节点上。

需要补充的是,以人工智能算法模型训练场景为例,当一个完整的模型训练任务的计算量十分庞大时,可将模型训练任务拆分成多个子任务,每个子任务就是一个待调度任务,将每个子任务都打包成一个Pod,这样就可通过多个Pod协作来处理模型训练任务,提高速度。一个模型训练任务对应的多个Pod可分别调度到多个计算节点上进行处理。

根据待调度任务,从计算集群中各计算节点上,确定出计算资源组合。在一实例中,一个计算资源组合中计算资源均位于同一个计算节点上。在一实例中,可根据待调度任务,确定所需的计算资源类型及数量;根据所需的计算资源类型及数量,从各计算节点上确定出计算资源组合。在根据所需的计算资源类型及数量,从各计算节点上确定出计算资源组合之前,可根据各计算节点上报的节点运行日志,从各计算节点上多个计算资源中确定出可用计算资源;后续根据所需的计算资源类型及数量,在各计算节点上的可用计算资源中确定出计算资源组合。在一实例中,可用计算资源可理解为运行正常且空闲的计算资源。通常,根据计算资源的运行异常与否信息以及负载情况可确定计算资源是否运行异常以及节点是否空闲,具体实现方式可参见现有技术,在此不再赘述。上述计算资源的运行异常与否信息以及负载情况可从运行日志中获取。

在另一实例中,一个计算资源组合中计算资源还可以位于不同的计算节点上,需要补充的是,这样的计算资源组合在处理任务时,位于不同计算节点上的计算资源间可通过RDMA(Remote Direct Memory Access,远程直接数据存取)技术进行通信,可降低数据传输延时。

上述102中,在一实例中,各计算资源组合中计算资源间的数据传输性能指标可以是事先测试并记录下的。例如:在计算集群启动之后,测试各计算节点中任意两个计算资源间的数据传输性能指标,并进行记录得到记录信息,以备后续查询。这样,后续即可从记录信息中,查询各计算资源组合中计算资源间的数据传输性能指标。数据传输性能指标可包括:互联带宽、历史数据传输速率、历史数据传输延时中的一项或多项。

以各异构资源组合的运行时信息中包括其中计算资源间的数据传输性能指标为例,上述102中“根据各计算资源组合中计算资源间的数据传输性能指标,从确定出的计算资源组合中确定出目标计算资源组合”,具体可采用如下步骤来实现:

a1、针对各计算资源组合,对其中各个计算资源间的数据传输性能指标进行求和,得到各计算资源组合对应的指标总和。

a2、根据各计算资源组合对应的指标总和,从确定出的计算资源组合中确定出目标计算资源组合。

上述a1中,各计算资源组合中包括第一计算资源组合,对第一计算资源组合中各个计算资源间的数据传输性能指标进行求和,得到第一计算资源组合对应的指标总和。其中,第一计算资源组合指代的是确定出的计算资源组合中的任意一个。具体地,可分别获取第一计算资源组合中多个计算资源中任意两个计算资源间的数据传输性能指标;对所述获取到的第一计算资源组合中多个计算资源中任意两个计算资源间的数据传输性能指标进行求和,得到第一计算资源组合对应的指标总和。

举例来说:第一计算资源组合中包括计算资源A、计算资源B和计算资源C;分别获取计算资源A和计算资源B间的数据传输性能指标a、计算资源A和计算资源C间的数据传输性能指标b以及计算资源B和计算资源C间的数据传输性能指标c;对数据传输性能指标a、数据传输性能指标b以及数据传输性能指标c进行求和,得到第一计算资源组合对应的指标总和h。其中,h=a+b+c。

实际应用时,为了能够达到最优的处理效率,上述a2中,可将指标总和最优的计算资源组合确定为目标计算资源组合。例如:指标为互联带宽时,可将指标综合最大的计算资源组合确定为目标计算资源组合。

上述计算计算资源组合对应的指标总和的方案适合计算资源组合中的计算资源的数量大于或等于3的情况。当计算资源组合中的计算资源的数量为2时,就无需计算计算资源组合对应的指标总和,直接根据各计算资源组合中两计算资源间的数据传输性能指标,从确定出的计算资源组合中确定出目标计算资源组合。在一实例中,也可将两计算资源间的数据传输性能指标最优的计算资源组合确定为目标计算资源组合。

上述103中,将待调度任务调度给目标计算节点,也即是将待调度任务与目标计算节点进行绑定。在实际应用时,将待调度任务调度给目标计算节点的同时,需要将上述目标计算资源组合中计算资源的标识信息发送给目标计算节点,以便目标计算节点根据该标识信息,将待调度任务分配给目标计算资源组合。其中,标识信息具体可以为计算资源的id号。

本申请实施例提供的技术方案,计算资源组合的运行时信息是在计算集群运行时检测出来的,能够真实反应计算资源组合的真实运行情况。根据各计算资源组合的真实运行情况,能够为待调度任务匹配到合适的目标计算资源组合,提高待调度任务的处理速度。

发明人研究发现:在筛选计算资源组合时,计算资源组合中的某些计算资源间的数据传输性能指标实际上并不需要考虑的。例如:计算资源组合在处理待调度任务时,其中某些计算资源间并不存在通信(即不存在数据传输),这时这些计算资源间的数据传输性能指标就不需要进行考虑,可避免影响最终筛选结果。因此,本申请实施例提供的方法,还包括:

104、确定各计算资源组合处理所述待调度任务所需的通信路径。

105、针对各计算资源组合,获取其处理所述待调度任务所需的通信路径上,需进行通信的两计算资源间的数据传输性能指标。

其中,各计算资源组合中计算资源间的数据传输性能指标中包括:其处理所述待调度任务所需的通信路径上,需进行通信的两计算资源间的数据传输性能指标。

上述104中,通常,待调度任务处理时所需的通信路径为一个通信环。在实际应用时,一旦计算资源组合中的多个计算资源确定后,硬件层会自动对该资源组合中的多个计算资源进行排序。那么,该计算资源组合处理待调度任务所需的通信路径就是由按序排列的多个计算资源首尾相连形成的通信环。

上述105中,各计算资源组合中包括第一计算资源组合,第一计算资源组合指代的是确定出的计算资源组合中的任意一个。针对第一计算资源组合,可获取其处理所述待调度任务所需的通信路径上,所有需进行通信的两计算资源间的数据传输性能指标。

举例来说:第一计算资源组合中包括计算资源A、计算资源B、计算资源C和计算资源D,其对应的通信路径为:计算资源A向计算资源B传输数据,计算资源B向计算资源C传输数据,计算资源C向计算资源D传输数据,计算资源D向计算资源A传输数据。那么,第一计算资源组合中计算资源间的数据传输性能指标中包括:计算资源A与计算资源B间的数据传输性能指标、计算资源B与计算资源C间的数据传输性能指标、计算资源C与计算资源D间的数据传输性能指标以及计算资源D与计算资源A间的数据传输性能指标。需补充的是:其中,计算资源A与计算资源C间的数据传输性能指标是无需考虑的

在一实例中,上述102中“根据各计算资源组合的运行时信息,从确定出的计算资源组合中确定出目标计算资源组合”,具体可采用如下步骤来实现:

1021a、针对各计算资源组合,对其处理所述待调度任务所需的通信路径上,需进行通信的两计算资源间的数据传输性能指标进行求和,得到各计算资源组合对应的指标总和。

1022a、根据各计算资源组合对应的指标总和,从确定出的计算资源组合中确定出目标计算资源组合。

上述1021a中,具体地,针对第一计算资源组合,对其处理所述待调度任务所需的通信路径上,所有需进行通信的两计算资源间的数据传输性能指标进行求和,得到第一计算资源组合对应的指标总和。

沿用上例:第一计算资源组合处理待调度任务所需的通信路径上,需进行通信的两计算资源间的数据传输性能指标有:计算资源A与计算资源B间的数据传输性能指标a、计算资源B与计算资源C间的数据传输性能指标b、计算资源C与计算资源D间的数据传输性能指标c以及计算资源D与计算资源A间的数据传输性能指标d;第一计算资源组合对应的指标总和为h。其中,h=a+b+c+d。

在实际应用时,为了得到最优的处理效率,上述1022a中,可将指标总和最优的计算资源组合作为目标计算资源组合。例如:指标为互联带宽时,选取指标总和最大的计算资源组合作为目标计算资源组合。

发明人进一步研究发现:指标总和最优的计算资源组合并不一定能够获得最快的处理速度,因为在真实任务处理中,影响处理速度的可能是计算资源组合中最差的数据传输性能指标。故在另一实例中,上述102中“根据各计算资源组合的运行时信息,从确定出的计算资源组合中确定出目标计算资源组合”,具体可采用如下步骤来实现:

1021b、针对各计算资源组合,确定其处理所述待调度任务所需的通信路径上,需进行通信的两计算资源间的数据传输性能指标中最差的数据传输性能指标。

1022b、根据各计算资源组合对应的最差的数据传输性能指标,从确定出的计算资源组合中确定出目标计算资源组合。

上述1021b中,针对第一计算资源组合,确定其处理所述待调度任务所需的通信路径上,需进行通信的两计算资源间的数据传输性能指标中最差的数据传输性能指标。

为了达到最优的处理效率,上述1022b中,可将最差的数据传输性能指标最优的计算资源组合确定为目标计算资源组合。

举例来说:确定出的计算资源组合有计算资源组合z1和z2;z1对应的最差的数据传输性能指标为5G,z2对应的最差的数据传输性能指标为2G,则选取z1作为目标计算资源组合。

实际应用时,可为用户提供一个任务提交界面,在任务提交界面上显示多种筛选策略,以供用户选择,这样可提供用户体验,满足用户的不同需求。多种筛选测量可有第一筛选策略、第二筛选策略以及第三筛选策略。其中,第一筛选策略具体为指标总和最优规则,第二筛选策略具体为最差指标最优策略,第三筛选策略具体为静态策略。因此,上述方法,还可包括:

c、获取用户针对所述待调度任务配置的筛选策略。

用户针对待调度任务配置的筛选策略也即是用户在任务提交界面选中的筛选策略。

相应的,上述102中“根据各可用计算资源组合的运行时信息,从确定出的计算资源组合中确定出目标计算资源组合”,具体为:所述筛选策略为第一筛选策略或第二筛选策略时,根据所述筛选策略以及各计算资源组合运行时信息,从确定出的计算资源组合中确定出目标计算资源组合。

在实际应用时,当筛选策略为第一筛选策略(即指标总和最优规则)时,根据所述筛选策略以及各计算资源组合的运行时信息,从确定出的计算资源组合中确定出目标计算资源组合,具体包括:上述步骤1021a和1022a;当筛选策略为第二筛选策略(即最差指标最优策略)时,根据所述筛选策略以及各计算资源组合的运行时信息,从确定出的计算资源组合中确定出目标计算资源组合,具体包括:上述步骤1021b和1022b。

进一步的,上述方法,还包括:

d、所述筛选策略为第三筛选策略时,获取至少一个备选计算资源组合。

c、从所述至少一个备选计算资源组合中,确定出目标计算资源组合。

其中,第三筛选策略即为静态策略。

在一实例中,上述步骤b中,获取至少一个备选计算资源组合,可包括:确定所述调度任务所需的计算资源数量;获取事先针对所述计算资源数量配备的至少一个备选计算资源组合。

其中,至少一个备选计算资源组合中各备选计算资源组合中计算资源的数量等于所述计算资源数量。

在另一实例中,上述步骤b中获取至少一个备选计算资源组合,可包括:确定所述待调度任务的处理需求,所述处理需求中包括:处理所述待调度任务时,所需的计算资源数量以及计算资源间所需的互联类型;获取事先针对所述计算资源数量以及所述互联类型配备的至少一个备选计算资源组合。

至少一个备选计算资源组合可以是人工配备的,例如:用户根据软硬件情况或运行情况,针对该计算资源数量以及互联类型配备性能较好的至少一个备选计算资源组合。

计算资源组合计算资源组合目前,大部分计算集群中,计算资源间均可通过非点对点互联类型的数据传输通道进行通信,且部分计算资源间或全部计算资源间还开通有点对点互联类型的数据传输通道。例如:采用GPU Direct技术,可实现同一PCIe总线上的两个GPU之间的点对点p2p互联通信;再例如:通过NVLink技术,可实现跨NUMA(Non UniformMemory Access Architecture,非统一内存访问架构)的两个GPU之间的点对点p2p互联通信。通常来说,点对点互联类型对应的互联带宽要远远大于非点对点互联类型对应的互联带宽。

在实际应用时,有些待调度任务对应的应用程序本身要求的是点对点互联类型的通信方式,而有些待调度任务对应的应用程序本身则要求的是非点对点互联类型的通信方式。并且发明人发现计算资源的调度方案与应用程序本身的特质有关,如果应用本身没有使用点对点p2p通信的能力,那么,按照点对点p2p调度策略反而在性能上减分。为了能够为待调度任务筛选出最优的计算资源组合,需要结合待调度任务的处理需求,来筛选。具体地,上述方法,还可包括:

106、确定所述待调度任务的处理需求。

其中,所述处理需求中包括:处理所述待调度任务时,计算资源间所需的互联类型。

上述105中“针对各计算资源组合,获取其处理所述待调度任务所需的通信路径上,需进行通信的两计算资源间的数据传输性能指标”,具体为:针对各计算资源组合,获取其处理所述待调度任务所需的通信路径上,需进行通信的两计算资源间所述互联类型对应的数据传输性能指标。

在本实施例中,两计算资源间的数据传输性能指标分为不同互联类型对应的数据传输性能指标。例如:互联类型包括第一互联类型和第二互联类型,则两计算资源间的数据传输性能指标分为第一互联类型对应的数据传输性能指标和第二互联类型对应的数据传输性能指标。其中,所述第一互联类型为点对点互联类型;所述第二互联类型为非点对点互联类型。

实际应用时,可采用如下方法来测试两计算资源间不同互联类型对应的数据传输性能指标。即上述方法,还可包括:

107、启动计算集群并开启所述计算集群的第一互联类型对应的通信模式之后,测试所述计算集群中各计算节点上的任意两个计算资源间的互联带宽,以作为所述任意两个计算资源间所述第一互联类型对应的数据传输性能指标进行记录。

108、启动计算集群并关闭所述计算集群的第一互联类型对应的通信模式之后,测试所述计算集群中各计算节点上的任意两个计算资源间的互联带宽,以作为所述任意两个计算资源间第二互联类型对应的数据传输性能指标进行记录。

通常,在启动计算集群时,若开启了第一互联类型对应的通信模式,则各计算节点上的任意两个计算资源间第一互联类型对应的数据传输通道就会被开启,这时测试到的任意两个计算资源间的互联带宽就是所述任意两个计算资源间所述第一互联类型对应的数据传输性能指标。

若未开启第一互联类型对应的通信模式,则计算集群中的各计算节点上的任意两个计算资源间第一互联类型对应的数据传输通道就会被关闭,只剩下第二互联类型对应的数据传输通道,这时测试到的任意两个计算资源间的互联带宽就是所述任意两个计算资源间所述第二互联类型对应的数据传输性能指标。

对数据传输性能指标进行记录,形成记录信息,以便后续查询。

上述106中,处理需求可以是用户输入的,也可按照下述方案来确定。具体地:上述106中“确定所述待调度任务的处理需求”,可采用如下步骤来实现:

1061、根据所述计算集群的运行日志,查询所述待调度任务所对应的应用程序是否为历史上已运行过的应用程序。

1062、若所述待调度任务所对应的应用程序为历史上已运行过的应用程序,则根据所述运行日志,确定处理所述待调度任务时,计算资源间所需的互联类型。

上述1061中,运行日志具体可以为系统调用堆栈。若系统调用堆栈中存在与待调度任务所对应的应用程序有关的调用信息,则可判定该应用程序为历史上已运行过的应用程序。若系统调用堆栈中不存在与待调度任务所对应的应用程序有关的调用信息,则可判定该应用程序不为历史上已运行过的应用程序。

以人工智能模型训练为例,人工智能模型的训练会进行多次,例如:当有新的训练数据产生时,就可基于新的训练数据开启一次模型训练。训练任务所对应的应用程序一般是不变的,只是训练任务所基于的训练数据会发生变化。

在一实例中,上述1062中“根据所述运行日志,确定处理所述待调度任务时,计算资源间所需的互联类型”,具体可采用如下步骤来实现:

S11、根据所述运行日志,确定所述应用程序在历史上运行时是否使用了第一互联类型对应的数据传输通道。

S12、若所述应用程序在历史上运行时使用了第一互联类型对应的数据传输通道,则确定所述互联类型为所述第一互联类型。

上述S11中运行日志具体可以为系统调用堆栈,系统调用堆栈中记录了所述应用程序在历史上运行时是否使用了第一互联类型对应的数据传输通道。

考虑到实际应用时,就算计算集群开启了点对点互联类型对应的通信模式,有些计算资源间因物理结构的限制,依旧无法实现点对点互联类型对应的通信。例如:不在同一PCIe总线上的两个GPU之间若没有Nvlink链路,则这两个GPU之间是无法实现点对点互联类型对应的通信。这样,在计算集群开启了点对点互联类型对应的通信模式且应用程序本身运行也要求点对点互联类型的情况下,若历史上运行该应用程序的计算资源组合中存在无法实现点对点互联类型对应的通信的两计算资源,由于兼容技术,会使得无法实现点对点互联类型对应的通信的两计算资源间通过非点对点互联类型对应的数据传输通道通信,则运行日志中很可能会记录下该应用程序不仅使用了点对点互联类型对应的数据传输通道,还使用了非点对点互联类型对应的数据传输通道。但是在应用程序本身运行要求的是非点对点互联类型的情况下,运行日志中就只会记录该应用程序使用了非点对点互联类型对应的数据传输通道,而不可能会记录其使用了点对点互联类型对应的数据传输通道。因此,上述1062中“根据所述运行日志,确定处理所述待调度任务时,计算资源间所需的互联类型”,还包括:

S13、若所述应用程序在历史上处理时未使用第一互联类型对应的数据传输通道,则确定所述互联类型为第二互联类型。

进一步的,上述106中“确定所述待调度任务的处理需求”,还包括:

1063、若所述待调度任务所对应的应用程序不是历史上已运行过的应用程序,则默认所述互联类型为第一互联类型。

当然,实际应用时,也可默认互联类型为第二互联类型。本申请实施例对此不做具体限定。

图1d为本申请一实施例提供的调度系统的结构示意图。如图1d所示,该调度系统,包括:计算集群;所述计算集群中包括:调度器和多个计算节点;

所述调度器用于:获取待调度任务及其处理需求;其中,所述处理需求中包括:处理所述待调度任务时,计算资源间所需的互联类型;结合所述互联类型,从计算集群中计算节点上,确定出目标计算资源组合;将所述待调度任务调度给所述计算集群中所述目标计算资源所在的目标计算节点,以由所述目标计算节点将所述待调度任务分配给所述目标计算资源组合进行处理。

其中,每一个计算节点上可包括多个计算资源。每一个计算计算节点可以为一台物理机或虚拟机(例如:云计算平台上的虚拟机)。其中,调度器具体也可以为一台物理机或虚拟机。

下面结合方法实施例,针对调度器对任务调度的过程进行详细说明。

图2示出了本申请又一实施例提供的任务调度方法的流程示意图。本申请实施例提供的该方法由上述调度器执行。如图2所示,该方法包括:

201、获取待调度任务及其处理需求。

其中,所述处理需求中包括:处理所述待调度任务时,计算资源间所需的互联类型。

202、结合所述互联类型,从计算集群中计算节点上,确定出目标计算资源组合。

203、将所述待调度任务调度给所述计算集群中所述目标计算资源所在的目标计算节点,以由所述目标计算节点将所述待调度任务分配给所述目标计算资源组合进行处理。

上述201中“获取待调度任务的处理需求”的具体实现可参见上述各实施例中“确定待调度任务的处理需求”的有关内容,在此不再赘述。

在一实例中,上述互联类型包括第一互联类型和第二互联类型。第一互联类型具体可以为点对点互联类型,第二互联类型具体可以为非点对点互联类型。

在一种可实现的方案中,上述202中,可从计算集群中计算节点上,确定出满足所述互联类型的目标计算资源组合。其中,满足所述互联类型的目标计算资源组合指的是能够以所述互联类型对应的通信方式实现通信的计算资源组合。目标计算资源组合中的计算资源位于同一个计算节点上。在实际应用时,从计算集群中计算节点上,确定出满足所述互联类型的计算资源组合可能存在多个;若存在多个,则可从多个满足所述互联类型的计算资源组合中随机选定一个作为目标计算资源组合。

举例来说:待调度任务要求运行在点对点互联的两个计算资源上。也就是说,处理所述待调度任务时,计算资源间所需的互联类型为点对点互联类型,则从计算集群中计算节点上,选出多个计算资源组合,每个计算资源组合均由点对点互联的两个计算资源组成;后续,从多个计算资源组合中随机选出一个作为目标计算资源组合即可。

上述203的具体实现可参见上述各实施例中相应内容,在此不再赘述。

本申请实施例提供的技术方案,会结合待调度任务自身运行所需求的互联类型,从计算集群中,确定出最终用于处理待调度任务的目标计算资源组合。也就是说,本申请实施例提供的技术方案能够结合待调度任务的自身特性,选择合适的计算资源组合来处理待调度任务,可有效提高待调度任务的处理速度。

在另一种可实现的方案中,上述202中“结合所述互联类型,从计算集群中计算节点上,确定出目标计算资源组合”,具体可采用如下步骤来实现:

2021、根据待调度任务,从计算集群中各计算节点上,确定出计算资源组合。

2022、根据各计算资源组合的运行时信息,从确定出的计算资源组合中确定出目标计算资源组合。

上述2021的具体实现可参见上述各实施例中相应内容,在此不再赘述。

上述2022中,其中,所述运行时信息是在所述异构计算集群以所述互联类型对应的通信模式运行时检测得到的。

在一实例中,各计算资源组合的运行时信息中可包括其中计算资源间所述互联类型对应的数据传输性能指标、各计算资源的负载情况、运行异常与否信息中的一项或多项。

实际应用时,可采用如下方法来测试计算资源间不同互联类型对应的数据传输性能指标。即上述方法,还可包括:

204、启动计算集群并开启所述计算集群的第一互联类型对应的通信模式之后,测试所述计算集群中各计算节点上的任意两个计算资源间的互联带宽,以作为所述任意两个计算资源间所述第一互联类型对应的数据传输性能指标进行记录。

205、启动计算集群并关闭所述计算集群的第一互联类型对应的通信模式之后,测试所述计算集群中各计算节点上的任意两个计算资源间的互联带宽,以作为所述任意两个计算资源间第二互联类型对应的数据传输性能指标进行记录。

上述第一互联类型具体可以为点对点互联类型;第二互联类型具体可以为非点对点互联类型。

有关上述204和205的具体内容可参见上述各实施例中相应内容,在此不再赘述。

以各计算资源组合的运行时信息中包括:其中计算资源间所述互联类型对应的实测互联带宽为例:上述2022中“根据各计算资源组合的运行时信息,从确定出的计算资源组合中确定出目标计算资源组合”,具体可采用如下步骤来实现:

b1、针对各计算资源组合,对其中各个计算资源间所述互联类型对应的数据传输性能指标进行求和,得到各计算资源组合对应的指标总和。

b2、根据各计算资源组合对应的指标总和,从确定出的计算资源组合中确定出目标计算资源组合。

上述b1中,各计算资源组合中包括第一计算资源组合,对第一计算资源组合中各个计算资源间所述互联类型对应的数据传输性能指标进行求和,得到第一计算资源组合对应的指标总和。其中,第一计算资源组合指代的是确定出的计算资源组合中的任意一个。具体地,可分别获取第一计算资源组合中多个计算资源中任意两个计算资源间所述互联类型对应的数据传输性能指标;对所述获取到的第一计算资源组合中多个计算资源中任意两个计算资源间所述互联类型对应的数据传输性能指标进行求和,得到第一计算资源组合对应的指标总和。

举例来说:上述互联类型为第一互联类型;第一计算资源组合中包括计算资源A、计算资源B和计算资源C;分别获取计算资源A和计算资源B间第一互联类型对应的数据传输性能指标a、计算资源A和计算资源C间第一互联类型对应的数据传输性能指标b以及计算资源B和计算资源C间第一互联类型对应的数据传输性能指标c;对数据传输性能指标a、数据传输性能指标b以及数据传输性能指标c进行求和,得到第一计算资源组合对应的指标总和h。其中,h=a+b+c。

实际应用时,为了能够达到最优的处理效率,上述a2中,可将指标总和最优的计算资源组合确定为目标计算资源组合。

上述计算计算资源组合对应的指标总和的方案适合计算资源组合中的计算资源的数量大于或等于3的情况。当计算资源组合中的计算资源的数量为2时,就无需计算计算资源组合对应的指标总和,直接根据各计算资源组合中两计算资源间所述互联类型对应的数据传输性能指标,从确定出的计算资源组合中确定出目标计算资源组合。在一实例中,也可将两计算资源间所述互联类型对应的数据传输性能指标最大的计算资源组合确定为目标计算资源组合。

进一步的,上述方法,还可包括:

206、确定各计算资源组合处理所述待调度任务所需的通信路径。

207、针对各计算资源组合,获取其处理所述待调度任务所需的通信路径上,需进行通信的两计算资源间所述互联类型对应的数据传输性能指标。

其中,各计算资源组合的运行时信息中包括:其处理所述待调度任务所需的通信路径上,需进行通信的两计算资源间所述互联类型对应的数据传输性能指标。

针对各计算资源组合,可获取其处理所述待调度任务所需的通信路径上,所有需进行通信的两计算资源间所述互联类型对应的数据传输性能指标。

上述步骤206和207的具体实现可参见上述各实施例中相应内容,在此不再赘述。

在一实例中,上述2022中“根据各计算资源组合的运行时信息,从确定出的计算资源组合中确定出目标计算资源组合”,具体可采用如下步骤来实现:

S21a、针对各计算资源组合,对其处理所述待调度任务所需的通信路径上,需进行通信的两计算资源间所述互联类型对应的数据传输性能指标进行求和,得到各计算资源组合对应的指标总和。

S22a、根据各计算资源组合对应的指标总和,从确定出的计算资源组合中确定出目标计算资源组合。

上述步骤S21a、S22a的具体实现可参见上述各实施例中相应内容,在此不再赘述。

在另一实例中,上述2022中“根据各计算资源组合的运行时信息,从确定出的计算资源组合中确定出目标计算资源组合”,具体可采用如下步骤来实现:

S21b、针对各计算资源组合,确定其处理所述待调度任务所需的通信路径上,需进行通信的两计算资源间所述互联类型对应的数据传输性能指标中最差的数据传输性能指标。

S22b、根据各计算资源组合对应的最差的数据传输性能指标,从确定出的计算资源组合中确定出目标计算资源组合。

上述步骤S21b、S22b的具体实现可参见上述各实施例中相应内容,在此不再赘述。

实际应用时,可为用户提供一个任务提交界面,在任务提交界面上显示多种筛选策略,以供用户选择,这样可提供用户体验,满足用户的不同需求。多种筛选测量可有第一筛选策略、第二筛选策略以及第三筛选策略。其中,第一筛选策略具体为带宽总和最大规则,第二筛选策略具体为最窄带宽最大策略,第三筛选策略具体为静态策略。因此,上述方法,还可包括:

c、获取用户针对所述待调度任务配置的筛选策略。

用户针对待调度任务配置的筛选策略也即是用户在任务提交界面选中的筛选策略。

相应的,上述2022中“根据各计算资源组合的运行时信息,从确定出的计算资源组合中确定出目标计算资源组合”,具体为:所述筛选策略为第一筛选策略或第二筛选策略时,根据所述筛选策略以及各计算资源组合的运行时信息,从确定出的计算资源组合中确定出目标计算资源组合。

在实际应用时,当筛选策略为第一筛选策略(即指标总和最优规则)时,根据所述筛选策略以及各计算资源组合的运行时信息,从确定出的计算资源组合中确定出目标计算资源组合,具体包括:上述步骤S21a和S22a;当筛选策略为第二筛选策略(即最差指标最优策略)时,根据所述筛选策略以及各计算资源组合的运行时信息,从确定出的计算资源组合中确定出目标计算资源组合,具体包括:上述步骤S21b和S22b。

进一步的,上述202中“结合所述互联类型,从计算集群中计算节点上,确定出目标计算资源组合”,具体采用如下步骤来实现:

d、所述筛选策略为第三筛选策略时,获取事先针对所述互联类型配备的至少一个备选计算资源组合。

e、从所述至少一个备选计算资源组合中,确定出目标计算资源组合。

其中,第三筛选策略即为静态策略。

在一实例中,上述步骤d中获取至少一个备选计算资源组合,可包括:确定所述待调度任务所需的计算资源数量;获取事先针对所述计算资源数量以及所述互联类型配备的至少一个备选计算资源组合。其中,至少一个备选计算资源组合中各备选计算资源组合中计算资源的数量等于所述计算资源数量。

至少一个备选计算资源组合可以是人工配备的,例如:用户根据软硬件情况或历史运行情况,针对该计算资源数量以及互联类型配备性能较好的至少一个备选计算资源组合。

在一具体应用场景中,上述计算集群具体可以为异构计算集群,相应的,上述计算资源也即是异构资源。异构计算(Heterogeneous Computing),主要指使用不同的类型指令集、不同的体系架构的计算单元组成的系统的计算方式。异构计算集群中可包括多个计算节点,每个计算节点上均包括多个异构资源,异构资源具体可包括主处理单元和协处理单元。实际应用时,每个计算节点上的协处理单元的数量通常为多个。主处理单元可以为CPU;协处理单元可以为GPU或FPGA。

考虑到在异构计算集群中,主要影响任务处理速度是协处理单元之间的数据传输速率。故在下述实施例中,上述异构资源指代的是协处理单元。有关异构计算集群的任务调度方案的内容将结合图1d、图3、图4来详细介绍。

图1d为本申请一实施例提供的调度系统的结构示意图。如图1d所示,该调度系统,包括:异构计算集群;所述异构计算集群中包括:调度器和多个计算节点;

所述调度器用于:根据待调度任务,从异构计算集群中各计算节点上,确定出异构资源组合;根据各异构资源组合的运行时信息,从确定出的异构资源组合中确定出目标异构资源组合;将所述待调度任务调度给所述目标异构资源组合所在的目标计算节点,以由所述目标计算节点分配给所述目标异构资源组合进行处理。

其中,每一个计算节点上可包括多个计算资源。每一个计算计算节点可以为一台物理机或虚拟机(例如:云计算平台上的虚拟机)。其中,调度器具体也可以为一台物理机或虚拟机。

下面结合方法实施例,针对调度器对任务调度的过程进行详细说明。

图3示出了本申请实施例提供的任务调度方法的流程示意图。如图3所示,该方法包括:

301、根据待调度任务,从异构计算集群中各计算节点上,确定出异构资源组合。

302、根据各异构资源组合的运行时信息,从确定出的异构资源组合中确定出目标异构资源组合。

303、将所述待调度任务调度给所述目标异构资源组合所在的目标计算节点,以由所述目标计算节点分配给所述目标异构资源组合进行处理。

上述301、302和303的具体实现可参照上述各实施例中相应内容,在此不再赘述。

本申请实施例提供的技术方案,异构资源组合的运行时信息是在异构计算集群运行时检测出来的,能够真实反应异构资源组合的真实运行情况。根据各异构资源组合的真实运行情况,能够为待调度任务匹配到合适的目标异构资源组合,提高待调度任务的处理速度。

进一步的,上述方法啊,还包括:

304、确定各异构资源组合处理所述待调度任务所需的通信路径。

305、针对各异构资源组合,获取其处理所述待调度任务所需的通信路径上,需进行通信的两异构资源间的数据传输性能指标。

所述数据传输性能指标是在所述异构计算集群运行时测试得到的。

其中,各异构资源组合的运行时信息中包括:其处理所述待调度任务所需的通信路径上,需进行通信的两异构资源间的数据传输性能指标。

在一实例中,上述302中“根据各异构资源组合的运行时信息,从确定出的异构资源组合中确定出目标异构资源组合”,具体可采用如下步骤来实现:

3021a、针对各异构资源组合,对其处理所述待调度任务所需的通信路径上,需进行通信的两异构资源间的数据传输性能指标进行求和,得到各异构资源组合对应的指标总和。

3022a、根据各异构资源组合对应的指标总和,从确定出的异构资源组合中确定出目标异构资源组合。

在另一实例中,上述302中“根据各异构资源组合的运行时信息,从确定出的异构资源组合中确定出目标异构资源组合”,具体可采用如下步骤来实现:

3021b、针对各异构资源组合,确定其处理所述待调度任务所需的通信路径上,需进行通信的两异构资源间的数据传输性能指标中最差的数据传输性能指标。

3022b、根据各异构资源组合对应的最差的数据传输性能指标,从确定出的异构资源组合中确定出目标异构资源组合。

实际应用时,可为用户提供一个任务提交界面,在任务提交界面上显示多种筛选策略,以供用户选择,这样可提供用户体验,满足用户的不同需求。多种筛选测量可有第一筛选策略、第二筛选策略以及第三筛选策略。其中,第一筛选策略具体为指标总和最优规则,第二筛选策略具体为最差指标最优策略,第三筛选策略具体为静态策略。因此,上述方法,还可包括:

c、获取用户针对所述待调度任务配置的筛选策略。

用户针对待调度任务配置的筛选策略也即是用户在任务提交界面选中的筛选策略。

相应的,上述302中“根据各可用异构资源组合的运行时信息,从确定出的异构资源组合中确定出目标异构资源组合”,具体为:所述筛选策略为第一筛选策略或第二筛选策略时,根据所述筛选策略以及各异构资源组合的运行时信息,从确定出的异构资源组合中确定出目标异构资源组合。

在实际应用时,当筛选策略为第一筛选策略(即带宽总和最大规则)时,根据所述筛选策略以及各异构资源组合的运行时信息,从确定出的异构资源组合中确定出目标异构资源组合,具体包括:上述步骤3021a和3022a;当筛选策略为第二筛选策略(即最差带宽最优策略)时,根据所述筛选策略以及各异构资源组合的运行时信息,从确定出的异构资源组合中确定出目标异构资源组合,具体包括:上述步骤3021b和3022b。

进一步的,上述方法,还包括:

d、所述筛选策略为第三筛选策略时,获取至少一个备选异构资源组合。

e、从所述至少一个备选异构资源组合中,确定出目标异构资源组合。

其中,第三筛选策略即为静态策略。

在一实例中,上述步骤d中,获取至少一个备选异构资源组合,可包括:确定所述调度任务所需的异构资源数量;获取事先针对所述异构资源数量配备的至少一个备选异构资源组合。

其中,至少一个备选异构资源组合中各备选异构资源组合中异构资源的数量等于所述异构资源数量。

在另一实例中,上述步骤d中获取至少一个备选异构资源组合,可包括:确定所述待调度任务的处理需求,所述处理需求中包括:处理所述待调度任务时,所需的异构资源数量以及异构资源间所需的互联类型;获取事先针对所述异构资源数量以及所述互联类型配备的至少一个备选异构资源组合。

至少一个备选异构资源组合可以是人工配备的,例如:用户根据软硬件情况或历史运行情况,针对该异构资源数量以及互联类型配备性能较好的至少一个备选异构资源组合。

进一步的,上述方法,还包括:

306、确定所述待调度任务的处理需求,所述处理需求中包括:处理所述待调度任务时,异构资源间所需的互联类型。

上述305中“针对各异构资源组合,获取其处理所述待调度任务所需的通信路径上,需进行通信的两异构资源间的数据传输性能指标”,具体为:针对各异构资源组合,获取其处理所述待调度任务所需的通信路径上,需进行通信的两异构资源间所述互联类型对应的数据传输性能指标。

进一步的,上述方法,还包括:

307、启动异构计算集群并开启所述异构计算集群的第一互联类型对应的通信模式之后,测试所述异构计算集群中各计算节点上的任意两个异构资源间的互联带宽,以作为所述任意两个异构资源间所述第一互联类型对应的数据传输性能指标进行记录。

308、启动异构计算集群并关闭所述异构计算集群的第一互联类型对应的通信模式之后,测试所述异构计算集群中各计算节点上的任意两个异构资源间的互联带宽,以作为所述任意两个异构资源间第二互联类型对应的数据传输性能指标进行记录。

进一步的,所述第一互联类型为点对点互联类型;所述第二互联类型为非点对点互联类型。

进一步的,上述306中“确定所述待调度任务的处理需求”,具体可采用如下步骤来实现:

3061、根据所述异构计算集群的运行日志,查询所述待调度任务所对应的应用程序是否为历史上已运行过的应用程序。

3062、若所述待调度任务所对应的应用程序为历史上已运行过的应用程序,则根据所述运行日志,确定处理所述待调度任务时,异构资源间所需的互联类型。

进一步的,上述3062中“根据所述运行日志,确定处理所述待调度任务时,异构资源间所需的互联类型”,具体可采用如下步骤来实现:

S31、根据所述运行日志,确定所述应用程序在历史上运行时是否使用了第一互联类型对应的数据传输通道。

S32、若所述应用程序在历史上运行时使用了第一互联类型对应的数据传输通道,则确定所述互联类型为所述第一互联类型。

进一步的,上述3062中“根据所述运行日志,确定处理所述待调度任务时,异构资源间所需的互联类型”,还包括:

S33、若所述应用程序在历史上处理时未使用第一互联类型对应的数据传输通道,则确定所述互联类型为第二互联类型。

进一步的,上述306中“确定所述待调度任务的处理需求”,还包括:

3063、若所述待调度任务所对应的应用程序不是历史上已运行过的应用程序,则默认所述互联类型为第一互联类型。

进一步的,所述异构计算集群中包括多个计算节点;所述多个计算节点中包括第一计算节点;

上述301中“根据待调度任务,从异构计算集群中第一计算节点上,确定出异构资源组合”,具体可采用如下步骤来实现:

3011、确定所述待调度任务所需的异构资源数量;

3012、从所述第一计算节点上的多个异构资源中,确定出所述第一计算节点上的可用异构资源。

3013、所述第一计算节点上的可用异构资源的数量大于或等于所述异构资源数量时,从所述第一计算节点上的可用异构资源中,确定出至少一个异构资源组合;所述异构资源组合中异构资源的数量等于所述异构资源数量。

上述3013中,若所述第一计算节点上的可用异构资源的数量小于所述异构资源数量时,则忽略第一计算节点。

下面将结合图1a,对本申请实施例提供的任务调度方案进行举例介绍:

1、GPU带宽测试器91(GPU bandwidth analyzer)测试GPU之间的点对点P2P互联类型和非点对点互联类型对应的互联带宽,并且记录GPU id以及GPU之间的互联带宽并保存。比如0_1_p2p:25代表GPU0和GPU1间点对点p2p互联类型对应的数据传输性能指标为25G;而0_1_nop2p:9代表GPU0和GPU1间非p2p互联类型对应的数据传输性能指标为9G。

2、节点管理器93将本计算节点94的GPU卡数和上述获取到互联带宽作为节点信息上报给调度器95。

3、用户提交待调度任务对应的Pod,并指定处理任务所需的GPU卡数,比如卡数为2。

4、调度器95会向系统调用堆栈97(App historical Repo)查询该待调度任务对应的应用程序是否是历史上已经提交过的应用程序,如果是已经提交过的,就会判断该应用是否使用了P2P。若果使用了P2P,则会按照P2P的规则选取,否则就按非P2P的规则进行选取;如果没有提交过,会默认按照P2P的规则选取。

5、当调度器95找到合适的计算节点94后,就会委托GPU拓扑调度扩展器96(gputopo scheduler extender)的绑定方法进行计算节点和pod的绑定,这里扩展器需要做的是两件事情:一是将选取结果记录到应用的信息中,比如在注解annotation里记录目标GPU组合的分配记录;二是调用系统接口(以Kubernetes系统为例,系统接口即KubernetesAPI)执行计算节点和pod的绑定。

6、GPU插件92创建Pod:将原有的部署配置进行修改:将运行的命令由“pythonapp1.py”修改成gpu-analyzer‘python app1.py’;添加一个包含gpu-analyzer初始化容器,该容器将gpu-analyzer拷贝到与应用容器的共享目录中,随即退出;gpu-analyzer‘python app1.py’实际的工作是检测app1.py代码对于GPU之间的通信代码是使用了P2P还是非P2P的方式,并且将该信息上报给App historical Repo。这个信息用来在后续处理中调度时刻判断相应应用是否使用了P2P互联类型对应的通信方式。

本实施例中,根据运行时GPU之间的带宽检测定量取值,而非根据物理拓扑关系进行定性的区分;筛选策略以木桶理论为核心的最差指标最优策略,并且提供可配置性;提供反馈机制,记录应用是否使用基于P2P的调度模式。

本方案通过运行时检测带宽,多种筛选策略,与应用特征相结合的自适应调度,将GPU亲和性调度在真实场景落地。在使用亲和性调度的情况下,处理速度比没有使用亲和性调度能够提升10%以上。

这里需要说明的是:本申请实施例提供的所述方法中各步骤未尽详述的内容可参见上述实施例中的相应内容,此处不再赘述。此外,本申请实施例提供的所述方法中除了上述各步骤以外,还可包括上述各实施例中其他部分或全部步骤,具体可参见上述各实施例相应内容,在此不再赘述。

图1d为本申请一实施例提供的调度系统的结构示意图。如图1d所示,该调度系统,包括:异构计算集群;所述异构计算集群中包括:调度器和多个计算节点;

所述调度器用于:获取待调度任务及其处理需求;其中,所述处理需求中包括:处理所述待调度任务时,异构资源间所需的互联类型;结合所述互联类型,从异构计算集群中计算节点上,确定出目标异构资源组合;将所述待调度任务调度给所述异构计算集群中所述目标异构资源组合所在的目标计算节点,以由所述目标计算节点将所述待调度任务分配给所述目标异构资源组合进行处理。

其中,每一个计算节点上可包括多个异构资源。每一个计算计算节点可以为一台物理机或虚拟机(例如:云计算平台上的虚拟机)。其中,调度器具体也可以为一台物理机或虚拟机。

下面结合方法实施例,针对调度器对任务调度的过程进行详细说明。

图4示出了本申请实施例提供的任务调度方法的流程示意图。如图4所示,该方法包括:

401、获取待调度任务及其处理需求。

其中,所述处理需求中包括:处理所述待调度任务时,异构资源间所需的互联类型。

402、结合所述互联类型,从异构计算集群中计算节点上,确定出目标异构资源组合。

403、将所述待调度任务调度给所述异构计算集群中所述目标异构资源组合所在的目标计算节点,以由所述目标计算节点将所述待调度任务分配给所述目标异构资源组合进行处理。

上述401、402和403的具体实现可参见上述各实施例中相应内容,在此不再赘述。

本申请实施例提供的技术方案,会结合待调度任务自身处理所需求的互联类型,从异构计算集群中计算节点上,确定出最终用于处理待调度任务的目标异构资源组合。也就是说,本申请实施例提供的技术方案能够结合待调度任务的自身特性,选择合适的异构资源组合来处理待调度任务,可有效提高待调度任务的处理速度。

进一步的,上述402中“结合所述互联类型,从异构计算集群中计算节点上,确定出目标异构资源组合”,具体可采用如下步骤来实现:

4021、根据待调度任务,从异构计算集群中各计算节点上,确定出异构资源组合。

4022、根据各异构资源组合的运行时信息,从确定出的异构资源组合中确定出目标异构资源组合。

其中,所述运行时信息是在所述异构计算集群以所述互联类型对应的通信模式运行时检测得到的。

进一步的,上述方法,还可包括:

404、确定各异构资源组合处理所述待调度任务所需的通信路径。

405、针对各异构资源组合,获取其处理所述待调度任务所需的通信路径上,需进行通信的两异构资源间所述互联类型对应的数据传输性能指标。

其中,各异构资源组合的运行时信息中包括:其处理所述待调度任务所需的通信路径上,需进行通信的两异构资源间所述互联类型对应的数据传输性能指标。

这里需要说明的是:本申请实施例提供的所述方法中各步骤未尽详述的内容可参见上述实施例中的相应内容,此处不再赘述。此外,本申请实施例提供的所述方法中除了上述各步骤以外,还可包括上述各实施例中其他部分或全部步骤,具体可参见上述各实施例相应内容,在此不再赘述。

具体实施时,上述待调度任务具体为待调度的图像识别任务;异构资源具体为图形处理器GPU。这样,可通过GPU来加速图像识别任务的处理速度。

在一实例中,上述任务调度方法,具体包括:

701、根据待调度的图像识别任务,从异构计算集群中各计算节点上,确定出图形处理器GPU组合。

702、根据各GPU组合的运行时信息,从确定出的GPU组合中确定出目标GPU组合。

703、将所述图像识别任务调度给所述目标GPU组合所在的目标计算节点,以由所述目标计算节点分配给所述目标GPU组合进行加速处理。

在本实施例中,上述701、702和703的具体实现可参见上述各实施例中相应内容,在此不再赘述。

在另一实例中,上述任务调度方法,具体包括:

801、获取待调度的图像识别任务及其处理需求。

其中,所述处理需求中包括:处理所述图像识别任务时,GPU间所需的互联类型。

802、结合所述互联类型,从异构计算集群中计算节点上,确定出目标GPU组合。

803、将所述图像识别任务调度给所述异构计算集群中所述目标GPU组合所在的目标计算节点,以由所述目标计算节点将所述待调度任务分配给所述目标GPU组合进行加速处理。

在本实施例中,上述801、802和803的具体实现可参见上述各实施例中相应内容,在此不再赘述。

这里需要说明的是:本申请实施例提供的所述方法中各步骤未尽详述的内容可参见上述实施例中的相应内容,此处不再赘述。此外,本申请实施例提供的所述方法中除了上述各步骤以外,还可包括上述各实施例中其他部分或全部步骤,具体可参见上述各实施例相应内容,在此不再赘述。

图5示出了本申请实施例提供的任务调度装置的结构框图。如图5所示,该装置包括:

第一确定模块501,用于根据待调度任务,从计算集群中各计算节点上,确定出计算资源组合;

第二确定模块502,用于根据各计算资源组合的运行时信息,从确定出的计算资源组合中确定出目标计算资源组合;

第一调度模块503,用于将所述待调度任务调度给所述目标计算资源组合所在的目标计算节点,以由所述目标计算节点分配给所述目标计算资源组合进行处理。

进一步的,上述装置,还包括:

第三确定模块,用于确定各计算资源组合处理所述待调度任务所需的通信路径;

第一获取模块,用于针对各计算资源组合,获取其处理所述待调度任务所需的通信路径上,需进行通信的两计算资源间的数据传输性能指标;

其中,各计算资源组合的运行时信息中包括:其处理所述待调度任务所需的通信路径上,需进行通信的两计算资源间的数据传输性能指标。

进一步的,第三确定模块,还用于:确定所述待调度任务的处理需求,所述处理需求中包括:处理所述待调度任务时,计算资源间所需的互联类型;

相应的,第一获取模块,具体用于:针对各计算资源组合,获取其处理所述待调度任务所需的通信路径上,需进行通信的两计算资源间所述互联类型对应的数据传输性能指标。

进一步的,上述装置,还包括:

第一测试模块,用于启动计算集群并开启所述计算集群的第一互联类型对应的通信模式之后,测试所述计算集群中各计算节点上的任意两个计算资源间的互联带宽,以作为所述任意两个计算资源间所述第一互联类型对应的数据传输性能指标进行记录。

进一步的,第一测试模块,还用于启动计算集群并关闭所述计算集群的第一互联类型对应的通信模式之后,测试所述计算集群中各计算节点上的任意两个计算资源间的互联带宽,以作为所述任意两个计算资源间第二互联类型对应的数据传输性能指标进行记录。

进一步的,上述装置,还包括:

第四获取模块,用于获取用户针对所述待调度任务配置的筛选策略;

所述第二确定模块502,具体用于:所述筛选策略为第一筛选策略或第二筛选策略时,根据所述筛选策略以及各计算资源组合的运行时信息,从确定出的计算资源组合中确定出目标计算资源组合。

进一步的,上述装置,还包括:

第五确定模块,用于所述筛选策略为第三筛选策略时,获取至少一个备选计算资源组合;从所述至少一个备选计算资源组合中,确定出目标计算资源组合。

这里需要说明的是:上述实施例提供的任务调度装置可实现上述各方法实施例中描述的技术方案,上述各模块或单元具体实现的原理及有益效果可参见上述各方法实施例中的相应内容,此处不再赘述。

图6示出了本申请实施例提供的任务调度装置的结构框图。如图6所示,该装置包括:

第二获取模块601,用于获取待调度任务及其处理需求;其中,所述处理需求中包括:处理所述待调度任务时,计算资源间所需的互联类型;

第四确定模块602,用于结合所述互联类型,从计算集群中计算节点上,确定出目标计算资源组合;

第二调度模块603,用于将所述待调度任务调度给所述计算集群中所述目标计算资源所在的目标计算节点,以由所述目标计算节点将所述待调度任务分配给所述目标计算资源组合进行处理。

进一步的,所述第四确定模块602,具体用于根据待调度任务,从计算集群中各计算节点上,确定出计算资源组合;根据各计算资源组合的运行时信息,从确定出的计算资源组合中确定出目标计算资源组合。

进一步的,上述装置,还包括:

第一测试模块,用于启动计算集群并开启所述计算集群的第一互联类型对应的通信模式之后,测试所述计算集群中各计算节点上的任意两个计算资源间的互联带宽,以作为所述任意两个计算资源间所述第一互联类型对应的数据传输性能指标进行记录。

进一步的,第一测试模块,还用于启动计算集群并关闭所述计算集群的第一互联类型对应的通信模式之后,测试所述计算集群中各计算节点上的任意两个计算资源间的互联带宽,以作为所述任意两个计算资源间第二互联类型对应的数据传输性能指标进行记录。

进一步的,上述装置,还可包括:

第五确定模块,用于确定各计算资源组合处理所述待调度任务所需的通信路径。

第三获取模块,用于针对各计算资源组合,获取其处理所述待调度任务所需的通信路径上,需进行通信的两计算资源间所述互联类型对应的数据传输性能指标。

进一步的,上述装置,还包括:

第四获取模块,用于获取用户针对所述待调度任务配置的筛选策略。

第四确定模块602,具体用于:所述筛选策略为第一筛选策略或第二筛选策略时,根据所述筛选策略以及各计算资源组合中计算资源间所述互联类型对应的数据传输性能指标,从确定出的计算资源组合中确定出目标计算资源组合。

进一步的,第四确定模块602,具体用于:所述筛选策略为第三筛选策略时,获取事先针对所述互联类型配备的至少一个备选计算资源组合;从所述至少一个备选计算资源组合中,确定出目标计算资源组合。

这里需要说明的是:上述实施例提供的任务调度装置可实现上述各方法实施例中描述的技术方案,上述各模块或单元具体实现的原理及有益效果可参见上述各方法实施例中的相应内容,此处不再赘述。

图5示出了本申请实施例提供的任务调度装置的结构框图。如图5所示,该装置包括:

第一确定模块501,用于根据待调度任务,从异构计算集群中各计算节点上,确定出异构资源组合;

第二确定模块502,用于根据各异构资源组合的运行时信息,从确定出的异构资源组合中确定出目标异构资源组合;

第一调度模块503,用于将所述待调度任务调度给所述目标异构资源组合所在的目标计算节点,以由所述目标计算节点分配给所述目标异构资源组合进行处理。

这里需要说明的是:上述实施例提供的任务调度装置可实现上述各方法实施例中描述的技术方案,上述各模块或单元具体实现的原理及有益效果可参见上述各方法实施例中的相应内容,此处不再赘述。

图6示出了本申请实施例提供的任务调度装置的结构框图。如图6所示,该装置包括:

第二获取模块601,用于获取待调度任务及其处理需求。

其中,所述处理需求中包括:处理所述待调度任务时,异构资源间所需的互联类型。

第四确定模块602,用于结合所述互联类型,从异构计算集群中计算节点上,确定出目标异构资源组合。

第二调度模块603,用于将所述待调度任务调度给所述异构计算集群中所述目标异构资源组合所在的目标计算节点,以由所述目标计算节点将所述待调度任务分配给所述目标异构资源组合进行处理。

这里需要说明的是:上述实施例提供的任务调度装置可实现上述各方法实施例中描述的技术方案,上述各模块或单元具体实现的原理及有益效果可参见上述各方法实施例中的相应内容,此处不再赘述。

图7示出了本申请一实施例提供的电子设备的结构示意图。如图7所示,所述电子设备包括存储器1101以及处理器1102。存储器1101可被配置为存储其它各种数据以支持在电子设备上的操作。这些数据的示例包括用于在电子设备上操作的任何应用程序或方法的指令。存储器1101可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。

所述存储器1101,用于存储程序;

所述处理器1102,与所述存储器1101耦合,用于执行所述存储器1101中存储的所述程序,以实现上述各方法实施例提供的任务调度方法。

进一步,如图7所示,电子设备还包括:通信组件1103、显示器1104、电源组件1105、音频组件1106等其它组件。图7中仅示意性给出部分组件,并不意味着电子设备只包括图7所示组件。

相应地,本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,所述计算机程序被计算机执行时能够实现上述各方法实施例提供的任务调度方法的步骤或功能。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施例的描述,本领域的技术人员可以清楚地了解到各实施例可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

相关技术
  • 分布式任务调度及注册方法、设备和分布式任务调度系统
  • 任务调度方法、任务调度装置、任务调度设备及存储介质
技术分类

06120113084341