发明内容
针对相关技术中的问题,本发明提出一种基于6D-Torus网络的作业调度方法和装置。
本发明的技术方案是这样实现的:
根据本发明的一个方面,提供了一种基于6D-Torus网络的作业调度方法。
该基于6D-Torus网络的作业调度方法包括:根据预设的命名规则,计算6D-Torus网络中的计算节点的序号;获取用户节点的作业资源请求信息,以及根据作业资源请求信息和计算节点的序号,遍历6D-Torus网络中的计算节点,以为用户节点划分资源。
根据本发明的一个实施例,根据预设的命名规则,计算6D-Torus网络中的计算节点的序号之前包括:根据预设的命名规则,计算6D-Torus网络中硅元的序号和每个硅元中的交换芯片的序号;以及根据计算节点所处的交换芯片的端口号,计算计算节点的序号。
根据本发明的一个实施例,根据作业资源请求信息和计算节点的序号,遍历6D-Torus网络中的计算节点,以为用户节点划分资源包括:在6D-Torus网络中的所有计算节点中,选取一个计算节点作为初始节点;根据作业资源请求信息和计算节点的序号,从初始节点开始遍历6D-Torus网络中的计算节点,以为用户节点划分资源。
根据本发明的一个实施例,根据作业资源请求信息和计算节点的序号,遍历6D-Torus网络中的计算节点,以为用户节点划分资源包括:将每个交换芯片划分为一个资源组,以及根据交换芯片的序号,对所有资源组进行排序;根据作业资源请求信息和排序后的资源组,遍历6D-Torus网络中的资源组,以为用户节点划分资源。
根据本发明的另一方面,提供了一种基于6D-Torus网络的作业调度装置。
该基于6D-Torus网络的作业调度装置包括:第一计算模块,用于根据预设的命名规则,计算6D-Torus网络中的计算节点的序号;获取遍历模块,用于获取用户节点的作业资源请求信息,以及根据作业资源请求信息和计算节点的序号,遍历6D-Torus网络中的计算节点,以为用户节点划分资源。
根据本发明的一个实施例,第一计算模块包括:第二计算模块,用于根据预设的命名规则,计算6D-Torus网络中硅元的序号和每个硅元中的交换芯片的序号;以及第三计算模块,用于根据计算节点所处的交换芯片的端口号,计算计算节点的序号。
根据本发明的一个实施例,获取遍历模块包括:选取模块,用于在6D-Torus网络中的所有计算节点中,选取一个计算节点作为初始节点;第一遍历模块,用于根据作业资源请求信息和计算节点的序号,从初始节点开始遍历6D-Torus网络中的计算节点,以为用户节点划分资源。
根据本发明的一个实施例,获取遍历模块包括:划分排序模块,用于将每个交换芯片划分为一个资源组,以及根据交换芯片的序号,对所有资源组进行排序;第二遍历模块,用于根据作业资源请求信息和排序后的资源组,遍历6D-Torus网络中的资源组,以为用户节点划分资源。
本发明的有益技术效果在于:
本发明通过根据预设的命名规则,计算6D-Torus网络中的计算节点的序号,随后获取用户节点的作业资源请求信息,以及根据作业资源请求信息和计算节点的序号,遍历6D-Torus网络中的计算节点,以为用户节点划分资源,从而通过“计算节点命名规则”的方式,实现了基于6D-Torus网络的计算资源动态分配、弹性扩展的效果。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。
根据本发明的实施例,提供了一种基于6D-Torus网络的作业调度方法。
如图3所示,根据本发明实施例的基于6D-Torus网络的作业调度方法包括:步骤S301,根据预设的命名规则,计算6D-Torus网络中的计算节点的序号;步骤S303,获取用户节点的作业资源请求信息,以及根据作业资源请求信息和计算节点的序号,遍历6D-Torus网络中的计算节点,以为用户节点划分资源。
借助于本发明的上述技术方案,通过根据预设的命名规则,计算6D-Torus网络中的计算节点的序号,随后获取用户节点的作业资源请求信息,以及根据作业资源请求信息和计算节点的序号,遍历6D-Torus网络中的计算节点,以为用户节点划分资源,从而通过“计算节点命名规则”的方式,实现了基于6D-Torus网络的计算资源动态分配、弹性扩展的效果。
根据本发明的一个实施例,根据预设的命名规则,计算6D-Torus网络中的计算节点的序号之前包括:根据预设的命名规则,计算6D-Torus网络中硅元的序号和每个硅元中的交换芯片的序号;以及根据计算节点所处的交换芯片的端口号,计算计算节点的序号。
根据本发明的一个实施例,根据作业资源请求信息和计算节点的序号,遍历6D-Torus网络中的计算节点,以为用户节点划分资源包括:在6D-Torus网络中的所有计算节点中,选取一个计算节点作为初始节点;根据作业资源请求信息和计算节点的序号,从初始节点开始遍历6D-Torus网络中的计算节点,以为用户节点划分资源,从而在确定用户节点的作业资源请求信息为请求计算节点资源的情况下,通过已知的计算节点的序号来遍历6D-Torus网络中的计算节点,从而为用户节点划分资源,从而可满足用户节点的不同需求。
根据本发明的一个实施例,根据作业资源请求信息和计算节点的序号,遍历6D-Torus网络中的计算节点,以为用户节点划分资源包括:将每个交换芯片划分为一个资源组,以及根据交换芯片的序号,对所有资源组进行排序;根据作业资源请求信息和排序后的资源组,遍历6D-Torus网络中的资源组,以为用户节点划分资源,从而在确定用户节点的作业资源请求信息为请求资源组(或交换芯片)资源的情况下,通过已知的交换芯片的序号来遍历6D-Torus网络中的交换芯片,从而为用户节点划分资源,从而可满足用户节点的不同需求。
为了更好的描述本发明的技术方案,下面通过具体的实施例进行详细的描述。
本发明提供了一种基于6D-Torus网络的作业调度方法,其被面向异构的深度学习算法提供支持。
此外,如图4所示,其示出了一个典型的深度学习管理平台(或典型深度学习平台),不同用户节点将各自的作业通过作业提交平台进行提交,其中,图4中的user01、user02等表示不同的用户节点。随后,作业提交平台将用户节点的作业追加到作业调度模块的调度队列中,随后,作业调度模块根据作业的资源要求(或作业资源请求信息)向资源分配模块申请资源,其中,该资源包括计算资源、存储资源。随后,在完成资源申请后,作业调度模块将作业部署到相应的容器中,监督容器中的作业执行进度,并向用户进行反馈,当作业执行成功或失败退出时,结束该作业的调度,此外,图4中的HOST A、HOST B表示不同的虚拟机,并且在每个虚拟机内均设置有多个container(容器)以及其他模块,例如,在HOSTA中还设置有Caffe(Convolutional Architecture for Fast Feature Embedding,卷积神经网络框架)和Tensorflow(它为谷歌研发的第二代人工智能学习系统),以及在HOST B中还设置有Ansys软件、Fluent软件。
但是,在上述整个深度学习平台中,整体的资源利用率、作业等待时间都是关键指标,但其没有考虑到硬件资源的网络拓扑对作业运行性能的影响。在6D Tours网络中,任意两个计算节点之间的通信,可能是跨硅元的,可能是跨交换芯片的,也可能是同交换芯片的。其采用6DTorus网络,大大压缩了计算节点之间的网络通信跳数,整体上降低了计算节点之间的平均通信耗费,但对于计算节点之间的通信,跳数少的通信要比跳数多的通信更有利于提高作业运行效率,提高整体资源利用率。本方案在典型的深度学习管理平台的基础上,增加了资源调度算法,以适应6D-Torus网络,如图5所示。
另外,在确定用户节点的作业资源请求信息为请求资源组(或交换芯片)资源的情况下,可通过上面介绍资源调度算法的整体流程如下:根据计算节点在6D-Torus网络中的位置关系进行命名;划分等距离的计算节点(处于同一交换芯片上的计算机节点可看作等距离的计算节点)为若干个资源组,每个资源组设置一个起始节点,从而生成了资源组队列;对于同一个作业申请的资源,在资源组队列中获取一个资源组,并且从资源组的起始节点(或初始节点)开始,按照作业的申请资源情况(如核数、内存、硬盘、作业等)遍历当前资源组中的节点,选取空闲的资源划分给该作业,并且划分过程遵循“紧凑分配”的资源分配原则;在作业完成后,对释放后的资源,更新资源组队列中的相应资源;等待下一次资源申请,从而通过资源组队列,按照包括资源使用情况、镜像类别、位置关系等信息,使深度学习平台系统可以适应按照6D-Torus网络部署的硬件资源的特定场景,实现集群性能的提升。
另外,在确定用户节点的作业资源请求信息为请求计算节点资源的情况下,通过已知的计算节点的序号来遍历6D-Torus网络中的计算节点,从而为用户节点划分资源,从而可满足用户节点的不同需求,在此不再详细描述。
从而,该基于6D-Torus网络的作业调度方法实现了6D-Torus网络中计算节点资源的动态申请和分配,充分发挥“交换芯片内通信”大于“跨交换芯片通信”大于“跨硅元的计算节点间通信”的通信性能优先分配次序,同时,其还实现计算节点资源的负载均衡、高可用、弹性扩展以及资源自动分配及释放的效果。
另外,为了便于理解,对上面的涉及资源组的资源调度算法进行详细的介绍。
第一部分:计算节点的命名规则
对于6D-Torus网络(或6D-Torus互连网络)中的每个计算节点,按照预设的“硅元序号-交换芯片序号-计算节点在交换芯片上的序号”的方式进行命名。
1、硅元序号
在硅立方中,如图1中,将x方向设定为宽度,方向从左向右,将y方向设置为深度,方向从前向后,以及将z方向设置为高度,方向从下向上。同时,以立方体的某一个顶点作为原点,该原点的(x,y,z)坐标为(0,0,0),这样就确定了立方体中每个硅元的坐标位置。
此外,建立序号与坐标的映射规则:序号0对应坐标原点(0,0,0),然后按照x,y,z的优先级进行递增,直到所有的序号都对应上坐标,例如,根据本发明的一个实施例,将以2x2x3的硅立方为例,即在x方向上设置有2个硅元,在y方向上设有2个硅元,在z方向上设有3个硅元,并且该硅立方为长方体,从而序号与坐标的映射关系如下表1所示。
表1
2、交换芯片序号
在硅元中,如图2所示,将a方向设定为宽度,方向从左向右,将b方向设定为深度,方向从前向后,以及将c方向设定为高度,方向从下向上。同时,将硅元的12个交换芯片分为上中下三层,要求中间一层的每个顶点是与上层的一个顶点以及下层的一个顶点是成环路连接的。同时,以下层的某一个顶点作为原点,其(a,b,c)坐标为(0,0,0),这样就确定了硅元中每个交换芯片的坐标位置。
另外,建立序号与坐标的映射规则:序号0对应坐标原点(0,0,0),然后按照a,b,c的优先级进行递增,直到所有的序号都对应上坐标,例如,根据本发明的一个实施例,硅元内交换芯片序号与交换芯片坐标的映射关系如下表2所示。
表2
3、计算节点在交换芯片上的序号
计算节点在交换芯片上的序号,即该计算节点连接在交换芯片上的端口号,从而“硅元序号-交换芯片序号-计算节点在交换芯片上的序号”确定每个计算节点的序号。
第二部分,划分资源组
按照所在交换芯片的不同,将整个硅立方的所有计算节点划分为若干个资源组,及将同一个交换芯片上的计算节点划分为一个资源组,同时,每个资源组设置一个起始节点,默认是交换芯片的第一个计算节点。至此,所有计算节点资源,转换为资源组队列,如图6所示。
第三部分,划分资源
在确定用户节点的作业资源请求信息为请求资源组(或交换芯片)资源的情况下,对于同一个作业申请的资源,在资源组队列中获取一个资源组,从资源组的起始节点开始,按照作业的申请资源情况(核数、内存、硬盘、作业)遍历当前资源组中的计算节点,选取空闲的资源划分给该作业,并且划分过程遵循“紧凑分配”的资源分配原则。另外,该“紧凑分配”的资源分配原则如下:
假设每个容器的配置相同,当一个作业需要申请的容器个数为100,当遍历完成一个资源组后,可以分配的容器的个数为50,不满足该作业的资源申请需求。此时,获取本资源组的最后一个节点的命名(“硅元序号-交换芯片序号-计算节点序号”),将交换芯片的序号+1,继续遍历该交换芯片的资源组,依次类推。同时,当交换芯片的序号达到硅元内交换芯片的最大值时,将硅元序号+1,继续遍历,当硅元序号达到最大时,将硅元序号设置为0,交换芯片序号设置为0,计算节点的序号为0,继续遍历。遇到不存在的计算节点时,跳过,继续遍历后面的节点。在满足资源需求后,退出遍历,返回“申请资源成功”的信息。当遍历到初始时的节点时,停止遍历,返回“申请资源不足”的信息。
此外,在作业完成后,对释放后的资源,更新资源组队列中相应资源的使用情况。等待下一次资源申请。
另外,在确定用户节点的作业资源请求信息为请求计算节点资源的情况下,通过已知的计算节点的序号来遍历6D-Torus网络中的计算节点,从而为用户节点划分资源,从而可满足用户节点的不同需求。
根据本发明的实施例,还提供了一种基于6D-Torus网络的作业调度装置。
如图7所示,根据本发明实施例的基于6D-Torus网络的作业调度装置包括:第一计算模块71,用于根据预设的命名规则,计算6D-Torus网络中的计算节点的序号;获取遍历模块72,用于获取用户节点的作业资源请求信息,以及根据作业资源请求信息和计算节点的序号,遍历6D-Torus网络中的计算节点,以为用户节点划分资源。
根据本发明的一个实施例,第一计算模块71包括:第二计算模块(未示出),用于根据预设的命名规则,计算6D-Torus网络中硅元的序号和每个硅元中的交换芯片的序号;以及第三计算模块(未示出),用于根据计算节点所处的交换芯片的端口号,计算计算节点的序号。
根据本发明的一个实施例,获取遍历模块72包括:选取模块(未示出),用于在6D-Torus网络中的所有计算节点中,选取一个计算节点作为初始节点;第一遍历模块(未示出),用于根据作业资源请求信息和计算节点的序号,从初始节点开始遍历6D-Torus网络中的计算节点,以为用户节点划分资源。
根据本发明的一个实施例,获取遍历模块72包括:划分排序模块(未示出),用于将每个交换芯片划分为一个资源组,以及根据交换芯片的序号,对所有资源组进行排序;第二遍历模块(未示出),用于根据作业资源请求信息和排序后的资源组,遍历6D-Torus网络中的资源组,以为用户节点划分资源。
综上所述,借助于本发明的上述技术方案,通过根据预设的命名规则,计算6D-Torus网络中的计算节点的序号,随后获取用户节点的作业资源请求信息,以及根据作业资源请求信息和计算节点的序号,遍历6D-Torus网络中的计算节点,以为用户节点划分资源,从而通过“计算节点命名规则”的方式,实现了基于6D-Torus网络的计算资源动态分配、弹性扩展的效果。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。