CN113094179B - 作业分配方法、装置、电子设备及可读存储介质 - Google Patents
作业分配方法、装置、电子设备及可读存储介质 Download PDFInfo
- Publication number
- CN113094179B CN113094179B CN202110445349.6A CN202110445349A CN113094179B CN 113094179 B CN113094179 B CN 113094179B CN 202110445349 A CN202110445349 A CN 202110445349A CN 113094179 B CN113094179 B CN 113094179B
- Authority
- CN
- China
- Prior art keywords
- node
- computing
- level
- computing nodes
- node group
- 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
- 238000000034 method Methods 0.000 title claims abstract description 78
- 238000004891 communication Methods 0.000 claims abstract description 218
- 230000001174 ascending effect Effects 0.000 claims abstract description 12
- 238000004364 calculation method Methods 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 6
- 230000008569 process Effects 0.000 description 20
- 235000008694 Humulus lupulus Nutrition 0.000 description 18
- 230000006870 function Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 238000012360 testing method Methods 0.000 description 6
- 238000010276 construction Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 239000012530 fluid Substances 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000011056 performance test Methods 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
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/5061—Partitioning or combining of resources
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请提供一种作业分配方法、装置、电子设备及可读存储介质,涉及计算机技术领域。该方法将计算节点按照通信距离分为L级节点组,将作业按照节点组等级递增的顺序依次分配给L级节点组中的计算节点,这样可以使得用于执行作业的计算节点之间的通信距离尽可能是最短的,从而可以减少通信延迟,提高计算集群的计算性能。
Description
技术领域
本申请涉及计算机技术领域,具体而言,涉及一种作业分配方法、装置、电子设备及可读存储介质。
背景技术
用高速网络将高性能工作站或服务器按照某种结构连接成集群,高性能计算集群通常具有大量的计算节点,通过高性能互连网络连接起来,协调工作,并行计算,可提供强大的计算能力。例如,高性能集群可同时向多用户提供高并发计算服务,用户可并行提交作业,作业调度***会根据用户需求进行作业调度,分配计算资源,完成计算任务,并返回计算结果给用户。
由于高性能互连网络的主要功能是实现***中大量节点间的消息传送,因而其通信延迟将直接影响高性能集群的计算能力的发挥,而目前的作业分配方法是随机选择一些计算节点用于执行作业,并未充分考虑通信延迟对集群的计算性能带来的影响。
发明内容
本申请实施例的目的在于提供一种作业分配方法、装置、电子设备及可读存储介质,用以改善现有的作业分配方法未考虑通信延迟对计算集群的计算性能的影响。
第一方面,本申请实施例提供了一种作业分配方法,所述方法包括:获取执行目标作业所需的计算节点数;获取由计算集群中的计算节点所构成的L级节点组,所述L级节点组满足如下条件:在i取2至L之间的整数时,每个第i级节点组包括多个第i-1级节点组,所述多个第i-1级节点组之间具有相同且最小的通信距离Si;在i取1时,每个第1级节点组包括多个计算节点,且所述多个计算节点相互之间具有相同的通信距离S1;i取1至L之间的整数时,通信距离Si随i的增大而增大;从所述L级节点组中的一个第1级节点组开始,按照节点组等级递增的顺序选取用于执行所述目标作业的目标计算节点;其中,若当前节点组所包含的计算节点已经全部被选为目标计算节点,但已选的目标计算节点的总数仍未达到所述计算节点数,则继续从包含所述当前节点组的下一级节点组中选择目标计算节点,直至目标计算节点的数量达到所述计算节点数;将所述目标作业分配至所述目标计算节点上执行。
在上述实现过程中,该方法将计算节点按照通信距离分为L级节点组,将作业按照节点组等级递增的顺序依次分配给L级节点组中的计算节点,这样可以使得用于执行作业的计算节点之间的通信距离尽可能是最短的,从而可以减少通信延迟,提高计算集群的计算性能。
可选地,所述从所述L级节点组中的一个第1级节点组开始,按照节点组等级递增的顺序选取用于执行所述目标作业的目标计算节点,包括:
从所述L级节点组中的一个第1级节点组开始,判断所述计算节点数是否大于数量最多的第i级节点组中计算节点的数量,且小于或等于数量最少的一个第i+1级节点组中计算节点的数量;
若是,选择任意一个第i级节点组中的所有计算节点作为用于执行所述目标作业的目标计算节点,且选择与所述任意一个第i级节点组在同一个第i+1级节点组中的第i级节点组中的计算节点,直至所述目标计算节点的数量达到所述计算节点数。
在上述实现过程中,在选取目标计算节点时,选取在同一个第i级节点组内的计算节点,若数量不够,在同一个第i+1级节点组内选取,这样可以确保所选取的目标计算节点尽量在同一个节点组内,使得相互之间的通信距离尽可能最短,以减少计算节点之间的通信延迟。
可选地,所述从所述L级节点组中的一个第1级节点组开始,按照节点组等级递增的顺序选取用于执行所述目标作业的目标计算节点,包括:
判断所述计算节点数是否小于或等于数量最少的一个第1级节点组中计算节点的数量;
若是,则从任意一个第1级节点组中选取所述计算节点数的用于执行所述目标作业的目标计算节点。
在上述实现过程中,在所需求的计算节点数较少时,从一个第1级节点组中来选取目标计算节点,这样可以使得所选取的目标计算节点之间的通信距离是最短的,通信延迟最小。
可选地,所述从任意一个第1级节点组中选取所述计算节点数的用于执行所述目标作业的目标计算节点,包括:
将各个第1级节点组中的计算节点形成空闲节点队列;
从空闲节点数量最多的一个第1级节点组对应的空闲节点队列中依次选取所述计算节点数的用于执行所述目标作业的目标计算节点。
在上述实现过程中,从空闲节点数量最多的节点组中来选取执行当前目标作业的目标计算节点,这样可以均衡各个计算节点之间的计算量,实现负载均衡。
可选地,通过以下方式获取所述L级节点组:
获取所述计算集群所形成的网络结构;
根据所述网络结构分析各个计算节点之间的通信距离;
根据所述通信距离构建各个计算节点的L级节点组。
在上述实现过程中,通过解析计算集群所形成的网络结构,获取各个计算节点之间的通信距离,根据通信距离来构建L级节点组,这样在选择执行作业的计算节点时,可快速从L级节点组中选择距离较近的一些计算节点,从而可尽量降低计算节点之间的通信延迟。
可选地,所述通信距离为两个计算节点之间的通信路径上的通信设备的数量,所述根据所述通信距离构建各个计算节点的L级节点组,包括:
在i取1时,将相互之间的通信距离相同的多个计算节点构成一个第1级节点组;
在i取2到L时,将相互之间具有相同且最小的通信距离的多个第i-1级节点组构成一个第i级节点组,直至获得L级节点组。
在上述实现过程中,根据通信距离来构建L级节点组,将相同通信距离的计算节点归为一个节点组,这样可以便于选择计算节点时,可以快速找到距离相近的一些节点。
可选地,所述根据所述网络结构分析各个计算节点之间的通信距离,包括:
遍历所述网络结构,解析获得所述网络结构中的各个网络设备的设备信息以及各个网络设备之间的连接信息,网络设备包括通信设备和计算节点;
根据各个网络设备的设备信息以及各个网络设备之间的连接信息,获取各个计算节点之间通信的通信路径;
根据所述通信路径获取各个计算节点之间的通信距离。
在上述实现过程中,通过分析网络结构中的设备信息以及连接信息来获取各个计算节点之间的通信路径,从而可准确获得各个计算节点之间的通信距离。
第二方面,本申请实施例提供了一种作业分配装置,所述装置包括:
节点数量获取模块,用于获取执行目标作业所需的计算节点数;
节点组获取模块,用于获取由计算集群中的计算节点所构成的L级节点组,所述L级节点组满足如下条件:在i取2至L之间的整数时,每个第i级节点组包括多个第i-1级节点组,所述多个第i-1级节点组之间具有相同且最小的通信距离Si;在i取1时,每个第1级节点组包括多个计算节点,且所述多个计算节点相互之间具有相同的通信距离S1;i取1至L之间的整数时,通信距离Si随i的增大而增大;
计算节点选取模块,用于从所述L级节点组中的一个第1级节点组开始,按照节点组等级递增的顺序选取用于执行所述目标作业的目标计算节点;其中,若当前节点组所包含的计算节点已经全部被选为目标计算节点,但已选的目标计算节点的总数仍未达到所述计算节点数,则继续从包含所述当前节点组的下一级节点组中选择目标计算节点,直至目标计算节点的数量达到所述计算节点数;
作业分配模块,用于将所述目标作业分配至所述目标计算节点上执行。
可选地,所述计算节点选取模块,用于:
从所述L级节点组中的一个第1级节点组开始,判断所述计算节点数是否大于数量最多的第i级节点组中计算节点的数量,且小于或等于数量最少的一个第i+1级节点组中计算节点的数量;
若是,选择任意一个第i级节点组中的所有计算节点作为用于执行所述目标作业的目标计算节点,且选择与所述任意一个第i级节点组在同一个第i+1级节点组中的第i级节点组中的计算节点,直至所述目标计算节点的数量达到所述计算节点数。
可选地,所述计算节点选取模块,用于判断所述计算节点数是否小于或等于数量最少的一个第1级节点组中计算节点的数量;若是,则从任意一个第1级节点组中选取所述计算节点数的用于执行所述目标作业的目标计算节点。
可选地,所述计算节点选取模块,用于将各个第1级节点组中的计算节点形成空闲节点队列;从空闲节点数量最多的一个第1级节点组对应的空闲节点队列中依次选取所述计算节点数的用于执行所述目标作业的目标计算节点。
可选地,所述计算节点选取模块,还用于获取所述计算集群所形成的网络结构;根据所述网络结构分析各个计算节点之间的通信距离;根据所述通信距离构建各个计算节点的L级节点组。
可选地,所述通信距离为两个计算节点之间的通信路径上的通信设备的数量,所述计算节点选取模块,还用于在i取1时,将相互之间的通信距离相同的多个计算节点构成一个第1级节点组;在i取2到L时,将相互之间具有相同且最小的通信距离的多个第i-1级节点组构成一个第i级节点组,直至获得L级节点组。
可选地,所述计算节点选取模块,还用于遍历所述网络结构,解析获得所述网络结构中的各个网络设备的设备信息以及各个网络设备之间的连接信息,网络设备包括通信设备和计算节点;根据各个网络设备的设备信息以及各个网络设备之间的连接信息,获取各个计算节点之间通信的通信路径;根据所述通信路径获取各个计算节点之间的通信距离。
第三方面,本申请实施例提供一种电子设备,包括处理器以及存储器,所述存储器存储有计算机可读取指令,当所述计算机可读取指令由所述处理器执行时,运行如上述第一方面提供的所述方法中的步骤。
第四方面,本申请实施例提供一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时运行如上述第一方面提供的所述方法中的步骤。
本申请的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请实施例了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种用于执行作业分配方法的电子设备的结构示意图;
图2为本申请实施例提供的一种作业分配方法的流程图;
图3为本申请实施例提供的一种计算集群的网络结构示意图;
图4为本申请实施例提供的一种解析各个网络设备的示意图;
图5为本申请实施例提供的另一种计算集群的网络结构示意图;
图6为本申请实施例提供的一种计算节点选取的流程图;
图7为本申请实施例提供的一种不同通信距离的计算节点之间的通信延迟情况示意图;
图8为本申请实施例提供的一种采用本申请的作业分配方法与采用现有的作业分配方法选取计算节点执行作业的通信性能的测试结果对比图;
图9为本申请实施例提供的一种作业分配装置的结构框图。
具体实施方式
下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述。
本申请实施例提供一种作业分配方法,该方法将计算节点按照通信距离分为L级节点组,将作业按照节点组等级递增的顺序依次分配给L级节点组中的计算节点,这样可以使得用于执行作业的计算节点之间的通信距离尽可能是最短的,从而可以减少通信延迟,提高计算集群的计算性能。
请参照图1,图1为本申请实施例提供的一种用于执行作业分配方法的电子设备的结构示意图,所述电子设备可以包括:至少一个处理器110,例如CPU,至少一个通信接口120,至少一个存储器130和至少一个通信总线140。其中,通信总线140用于实现这些组件直接的连接通信。其中,本申请实施例中设备的通信接口120用于与其他节点设备进行信令或数据的通信。存储器130可以是高速RAM存储器,也可以是非易失性的存储器(non-volatilememory),例如至少一个磁盘存储器。存储器130可选的还可以是至少一个位于远离前述处理器的存储装置。存储器130中存储有计算机可读取指令,当所述计算机可读取指令由所述处理器110执行时,电子设备执行下述图2所示方法过程,例如,存储器130可用于存储L级节点组,处理器110可用于根据执行作业所需的计算节点数,从L级节点组中选取通信距离较短的一些计算节点,并将作业分配给这些计算节点执行。
可以理解,图1所示的结构仅为示意,所述电子设备还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。图1中所示的各组件可以采用硬件、软件或其组合实现。
请参照图2,图2为本申请实施例提供的一种作业分配方法的流程图,该方法包括如下步骤:
步骤S110:获取执行目标作业所需的计算节点数。
本申请中的作业分配方法可应用于作业调度***,作业调度***可运行于上述的电子设备中,电子设备可以是指服务器、终端等具有一定数据处理能力的设备。作业调度***可以是指如SLURM、PBS等调度***,作业调度***可用于接收用户提交的作业请求,并根据特定的调度规则以及用户对作业的要求选择合适的资源来完成用户作业请求。为了便于描述,下述均以作业调度***为执行主体来说明本申请中的作业分配方法的具体实现过程。
在一些实施方式中,作业调度***可为用户提供交互界面,用户可在交互界面上提交作业请求,作业请求中可以包括需要执行的目标作业以及执行目标作业所需的计算节点数,如此,作业调度***即可获得执行目标作业所需的计算节点数。其中,目标作业可以理解为是待执行作业中的其中一个作业,如图像处理作业、流体计算作业等,对于每个作业的分配均可按照本申请实施例提供的作业分配方法来执行。计算节点数是指执行目标作业所需的计算节点的数量,计算节点是指计算集群中具有一定数据处理能力的物理机,如服务器、终端设备等,作业分配到这些计算节点上执行。
为了实现作业调度***和计算节点之间的通信,计算集群中除了计算节点外,在计算集群中还包括有大量的如交换机或路由器等通信设备,通信设备用于作业调度***与计算节点之间的数据传输,如作业调度***将待执行的作业通过通信设备发送至对应的计算节点,计算节点将执行作业后获得的计算结果通过通信设备传输至作业调度***。
在一些实施方式中,作业调度***也可以根据用户提交的作业请求来自动分析执行目标作业所需的计算节点数,如用户提交的作业请求中包括目标作业,作业调度***可分析在执行目标作业时需将目标作业拆分成多少数量的子作业,如此,即可确定执行这些子作业需要多少个计算节点,从而获得执行目标作业所需的计算节点数。其中,作业调度***在进行作业拆分时,可根据目标作业的相关信息(如作业类型、执行目标作业所需的CPU资源、内存资源等信息)进行拆分,具体的拆分过程可现在现有的相关实现过程,在此不详细说明。如对于流体计算作业,若将其拆分后可获得20个子作业,则就需要20个计算节点,每个计算节点可对应执行一个作业,这样20个计算节点可并行执行20个子作业。或者,也可以根据执行目标作业所需的CPU资源和内存资源等信息来确定计算节点数,如一个计算节点所需的CPU资源和内存资源是已知的,所以可以根据执行目标作业所需的CPU资源和内存资源确定需要多少个计算节点,若各个计算节点的CPU资源或内存资源不同时,则在下述选取执行目标作业的目标计算节点时,可以根据各个计算节点的CPU资源或内存资源来选取,使得所选取的计算节点的CPU资源或内存资源更符合目标作业所需的资源。
步骤S120:获取由计算集群中的计算节点所构成的L级节点组。
本申请实施例中为了降低通信延迟,考虑根据计算节点之间的通信距离来进行作业分配。其中,可预先构建由计算节点所形成的L级节点组存储在电子设备中,在选择执行目标作业的目标计算节点时,可以直接从L级节点组中来选取,这样选取的节点速度更快,当然,也可以在需要选取目标计算节点时来构建L级节点组。
为了便于将作业分配给通信距离尽可能近的一些计算节点,则L级节点组需要满足以下条件:在i取2至L之间的整数时,每个第i级节点组包括多个第i-1级节点组,多个第i-1级节点组之间具有相同且最小的通信距离Si,在i取1时,每个第1级节点组包括多个计算节点,且多个计算节点相互之间具有相同的通信距离S1,i取1至L之间的整数时,通信距离Si随i的增大而增大。
为了对计算节点所构建的L级节点组进行说明,以计算集群的网络结构如图3所示。在图3的结构中,存在三级交换机,最底层的计算节点连接第一级交换机(如SW1、SW2、SW3、SW4),第一级交换机连接第二级交换机(如SW5、SW6),第二级交换机连接到第三级交换机(如SW7),第三级交换机可连接作业调度***。在构建L级节点组时,是先将通信距离相同的计算节点分为第1级节点组,通信距离是指两个计算节点之间的通信路径上的通信设备的数量,如计算节点N1和计算节点N2之间需通过交换机SW1交互,所以其通信距离为1跳,N1和N3之间需通过SW1、SW2、SW5三个交换机,所以,N1和N3之间的通信距离为3跳,如此可获得每两个计算节点之间的通信距离。
在进行节点分组时,可以将通信距离相同的计算节点分为第1级节点组,如上述图3中的计算节点,其第1级节点组包括:(N1,N2)、(N3,N4)、(N5,N6)、(N7,N8),在进行第2级节点组构建时,第2级节点组包括多个第1级节点组,其所包含的第1级节点组之间具有相同的通信距离,这里可以理解为各个第1级节点组的组间通信距离相同,组间通信距离是指两个节点组中计算节点之间的最大通信距离,如节点组(N1,N2)和节点组(N3,N4)的组间通信距离为3,而节点组(N1,N2)和节点组(N5,N6)的组间通信距离为5,也就是说在进行第2级节点组构建时,可以计算每两个第1级节点组之间的通信距离,然后将通信距离相同且最小的第1级节点组划分为一个第2级节点组,如第2级节点组包括:(N1,N2,N3,N4)和(N5,N6,N7,N8),此时两个第2级节点组中的两个第1级节点组之间的通信距离均为3,且是最小的组间通信距离(这里是指每次形成一个i级节点时,是将组间距离最小且相同的第i-1级节点形成一个i级节点)。在构建第3级节点组时,由于此时只有两个第2级节点组,所以,可以直接将两个第2节点组合并为一个第3级节点组,即第3级节点组包括:(N1,N2,N3,N4、N5,N6,N7,N8)。
按照该示例所形成的3级节点组可如以下形式表示:
第1级节点组:(N1,N2)、(N3,N4)、(N5,N6)、(N7,N8);
第2级节点组:(N1,N2,N3,N4)、(N5,N6,N7,N8);
第3级节点组:(N1,N2,N3,N4、N5,N6,N7,N8)。
需要说明的是,对于L的取值是根据计算集群中计算节点的分布情况来确定的,如图3中的网络结构包括3级交换机,所形成的节点组为3级节点组,所以,L为3,在实际应用中,L的取值根据具体的网络结构来确定。
步骤S130:从所述L级节点组中的一个第1级节点组开始,按照节点组等级递增的顺序选取用于执行所述目标作业的目标计算节点。
为了将作业分配给通信距离较近的一些计算节点,则在进行计算节点选取时,需要按照如下规则进行选取:从第1级节点组开始进行选取,若当前节点组所包含的计算节点已经全部被选为目标计算节点,但已选的目标计算节点总数仍未达到所需的计算节点数,则继续从包含当前节点组的下一级节点组中选择目标计算节点,直至目标计算节点的数量达到计算节点数。
继续以上述的3级节点组为例,若执行目标作业所需的计算节点数为3个,此时,每个第1级节点组中只包含两个计算节点,可见需要选取1个第1级节点组中的计算节点,还需要选取另一个计算节点,假如在选取第1级节点组(N1,N2)这两个计算节点作为目标计算节点后,则从第2级节点组中查找该节点组所在的第2级节点组,通过查找可发现这第1级节点组所在的第2级节点组为(N1,N2,N3,N4),此时可从N3或N4中任意选择一个计算节点作为目标计算节点,按照该方式可选取获得3个目标计算节点,而这3个目标计算节点之间的通信距离尽可能最短,以减少计算节点之间的通信延迟。
也就是说,在选取目标计算节点时,所遵循的原则应该是选取的目标计算节点尽可能在同一个节点组内,而在构建L级节点组时,是根据最小的通信距离来构建的,所以这样选取的目标计算节点之间的通信距离能够尽可能更短,使得计算节点之间的通信效率更高,计算性能更高。
步骤S140:将所述目标作业分配至所述目标计算节点上执行。
在确定执行目标作业的目标计算节点后,作业调度***可将目标作业分配至各个目标计算节点上执行,如目标计算节点包括3个,则作业调度***可将目标作业拆分为3个子作业后,将各个子作业分发至对应的目标计算节点上,这样目标计算节点可对3个子作业进行并行执行,可有效提高作业执行效率。目标计算节点在执行完作业后,可将获得的结果发送给作业调度***,由作业调度***呈现给用户。
在上述实现过程中,该方法将计算节点按照通信距离分为L级节点组,将作业按照节点组等级递增的顺序依次分配给L级节点组中的计算节点,这样可以使得用于执行作业的计算节点之间的通信距离尽可能是最短的,从而可以减少通信延迟,提高计算集群的计算性能。
在一些实施方式中,在选取目标计算节点时,可以根据计算节点数的需求来进行选取,如从L级节点组中的一个第1级节点组开始,判断计算节点数是否大于数量最多的第i级节点组中计算节点的数量,且小于或等于数量最少的一个第i+1级节点组中计算节点的数量,若是,则选择任意一个第i级节点组中的所有计算节点作为用于执行目标作业的目标计算节点,且选择与任意一个第i级节点组在同一个第i+1级节点组中的第i级节点组中的计算节点,直至目标计算节点的数量达到计算节点数。
继续沿用上述示例来说明,其中第1级节点组中的计算节点的数量为2个,第2级节点组中计算节点的数量为4个,第3级节点组中计算节点的数量为8个,在选取目标计算节点时,首先从第1级节点组开始,判断所需的计算节点数是否大于数量最多的第1级节点组中计算节点的数量,如所需的计算节点数为3,此时计算节点数大于第1级节点组中计算节点的数量,且小于或等于第2级节点组中计算节点的数量,所以,此时可以任意选择一个第1级节点组中的所有计算节点作为目标计算节点,如选取节点组(N1,N2)或(N3,N4),此时假如选取的是(N1,N2)作为目标计算节点,则可在第2级节点组中选取与计算节点(N1,N2)在同一个节点组中的计算节点作为目标计算节点,如在第2级节点组(N1,N2,N3,N4)中的N3或N4中再选取一个计算节点作为目标计算节点,从而可获得3个目标计算节点。
若是所需的计算节点数为6时,此时选取目标计算节点时,先从第1级计算节点开始,确定计算节点数大于数量最多的第1级节点组的计算节点数,然后判断计算节点数是否大于第2级节点组的计算节点的数量,通过判断发现计算节点数也大于第2级节点组的计算节点的数量,且小于或等于第3级节点组的计算节点的数量,所以,可选取任意一个第2级节点组中的计算节点作为目标计算节点,如选取第2级节点组(N1,N2,N3,N4)作为目标计算节点,而剩余的2个目标计算节点则可从第3级节点组中选取即可,这样的选取方式可以使得最终所选取的目标计算节点之间的通信距离尽量短,以最大限度减少通信延迟。
而为了确保作业效率,上述中剩余的2个目标计算节点可从第3级节点组中优先选取空闲的计算节点,如从剩余的N5,N6,N7,N8中选取2个空闲的计算节点作为目标计算节点,这样可以确保所选取的目标计算节点能够尽快执行作业,且确保各个计算节点之间的负载均衡。
当然,为了确保所选取的目标计算节点之间的通信距离尽可能最短,所选取的剩下2个目标计算节点也应尽量在同一个节点组内,如选取第2级节点组(N1,N2,N3,N4)作为目标计算节点后,应再选取(N5,N6)或者(N7,N8)作为目标计算节点,而不是选取(N5,N7),因为这两个计算节点不在同一个节点组中,也就是说,这种情况下,优选选取一个节点组中的计算节点作为目标计算节点后,在确保剩余所需选取的目标计算节点和先前选取的节点组在同一个节点组时,还应该尽量优先选择在同一个节点组的计算节点作为剩余的目标计算节点,即尽量确保剩余所选取的目标计算节点在同一个最小等级的节点组内,这样可确保各个计算节点之间的通信距离尽可能最短。
在另一些实施方式中,这种情况下,为了提高目标计算节点的选取效率,也可以直接从第i+1级节点组中选取目标计算节点,如所需的计算节点数为3,大于数量最多的第1级节点组的计算节点数(为2)且小于或等于数量最少的第2级节点组的计算节点数(为4),所以,可以直接从任意一个第2级节点组中来选取目标计算节点,如从第2级节点组(N1,N2,N3,N4)中选取3个计算节点作为目标计算节点。
在上述实现过程中,在选取目标计算节点时,选取在同一个第i级节点组内的计算节点,若数量不够,在同一个第i+1级节点组内选取,这样可以确保所选取的目标计算节点尽量在同一个节点组内,使得相互之间的通信距离尽可能最短,以减少计算节点之间的通信延迟。
在一些实施方式中,若所述计算节点数小于或等于数量最少的一个第1级节点组中计算节点的数量,则可以从任意一个第1级节点组中选取计算节点数的用于执行目标作业的目标计算节点。
例如,所需的计算节点数为2,假如数量最少的一个第1级节点组中计算节点的数量为3,则可以从任意一个第1级节点组中选取所需的计算节点数的计算节点作为目标计算节点。当然,为了便于后续针对其他计算节点数需求较大的作业选取计算节点,可以优先从数量最少的一个第1级节点组中来选取目标计算节点。
在上述实现过程中,在所需求的计算节点数较少时,从一个第1级节点组中来选取目标计算节点,这样可以使得所选取的目标计算节点之间的通信距离是最短的,通信延迟最小。
在一些实施方式中,为了提高作业执行效率,作业调度***可以对各个计算节点所执行的作业进行监控,其内部可以维护一个节点队列,在某个节点组中进行目标计算节点选取时,可通过节点队列中各个计算节点的空闲状态来选取。如上述从任意一个第1级节点组选取目标计算节点时,可以先将各个第1级节点组中的计算节点形成空闲节点队列,然后从空闲节点数量最多的一个第1级节点组对应的空闲节点队列中依次选取计算节点数的用于执行目标作业的目标计算节点。
继续以上述的3级节点组为例进行说明,空闲节点队列可以是实时更新的,作业调度***可以对各个计算节点的作业状态进行监控,在计算节点执行完某个作业后,但还未为其分配新的作业时,则表示该计算节点处于空闲状态,此时可将该计算节点加入空闲节点队列,若计算节点被分配新的作业后,则将该计算节点从空闲节点队列中移出。其中,针对每一个节点组可设置一个空闲节点队列,如针对第1级节点组,对于节点组(N1,N2)可设置一个空闲节点队列,对于节点组(N3,N4)可设置一个空闲节点队列,当然,在实际应用中,其第1级节点组的计算节点数量不止2个。作业调度***对于每个第1级节点组中各个计算节点进行监控,然后将处于空闲状态的计算节点加入对应的空闲节点队列中。所以,在从任意一个1第1级节点组中选择目标计算节点时,为了实现各个计算节点之间的负载均衡,提高作业执行效率,还可以从空闲节点数量最多的一个第1级节点组对应的空闲节点队列中依次选取目标计算节点,例如,节点组(N1,N2)对应的空闲节点队列中包含两个节点,而节点组(N3,N4)只包含有一个节点,则可以节点组(N1,N2)对应的空闲节点队列选择目标计算节点即可,这样可使得所选择的目标计算节点尽量是空闲的且在同一个节点组内。
需要说明的是,若空闲节点数量最多的空闲节点队列有多个时,则可以从任意一个空闲节点队列中选择目标计算节点,但是若在一个空闲节点队列中所选择的目标计算节点的数量未达到所需的计算节点数时,则继续从另一个空闲节点数量最多的空闲节点队列中选择目标计算节点,当然所选择的目标计算节点也应确保是在同一个下一级节点组内。
另外,还可以针对除第1级节点组外的其他级节点组均设置一个空闲节点队列,这样在上述实施例中从第i+1级节点组中选择目标计算节点时,也可以按照空闲节点队列的方式来选择,例如,在从第1级节点组对应的空闲节点队列中选择一定数量的计算节点作为目标计算节点后,还可以从该第1级节点组所在的第2级节点组对应的空闲节点队列中来选择剩余的目标计算节点。
或者,也可以只维护一个空闲节点队列,这个空闲节点队列中包含所有的计算节点,只是这些计算节点被标记有相应的状态,如忙状态和空闲状态,在选取目标计算节点时,可以先确定选取的节点组,然后从空闲节点队列中找到该节点组所包含的计算节点对应的状态,选取状态为空闲状态的计算节点作为目标计算节点,即每次从空闲节点中来选取,计算节点执行完作业后,重新标记为空闲状态。
在上述实现过程中,从空闲节点数量最多的节点组中来选取执行当前目标作业的目标计算节点,这样可以均衡各个计算节点之间的计算量,实现负载均衡。
下面针对L级节点组的构建方式进行详细说明。
电子设备内部可以存储有计算集群的网络结构,为了构建L级节点组,还需要对网络结构进行解析,具体实现过程为:获取计算集群所形成的网络结构,根据网络结构分析各个计算节点之间的通信距离,然后根据通信距离构建各个计算节点的L级节点组。
具体地,电子设备在获取各个计算节点之间的通信距离的过程中,可以先对计算集群的网络结构进行解析,以构建计算集群的网络拓扑结构。其解析的过程是先识别网络结构中的各个网络设备,即先遍历网络结构,解析获得网络结构中的各个网络设备的设备信息以及各个网络设备之间的连接信息,网络设备包括通信设备和计算节点,如此可根据这些信息获得计算集群的网络拓扑结构。在获得这些信息后,可以根据各个网络设备的设备信息以及各个网络设备之间的连接信息,获取各个计算节点之间通信的通信路径,再根据通信路径获取各个计算节点之间的通信距离。
其中,在拓扑发现过程首先选定一个头节点,然后遍历整个网络结构,搜索全部的网络设备,识别网络设备的类型是交换机还是计算节点,然后将设备添加至网络设备数组NodeArray,具体过程如图4所示。具体流程可以如:通过函数head_topop->node_head()负责找到第一个设备,作为头节点,通过函数head_topop进行搜索,遍历全部设备,然后再遍历每个设备的全部端口,将设备的全部邻居添加到节点列表,通过函数sm_setup_node()调用→函数Node_Create()建立设备信息,根据设备信息可识别设备是交换机还是计算节点,再调用discover_node_port()函数对发现的设备进行坐标赋值和命名,构成FabricNode,并将其加入Fabric拓扑;最后,调用函数build_node_array()来构建网络设备数组,将全部网络设备映射到网络设备数组,即可完成拓扑发现。
在网络拓扑结构的构建过程中,可以基于上述获得的网络设备数组,然后再遍历网络结构,梳理出各个网络设备之间链路的连接关系,以此来构建网络拓扑结构,输出网络拓扑结构文档,从而可将物理网络结构转换为作业调度***可以理解的逻辑网络拓扑结构。如以交换机为基础单元,构建每台交换机的连接关系列表,包括交换机名称、对端设备类型、连接链路数量等信息,如下表所示:
网络拓扑连接关系列表
/>
可以理解地,网络设备的设备信息可以包括网络设备的名称、类型等信息,各个网络设备之间的连接信息可以采用上述表中的信息所示,包括对端设备名称、对端设备类型、连接的端口等信息。
在获得上述表中的信息后,作业调度***可根据上述的网络拓扑连接关系表对网络结构进行解析,可基于广度优先算法遍历全部网络,可以判断出各个网络设备之间的连接关系,进而判断出每两个计算节点之间的通信距离需要跨越几台交换机进行数据转发。这里通信距离定义为从源计算节点到目标计算节点通信所经历的交换机数量,也可称为通信距离跳步数。如连接到相同接入层交换机的计算节点间的通信距离就是1跳。如图5所示,图中SW2-1到SW2-800表示800台40端口的接入层交换机,每台交换机连接20个计算节点(图中的每个Rack表示20个计算节点),其余20个端口上联到20台核心交换机。核心交换机内部是由20个spine页板交换机和40个leaf页板交换机堆叠的2层胖树结构,每个spine的40个端口连接40个leaf交换机,每个leaf交换机的20个下行端口连接20台接入交换机,20个上行端口连接20个spine交换机。每台核心交换机有800个端口,可连接800台接入交换机,***最大可提供16000节点的无阻塞互连。
按照上述方式可解析获得各个计算节点之间通信的通信路径,然后可统计两个计算节点的通信路径上的交换机的数量,即两个计算节点之间的通信距离。图5中的各个计算节点之间的通信距离如下表所示:
在根据通信距离构建L级节点组时,可以先将相互之间的通信距离相同的多个计算节点构成一个第1级节点组,在i取2到L时,将相互之间具有相同且最小的通信距离的多个第i-1级节点组构成一个第i级节点组,直至获得L级节点组。
例如,在图5中,Node1-Node20这20个计算节点连接至同一个第1级交换机,所以这20个计算节点之间的通信距离相同,均为1跳,所以可以将这20个计算节点分为一个第1级节点组,而Node21-Node40这20个计算节点也连接至同一个第1级交换机,这20个计算节点之间的通信距离也相同,均为1跳,所以,可以将这20个计算节点也分为一个第1级节点组。也就是说,在进行分组时,是从最小的通信距离开始分组,即先对通信距离为1跳的这些计算节点进行分组,然后再对通信距离为3跳的计算节点进行分组,如对于通信距离为1跳的计算节点可分为800个第1级节点组。
在进行第2级节点组构建时,可以将通信距离相同且最小的第1级节点组构建为一个第2级节点组,如第1级节点组Node1-Node20,和第1级节点组Node21-Node40,......,以及第1级节点组Node381-Node400,这400个计算节点连接了同一个第2级交换机,所以这些节点组之间的跨组通信距离相同,均为3跳,也有跨组通信距离为5跳的,但是在构建第2级节点组时,将跨组通信距离最小的第1级节点组构成一个第2级节点组,如此构建的一个第2级节点组为Node1-Node400,这个第2级节点组内计算节点之间的最大通信距离为3跳。按照该方式分组后获得的L级节点组可如下表所示:
对于节点组的构建也可以理解为是:在i取1时,将连接至同一个第1级交换机的多个计算节点构成一个第1级节点组,在i取2到L时,将连接至同一个第i级交换机的多个第i-1级节点组构成一个第i级节点组,直至获得L级节点组,第i-1级节点组连接至第i级交换机是指第i-1级节点组中的计算节点连接的第i-1级交换机连接至同一个第i级交换机。
图5中每个第1级交换机连接了20个计算节点,这些计算节点之间的通信仅需要交换机转发一次即可,因此通信距离仅为1跳,通信延迟最低,通信局部性最好,每个leaf交换机连接的20台交换机连接的计算节点之间的通信距离是3跳,跨2个接入交换机和1个leaf交换机,通信延迟较低,这种计算节点有400个,其余连接不同leaf交换机的计算节点间的通信距离都是5跳,需要跨2个接入交换机和2个leaf交换机,以及1个spine交换机,这些计算节点之间的通信延迟是最高的,所以,可以根据通信距离的长短来构建L级节点组,然后根据分组后获得的L级节点组来选取执行作业的计算节点,使得可以尽量选取通信距离较近的一些计算节点来执行作业。
另外,作业调度***还可以实时感知网络结构中各个网络设备的变化情况,包括网络设备的增减变化,以及连接关系的变化等,在作业调度***感知到网络结构发生改变时,可以实时对已构建的L级节点组进行更新,即调整L级节点组中所包含的计算节点,这样可确保在后续选取的用于执行作业的计算节点之间通信距离是最短的。
对于图5所示的网络结构,其进行作业分配的原则可以如图6所示的流程图,具体步骤包括:
步骤S210:获取执行目标作业所需的计算节点数;
步骤S220:判断计算节点数是否小于通信距离为1跳的节点组的节点数量,若是,执行步骤S230:在通信距离为1跳的节点组内部选取目标计算节点,若否,执行步骤S240:判断计算节点数是否大于通信距离为1跳的节点组的节点数量,且小于通信距离为3跳的节点组的节点数量;
若计算节点数大于通信距离为1跳的节点组的节点数量,且小于通信距离为3跳的节点组的节点数量,则执行步骤S250:在通信距离为3跳的节点组内部选择目标计算节点,按照选取规则为:P=(计算节点数)%(1跳的节点组中的节点数量),K=(计算节点数)/(1跳的节点组中的节点数量),选择K个1跳的节点组,其余P个计算节点根据1跳节点组的数量选择;
若计算节点数大于通信距离为3跳的节点组数量,则执行步骤S260:以节点组为单位来选取目标计算节点,使得尽可能多的通信距离为3跳的目标计算节点;选择规则为:P=(计算节点数)%(3跳的节点组中的节点数量),K=(计算节点数)/(3跳的节点组中的节点数量),即选择K个3跳的节点组,其余P个计算节点根据3跳的节点组数量选择。
按照上述的方式选择的计算节点来执行目标作业,其计算节点之间的通信延迟情况如图7所示,图7是在设计超算中心测试的不同通信距离的最低延迟分布情况,数据显示,跳数越少,通信距离越短,通信延迟越低。
在实际超算中心的网络环境进行实际对比测试,基于本申请提出的作业分配方法分配的400节点和现有的作业分配方法分配的400节点,在相同环境下分别进行alltoall(一种全局通信模式,每个节点会同时和其他节点进行通信,是衡量网络性能的测试基准)通信性能测试,测试结果如图8所示,这里normal node是指基于现有的作业分配方法分配的节点的测试的结果,local node是指采用本申请的作业分配方法分配到的节点的测试结果。相对于现有的作业分配方法分配的节点,采用本申请分配的节点进行测试,性能有明显提升,特别是在大数据包长的情况下,通信延迟降低20%,充分说明了采用本申请提供的作业分配方法对计算性能的有效提升。
请参照图9,图9为本申请实施例提供的一种作业分配装置200的结构框图,该装置200可以是电子设备上的模块、程序段或代码。应理解,该装置200与上述图2方法实施例对应,能够执行图2方法实施例涉及的各个步骤,该装置200具体的功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。
可选地,所述装置200包括:
节点数量获取模块210,用于获取执行目标作业所需的计算节点数;
节点组获取模块220,用于获取由计算集群中的计算节点所构成的L级节点组,所述L级节点组满足如下条件:在i取2至L之间的整数时,每个第i级节点组包括多个第i-1级节点组,所述多个第i-1级节点组之间具有相同且最小的通信距离Si;在i取1时,每个第1级节点组包括多个计算节点,且所述多个计算节点相互之间具有相同的通信距离S1;i取1至L之间的整数时,通信距离Si随i的增大而增大;
计算节点选取模块230,用于从所述L级节点组中的一个第1级节点组开始,按照节点组等级递增的顺序选取用于执行所述目标作业的目标计算节点;其中,若当前节点组所包含的计算节点已经全部被选为目标计算节点,但已选的目标计算节点的总数仍未达到所述计算节点数,则继续从包含所述当前节点组的下一级节点组中选择目标计算节点,直至目标计算节点的数量达到所述计算节点数;
作业分配模块240,用于将所述目标作业分配至所述目标计算节点上执行。
可选地,所述计算节点选取模块230,用于:
从所述L级节点组中的一个第1级节点组开始,判断所述计算节点数是否大于数量最多的第i级节点组中计算节点的数量,且小于或等于数量最少的一个第i+1级节点组中计算节点的数量;
若是,选择任意一个第i级节点组中的所有计算节点作为用于执行所述目标作业的目标计算节点,且选择与所述任意一个第i级节点组在同一个第i+1级节点组中的第i级节点组中的计算节点,直至所述目标计算节点的数量达到所述计算节点数。
可选地,所述计算节点选取模块230,用于判断所述计算节点数是否小于或等于数量最少的一个第1级节点组中计算节点的数量;若是,则从任意一个第1级节点组中选取所述计算节点数的用于执行所述目标作业的目标计算节点。
可选地,所述计算节点选取模块230,用于将各个第1级节点组中的计算节点形成空闲节点队列;从空闲节点数量最多的一个第1级节点组对应的空闲节点队列中依次选取所述计算节点数的用于执行所述目标作业的目标计算节点。
可选地,所述计算节点选取模块230,还用于获取所述计算集群所形成的网络结构;根据所述网络结构分析各个计算节点之间的通信距离;根据所述通信距离构建各个计算节点的L级节点组。
可选地,所述通信距离为两个计算节点之间的通信路径上的通信设备的数量,所述计算节点选取模块230,还用于在i取1时,将相互之间的通信距离相同的多个计算节点构成一个第1级节点组;在i取2到L时,将相互之间具有相同且最小的通信距离的多个第i-1级节点组构成一个第i级节点组,直至获得L级节点组。
可选地,所述计算节点选取模块230,还用于遍历所述网络结构,解析获得所述网络结构中的各个网络设备的设备信息以及各个网络设备之间的连接信息,网络设备包括通信设备和计算节点;根据各个网络设备的设备信息以及各个网络设备之间的连接信息,获取各个计算节点之间通信的通信路径;根据所述通信路径获取各个计算节点之间的通信距离。
需要说明的是,本领域技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再重复描述。
本申请实施例提供一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,执行如图2所示方法实施例中电子设备所执行的方法过程。
本实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如,包括:获取执行目标作业所需的计算节点数;获取由计算集群中的计算节点所构成的L级节点组,所述L级节点组满足如下条件:在i取2至L之间的整数时,每个第i级节点组包括多个第i-1级节点组,所述多个第i-1级节点组之间具有相同且最小的通信距离Si;在i取1时,每个第1级节点组包括多个计算节点,且所述多个计算节点相互之间具有相同的通信距离S1;i取1至L之间的整数时,通信距离Si随i的增大而增大;从所述L级节点组中的一个第1级节点组开始,按照节点组等级递增的顺序选取用于执行所述目标作业的目标计算节点;其中,若当前节点组所包含的计算节点已经全部被选为目标计算节点,但已选的目标计算节点的总数仍未达到所述计算节点数,则继续从包含所述当前节点组的下一级节点组中选择目标计算节点,直至目标计算节点的数量达到所述计算节点数;将所述目标作业分配至所述目标计算节点上执行。
综上所述,本申请实施例提供一种作业分配方法、装置、电子设备及可读存储介质,该方法将计算节点按照通信距离分为L级节点组,将作业按照节点组等级递增的顺序依次分配给L级节点组中的计算节点,这样可以使得用于执行作业的计算节点之间的通信距离尽可能是最短的,从而可以减少通信延迟,提高计算集群的计算性能。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种作业分配方法,其特征在于,所述方法包括:
获取执行目标作业所需的计算节点数;
获取由计算集群中的计算节点所构成的L级节点组,所述L级节点组满足如下条件:在i取2至L之间的整数时,每个第i级节点组包括多个第i-1级节点组,所述多个第i-1级节点组之间具有相同且最小的通信距离Si;在i取1时,每个第1级节点组包括多个计算节点,且所述多个计算节点相互之间具有相同的通信距离S1;i取1至L之间的整数时,通信距离Si随i的增大而增大,通信距离Si为根据各个计算节点之间通信的通信路径确定的;
从所述L级节点组中的一个第1级节点组开始,按照节点组等级递增的顺序选取用于执行所述目标作业的目标计算节点;其中,若当前节点组所包含的计算节点已经全部被选为目标计算节点,但已选的目标计算节点的总数仍未达到所述计算节点数,则继续从包含所述当前节点组的下一级节点组中选择目标计算节点,直至目标计算节点的数量达到所述计算节点数;
将所述目标作业分配至所述目标计算节点上执行。
2.根据权利要求1所述的方法,其特征在于,所述从所述L级节点组中的一个第1级节点组开始,按照节点组等级递增的顺序选取用于执行所述目标作业的目标计算节点,包括:
从所述L级节点组中的一个第1级节点组开始,判断所述计算节点数是否大于数量最多的第i级节点组中计算节点的数量,且小于或等于数量最少的一个第i+1级节点组中计算节点的数量;
若是,选择任意一个第i级节点组中的所有计算节点作为用于执行所述目标作业的目标计算节点,且选择与所述任意一个第i级节点组在同一个第i+1级节点组中的第i级节点组中的计算节点,直至所述目标计算节点的数量达到所述计算节点数。
3.根据权利要求1所述的方法,其特征在于,所述从所述L级节点组中的一个第1级节点组开始,按照节点组等级递增的顺序选取用于执行所述目标作业的目标计算节点,包括:
判断所述计算节点数是否小于或等于数量最少的一个第1级节点组中计算节点的数量;
若是,则从任意一个第1级节点组中选取所述计算节点数的用于执行所述目标作业的目标计算节点。
4.根据权利要求3所述的方法,其特征在于,所述从任意一个第1级节点组中选取所述计算节点数的用于执行所述目标作业的目标计算节点,包括:
将各个第1级节点组中的计算节点形成空闲节点队列;
从空闲节点数量最多的一个第1级节点组对应的空闲节点队列中依次选取所述计算节点数的用于执行所述目标作业的目标计算节点。
5.根据权利要求1-4任一所述的方法,其特征在于,通过以下方式获取所述L级节点组:
获取所述计算集群所形成的网络结构;
根据所述网络结构分析各个计算节点之间的通信距离;
根据所述通信距离构建各个计算节点的L级节点组。
6.根据权利要求5所述的方法,其特征在于,所述通信距离为两个计算节点之间的通信路径上的通信设备的数量,所述根据所述通信距离构建各个计算节点的L级节点组,包括:
在i取1时,将相互之间的通信距离相同的多个计算节点构成一个第1级节点组;
在i取2到L时,将相互之间具有相同且最小的通信距离的多个第i-1级节点组构成一个第i级节点组,直至获得L级节点组。
7.根据权利要求5所述的方法,其特征在于,所述根据所述网络结构分析各个计算节点之间的通信距离,包括:
遍历所述网络结构,解析获得所述网络结构中的各个网络设备的设备信息以及各个网络设备之间的连接信息,网络设备包括通信设备和计算节点;
根据各个网络设备的设备信息以及各个网络设备之间的连接信息,获取各个计算节点之间通信的通信路径;
根据所述通信路径获取各个计算节点之间的通信距离。
8.一种作业分配装置,其特征在于,所述装置包括:
节点数量获取模块,用于获取执行目标作业所需的计算节点数;
节点组获取模块,用于获取由计算集群中的计算节点所构成的L级节点组,所述L级节点组满足如下条件:在i取2至L之间的整数时,每个第i级节点组包括多个第i-1级节点组,所述多个第i-1级节点组之间具有相同且最小的通信距离Si;在i取1时,每个第1级节点组包括多个计算节点,且所述多个计算节点相互之间具有相同的通信距离S1;i取1至L之间的整数时,通信距离Si随i的增大而增大,通信距离Si为根据各个计算节点之间通信的通信路径确定的;
计算节点选取模块,用于从所述L级节点组中的一个第1级节点组开始,按照节点组等级递增的顺序选取用于执行所述目标作业的目标计算节点;其中,若当前节点组所包含的计算节点已经全部被选为目标计算节点,但已选的目标计算节点的总数仍未达到所述计算节点数,则继续从包含所述当前节点组的下一级节点组中选择目标计算节点,直至目标计算节点的数量达到所述计算节点数;
作业分配模块,用于将所述目标作业分配至所述目标计算节点上执行。
9.一种电子设备,其特征在于,包括处理器以及存储器,所述存储器存储有计算机可读取指令,当所述计算机可读取指令由所述处理器执行时,运行如权利要求1-7任一所述的方法。
10.一种可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时运行如权利要求1-7任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110445349.6A CN113094179B (zh) | 2021-04-23 | 2021-04-23 | 作业分配方法、装置、电子设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110445349.6A CN113094179B (zh) | 2021-04-23 | 2021-04-23 | 作业分配方法、装置、电子设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113094179A CN113094179A (zh) | 2021-07-09 |
CN113094179B true CN113094179B (zh) | 2024-04-19 |
Family
ID=76679821
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110445349.6A Active CN113094179B (zh) | 2021-04-23 | 2021-04-23 | 作业分配方法、装置、电子设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113094179B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116775258A (zh) * | 2022-03-08 | 2023-09-19 | 华为技术有限公司 | 资源调度方法、装置及相关设备 |
CN116932837A (zh) * | 2023-09-13 | 2023-10-24 | 贵州大学 | 一种基于集群的脉冲星并行搜索优化方法及*** |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017114129A1 (zh) * | 2015-12-31 | 2017-07-06 | 深圳光启合众科技有限公司 | 机器人集群通信方法和*** |
CN107634978A (zh) * | 2016-07-19 | 2018-01-26 | 华为技术有限公司 | 一种资源调度方法及装置 |
CN108494845A (zh) * | 2018-03-14 | 2018-09-04 | 曙光信息产业(北京)有限公司 | 一种基于6D-Torus网络的作业调度方法和装置 |
WO2019128538A1 (zh) * | 2017-12-29 | 2019-07-04 | Oppo广东移动通信有限公司 | 信息处理方法、移动终端及计算机可读存储介质 |
CN110191155A (zh) * | 2019-05-07 | 2019-08-30 | 中国人民解放军国防科技大学 | 一种面向胖树互连网络的并行作业调度方法、***及存储介质 |
WO2020161688A1 (en) * | 2019-02-08 | 2020-08-13 | Christopher Lyndon Higgins | Distributed ledger computing platforms and associated methods, systems and devices |
CN112671830A (zh) * | 2020-12-02 | 2021-04-16 | 武汉联影医疗科技有限公司 | 资源调度方法、***、装置、计算机设备和存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5211778B2 (ja) * | 2008-03-17 | 2013-06-12 | 富士通株式会社 | ジョブ割当装置、並列計算機システム、ジョブ割当方法、及び、ジョブ割当プログラム |
US11550557B2 (en) * | 2016-02-12 | 2023-01-10 | Nutanix, Inc. | Virtualized file server |
US11169506B2 (en) * | 2019-06-26 | 2021-11-09 | Cisco Technology, Inc. | Predictive data capture with adaptive control |
US11159609B2 (en) * | 2020-03-27 | 2021-10-26 | Intel Corporation | Method, system and product to implement deterministic on-boarding and scheduling of virtualized workloads for edge computing |
-
2021
- 2021-04-23 CN CN202110445349.6A patent/CN113094179B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017114129A1 (zh) * | 2015-12-31 | 2017-07-06 | 深圳光启合众科技有限公司 | 机器人集群通信方法和*** |
CN107634978A (zh) * | 2016-07-19 | 2018-01-26 | 华为技术有限公司 | 一种资源调度方法及装置 |
WO2019128538A1 (zh) * | 2017-12-29 | 2019-07-04 | Oppo广东移动通信有限公司 | 信息处理方法、移动终端及计算机可读存储介质 |
CN108494845A (zh) * | 2018-03-14 | 2018-09-04 | 曙光信息产业(北京)有限公司 | 一种基于6D-Torus网络的作业调度方法和装置 |
WO2020161688A1 (en) * | 2019-02-08 | 2020-08-13 | Christopher Lyndon Higgins | Distributed ledger computing platforms and associated methods, systems and devices |
CN110191155A (zh) * | 2019-05-07 | 2019-08-30 | 中国人民解放军国防科技大学 | 一种面向胖树互连网络的并行作业调度方法、***及存储介质 |
CN112671830A (zh) * | 2020-12-02 | 2021-04-16 | 武汉联影医疗科技有限公司 | 资源调度方法、***、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113094179A (zh) | 2021-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110764912B (zh) | 一种自适应任务调度器及方法 | |
Ge et al. | GA-based task scheduler for the cloud computing systems | |
Tian et al. | A dynamic and integrated load-balancing scheduling algorithm for cloud datacenters | |
CN113094179B (zh) | 作业分配方法、装置、电子设备及可读存储介质 | |
US8151272B2 (en) | Optimized usage of collector resources for performance data collection through even task assignment | |
CN109104373B (zh) | 网络拥塞的处理方法、装置及*** | |
CN105022717B (zh) | 附加请求数优先级的片上网络资源仲裁方法及仲裁单元 | |
US8572621B2 (en) | Selection of server for relocation of application program based on largest number of algorithms with identical output using selected server resource criteria | |
JP2013168934A (ja) | 負荷均衡装置及び負荷均衡方法 | |
US9807152B2 (en) | Distributed processing device and distributed processing system as well as distributed processing method | |
CN110221920B (zh) | 部署方法、装置、存储介质及*** | |
US8813087B2 (en) | Managing a workload in a cluster of computing systems with multi-type operational resources | |
Gabi et al. | Systematic review on existing load balancing techniques in cloud computing | |
CN110191155B (zh) | 一种面向胖树互连网络的并行作业调度方法、***及存储介质 | |
JP2005310120A (ja) | 計算機システム及びタスク割当方法 | |
CN113190358A (zh) | 作业分配方法、装置、电子设备及可读存储介质 | |
CN110908782A (zh) | 一种基于遗传算法优化的封装类分布式作业任务调度方法及*** | |
US11438271B2 (en) | Method, electronic device and computer program product of load balancing | |
CN109062682B (zh) | 一种云计算平台的资源调度方法和*** | |
Mishra et al. | Pareto-optimal cost optimization for large scale cloud systems using joint allocation of resources | |
CN110048966B (zh) | 基于截止时间的最小化***开销的Coflow调度方法 | |
CN117076133B (zh) | 云游戏平台异构资源分配方法、计算机装置及存储介质 | |
CN116723143B (zh) | 一种基于流量亲和性的网络靶场资源分配方法与*** | |
US10877800B2 (en) | Method, apparatus and computer-readable medium for application scheduling | |
CN114298431A (zh) | 一种网络路径选择方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |