CN112764893B - 数据处理方法和数据处理*** - Google Patents
数据处理方法和数据处理*** Download PDFInfo
- Publication number
- CN112764893B CN112764893B CN201911067661.5A CN201911067661A CN112764893B CN 112764893 B CN112764893 B CN 112764893B CN 201911067661 A CN201911067661 A CN 201911067661A CN 112764893 B CN112764893 B CN 112764893B
- Authority
- CN
- China
- Prior art keywords
- computing node
- job
- node
- computing
- parallelism
- 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
- 238000012545 processing Methods 0.000 title claims abstract description 153
- 238000003672 processing method Methods 0.000 title claims abstract description 22
- 238000013138 pruning Methods 0.000 claims abstract description 167
- 238000000034 method Methods 0.000 claims abstract description 123
- 238000012549 training Methods 0.000 claims description 173
- 238000013210 evaluation model Methods 0.000 claims description 64
- 238000003860 storage Methods 0.000 claims description 64
- 230000015654 memory Effects 0.000 claims description 49
- 238000012790 confirmation Methods 0.000 claims description 15
- 230000009467 reduction Effects 0.000 claims description 11
- 238000012217 deletion Methods 0.000 claims description 6
- 230000037430 deletion Effects 0.000 claims description 6
- 238000007726 management method Methods 0.000 description 148
- 238000013135 deep learning Methods 0.000 description 41
- 230000008569 process Effects 0.000 description 27
- 238000004364 calculation method Methods 0.000 description 19
- 238000010586 diagram Methods 0.000 description 19
- 238000013528 artificial neural network Methods 0.000 description 18
- 230000006870 function Effects 0.000 description 17
- 239000011159 matrix material Substances 0.000 description 16
- 239000013598 vector Substances 0.000 description 16
- 238000013473 artificial intelligence Methods 0.000 description 11
- 238000004891 communication Methods 0.000 description 10
- 239000000872 buffer Substances 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 5
- MHABMANUFPZXEB-UHFFFAOYSA-N O-demethyl-aloesaponarin I Natural products O=C1C2=CC=CC(O)=C2C(=O)C2=C1C=C(O)C(C(O)=O)=C2C MHABMANUFPZXEB-UHFFFAOYSA-N 0.000 description 4
- 230000002776 aggregation Effects 0.000 description 4
- 238000004220 aggregation Methods 0.000 description 4
- 238000013500 data storage Methods 0.000 description 4
- 238000013136 deep learning model Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000004590 computer program Methods 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
- 239000012634 fragment Substances 0.000 description 3
- 238000010606 normalization Methods 0.000 description 3
- 238000002360 preparation method Methods 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000013480 data collection Methods 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000011144 upstream manufacturing Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 238000005452 bending Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 210000004027 cell Anatomy 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000011217 control strategy Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000007788 liquid Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012800 visualization Methods 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Hardware Redundancy (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例公开了一种数据处理方法,可以提高集群运行效率。应用于包括管理节点和计算节点的数据处理***,数据处理***中运行第一作业,运行第一作业的计算节点集合包括至少一个计算节点,至少一个计算节点中包括主计算节点,方法包括:管理节点根据数据处理***中的空闲计算节点数量和/或等待状态的作业数量确定集群资源状态为紧张状态,等待状态的作业数量大于或等于第一阈值和/或空闲计算节点数量小于第二阈值;管理节点根据集群资源状态确定降低第一作业的并行度的删减策略,删减策略用于指示从计算节点集合删减目标计算节点;管理节点根据删减策略向主计算节点发送删减指令,以使得目标计算节点停止运行第一作业。
Description
技术领域
本申请涉及人工智能(artificial intelligence,AI)技术领域,具体涉及一种数据处理方法、管理节点、计算节点和数据处理***。
背景技术
深度学习目前广泛应用于计算机视觉、自然语言处理和推荐搜索等领域。深度学习模型的训练工作是资源密集型且耗时的,由此,许多组织构建了用于深度学习的集群***,用于为多个用户提供服务。
深度学习***包括至少一个管理节点和多个计算节点,用户向深度学习***提交作业,并指定作业的并行度,即运行该作业所需的计算节点数量,深度学习***中的管理节点根据用户指定的并行度为作业分配计算资源。
由于深度学习模型参数较多且结构复杂,不同作业训练时对计算节点的存储资源利用率不同。用户根据经验为作业直接指定的并行度可能不合理,例如,深度学习***资源紧张时,为一个作业申请的计算节点数量偏多,运行该作业的计算节点利用率较低因此深度学习***效率低。
发明内容
本申请实施例第一方面提供了一种数据处理***,所述数据处理***包括管理节点和运行第一作业的计算节点集合,所述计算节点集合包括主计算节点和第一计算节点,所述管理节点,用于根据所述数据处理***中的空闲计算节点数量和/或等待状态的作业数量确定集群资源状态为紧张状态,所述等待状态的作业数量大于或等于第一阈值和/或所述空闲计算节点数量小于第二阈值;所述管理节点,还用于根据所述集群资源状态确定降低所述第一作业的并行度的删减策略,并向所述主计算节点发送所述删减策略,所述删减策略用于指示所述第一计算节点停止运行所述第一作业,所述第一作业的并行度为运行所述第一作业的计算节点集合中计算节点的数量;所述主计算节点,用于接收所述删减策略,并根据所述删减策略向所述第一计算节点发送删减指令;还用于根据所述删减策略将所述第一作业的原拓扑结构更新为新拓扑结构,并根据所述新拓扑结构继续运行所述第一作业;所述第一作业的原拓扑结构用于指示所述计算节点集合中所有计算节点的逻辑连接关系,所述第一作业的新拓扑结构用于指示更新后的所述计算节点集合中所有计算节点的逻辑连接关系;所述第一计算节点,用于接收所述删减指令,并根据所述删减指令,停止运行所述第一作业。第一节点为集合中出主节点外的节点中的任一个。
本申请实施例提供的数据处理***,在集群资源状态紧张时,可以删减运行作业的计算节点,被删减的计算节点可以用于运行等待的作业,可以降低作业的等待时长,提高集群的运行效率。
在第一方面的一种可能的实现方式中,所述计算节点集合还包括未被删减的第二计算节点;所述第二计算节点,用于接收所述主计算节点发送的所述新拓扑结构,并根据所述新拓扑结构继续运行所述第一作业。
在第一方面的一种可能的实现方式中,所述管理节点还用于,获取所述第一作业的评价模型,所述评价模型用于表示所述第一作业的并行度与运行所述第一作业的计算节点的存储资源利用率的对应关系,以及,所述第一作业的并行度与所述第一作业的吞吐量的对应关系;所述管理节点还用于,根据所述评价模型确定所述第一作业的可用并行度范围,所述可用并行度范围的最小值根据所述计算节点的存储资源利用率确定,所述可用并行度范围的最大值根据所述第一作业的吞吐量的峰值确定,所述第一作业降低并行度后的新第一并行度属于所述可用并行度范围。
在第一方面的一种可能的实现方式中,所述删减指令携带时间戳;所述第一计算节点,具体用于根据,在所述时间戳指示的时刻之后,停止运行所述第一作业。
本申请实施例第二方面提供了一种数据处理***,所述数据处理***包括管理节点和运行第一作业的计算节点集合,所述计算节点集合包括主计算节点和第一计算节点,所述管理节点,用于根据所述数据处理***中的空闲计算节点数量和/或等待状态的作业数量确定集群资源状态为紧张状态,所述等待状态的作业数量大于或等于第一阈值和/或所述空闲计算节点数量小于第二阈值;所述管理节点,还用于根据所述集群资源状态确定降低所述第一作业的并行度的删减策略,并向所述主计算节点发送所述删减策略,所述删减策略用于指示所述主计算节点停止运行所述第一作业,所述第一作业的并行度为运行所述第一作业的计算节点集合中计算节点的数量;所述主计算节点,用于接收所述删减策略,并根据所述删减策略停止运行所述第一作业;还用于根据所述删减策略将所述第一作业的原拓扑结构更新为新拓扑结构,并将所述新拓扑结构发送给所述第一计算节点;所述第一作业的原拓扑结构用于指示所述计算节点集合中所有计算节点的逻辑连接关系,所述第一作业的新拓扑结构用于指示更新后的所述计算节点集合中所有计算节点的逻辑连接关系;所述第一计算节点,用于接收所述新拓扑结构,并根据所述新拓扑结构继续运行所述第一作业。所述逻辑连接关系表示计算节点之间模型训练结果(梯度)的传输关系,即梯度聚合过程中节点之间梯度的传输关系。
在第二方面的一种可能的实现方式中,所述删减策略还用于指示第二计算节点停止运行所述第一作业,所述第二计算节点为所述计算节点集合中的节点;所述主计算节点还用于,根据所述删减策略向所述第二计算节点发送删减指令;所述第二计算节点,用于接收所述主计算节点发送的删减指令,并根据所述删减指令,停止运行所述第一作业。所述第二节点是集合中除了第一计算节点和主计算节点外剩余的计算节点中的任一个计算节点。
在第二方面的一种可能的实现方式中,所述主计算节点还用于,根据所述删减策略停止向所述第一计算节点发送地址信息;所述第一计算节点还用于,若超过预设时长阈值未接收所述地址信息,所述第一计算节点向所述管理节点发送申请消息,用于申请成为新的主计算节点。
在第二方面的一种可能的实现方式中,所述管理节点还用于,向所述第一计算节点发送确认消息,用于确认所述第一计算节点为新的主计算节点;所述主计算节点还用于,向所述第一计算节点发送所述第一作业的批尺寸和运行所述第一作业所需数据的读取路径。
在第二方面的一种可能的实现方式中,所述管理节点还用于,获取所述第一作业的评价模型,所述评价模型用于表示所述第一作业的并行度与运行所述第一作业的计算节点的存储资源利用率的对应关系,以及,所述第一作业的并行度与所述第一作业的吞吐量的对应关系;所述管理节点还用于,根据所述评价模型确定所述第一作业的可用并行度范围,所述可用并行度范围的最小值根据所述计算节点的存储资源利用率确定,所述可用并行度范围的最大值根据所述第一作业的吞吐量的峰值确定,所述第一作业降低并行度后的新第一并行度属于所述可用并行度范围。
本申请实施例第三方面提供了一种数据处理***,所述数据处理***包括管理节点、空闲状态的目标计算节点,所述数据处理***中运行第二作业;所述管理节点,用于根据所述数据处理***中的空闲计算节点数量和/或等待状态的作业数量确定集群资源状态为空闲状态,所述等待状态的作业数量小于第一阈值和/或所述空闲计算节点数量大于或等于第二阈值;所述管理节点,还用于根据所述集群资源状态确定提高所述第二作业的并行度的新增节点策略,根据所述新增节点策略向所述目标计算节点发送指令;所述目标计算节点,用于接收所述管理节点的指令,根据所述指令运行所述第二作业。
在第三方面的一种可能的实现方式中,运行所述第二作业的计算节点集合包括主计算节点;所述目标计算节点还用于,根据所述指令,向所述主计算节点发送注册信息;所述主计算节点,用于根据所述注册信息将所述第二作业的原拓扑结构更新为新拓扑结构,根据所述新拓扑结构运行所述第二作业,并将所述新拓扑结构发送给所述目标计算节点;所述第二作业的原拓扑结构用于指示所述计算节点集合中所有计算节点的逻辑连接关系,所述第二作业的新拓扑结构用于指示更新后的所述计算节点集合中所有计算节点的逻辑连接关系;所述目标计算节点,还用于接收所述新拓扑结构,并根据所述新拓扑结构运行所述第二作业。
在第三方面的一种可能的实现方式中,所述目标计算节点,还用于在接收所述新拓扑结构之后,向所述主计算节点返回确认信息;所述主计算节点,还用于根据所述确认信息向所述目标计算节点发送训练指令,所述训练指令携带时间戳;所述目标计算节点,具体用于在所述时间戳指示的时刻之后运行所述第二作业。所述主计算节点,还用于在所述时间戳指示的时刻之后确定所述第二作业更新的训练模型,并发送给所述目标计算节点;所述目标计算节点,具体用于根据所述更新的训练模型运行所述第二作业。
在第三方面的一种可能的实现方式中,运行所述第二作业的计算节点集合包括主计算节点和第一计算节点,所述主计算节点,还用于将所述新拓扑结构发送给所述第一计算节点,所述第一计算节点,用于根据所述新拓扑结构运行所述第二作业。
在第三方面的一种可能的实现方式中,所述管理节点还用于,获取所述第二作业的评价模型,所述评价模型用于表示所述第二作业的并行度与运行所述第二作业的计算节点的存储资源利用率的对应关系,以及,所述第二作业的并行度与所述第二作业的吞吐量的对应关系;所述管理节点还用于,根据所述评价模型确定所述第二作业的可用并行度范围,所述可用并行度范围的最小值根据所述计算节点的存储资源利用率确定,所述可用并行度范围的最大值根据所述第二作业的吞吐量的峰值确定,所述第二作业提高并行度后的新第二并行度属于所述可用并行度范围。
本申请实施例第四方面提供了一种数据处理的方法,包括:应用于包括管理节点和计算节点的数据处理***,所述数据处理***中运行第一作业,运行所述第一作业的计算节点集合包括至少一个计算节点,所述至少一个计算节点中包括主计算节点,所述方法包括:所述管理节点根据所述数据处理***中的空闲计算节点数量和/或等待状态的作业数量确定集群资源状态为紧张状态,所述等待状态的作业数量大于或等于第一阈值和/或所述空闲计算节点数量小于第二阈值;所述管理节点根据所述集群资源状态确定降低所述第一作业的并行度的删减策略,所述删减策略用于指示从所述计算节点集合删减目标计算节点;所述管理节点根据所述删减策略向所述主计算节点发送删减指令,以使得所述目标计算节点停止运行所述第一作业。
在第四方面的一种可能的实现方式中,所述管理节点获取所述第一作业的评价模型,所述评价模型用于表示所述第一作业的并行度与运行所述第一作业的计算节点的存储资源利用率的对应关系,以及,所述第一作业的并行度与所述第一作业的吞吐量的对应关系;所述管理节点根据所述评价模型确定所述第一作业的可用并行度范围,所述可用并行度范围的最小值根据所述计算节点的存储资源利用率确定,所述可用并行度范围的最大值根据所述第一作业的吞吐量的峰值确定,所述第一作业降低并行度后的新第一并行度属于所述可用并行度范围。
在第四方面的一种可能的实现方式中,所述管理节点根据所述集群资源状态确定降低所述第一作业的并行度的删减策略包括:所述管理节点根据所述评价模型,确定降低所述第一作业的并行度并删减所述目标计算节点,并从所述第一作业的可用并行度范围中确定所述第一作业降低并行度后的新第一并行度。
本申请实施例第五方面提供了一种数据处理的方法,应用于包括管理节点和计算节点的数据处理***,所述数据处理***中运行第一作业,运行所述第一作业的计算节点集合包括至少两个计算节点,所述至少两个计算节点中包括主计算节点和目标计算节点,所述方法包括:所述主计算节点接收所述管理节点发送的删减策略,所述删减策略用于指示目标计算节点停止运行所述第一作业;所述主计算节点根据所述删减策略向所述目标计算节点发送删减指令,以指示所述目标计算节点停止运行所述第一作业;所述主计算节点根据所述删减策略将所述第一作业的原拓扑结构更新为新拓扑结构,并根据所述新拓扑结构继续运行所述第一作业,所述第一作业的原拓扑结构用于指示所述计算节点集合中所有计算节点的逻辑连接关系,所述第一作业的新拓扑结构用于指示更新后的所述计算节点集合中所有计算节点的逻辑连接关系。
在第五方面的一种可能的实现方式中,所述删减指令携带时间戳,所述时间戳用于指示所述目标计算节点停止运行所述第一作业的时刻。
在第五方面的一种可能的实现方式中,运行所述第一作业的计算节点集合包括未被删减的第一计算节点,所述方法还包括:所述主计算节点向所述第一计算节点发送所述新拓扑结构,以指示所述第一计算节点根据所述新拓扑结构继续训练所述第一作业。
本申请实施例第六方面提供了一种数据处理的方法,应用于包括管理节点和计算节点的数据处理***,所述数据处理***中运行第一作业,运行所述第一作业的计算节点集合包括至少两个计算节点,所述至少两个计算节点中包括主计算节点和第一计算节点,所述方法包括:所述主计算节点接收所述管理节点发送的删减策略,所述删减策略用于指示所述主计算节点停止运行所述第一作业;所述主计算节点根据所述删减策略将所述第一作业的原拓扑结构更新为新拓扑结构,并将所述新拓扑结构发送给所述第一计算节点,以指示所述第一计算节点根据所述更新的拓扑结构继续运行所述第一作业,所述第一作业的原拓扑结构用于指示所述计算节点集合中所有计算节点的逻辑连接关系,所述第一作业的新拓扑结构用于指示更新后的所述计算节点集合中所有计算节点的逻辑连接关系;所述主计算节点根据所述删减策略停止运行所述第一作业。
在第六方面的一种可能的实现方式中,运行所述第一作业的计算节点集合包括第二计算节点,所述删减策略还用于指示所述第二计算节点停止运行所述第一作业,所述方法还包括:所述主计算节点根据所述删减策略向所述第二计算节点发送删减指令,以指示所述第二计算节点停止运行所述第一作业。
在第六方面的一种可能的实现方式中,所述删减指令携带时间戳,所述时间戳用于指示所述第二计算节点停止运行所述第一作业的时刻。
在第六方面的一种可能的实现方式中,所述方法还包括:所述主计算节点,根据所述删减策略停止向所述第一计算节点发送地址信息,以指示第一计算节点所述主计算节点停止运行所述第一作业;所述第一计算节点为新的主计算节点,所述方法还包括:所述主计算节点向所述第一计算节点发送所述第一作业的批尺寸和运行所述第一作业所需数据的读取路径。
本申请实施例第七方面提供了一种数据处理的方法,应用于包括管理节点和计算节点的数据处理***,所述数据处理***中运行第一作业,运行所述第一作业的计算节点集合包括至少两个计算节点,所述至少两个计算节点中包括主计算节点和第一计算节点,所述方法包括:所述第一计算节点接收所述主计算节点发送的删减指令,所述删减指令携带时间戳;所述第一计算节点根据所述删减指令,在所述时间戳指示的时刻之后,停止运行所述第一作业。
本申请实施例第八方面提供了一种数据处理的方法,应用于包括管理节点和计算节点的数据处理***,所述数据处理***中运行第一作业,运行所述第一作业的计算节点集合包括至少两个计算节点,所述至少两个计算节点中包括主计算节点和第一计算节点,所述方法包括:所述第一计算节点接收主计算节点发送的新拓扑结构,所述新拓扑结构为所述主计算节点根据所述管理节点发送的删减策略更新所述第一作业的原拓扑结构得到的新拓扑结构,所述第一作业的新拓扑结构用于指示更新后的所述计算节点集合中所有计算节点的逻辑连接关系;所述第一计算节点根据所述新拓扑结构继续运行所述第一作业。
在第八方面的一种可能的实现方式中,所述方法还包括:基于超过预设的时间阈值未接收所述主计算节点发送的地址信息,所述第一计算节点向所述管理节点发送申请消息,用于申请成为新的主计算节点。
在第八方面的一种可能的实现方式中,所述第一计算节点为新的主计算节点,所述方法还包括:所述第一计算节点接收所述主计算节点发送的所述第一作业的批尺寸和运行所述第一作业所需数据的读取路径。
本申请实施例第九方面提供了一种数据处理的方法,应用于包括管理节点、空闲状态的目标计算节点的数据处理***,所述数据处理***中运行第二作业,所述方法包括:所述管理节点根据所述数据处理***中的空闲计算节点数量和/或等待状态的作业数量确定集群资源状态为空闲状态,所述等待状态的作业数量小于第一阈值和/或所述空闲计算节点数量大于或等于第二阈值;所述管理节点根据所述集群资源状态确定提高所述第二作业的并行度的新增节点策略;所述管理节点根据所述新增节点策略向所述目标计算节点发送指令,以指示所述目标计算节点根据所述指令运行所述第二作业。
在第九方面的一种可能的实现方式中,所述方法还包括:所述管理节点获取所述第二作业的评价模型,所述评价模型包括所述第二作业的并行度与运行所述第二作业的计算节点的存储资源利用率的对应关系,以及,所述第二作业的并行度与所述第二作业的吞吐量的对应关系;所述管理节点根据所述评价模型确定所述第二作业的可用并行度范围,所述可用并行度范围的最小值根据所述计算节点的存储资源利用率确定,所述可用并行度范围的最大值根据所述第二作业的吞吐量的峰值确定,所述第二作业提高并行度后的新第二并行度属于所述可用并行度范围。
本申请实施例第十方面提供了一种数据处理的方法,应用于包括管理节点和空闲状态的目标计算节点的数据处理***,所述数据处理***中运行第二作业,运行所述第二作业的计算节点集合包括至少一个计算节点,所述至少一个计算节点中包括主计算节点,所述方法包括:所述主计算节点接收目标计算节点发送的注册信息,所述注册信息用于申请运行所述第二作业;所述主计算节点根据所述注册信息将所述第二作业的原拓扑结构更新为新拓扑结构,并根据所述新拓扑结构运行所述第二作业,所述第二作业的原拓扑结构用于指示所述计算节点集合中所有计算节点的逻辑连接关系,所述第二作业的新拓扑结构用于指示更新后的所述计算节点集合中所有计算节点的逻辑连接关系;所述主计算节点将所述新拓扑结构发送给所述目标计算节点,以使得所述目标计算节点根据所述新拓扑结构运行所述第二作业。
在第十方面的一种可能的实现方式中,所述计算节点集合还包括第一计算节点,所述方法还包括:所述主计算节点将所述新拓扑结构发送给所述第一计算节点,以使得所述第一计算节点根据所述新拓扑结构运行所述第二作业。
在第十方面的一种可能的实现方式中,所述方法还包括:所述主计算节点接收所述目标计算节点的确认信息,用于指示所述目标计算节点收到所述新拓扑结构;所述主计算节点根据所述确认信息向所述目标计算节点发送训练指令,所述训练指令携带时间戳,用于指示所述目标计算节点在所述时间戳指示的时刻之后加入运行所述第二作业。
在第十方面的一种可能的实现方式中,所述方法还包括:在所述时间戳指示的时刻后,所述主计算节点在所述时间戳指示的时刻之后确定所述第二作业更新的训练模型,并发送给所述目标计算节点,以使得所述目标计算节点根据所述更新的训练模型运行所述第二作业。
本申请实施例第十一方面提供了一种数据处理的方法,应用于包括管理节点、空闲状态的目标计算节点的数据处理***,所述数据处理***中运行第二作业,所述方法包括:目标计算节点接收所述管理节点发送的指令,所述指令用于指示所述目标计算节点运行所述第二作业;所述目标计算节点根据所述指令向所述主计算节点发送注册信息,用于申请运行所述第二作业;所述目标计算节点接收所述主计算节点根据所述注册信息发送的新拓扑结构,所述新拓扑结构为所述主计算节点根据所述管理节点发送的新增节点策略更新所述第二作业的原拓扑结构得到的新拓扑结构,所述第二作业的新拓扑结构用于指示更新后的所述计算节点集合中所有计算节点的逻辑连接关系;所述目标计算节点根据所述新拓扑结构运行所述第二作业。
在第十一方面的一种可能的实现方式中,所述方法还包括:所述目标计算节点接收所述更新的拓扑结构之后,向所述主计算节点返回确认信息;所述目标计算节点接收所述主计算节点根据所述确定信息发送的训练指令,所述训练指令携带时间戳;所述目标计算节点在所述时间戳指示的时刻之后,根据所述新拓扑结构运行所述第二作业。
在第十一方面的一种可能的实现方式中,所述方法还包括:所述目标计算节点接收所述主计算节点发送的更新的训练模型,所述更新的训练模型为所述主计算节点在所述第二作业在所述时间戳指示的时刻之后确定的训练模型;所述目标计算节点根据所述更新的训练模型运行所述第二作业。
本申请实施例第十二方面提供了一种数据处理的方法,应用于包括管理节点、空闲状态的目标计算节点的数据处理***,所述数据处理***中运行第二作业,运行所述第二作业的计算节点集合包括至少一个计算节点,所述至少一个计算节点中包括主计算节点和第一计算节点所述方法包括:所述第一计算节点接收所述主计算节点发送的新拓扑结构,所述新拓扑结构为所述主计算节点根据所述管理节点发送的新增节点策略更新所述第二作业的原拓扑结构得到的新拓扑结构,所述第二作业的新拓扑结构用于指示更新后的所述计算节点集合中所有计算节点的逻辑连接关系;所述第一计算节点接收所述主计算节点发送的训练指令,所述训练指令携带时间戳;所述第一计算节点在所述时间戳指示的时刻之后,根据所述新拓扑结构运行。
本申请实施例第十三方面提供了一种管理节点,其特征在于,应用于包括计算节点的数据处理***,所述数据处理***中运行第一作业,运行所述第一作业的计算节点集合包括至少一个计算节点,所述至少一个计算节点中包括主计算节点,包括:确定单元,用于根据所述数据处理***中的空闲计算节点数量和/或等待状态的作业数量确定集群资源状态为紧张状态,所述等待状态的作业数量大于或等于第一阈值和/或所述空闲计算节点数量小于第二阈值;所述确定单元还用于,根据所述集群资源状态确定降低所述第一作业的并行度的删减策略,所述删减策略用于指示从所述计算节点集合删减目标计算节点;发送单元,用于根据所述删减策略向所述主计算节点发送删减指令,以使得所述目标计算节点停止运行所述第一作业。
在第十三方面的一种可能的实现方式中,所述管理节点还包括:获取单元,用于获取所述第一作业的评价模型,所述评价模型用于表示所述第一作业的并行度与运行所述第一作业的计算节点的存储资源利用率的对应关系,以及,所述第一作业的并行度与所述第一作业的吞吐量的对应关系;所述确定单元还用于,根据所述评价模型确定所述第一作业的可用并行度范围,所述可用并行度范围的最小值根据所述计算节点的存储资源利用率确定,所述可用并行度范围的最大值根据所述第一作业的吞吐量的峰值确定,所述第一作业降低并行度后的新第一并行度属于所述可用并行度范围。
在第十三方面的一种可能的实现方式中,所述确定单元具体用于:根据所述评价模型,确定降低所述第一作业的并行度并删减所述目标计算节点,并从所述第一作业的可用并行度范围中确定所述第一作业降低并行度后的新第一并行度。
本申请实施例第十四方面提供了一种主计算节点,其特征在于,应用于包括管理节点和计算节点的数据处理***,所述数据处理***中运行第一作业,运行所述第一作业的计算节点集合包括至少两个计算节点,所述至少两个计算节点中包括所述主计算节点和目标计算节点,所述主计算节点包括:接收单元,用于接收所述管理节点发送的删减策略,所述删减策略用于指示目标计算节点停止运行所述第一作业;发送单元,用于根据所述删减策略向所述目标计算节点发送删减指令,以指示所述目标计算节点停止运行所述第一作业;更新单元,用于根据所述删减策略将所述第一作业的原拓扑结构更新为新拓扑结构,并根据所述新拓扑结构继续运行所述第一作业,所述第一作业的原拓扑结构用于指示所述计算节点集合中所有计算节点的逻辑连接关系,所述第一作业的新拓扑结构用于指示更新后的所述计算节点集合中所有计算节点的逻辑连接关系。
在第十四方面的一种可能的实现方式中,所述删减指令携带时间戳,所述时间戳用于指示所述目标计算节点停止运行所述第一作业的时刻。
在第十四方面的一种可能的实现方式中,运行所述第一作业的计算节点集合包括未被删减的第一计算节点,所述发送单元还用于:向所述第一计算节点发送所述新拓扑结构,以指示所述第一计算节点根据所述新拓扑结构继续训练所述第一作业。
本申请实施例第十五方面提供了一种主计算节点,其特征在于,应用于包括管理节点和计算节点的数据处理***,所述数据处理***中运行第一作业,运行所述第一作业的计算节点集合包括至少两个计算节点,所述至少两个计算节点中包括主计算节点和第一计算节点,所述主计算节点包括:接收单元,用于接收所述管理节点发送的删减策略,所述删减策略用于指示所述主计算节点停止运行所述第一作业;更新单元,用于根据所述删减策略将所述第一作业的原拓扑结构更新为新拓扑结构,并将所述新拓扑结构发送给所述第一计算节点,以指示所述第一计算节点根据所述更新的拓扑结构继续运行所述第一作业,所述第一作业的原拓扑结构用于指示所述计算节点集合中所有计算节点的逻辑连接关系,所述第一作业的新拓扑结构用于指示更新后的所述计算节点集合中所有计算节点的逻辑连接关系;所述主计算节点根据所述删减策略停止运行所述第一作业。
在第十五方面的一种可能的实现方式中,运行所述第一作业的计算节点集合包括第二计算节点,所述删减策略还用于指示所述第二计算节点停止运行所述第一作业,所述主计算节点还包括:发送单元,用于根据所述删减策略向所述第二计算节点发送删减指令,以指示所述第二计算节点停止运行所述第一作业。
在第十五方面的一种可能的实现方式中,所述删减指令携带时间戳,所述时间戳用于指示所述第二计算节点停止运行所述第一作业的时刻。
在第十五方面的一种可能的实现方式中,所述主计算节点还包括:发送单元,用于根据所述删减策略停止向所述第一计算节点发送地址信息,以指示第一计算节点所述主计算节点停止运行所述第一作业;所述第一计算节点为新的主计算节点,所述发送单元还用于:向所述第一计算节点发送所述第一作业的批尺寸和运行所述第一作业所需数据的读取路径。
本申请实施例第十六方面提供了一种计算节点,其特征在于,应用于包括管理节点和计算节点的数据处理***,所述数据处理***中运行第一作业,运行所述第一作业的计算节点集合包括至少两个计算节点,所述至少两个计算节点中包括主计算节点和第一计算节点,所述计算节点包括:接收单元,用于接收所述主计算节点发送的删减指令,所述删减指令携带时间戳;运行单元,用于根据所述删减指令,在所述时间戳指示的时刻之后,停止运行所述第一作业。
本申请实施例第十七方面提供了一种计算节点,其特征在于,应用于包括管理节点和计算节点的数据处理***,所述数据处理***中运行第一作业,运行所述第一作业的计算节点集合包括至少两个计算节点,所述至少两个计算节点中包括主计算节点和第一计算节点,所述计算节点包括:接收单元,用于接收主计算节点发送的新拓扑结构,所述新拓扑结构为所述主计算节点根据所述管理节点发送的删减策略更新所述第一作业的原拓扑结构得到的新拓扑结构,所述第一作业的新拓扑结构用于指示更新后的所述计算节点集合中所有计算节点的逻辑连接关系;运行单元,用于根据所述新拓扑结构继续运行所述第一作业。
在第十七方面的一种可能的实现方式中,所述计算节点还包括:发送单元,基于超过预设的时间阈值未接收所述主计算节点发送的地址信息,向所述管理节点发送申请消息,用于申请成为新的主计算节点。
在第十七方面的一种可能的实现方式中,所述第一计算节点为新的主计算节点,所述接收单元还用于:接收所述主计算节点发送的所述第一作业的批尺寸和运行所述第一作业所需数据的读取路径。
本申请实施例第十八方面提供了一种管理节点,其特征在于,应用于包括所述管理节点、空闲状态的目标计算节点的数据处理***,所述数据处理***中运行第二作业,所述管理节点包括:确定单元,用于根据所述数据处理***中的空闲计算节点数量和/或等待状态的作业数量确定集群资源状态为空闲状态,所述等待状态的作业数量小于第一阈值和/或所述空闲计算节点数量大于或等于第二阈值;所述确定单元,还用于所述管理节点根据所述集群资源状态确定提高所述第二作业的并行度的新增节点策略;发送单元,用于根据所述新增节点策略向所述目标计算节点发送指令,以指示所述目标计算节点根据所述指令运行所述第二作业。
在第十八方面的一种可能的实现方式中,所述管理节点还包括:获取单元,用于获取所述第二作业的评价模型,所述评价模型包括所述第二作业的并行度与运行所述第二作业的计算节点的存储资源利用率的对应关系,以及,所述第二作业的并行度与所述第二作业的吞吐量的对应关系;所述确定单元还用于,根据所述评价模型确定所述第二作业的可用并行度范围,所述可用并行度范围的最小值根据所述计算节点的存储资源利用率确定,所述可用并行度范围的最大值根据所述第二作业的吞吐量的峰值确定,所述第二作业提高并行度后的新第二并行度属于所述可用并行度范围。
本申请实施例第十九方面提供了一种主计算节点,其特征在于,应用于包括管理节点和空闲状态的目标计算节点的数据处理***,所述数据处理***中运行第二作业,运行所述第二作业的计算节点集合包括至少一个计算节点,所述至少一个计算节点中包括主计算节点,所述主计算节点包括:接收单元,用于接收目标计算节点发送的注册信息,所述注册信息用于申请运行所述第二作业;更新单元,用于根据所述注册信息将所述第二作业的原拓扑结构更新为新拓扑结构,并根据所述新拓扑结构运行所述第二作业,所述第二作业的原拓扑结构用于指示所述计算节点集合中所有计算节点的逻辑连接关系,所述第二作业的新拓扑结构用于指示更新后的所述计算节点集合中所有计算节点的逻辑连接关系;发送单元,用于将所述新拓扑结构发送给所述目标计算节点,以使得所述目标计算节点根据所述新拓扑结构运行所述第二作业。
在第十九方面的一种可能的实现方式中,所述计算节点集合还包括第一计算节点,所述发送单元还用于:将所述新拓扑结构发送给所述第一计算节点,以使得所述第一计算节点根据所述新拓扑结构运行所述第二作业。
在第十九方面的一种可能的实现方式中,所述接收单元还用于:接收所述目标计算节点的确认信息,用于指示所述目标计算节点收到所述新拓扑结构;所述发送单元还用于,根据所述确认信息向所述目标计算节点发送训练指令,所述训练指令携带时间戳,用于指示所述目标计算节点在所述时间戳指示的时刻之后加入运行所述第二作业。
在第十九方面的一种可能的实现方式中,所述确定单元还用于:在所述时间戳指示的时刻后,所述主计算节点在所述时间戳指示的时刻之后确定所述第二作业更新的训练模型;所述发送单元还用于将所述更新的训练模型发送给所述目标计算节点,以使得所述目标计算节点根据所述更新的训练模型运行所述第二作业。
本申请实施例第二十方面提供了一种计算节点,应用于包括管理节点、空闲状态的计算节点的数据处理***,所述数据处理***中运行第二作业,所述计算节点包括:接收单元,用于接收所述管理节点发送的指令,所述指令用于指示所述计算节点运行所述第二作业;发送单元,用于根据所述指令向所述主计算节点发送注册信息,用于申请运行所述第二作业;所述接收单元,还用于接收所述主计算节点根据所述注册信息发送的新拓扑结构,所述新拓扑结构为所述主计算节点根据所述管理节点发送的新增节点策略更新所述第二作业的原拓扑结构得到的新拓扑结构,所述第二作业的新拓扑结构用于指示更新后的所述计算节点集合中所有计算节点的逻辑连接关系;运行单元,用于根据所述新拓扑结构运行所述第二作业。
在第二十方面的一种可能的实现方式中,所述发送单元,还用于接收所述更新的拓扑结构之后,向所述主计算节点返回确认信息;所述接收单元,还用于接收所述主计算节点根据所述确定信息发送的训练指令,所述训练指令携带时间戳;所述运行单元,还用于在所述时间戳指示的时刻之后,根据所述新拓扑结构运行所述第二作业。
在第二十方面的一种可能的实现方式中,所述接收单元,还用接收所述主计算节点发送的更新的训练模型,所述更新的训练模型为所述主计算节点在所述第二作业在所述时间戳指示的时刻之后确定的训练模型;所述计算节点还包括:更新单元,用于根据所述更新的训练模型运行所述第二作业。
本申请实施例第二十一方面提供了一种计算节点,其特征在于,应用于包括管理节点、空闲状态的目标计算节点的数据处理***,所述数据处理***中运行第二作业,运行所述第二作业的计算节点集合包括至少一个计算节点,所述至少一个计算节点中包括主计算节点和第一计算节点所述计算节点包括:接收单元,用于接收所述主计算节点发送的新拓扑结构,所述新拓扑结构为所述主计算节点根据所述管理节点发送的新增节点策略更新所述第二作业的原拓扑结构得到的新拓扑结构,所述第二作业的新拓扑结构用于指示更新后的所述计算节点集合中所有计算节点的逻辑连接关系;所述接收单元,还用于接收所述主计算节点发送的训练指令,所述训练指令携带时间戳;运行单元,用于在所述时间戳指示的时刻之后,根据所述新拓扑结构运行。
本申请实施例第二十二方面提供了一种管理节点,包括:存储器,用于存储指令;处理器,用于执行所述存储器中的指令,使得所述管理设备执行前述第四方面或第九方面的方法。
本申请实施例第二十三方面提供了一种计算节点,其特征在于,包括:存储器,用于存储指令;处理器,用于执行所述存储器中的指令,使得所述数据处理设备执行前述第五方面至第八方面,以及第十方面至第十二方面的方法。
本申请实施例第二十四方面提供了一种计算机程序产品,其特征在于,所述计算机程序产品包括指令,当所述指令在计算机上运行时,使得所述计算机执行前述第四方面至十二方面的方法。
本申请实施例第二十五方面提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储指令,当所述指令在计算机上运行时,使得所述计算机执行前述第四方面至十二方面的方法。
从以上技术方案可以看出,本申请实施例具有以下优点:本申请实施例提供的数据处理方法,深度学习管理***根据资源的紧张程度,可以根据集群当前运行情况调整作业的并行度,提高集群运行效率。
附图说明
图1为一种人工智能主体框架示意图;
图2为本申请实施例提供了一种***架构的示意图;
图3为本申请实施例提供的一种芯片硬件结构图;
图4为本申请实施例中为云计算基础设施的示意图;
图5为本申请实施例中一种数据处理方法的一个实施例示意图;
图6为本申请实施例中一种数据处理方法的另一个实施例示意图;
图7为本申请实施例中深度学习***实现并行度提升方法的一个实施例示意图;
图8为本申请实施例中深度学习***实现并行度降低方法的一个实施例示意图;
图9为本申请实施例中管理节点的一个实施例示意图;
图10为本申请实施例中计算节点的一个实施例示意图;
图11为本申请实施例中管理节点的另一个实施例示意图;
图12为本申请实施例中计算节点的另一个实施例示意图。
具体实施方式
本申请实施例提供的数据处理方法,用于集群***中对深度学习作业的资源调度,可以根据集群当前运行情况调整作业的并行度,提高集群运行效率。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
图1示出一种人工智能主体框架示意图,该主体框架描述了人工智能***总体工作流程,适用于通用的人工智能领域需求。
下面从“智能信息链”(水平轴)和“IT价值链”(垂直轴)两个维度对上述人工智能主题框架进行阐述。
“智能信息链”反映从数据的获取到处理的一列过程。举例来说,可以是智能信息感知、智能信息表示与形成、智能推理、智能决策、智能执行与输出的一般过程。在这个过程中,数据经历了“数据—信息—知识—智慧”的凝练过程。
“IT价值链”从人智能的底层基础设施、信息(提供和处理技术实现)到***的产业生态过程,反映人工智能为信息技术产业带来的价值。
(1)基础设施:
基础设施为人工智能***提供计算能力支持,实现与外部世界的沟通,并通过基础平台实现支撑。通过传感器与外部沟通;计算能力由智能芯片(中央处理器(centralprocessing unit,CPU)、神经网络处理器(network processing unit,NPU)、图形处理器(graphic processing unit GPU)、专用集成电路(application specific integratedcircuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)等硬件加速芯片)提供;基础平台包括分布式计算框架及网络等相关的平台保障和支持,可以包括云存储和计算、互联互通网络等。举例来说,传感器和外部沟通获取数据,这些数据提供给基础平台提供的分布式计算***中的智能芯片进行计算。
(2)数据
基础设施的上一层的数据用于表示人工智能领域的数据来源。数据涉及到图形、图像、语音、文本,还涉及到传统设备的物联网数据,包括已有***的业务数据以及力、位移、液位、温度、湿度等感知数据。
(3)数据处理
数据处理通常包括数据训练,机器学习,深度学习,搜索,推理,决策等方式。
其中,机器学习和深度学习可以对数据进行符号化和形式化的智能信息建模、抽取、预处理、训练等。
推理是指在计算机或智能***中,模拟人类的智能推理方式,依据推理控制策略,利用形式化的信息进行机器思维和求解问题的过程,典型的功能是搜索与匹配。
决策是指智能信息经过推理后进行决策的过程,通常提供分类、排序、预测等功能。
(4)通用能力
对数据经过上面提到的数据处理后,进一步基于数据处理的结果可以形成一些通用的能力,比如可以是算法或者一个通用***,例如,翻译,文本的分析,计算机视觉的处理,语音识别,图像的识别等等。
(5)智能产品及行业应用
智能产品及行业应用指人工智能***在各领域的产品和应用,是对人工智能整体解决方案的封装,将智能信息决策产品化、实现落地应用,其应用领域主要包括:智能制造、智能交通、智能家居、智能医疗、智能安防、自动驾驶,平安城市,智能终端等。
参见附图2,本申请实施例提供了一种***架构200。数据采集设备260用于采集训练数据并存入数据库230,训练设备220基于数据库230中维护的训练数据生成目标模型/规则201。下面将更详细地描述训练设备220如何基于训练数据得到目标模型/规则201,目标模型/规则201能够用于图像识别、视频分类、语音识别和语言翻译等应用场景。
该目标模型/规则201可以是基于深度神经网络得到的,下面对深度神经网络进行介绍。
深度神经网络中的每一层的工作可以用数学表达式来描述:从物理层面深度神经网络中的每一层的工作可以理解为通过五种对输入空间(输入向量的集合)的操作,完成输入空间到输出空间的变换(即矩阵的行空间到列空间),这五种操作包括:1、升维/降维;2、放大/缩小;3、旋转;4、平移;5、“弯曲”。其中1、2、3的操作由/>完成,4的操作由+b完成,5的操作则由a()来实现。这里之所以用“空间”二字来表述是因为被分类的对象并不是单个事物,而是一类事物,空间是指这类事物所有个体的集合。其中,W是权重向量,该向量中的每一个值表示该层神经网络中的一个神经元的权重值。该向量W决定着上文所述的输入空间到输出空间的空间变换,即每一层的权重W控制着如何变换空间。训练深度神经网络的目的,也就是最终得到训练好的神经网络的所有层的权重矩阵(由很多层的向量W形成的权重矩阵)。因此,神经网络的训练过程本质上就是学习控制空间变换的方式,更具体的就是学习权重矩阵。
因为希望深度神经网络的输出尽可能的接近真正想要预测的值,所以可以通过比较当前网络的预测值和真正想要的目标值,再根据两者之间的差异情况来更新每一层神经网络的权重向量(当然,在第一次更新之前通常会有初始化的过程,即为深度神经网络中的各层预先配置参数),比如,如果网络的预测值高了,就调整权重向量让它预测低一些,不断的调整,直到神经网络能够预测出真正想要的目标值。因此,就需要预先定义“如何比较预测值和目标值之间的差异”,这便是损失函数(loss function)或目标函数(objectivefunction),它们是用于衡量预测值和目标值的差异的重要方程。其中,以损失函数举例,损失函数的输出值(loss)越高表示差异越大,那么深度神经网络的训练就变成了尽可能缩小这个loss的过程。
训练设备220得到的目标模型/规则可以应用不同的***或设备中。在附图2中,执行设备210配置有I/O接口212,与外部设备进行数据交互,“用户”可以通过客户设备240向I/O接口212输入数据。
执行设备210可以调用数据存储***250中的数据、代码等,也可以将数据、指令等存入数据存储***250中。
计算模块211使用目标模型/规则201对输入的数据进行处理,以文本类型的语言翻译为例,计算模块211可以对第一语言的文本中的语句进行解析,得到每条语句中的主语、谓语和宾语等词语。
关联功能模块213可以对计算模块211中第一条语句中主语、谓语和宾语等词语翻译成第二语言,再结合第二语言的语法逻辑组织该条语句。
关联功能模块214可以对计算模块211中第二条语句中主语、谓语和宾语等词语翻译成第二语言,再结合第二语言的语法逻辑组织该条语句。
最后,I/O接口212将处理结果返回给客户设备240,提供给用户。
更深层地,训练设备220可以针对不同的目标,基于不同的数据生成相应的目标模型/规则201,以给用户提供更佳的结果。
在附图2中所示情况下,用户可以手动指定输入执行设备210中的数据,例如,在I/O接口212提供的界面中操作。另一种情况下,客户设备240可以自动地向I/O接口212输入数据并获得结果,如果客户设备240自动输入数据需要获得用户的授权,用户可以在客户设备240中设置相应权限。用户可以在客户设备240查看执行设备210输出的结果,具体的呈现形式可以是显示、声音、动作等具体方式。客户设备240也可以作为数据采集端将采集到训练数据存入数据库230。
值得注意的,附图2仅是本申请实施例提供的一种***架构的示意图,图中所示设备、器件、模块等之间的位置关系不构成任何限制,例如,在附图2中,数据存储***250相对执行设备210是外部存储器,在其它情况下,也可以将数据存储***250置于执行设备210中。
图3是本申请实施例提供的一种芯片硬件结构图。
神经网络处理器NPU 50 NPU作为协处理器挂载到主CPU(Host CPU)上,由HostCPU分配任务。NPU的核心部分为运算电路50,通过控制器504控制运算电路503提取存储器中的矩阵数据并进行乘法运算。
在一些实现中,运算电路503内部包括多个处理单元(Process Engine,PE)。在一些实现中,运算电路503是二维脉动阵列。运算电路503还可以是一维脉动阵列或者能够执行例如乘法和加法这样的数学运算的其它电子线路。在一些实现中,运算电路503是通用的矩阵处理器。
举例来说,假设有输入矩阵A,权重矩阵B,输出矩阵C。运算电路从权重存储器502中取矩阵B相应的数据,并缓存在运算电路中每一个PE上。运算电路从输入存储器501中取矩阵A数据与矩阵B进行矩阵运算,得到的矩阵的部分结果或最终结果,保存在累加器508accumulator中。
统一存储器506用于存放输入数据以及输出数据。权重数据直接通过存储单元访问控制器505 Direct Memory Access Controller,DMAC被搬运到权重存储器502中。输入数据也通过DMAC被搬运到统一存储器506中。
BIU为Bus Interface Unit即,总线接口单元510,用于AXI总线与DMAC和取指存储器509 Instruction Fetch Buffer的交互。
总线接口单元510(Bus Interface Unit,简称BIU),用于取指存储器509从外部存储器获取指令,还用于存储单元访问控制器505从外部存储器获取输入矩阵A或者权重矩阵B的原数据。
DMAC主要用于将外部存储器DDR中的输入数据搬运到统一存储器506或将权重数据搬运到权重存储器502中或将输入数据数据搬运到输入存储器501中。
向量计算单元507多个运算处理单元,在需要的情况下,对运算电路的输出做进一步处理,如向量乘,向量加,指数运算,对数运算,大小比较等等。主要用于神经网络中非卷积/FC层网络计算,如Pooling(池化),Batch Normalization(批归一化),Local ResponseNormalization(局部响应归一化)等。
在一些实现种,向量计算单元能507将经处理的输出的向量存储到统一缓存器506。例如,向量计算单元507可以将非线性函数应用到运算电路503的输出,例如累加值的向量,用以生成激活值。在一些实现中,向量计算单元507生成归一化的值、合并值,或二者均有。在一些实现中,处理过的输出的向量能够用作到运算电路503的激活输入,例如用于在神经网络中的后续层中的使用。
控制器504连接的取指存储器(instruction fetch buffer)509,用于存储控制器504使用的指令;
统一存储器506,输入存储器501,权重存储器502以及取指存储器509均为On-Chip存储器。外部存储器私有于该NPU硬件架构。
上述图1至图3描述了人工智能的相关内容,本申请实施例提供了一种数据处理的方法,以及深度学习***。本申请实施例所提供的XX的方法可以是基于例如图2中的训练设备220实现的,该训练设备220可以相当于本申请的计算节点。需要说明的是本申请实施例所提供的计算节点的表现形式可能与上述图2中的训练设备220不同,但本申请实施例所训练的模型可以应用于图1所描述的各种场景中。
深度学习作业是用户研发的关于深度学习的计算业务的实例。深度学习的应用场景主要涉及的计算业务包括训练、推理、调测以及可视化等等,本申请中主要涉及训练作业。深度学习训练作业包括实验型作业和生产型作业等,实验型作业中用户希望通过1至2周期(epoch)的训练来验证设置的超参数是否合适,生产型作业即用户需要对作业模型进行多轮训练,直到作业模型收敛。可以理解,上述的作业类型的举例仅仅是用于说明,不应构成具体限定。
训练深度神经网络最常用的是分布式训练方法,即将深度神经网络模型拷贝到多个计算节点上,每个计算节点独立训练不同的数据,各计算节点训练梯度后进行梯度聚合,并进行模型的参数和结构更新。
深度学习作业的运行常常需要调用深度学习库。深度学习库是指面向深度学习程序的开发而设计的计算机函数库,是包含了深度学习程序中常用的数据结构、算法、模型、子程序、常量等元素的计算机程序文件或文件的集合,例如TensorFlow、MXNet等等,具体此处不做限定。
由于训练作业可以是单机或分布式的,分布式的实现方式可以有多种,因此,本申请实施例提供的集群资源调度***可以在服务器中实现,也可以在云计算基础设施上实现,此处不做具体限定。下面将介绍如何在云计算基础设施上实现该集群资源调度***。
云计算基础设施具体可以是云服务集群100。如图4所示,所述云服务集群100是由节点,以及节点之间的通信网络构成。
节点按功能可分为两类:管理节点110和计算节点120。
管理节点110用于运行云服务提供方的服务程序130。云服务集群中管理节点的数量可以为一个或多个,具体此处不做限定,图4中以管理节点1至m为例进行介绍。
计算节点120用于运行用户的应用程序121。云服务集群中计算节点的数量可以为一个或多个,具体此处不做限定,图4中以计算节点1至n为例进行介绍。
节点可以是独立的计算机设备,或者虚拟机VM,一个计算机设备上的不同处理器,或者多个计算机设备上的不同处理器,具体此处不做限定。
每个节点都是一个独立的计算机设备的情况。每个计算机设备可以是相同的,也可以是不同的,但每个计算机设备的硬件结构基本是一致的。计算机设备包括的CPU可以是例如X86 CPU或ARM CPU。其他处理器可以是用于执行神经网络的加速器芯片,例如GPU、张量处理器(tensor processing unit,TPU)等。用于进行网络数据传输的网络接口控制器(network interface controller,NIC),也成网卡,该NIC例如可以为以太(Eth)网卡,远程直接内存访问(remote direct memory access,RDMA)网卡等。用于在运行时存储参数、梯度等信息的内存Memory,例如高带宽存储器(high bandwidth memory,HBM),双倍速率内存(Double Data Rate,DDR)等。用于持久存储网络模型和模型参数的后端存储***Storage,例如Flash、固态硬盘(solid state drives,SSD)等。
每个节点都是一个虚拟机(VM)的情况下,虚拟机可以运行于上一个计算机设备上,也可以位于多个计算机设备上。该虚拟机还可以是不依赖于独立的计算机设备,而是从资源池中划分出来的计算和传输资源。每个VM的功能在模型训练的梯聚合过程中所执行的功能与计算节点的功能相同。
每个节点是不同处理器的情况下,以每个计算节点是GPU为例,在该场景下的模型训练***包括多个GPU,这些GPU可以部署在一个计算机设备或多个计算机设备上,每个GPU在模型训练中所执行的功能与计算节点在训练作业中所执行的功能相同。无论服务程序111还是应用程序121,其在节点上的形态都是进程。这些进程可以直接运行于操作***之上,也可以使用容器进行封装。其中,容器是一种虚拟化技术,该技术使得进程运行于相对独立和隔离的环境(包含独立的文件***、命名空间、资源视图等),从而能够简化软件的部署流程,增强软件的可移植性和安全性,并提高***资源利用率。接口界面的形态可以是多样的,例如web界面、命令行工具、REST接口等。
云服务集群100还提供了两种对外的接口界面,分别是面向云服务提供方的管理界面140以及面向用户的用户界面150。
云服务集群100还包括存储***200,可选地,存储***200可以设置在云服务集群之外,也可以集成在云服务集群之内,此处不作具体限定。
应当理解,云服务集群100仅为本申请实施例提供的一个例子,并且,云服务集群100可具有比示出的部件更多或更少的部件,可以组合两个或更多个部件,或者可具有部件的不同配置实现。
基于图4提供的云服务集群架构,下面对本申请实施例提供的数据处理方法进行介绍。
为便于理解,先介绍本申请实施例的方案涉及的技术用语:
并行度:运行一个作业的计算节点的数量即为这个作业的并行度。
计算节点的使用状态包括工作状态或者空闲状态。
计算节点利用率:计算节点运行作业时的存储占用率,例如,计算节点的储存重量为16G,计算时占用8G,计算节点利用率即为50%。
作业的吞吐量:运行一个作业的计算节点的集合在单位时间内处理的数据量。吞吐量越大,训练的越快,训练时长越短。
作业的评价模型(performance model):用于表征作业在不同并行度下的资源利用情况;示例性的,作业的评价模型可以包括,作业的并行度与运行该作业的计算节点的存储资源利用率之间的对应关系,和/或,作业的并行度与运行该作业的所有计算节点的吞吐量之间的对应关系。
对于一个作业而言,作业的吞吐量、计算节点利用率与并行度的关系为,在一定范围内,并行度增加,单个计算节点利用率降低,作业的吞吐量增大,训练时间变短。
作业的资源消耗量:作业运行时长与作业的并行度的乘积(work*sec),例如,一个作业使用一个GPU运行一分钟,那它的资源消耗量就是1GPU*60s,再过一分钟,这个作业的运行时间就变成了1GPU*120s。
并行度收益:单位并行度增加对应的作业吞吐量的提升率,计算公式为,
并行度收益=[t(p+1)-t(p)]/t(p)
其中,t(p)代表并行度为p时作业的吞吐量,t(p+1)代表并行度为p+1时,作业的作业的吞吐量。
作业的完成时长:从作业提交至深度学习***开始,至该作业完成训练为止消耗的时长。
集群作业完成时长:在一个时间段内,对于用户提交的多个作业,从第一个作业提交至深度学习***的时刻至最后一个作业训练结束的时刻所消耗的时长。
集群的运行效率:在单位时间内,集群中所有计算节点的数据处理量之和。
计算节点的标识:集群中的多个计算节点可能部署在不同的物理设备上,根据计算节点的标识可以区分计算节点所属物理设备。
拓扑结构:分布式训练架构中运行一个作业的多个计算节点的连接关系。在本申请实施例中通常指Ring AllReduce拓扑结构(本方案是否还可以适用其他分布式架构中),Ring AllReduce属于一种分布式训练架构,在Ring AllReduce架构中各个计算节点都是worker,没有中心节点来聚合所有worker计算的梯度。Ring AllReduce算法将计算节点放置在一个逻辑环路(logical ring)中。每个计算节点从上行的计算节点接收数据,并向下行的计算节点发送数据,因此可以充分利用每个计算节点的上下行带宽。Ring AllReduce拓扑结构代表在Ring AllReduce架构中各个计算节点在逻辑环路中的位置关系。
模型:本申请实施例中指深度学习模型,包括结构和参数两部分,用户提交训练作业中携带初始模型文件,对初始模型进行训练,一次梯度更新后,模型中的参数更新,结构也可能发生变化,由此得到中间状态的模型,经过多次梯度更新后完成训练得到训练完成状态的模型。
批尺寸(batchsize):运行一个作业的数据集完整的训练一次的过程称为一个周期(epoch),数据集可以分成几个批(batch),迭代是batch需要完成一个epoch的次数,每个batch的数据量为batchsize,分布式训练中,由多个计算节点共同完成第一迭代,每个计算节点分得的数据量为mini-batchsize。
深度学习集群通常为多个用户提供服务,用户向集群提交深度学习的训练作业,并指定作业的并行度用于申请计算资源,计算节点的数量,管理节点根据用户申请的资源为作业分配资源。
由于深度学习模型参数较多,结构复杂,不同训练作业运行时计算节点的存储资源利用率不同。用户根据经验申请的计算资源可能不合理,例如申请资源偏多,计算节点利用率较低,集群运行效率较低。
本申请实施例提供的数据处理方法,用于集群***中对深度学习作业的资源调度,可以根据集群当前运行情况调整作业的并行度,提高集群运行效率。
请参阅图5,为本申请实施例中一种数据处理方法的一个实施例示意图。
用户提交至深度学习***的作业,在分配计算节点后开始训练,当一段时间内用户提交的作业数量过多,深度学习***中计算资源紧张时,例如空闲状态的计算节点数量为零或者少于作业的最小并行度,作业将进入等待队列,当计算资源充足时再启动训练。因此,用户提交至深度学习***的作业可分为两种状态:待运行状态和运行中状态,本申请实施例中,将待运行状态的作业称为待运行作业,将运行中状态的作业称为运行中作业。可以理解的是,待运行状态的作业经过一段时间的等待可以进入运行中状态,待运行作业数量减少;随着用户提交作业至深度学习***,待运行作业数量增加,因此,深度学习***中待运行作业的数量处于动态变化过程中,待运行作业的数量可以反映深度学习***中资源的紧张程度。
此外,根据是否运行作业,计算节点可以分为工作状态的计算节点和空闲状态的计算节点,随着用户提交作业至深度学习***,计算节点投入运行,空闲状态的计算节点数量逐渐减少,由此,空闲状态的计算节点数量可以放映深度学习***的计算资源的紧张程度。
501、获取集群资源状态;
获取集群资源状态的方式有多种,例如通过待运行的作业数量或空闲状态的计算节点数量进行判断,或者综合待运行的作业数量或空闲状态的计算节点数量进行判断,具体此处不做限定。
可选的,通过待运行的作业数量判断集群资源紧张程度:
管理节点获取深度学习集群中待运行作业的数量,并判断待运行作业的数量是否大于或等于预设阈值。
若待运行的作业数量大于或等于预设阈值,则判断集群资源紧张,可以根据集群规模、作业量规模确定,或者根据经验设定,为大于或等于0的正整数,例如可以设置为0、5或10等,具体此处不做限定。
若待运行的作业数量小于预设阈值,则判断集群资源空闲。
可选的,还可以通过空闲状态的计算节点数量来判断判断集群资源紧张程度:
若空闲状态的计算节点数量大于或等于预设阈值,则判断集群资源空闲;
若空闲状态的计算节点数量小于预设阈值,则判断集群资源紧张。
针对不同的集群资源紧张程度,可以采取不同的策略。下面分别对集群资源紧张或空闲时的并行度调整策略进行介绍:
502、若集群资源紧张,管理节点从运行中作业的集合中确定第一作业并降低其并行度;
当集群资源紧张时,集群中的计算节点几乎都投入运行,待运行作业数量较多,因此,采取降低运行中作业的并行度的方法进行资源调整。这样,释放的计算节点可以用于运行待运行作业,减少待运行作业的等待时长,此外,该运行中作业的计算节点的存储资源利用率提升,最终,可以提升集群的运行效率,降低集群作业完成时长。
管理节点从运行中作业当中确定第一作业,并且从待运行作业中确定第二作业,将第一作业的并行度降低,释放部分计算节点,并将该计算节点分配给第二作业,确定第二作业的初始并行度,具体实现方式有多种,具体此处不做限定。
需要说明的是,管理节点可以从运行中作业当中确定一个作业,或者多个作业,并降低其并行度,此处,对于确定的第一作业的数量不做限定。
管理节点分别从运行中作业当中确定第一作业的方式有多种,例如:随机选择;或者,根据运行时长选择,或者根据作业的并行度选择,具体此处不做限定。
可选的,管理节点可以根据作业可用的并行度范围确定第一作业,具体实现过程请参阅图6对应的实施例。
可选的,管理节点确定为第一作业新增计算节点之后,将控制新增的计算节点加入作业训练。至于新增的计算节点如何加入原计算节点集合继续训练,具体请参阅图7对应的实施例。
503、集群资源空闲时,管理节点从运行中作业的集合中确定第三作业并增加其并行度;
当集群资源空闲时,集群中可能存在空闲状态的计算节点,因此,采取增加运行中作业的并行度的方法进行资源调整。增加并行度可以提高作业的吞吐量,减少作业的运行时长,可以提升集群的运行效率,降低集群作业完成时长。
管理节点从运行中作业当中确定第三作业,增加第三作业的并行度,以提高作业的吞吐量,减少作业的运行时长。
管理节点确定第三作业的方式有多种,例如:随机选择;或者,根据运行时长选择,或者根据作业的并行度选择,具体此处不做限定。
可选的,管理节点可以根据作业可用的并行度范围确定第三作业,具体实现过程请参阅图6对应的实施例。
可选的,管理节点确定为第三作业删减计算节点之后,将控制删减计算节点停止作业训练。至于如何在不停止作业运行的情况下删减计算节点,具体请参阅图8对应的实施例。
本申请实施例提供的数据处理方法针对不同的集群资源状态,通过调整作业的并行度,以降低集群作业完成时长,可以有效提升集群的运行效率。
请参阅图6,为本申请实施例中一种数据处理方法的另一个实施例示意图。
601、获取作业的评价模型(performance model);
管理节点获取用户通过客户端向集群***提交深度学习训练作业,下面简称第一作业,包括作业名称和模型文件等信息。
管理节点的并行度评价模块获取在预设的辅助集群中预运行该第一作业,根据预设的并行度搜索策略调整并行度数值,获取该第一作业的评价模型。
预设的辅助集群为从集群***的计算节点的集合中保留的部分计算节点,用于预运行深度学习训练作业,以获取作业的评价模型,可以理解的是,辅助集群的计算节点可以提供常用的并行度大小测试,且规模较小,不会对集群***的运行造成较大影响。辅助集群具体包括的计算节点的数量存储此处不做限定,例如可以是XXX。
作业的评价模型,用于表征作业在不同并行度下的资源利用情况;示例性的,作业的评价模型可以包括,作业的并行度与运行该作业的计算节点的存储资源利用率之间的对应关系,和/或,作业的并行度与运行该作业的所有计算节点的吞吐量之间的对应关系。
即该作业运行的并行度与训练时长和计算节点的存储资源利用率的对应关系。根据作业的评价模型通常可以确定该作业的最小并行度和最大并行度,得到作业的可用并行度范围,最小并行度为运行作业所需的计算节点的最小数量,由于作业的训练模型的复杂程度和训练数据量不同,作业的最小并行度不同。随着并行度的增加,单个计算节点的存储资源利用率下降,作业训练时长降低,集群的吞吐量上升。当并行度继续增加,各个计算节点之间的通信成本增加带来的损失处理速率提升的效益,由此,可以确定该作业的最大并行度。
可选的,预设的并行度搜索策略有多种,例如:
a)网格搜索:以步长k行搜索,搜索范围是max(1,p/2)到2p,其中,k为大于或等于1的正整数,p为预设的并行度,取值为大于或等于1的正整数。
b)2的幂次搜索:搜索范围是1到2^u,其中,u为预设参数,u满足2^u>p,取值不做限定。
需要说明的是,p的具体取值不做限定,可以由用户根据经验设定或者根据历史数据确定。
需要说明的是,预运行获评价模型时,为了加速获取模型,可以设定作业在每个并行度下搜索迭代次数或设定训练时长,而不需完整地执行训练作业直至模型收敛。示例性的,训练一个迭代,或者训练两个迭代;或者,设置训练时长为XX,可以理解的是,设置的训练时长通常可以保证完成至少一个迭代训练。
602、管理节点获取集群资源状态;
步骤602与图5对应的实施例中步骤501类似,此处不再赘述。
603、集群资源紧张时,管理节点根据评价模型从运行中作业的集合中确定第一作业并降低其并行度;
下面以综合考虑作业的运行时长和作业的并行度选择作业的一种实现方式为例进行介绍:
为便于理解,下面先介绍运行中作业的一种分组方法,运行中作业可以根据作业的资源消耗量进行分组,作业的资源消耗量为作业运行时长与作业的并行度的乘积(work*sec)。运行中作业根据作业的资源消耗量有小到大被分为多组,组别分别为G0,G1,…Gn,分别代表第0组、第1组到第n组,划分组别的资源消耗量阈值以及组别数量n均为预设值,可以根据经验设定,具体数值此处不做限定。可以理解的是,作业刚提交时分组为G0,随着运行时间的增加,作业将会从一个分组被转移至下一个分组。
可选的,从作业的资源消耗量最大的Gn组开始扫描,获取Gn组中每个作业在同样的并行度降低比例下可释放的计算单元。
可释放计算单元数量Mi=Pi-max{Pimin,λPi}
其中,Pi为作业i当前的并行度;λ为删减系数,可以预设,取值范围为(0,1),具体数值不做限定,示例性的,λ为0.8;Pimin为作业i的最小并行度。
可选地,选取可释放计算单元数量最大的作业作为第一作业。
从待运行作业中确定进行训练的第二作业的方式有多种,例如:随机选择;或者,根据运行时长选择,或者根据作业的并行度选择,具体此处不做限定。
可选的,根据待运行作业的最小并行度确定第二作业,确定待运行作业的最小并行度数值最小的作业为第二作业,若存在多个作业的最小并行的数值,可以随机确定或者确定训练时长最短的作业为第二作业,示例性的,6个待运行作业J1至J6的最小并行度分别为:2、2、4、4、5和6,可以确定J1和J2的最小并行度值最小,若J1的训练时长小于J2的训练时长,则可以确定J1为第二作业。
管理节点需要确定第一作业并行度的删减量,以及为第二作业设定初始运行的并行度。
需要说明的是,管理节点降低第一作业的并行度,以及设定第二作业的并行度,均满足设定的并行度位于作业的可用并行度范围的条件,下面不再一一赘述。
可选的,确定第二作业的初始并行度为第二作业的最小并行度;第一作业释放的计算单元数量为该第二作业的最小并行度,即第一作业释放的计算单元用于运行该第二作业,第一作业更新的并行度为第一作业的原并行度与该第二作业的最小并行度之差。
可选的,确定第二作业的初始并行度为第二作业的最小并行度;第一作业释放的计算单元数量为第二作业的最小并行度减当前空闲状态的计算节点数量,第一作业更新的并行度为为原并行度与该第二作业的最小并行度之差加当前空闲状态的计算节点数量,示例性的,空闲状态的计算节点数量为1,第二作业的最小并行度为2,第一作业的原并行度为6,第一作业释放的计算节点数量为2-1=1管理节点设定第一作业更新的并行度为5,第二作业初始运行的并行度为2。
可选的,管理单元根据计算节点利用率的提升量,以及第一作业和第二作业的可用并行度范围,确定第一作业的并行度和第二作业的并行度,使得并行度调整后,集群的运行效率最高。
确定第一目标作业的并行度后,为第一目标作业重新分配新的计算节点集合的方式有多种:
可选的,从原计算节点集合中删减部分计算节点,以获取新的计算节点集合。从原计算节点集合中删减部分计算节点时,可以根据计算节点的物理位置进行删减,使得包含保留计算节点的物理设备尽可能少,由此,可以减少新计算节点集合的通信成本。
示例性的,为作业分配计算节点,使得集群的运行效率最高,分配方式请参考下述公式:
allocJ=argmax{alloc}{minM(G){eff(A′)-eff(A)}}
其中,J代表按照提交时间排序的作业队列中的作业;allocJ代表作业J的GPU分配;gij代表物理设备i中的GPUj,alloc(gij)代表将gij分配给作业J;G代表alloc(gij)映射里的像;M(G)代表按照G分配GPU时的物理设备数量;eff(alloc)按照alloc(gij)分配GPU时的集群GPU的利用率,与作业J的分析模型有关;A代表集群中所有GPU的原分配情况;A′代表更新后的集群中所有GPU的分配情况。
604、集群资源空闲时,管理节点根据评价模型从运行中作业的集合中确定第一作业并增加其并行度;
可选的,排除新加入运行的G0组,管理节点从作业的资源消耗量最小的G1组开始扫描,确定并行度收益最大的作业为第三作业。
并行度收益为单位并行度增加对应的作业吞吐量的提升率,计算公式为,
并行度收益=[t(p+1)-t(p)]/t(p)
其中,t(p)代表并行度为p时作业的吞吐量,t(p+1)代表并行度为p+1时,作业的作业的吞吐量。作业的完成时长:从作业提交至深度学习***开始,至该作业完成训练为止消耗的时长。
可选的,新增计算节点时,可以根据计算节点的物理位置确定新增的具体计算节点,使得运行该第三作业计算节点的分布的物理设备尽可能少,即尽量选取同一物理设备上的计算节点,由此,可以减少第三作业计算节点集合的通信成本。
可选的,集群资源空闲时,管理节点为待运行作业分配并行度的方式有多种,此处不做限定。
可选的,根据分析模型确定作业的吞吐量最大的并行度作为初始并行度。
首先介绍运行作业的计算节点集群:
1.作业开始的时候,一个作业的所有计算节点(worker)都向ETCD或者ZooKeeper等分布式存储***发申请,申请成为主计算节点(leader),其中只有一个worker成为leader,其余的worker可以获取到leader的主机名称和端口号,这样leader后面就可以控制其他worker了。
2.如果减少节点的时候leader被减少掉,或者时候由于其他原因导致leader失效了,那么就需要重复1的步骤,确保作业有leader存在。
3.在作业训练的过程中,leader要以一个固定的频率向其他worker刷新自己的地址信息,其他worker定期没有接收到leader刷新的信息,那么其余worker就知道leader失去了,它们就会用1的步骤,申请成为leader。
用户提交作业至深度学习集群,根据作业并行度,由多个计算节点共同运行该作业。训练作业所需的训练数据通常以“文件块”形式存储在存储设备,例如硬盘中,在文件块内记录训练文件的参数或编号等信息。训练时通过数据预读取的方式,由管理节点将存储设备中的训练数据读取至内存资源池中,管理节点根据作业的并行度为每个计算节点分配训练数据,计算节点每次从资源池获取一次迭代所需的数据至计算节点进行训练。
为便于理解一个作业的计算节点增加或删减时,训练数据的分配方式,下面介绍本申请实施例提供的数据分片的方法。
本申请实施例中,将作业的训练数据切分为k个部分,每个部分为一份元数据,所有元数据随机排列。其中,k>=“文件块”个数,元数据中包括该元数据中的“文件块”文件名,在文件内部起始文件位置及此元数据长度。
需要说明的是,k的取值应尽量大,以使得训练数据可以均匀分配给多个计算节点。
普通节点根据mini-batchsize(小批尺寸)向领导节点发送读取分片数据的请求,领导节点向普通计算节点发送元数据的信息,数据的起始位置和数据长度。包括读取路径从分片队列里取出一个分片的元数据返回给普通节点。
请参阅图7,为本申请实施例中深度学习***实现并行度提升方法的一个实施例示意图,当提升目标作业的并行度时,管理节点确定为目标作业新增的计算节点,本实施例介绍了如何在不停止作业运行的情况下,控制新增的计算节点加入原计算节点集合继续训练的实现过程。
701、管理节点向新增计算节点发送指令。
管理节点向新增计算节点发送指令,用于指示新增计算节点加入运行目标作业。新增计算节点可以包括一个节点或者多个节点,具体此处不做限定,本申请实施例中以新增两个计算节点为例进行介绍。
管理节点向计算节点3和计算节点4发送指令,可选的,指令中携带目标作业的标识,例如作业ID,尽管图7中未示出,计算节点可以根据该目标作业的标识向ETCD或者ZooKeeper等分布式存储***获取目标作业的领导节点信息。可选的,管理节点向新增节点发送的指令中携带了目标作业的领导节点的信息。
702、新增计算节点向领导节点发送注册信息;
新增的计算节点3和计算节点4,分别向leader发送注册信息,申请加入运行目标作业。
703、新增计算节点热身;
新增的计算节点3和计算节点4热身,准备加入运行目标作业,具体准备工作包括:动态库(代码)的加载,硬件、存储以及数据的准备,其中,数据的准备包括从资源池加载数据到计算节点的缓冲区(buffer),加载数据量可以根据经验设定,与batchsize大小无关。
需要说明的是,步骤702与步骤703之间的执行顺不做限定。
704、领导节点根据原计算节点集合和新增计算节点集合建立新的拓扑结构,并发送给所有计算节点;
Leader根据步骤702接收的注册信息建立新的拓扑结构,并将新的拓扑结构信息发送给运行该目标作业的所有目标节点。
此外,leader还可以根据batchsize和更新的拓扑结构确定mini-batchsize的大小,向所有计算节点发送更新后的mini-batchsize以及资源池数据读取路径。
705、新增计算节点获取新的拓扑结构后,向领导节点返回确认信息;
新增的计算节点3和计算节点4获取新的拓扑结构后,将向领导节点返回确认信息。
706、领导节点向所有计算节点发送训练指令;
领导节点获取所有新增节点的确定信息后,向原计算节点集合和新增计算节点集合中所有的计算节点发送训练指令,训练指令携带时间戳,用于指示新增计算节点加入训练的时刻;在时间戳指示的时刻后以更新的拓扑结构运行。时间戳指示的时刻为预计的原计算节点集合完成一个迭代的时刻,可选的,时间戳指示的时刻为预计的原计算节点集合完成当前迭代的时刻。
707、领导节点向新增的计算节点发送模型信息;
到达时间戳指示的时刻后,原计算节点集合完成迭代,通过梯度聚合获取更新的训练模型,原计算节点集合中的一个计算节点向所有新增计算节点广播模型。即,向新增的计算节点发送模型的节点可以是leader,也可以是普通的计算节点,即计算节点2,此处,以领导节点向计算节点3和计算节点4广播模型为例进行说明。
708、所有计算节点根据新的拓扑结构继续训练;
计算节点1-4根据更新的模型继续运行训练。计算节点1-4根据mini-batchsize的大小从缓冲区获取下一迭代训练所需的训练数据。
请参阅图8,为本申请实施例中深度学习***实现并行度降低方法的一个实施例示意图;
当降低目标作业的并行度时,管理节点确定目标作业中需删减的计算节点,本实施例介绍了如何在不停止作业运行的情况下删减计算节点的实现过程。
801、管理节点向被删减节点发送删减策略;
被删减节点的数量可以是一个或多个,具体此处不做限定,本实施例中以删减两个计算节点为例进行介绍。被删减节点可以为普通计算节点,也可以为领导节点,本实施例中以删减领导节点(计算节点1),和一个普通计算节点(计算节点2)为例进行介绍。
管理节点向原leader发送删减策略,用于指示所有被删减的计算节点,可选的,删减策略携带计算节点1和计算节点2的信息。
802、原领导节点向被删减节点发送删减指令;
计算节点1向计算节点2发送删减指令,用于指示计算节点2停止训练,删减指令中携带时间戳,用于指示删减节点停止训练的时刻。时间戳指示的时刻为预计完成一个迭代的时刻,可选的,时间戳指示的时刻为预计完成当前迭代的时刻。
803、原领导节点向保留的节点发送更新信息;
原领导节点向原计算节点中未被删减的节点发送更新信息,本实施例中计算节点1分别向计算节点3和计算节点4发送更新信息,更新信息携带更新的拓扑结构和时间戳,时间戳用于指示根据更新的拓扑结构继续训练的时刻。时间戳指示的时刻为预计完成一个迭代的时刻,可选的,时间戳指示的时刻为预计完成当前迭代的时刻。可选的,leader还可以向所有计算节点发送更新后的mini-batchsize以及资源池数据读取路径。
需要说明的是,步骤802与步骤803之间的执行顺不做限定。
804、保留的节点集合确定新领导节点;
在作业训练的过程中,leader以预设的频率向集群中的其他计算节点刷新自己的地址信息,若计算节点超过预设的时长阈值未接收到leader的地址信息,计算节点将通过zookeeper或ETCD等分布式管理***重新确定新的leader。本申请实施例中以计算节点3被确定为新leader为例进行介绍。
805、原领导节点向新领导节点发送信息;
计算节点1向计算节点3发送信息,该信息包括控制worker读取数据的程序(代码),数据的路径以及总batchsize等信息,以使得计算节点3可以作为领导节点完成后续训练工作。
806、保留的计算节点根据新的拓扑结构继续训练;
到达时间戳指示的时刻后,计算节点3和计算节点4根据更新的模型继续运行训练。并根据mini-batchsize的大小从缓冲区获取下一迭代训练所需的训练数据。
图7和图8对应的实施例分别介绍了作业的并行度提高或降低的实现过程,可选的,为了防止在训练过程中某个计算节点意外退出导致训练发生错误,leader还可以根据固定频率或者固定的epoch数向存储***写checkpoit(检查点),checkpoit包括模型结构和模型参数,即将模型保存至存储***,当worker意外,那leader就控制worker重新建立拓扑结构,读取checkpoint开始训练。如果leader意外,那么worker就先确定leader,然后leader控制worker读取checkpoint继续训练。
请参阅图9,为本申请实施例中管理节点的一个实施例示意图;
一种可能的实施方式中,管理节点900包括:
一种管理节点900,应用于包括计算节点的数据处理***,所述数据处理***中运行第一作业,运行所述第一作业的计算节点集合包括至少一个计算节点,所述至少一个计算节点中包括主计算节点,包括:
确定单元901,用于根据所述数据处理***中的空闲计算节点数量和/或等待状态的作业数量确定集群资源状态为紧张状态,所述等待状态的作业数量大于或等于第一阈值和/或所述空闲计算节点数量小于第二阈值;
所述确定单元901还用于,根据所述集群资源状态确定降低所述第一作业的并行度的删减策略,所述删减策略用于指示从所述计算节点集合删减目标计算节点;
发送单元902,用于根据所述删减策略向所述主计算节点发送删减指令,以使得所述目标计算节点停止运行所述第一作业。
所述管理节点900还包括:
获取单元903,用于获取所述第一作业的评价模型,所述评价模型用于表示所述第一作业的并行度与运行所述第一作业的计算节点的存储资源利用率的对应关系,以及,所述第一作业的并行度与所述第一作业的吞吐量的对应关系;
所述确定单元901还用于,根据所述评价模型确定所述第一作业的可用并行度范围,所述可用并行度范围的最小值根据所述计算节点的存储资源利用率确定,所述可用并行度范围的最大值根据所述第一作业的吞吐量的峰值确定,所述第一作业降低并行度后的新第一并行度属于所述可用并行度范围。
所述确定单元901具体用于:
根据所述评价模型,确定降低所述第一作业的并行度并删减所述目标计算节点,并从所述第一作业的可用并行度范围中确定所述第一作业降低并行度后的新第一并行度。
另一种可能的实施方式中,管理节点900包括:
一种管理节点900,应用于包括所述管理节点900、空闲状态的目标计算节点的数据处理***,所述数据处理***中运行第二作业,所述管理节点900包括:确定单元901,用于根据所述数据处理***中的空闲计算节点数量和/或等待状态的作业数量确定集群资源状态为空闲状态,所述等待状态的作业数量小于第一阈值和/或所述空闲计算节点数量大于或等于第二阈值;
所述确定单元901,还用于所述管理节点900根据所述集群资源状态确定提高所述第二作业的并行度的新增节点策略;
发送单元902,用于根据所述新增节点策略向所述目标计算节点发送指令,以指示所述目标计算节点根据所述指令运行所述第二作业。
所述管理节点900还包括:
获取单元903,用于获取所述第二作业的评价模型,所述评价模型包括所述第二作业的并行度与运行所述第二作业的计算节点的存储资源利用率的对应关系,以及,所述第二作业的并行度与所述第二作业的吞吐量的对应关系;
所述确定单元901还用于,根据所述评价模型确定所述第二作业的可用并行度范围,所述可用并行度范围的最小值根据所述计算节点的存储资源利用率确定,所述可用并行度范围的最大值根据所述第二作业的吞吐量的峰值确定,所述第二作业提高并行度后的新第二并行度属于所述可用并行度范围。
请参阅图10,为本申请实施例中计算节点的一个实施例示意图;
一种可能的实施方式中,计算节点1000应用于包括管理节点和计算节点的数据处理***,所述数据处理***中运行第一作业,运行所述第一作业的计算节点集合包括至少两个计算节点,所述至少两个计算节点中包括所述主计算节点和目标计算节点,所述主计算节点包括:
接收单元1001,用于接收所述管理节点发送的删减策略,所述删减策略用于指示目标计算节点停止运行所述第一作业;
发送单元1002,用于根据所述删减策略向所述目标计算节点发送删减指令,以指示所述目标计算节点停止运行所述第一作业;
更新单元1003,用于根据所述删减策略将所述第一作业的原拓扑结构更新为新拓扑结构,并根据所述新拓扑结构继续运行所述第一作业,所述第一作业的原拓扑结构用于指示所述计算节点集合中所有计算节点的逻辑连接关系,所述第一作业的新拓扑结构用于指示更新后的所述计算节点集合中所有计算节点的逻辑连接关系。
所述删减指令携带时间戳,所述时间戳用于指示所述目标计算节点停止运行所述第一作业的时刻。
运行所述第一作业的计算节点集合包括未被删减的第一计算节点,所述发送单元1002还用于:
向所述第一计算节点发送所述新拓扑结构,以指示所述第一计算节点根据所述新拓扑结构继续训练所述第一作业。
另一种可能的实施方式中,计算节点1000应用于包括管理节点和计算节点的数据处理***,所述数据处理***中运行第一作业,运行所述第一作业的计算节点集合包括至少两个计算节点,所述至少两个计算节点中包括主计算节点和第一计算节点,所述主计算节点包括:
接收单元1001,用于接收所述管理节点发送的删减策略,所述删减策略用于指示所述主计算节点停止运行所述第一作业;
更新单元1003,用于根据所述删减策略将所述第一作业的原拓扑结构更新为新拓扑结构,并将所述新拓扑结构发送给所述第一计算节点,以指示所述第一计算节点根据所述更新的拓扑结构继续运行所述第一作业,所述第一作业的原拓扑结构用于指示所述计算节点集合中所有计算节点的逻辑连接关系,所述第一作业的新拓扑结构用于指示更新后的所述计算节点集合中所有计算节点的逻辑连接关系;所述主计算节点根据所述删减策略停止运行所述第一作业。
运行所述第一作业的计算节点集合包括第二计算节点,所述删减策略还用于指示所述第二计算节点停止运行所述第一作业,所述主计算节点还包括:
发送单元1002,用于根据所述删减策略向所述第二计算节点发送删减指令,以指示所述第二计算节点停止运行所述第一作业。
所述删减指令携带时间戳,所述时间戳用于指示所述第二计算节点停止运行所述第一作业的时刻。
所述主计算节点还包括:
发送单元1002,用于根据所述删减策略停止向所述第一计算节点发送地址信息,以指示第一计算节点所述主计算节点停止运行所述第一作业;
所述第一计算节点为新的主计算节点,所述发送单元1002还用于:
向所述第一计算节点发送所述第一作业的批尺寸和运行所述第一作业所需数据的读取路径。
另一种可能的实施方式中,计算节点1000应用于包括管理节点和计算节点的数据处理***,所述数据处理***中运行第一作业,运行所述第一作业的计算节点集合包括至少两个计算节点,所述至少两个计算节点中包括主计算节点和第一计算节点,所述计算节点包括:
接收单元1001,用于接收所述主计算节点发送的删减指令,所述删减指令携带时间戳;
运行单元1004,用于根据所述删减指令,在所述时间戳指示的时刻之后,停止运行所述第一作业。
另一种可能的实施方式中,计算节点1000计算节点,应用于包括管理节点和计算节点的数据处理***,所述数据处理***中运行第一作业,运行所述第一作业的计算节点集合包括至少两个计算节点,所述至少两个计算节点中包括主计算节点和第一计算节点,所述计算节点包括:
接收单元1001,用于接收主计算节点发送的新拓扑结构,所述新拓扑结构为所述主计算节点根据所述管理节点发送的删减策略更新所述第一作业的原拓扑结构得到的新拓扑结构,所述第一作业的新拓扑结构用于指示更新后的所述计算节点集合中所有计算节点的逻辑连接关系;
运行单元1004,用于根据所述新拓扑结构继续运行所述第一作业。
所述计算节点还包括:
发送单元1002,基于超过预设的时间阈值未接收所述主计算节点发送的地址信息,向所述管理节点发送申请消息,用于申请成为新的主计算节点。
所述第一计算节点为新的主计算节点,所述接收单元1001还用于:
接收所述主计算节点发送的所述第一作业的批尺寸和运行所述第一作业所需数据的读取路径。
另一种可能的实施方式中,计算节点1000应用于包括管理节点和空闲状态的目标计算节点的数据处理***,所述数据处理***中运行第二作业,运行所述第二作业的计算节点集合包括至少一个计算节点,所述至少一个计算节点中包括主计算节点,所述主计算节点包括:
接收单元1001,用于接收目标计算节点发送的注册信息,所述注册信息用于申请运行所述第二作业;
更新单元1003,用于根据所述注册信息将所述第二作业的原拓扑结构更新为新拓扑结构,并根据所述新拓扑结构运行所述第二作业,所述第二作业的原拓扑结构用于指示所述计算节点集合中所有计算节点的逻辑连接关系,所述第二作业的新拓扑结构用于指示更新后的所述计算节点集合中所有计算节点的逻辑连接关系;
发送单元1002,用于将所述新拓扑结构发送给所述目标计算节点,以使得所述目标计算节点根据所述新拓扑结构运行所述第二作业。
所述计算节点集合还包括第一计算节点,所述发送单元1002还用于:
将所述新拓扑结构发送给所述第一计算节点,以使得所述第一计算节点根据所述新拓扑结构运行所述第二作业。
所述接收单元1001还用于:
接收所述目标计算节点的确认信息,用于指示所述目标计算节点收到所述新拓扑结构;
所述发送单元1002还用于,根据所述确认信息向所述目标计算节点发送训练指令,所述训练指令携带时间戳,用于指示所述目标计算节点在所述时间戳指示的时刻之后加入运行所述第二作业。
所述确定单元还用于:在所述时间戳指示的时刻后,所述主计算节点在所述时间戳指示的时刻之后确定所述第二作业更新的训练模型;
所述发送单元1002还用于将所述更新的训练模型发送给所述目标计算节点,以使得所述目标计算节点根据所述更新的训练模型运行所述第二作业。
另一种可能的实施方式中,计算节点1000应用于包括管理节点、空闲状态的计算节点的数据处理***,所述数据处理***中运行第二作业,所述计算节点包括:
接收单元1001,用于接收所述管理节点发送的指令,所述指令用于指示所述计算节点运行所述第二作业;
发送单元1002,用于根据所述指令向所述主计算节点发送注册信息,用于申请运行所述第二作业;
所述接收单元1001,还用于接收所述主计算节点根据所述注册信息发送的新拓扑结构,所述新拓扑结构为所述主计算节点根据所述管理节点发送的新增节点策略更新所述第二作业的原拓扑结构得到的新拓扑结构,所述第二作业的新拓扑结构用于指示更新后的所述计算节点集合中所有计算节点的逻辑连接关系;
运行单元1004,用于根据所述新拓扑结构运行所述第二作业。
所述发送单元1002,还用于接收所述更新的拓扑结构之后,向所述主计算节点返回确认信息;
所述接收单元1001,还用于接收所述主计算节点根据所述确定信息发送的训练指令,所述训练指令携带时间戳;
所述运行单元1004,还用于在所述时间戳指示的时刻之后,根据所述新拓扑结构运行所述第二作业。
所述接收单元1001,还用接收所述主计算节点发送的更新的训练模型,所述更新的训练模型为所述主计算节点在所述第二作业在所述时间戳指示的时刻之后确定的训练模型;
所述计算节点还包括:
更新单元1003,用于根据所述更新的训练模型运行所述第二作业。
另一种可能的实施方式中,计算节点1000应用于包括管理节点、空闲状态的目标计算节点的数据处理***,所述数据处理***中运行第二作业,运行所述第二作业的计算节点集合包括至少一个计算节点,所述至少一个计算节点中包括主计算节点和第一计算节点所述计算节点包括:
接收单元1001,用于接收所述主计算节点发送的新拓扑结构,所述新拓扑结构为所述主计算节点根据所述管理节点发送的新增节点策略更新所述第二作业的原拓扑结构得到的新拓扑结构,所述第二作业的新拓扑结构用于指示更新后的所述计算节点集合中所有计算节点的逻辑连接关系;
所述接收单元1001,还用于接收所述主计算节点发送的训练指令,所述训练指令携带时间戳;
运行单元1004,用于在所述时间戳指示的时刻之后,根据所述新拓扑结构运行。
请参阅图11,为本申请实施例中管理节点的另一个实施例示意图;
本实施例提供的管理节点,可以为处理器或服务器或者专用数据处理设备等,本申请实施例中对该具体设备形态不做限定。
该管理节点1100可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器1101和存储器1102,该存储器1102中存储有程序或数据。
其中,存储器1102可以是易失性存储或非易失性存储。可选地,处理器1101是一个或多个中央处理器(central processing unit,CPU),也可以是专用处理器,该CPU可以是单核CPU,也可以是多核CPU。处理器1101可以与存储器1102通信,在管理节点1100上执行存储器1102中的一系列指令。
该管理节点1100还包括一个或一个以上有线或无线网络接口1103,例如以太网接口。
可选地,尽管图11中未示出,管理节点1100还可以包括一个或一个以上电源;一个或一个以上输入输出接口,输入输出接口可以用于连接显示器、鼠标、键盘、触摸屏设备或传感设备等,输入输出接口为可选部件,可以存在也可以不存在,此处不做限定。
本实施例中管理节点1100中的处理器1101所执行的流程可以参考前述方法实施例中描述的方法流程,此处不加赘述。
请参阅图12,为本申请实施例中计算节点的另一个实施例示意图;
本实施例提供的计算节点,可以为处理器或服务器或者专用数据处理设备等,本申请实施例中对该具体设备形态不做限定。
该数据处理设备1200可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器1201和存储器1202,该存储器1202中存储有程序或数据。
其中,存储器1202可以是易失性存储或非易失性存储。可选地,处理器1201是一个或多个中央处理器(central processing unit,CPU),也可以是专用处理器,该CPU可以是单核CPU,也可以是多核CPU。处理器1201可以与存储器1202通信,在数据处理设备1200上执行存储器1202中的一系列指令。
该数据处理设备1200还包括一个或一个以上有线或无线网络接口1203,例如以太网接口。
可选地,尽管图12中未示出,数据处理设备1200还可以包括一个或一个以上电源;一个或一个以上输入输出接口,输入输出接口可以用于连接显示器、鼠标、键盘、触摸屏设备或传感设备等,输入输出接口为可选部件,可以存在也可以不存在,此处不做限定。
本实施例中数据处理设备1200中的处理器1201所执行的流程可以参考前述方法实施例中描述的方法流程,此处不加赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (54)
1.一种数据处理***,其特征在于,所述数据处理***包括管理节点和运行第一作业的计算节点集合,所述计算节点集合包括主计算节点和第一计算节点;
所述管理节点,用于根据所述数据处理***中的空闲计算节点数量和/或等待状态的作业数量确定集群资源状态为紧张状态,所述等待状态的作业数量大于或等于第一阈值和/或所述空闲计算节点数量小于第二阈值;
所述管理节点,还用于根据所述集群资源状态确定降低所述第一作业的并行度的删减策略,并向所述主计算节点发送所述删减策略,所述删减策略用于指示所述第一计算节点停止运行所述第一作业,所述第一作业的并行度为运行所述第一作业的计算节点集合中计算节点的数量;
所述主计算节点,用于接收所述删减策略,并根据所述删减策略向所述第一计算节点发送删减指令;还用于根据所述删减策略将所述第一作业的原拓扑结构更新为新拓扑结构,并根据所述新拓扑结构继续运行所述第一作业;所述第一作业的原拓扑结构用于指示所述计算节点集合中所有计算节点的逻辑连接关系,所述第一作业的新拓扑结构用于指示更新后的所述计算节点集合中所有计算节点的逻辑连接关系;
所述第一计算节点,用于接收所述删减指令,并根据所述删减指令,停止运行所述第一作业。
2.根据权利要求1所述的***,其特征在于,所述计算节点集合还包括未被删减的第二计算节点;
所述第二计算节点,用于接收所述主计算节点发送的所述新拓扑结构,并根据所述新拓扑结构继续运行所述第一作业。
3.根据权利要求1或2所述的***,其特征在于,所述管理节点还用于,
获取所述第一作业的评价模型,所述评价模型用于表示所述第一作业的并行度与运行所述第一作业的计算节点的存储资源利用率的对应关系,以及,所述第一作业的并行度与所述第一作业的吞吐量的对应关系;
所述管理节点还用于,根据所述评价模型确定所述第一作业的可用并行度范围,所述可用并行度范围的最小值根据所述计算节点的存储资源利用率确定,所述可用并行度范围的最大值根据所述第一作业的吞吐量的峰值确定,所述第一作业降低并行度后的新第一并行度属于所述可用并行度范围。
4.根据权利要求3所述的***,其特征在于,所述删减指令携带时间戳;
所述第一计算节点,具体用于根据,在所述时间戳指示的时刻之后,停止运行所述第一作业。
5.一种数据处理***,其特征在于,所述数据处理***包括管理节点和运行第一作业的计算节点集合,所述计算节点集合包括主计算节点和第一计算节点,
所述管理节点,用于根据所述数据处理***中的空闲计算节点数量和/或等待状态的作业数量确定集群资源状态为紧张状态,所述等待状态的作业数量大于或等于第一阈值和/或所述空闲计算节点数量小于第二阈值;
所述管理节点,还用于根据所述集群资源状态确定降低所述第一作业的并行度的删减策略,并向所述主计算节点发送所述删减策略,所述删减策略用于指示所述主计算节点停止运行所述第一作业,所述第一作业的并行度为运行所述第一作业的计算节点集合中计算节点的数量;
所述主计算节点,用于接收所述删减策略,并根据所述删减策略停止运行所述第一作业;还用于根据所述删减策略将所述第一作业的原拓扑结构更新为新拓扑结构,并将所述新拓扑结构发送给所述第一计算节点;所述第一作业的原拓扑结构用于指示所述计算节点集合中所有计算节点的逻辑连接关系,所述第一作业的新拓扑结构用于指示更新后的所述计算节点集合中所有计算节点的逻辑连接关系;
所述第一计算节点,用于接收所述新拓扑结构,并根据所述新拓扑结构继续运行所述第一作业。
6.根据权利要求5所述的***,其特征在于,所述删减策略还用于指示第二计算节点停止运行所述第一作业,所述第二计算节点为所述计算节点集合中的节点;
所述主计算节点还用于,根据所述删减策略向所述第二计算节点发送删减指令;
所述第二计算节点,用于接收所述主计算节点发送的删减指令,并根据所述删减指令,停止运行所述第一作业。
7.根据权利要求5或6所述的***,其特征在于,
所述主计算节点还用于,根据所述删减策略停止向所述第一计算节点发送地址信息;
所述第一计算节点还用于,若超过预设时长阈值未接收所述地址信息,所述第一计算节点向所述管理节点发送申请消息,用于申请成为新的主计算节点。
8.根据权利要求7所述的***,其特征在于,
所述管理节点还用于,向所述第一计算节点发送确认消息,用于确认所述第一计算节点为新的主计算节点;
所述主计算节点还用于,向所述第一计算节点发送所述第一作业的批尺寸和运行所述第一作业所需数据的读取路径。
9.根据权利要求8所述的***,其特征在于,所述管理节点还用于,
获取所述第一作业的评价模型,所述评价模型用于表示所述第一作业的并行度与运行所述第一作业的计算节点的存储资源利用率的对应关系,以及,所述第一作业的并行度与所述第一作业的吞吐量的对应关系;
所述管理节点还用于,根据所述评价模型确定所述第一作业的可用并行度范围,所述可用并行度范围的最小值根据所述计算节点的存储资源利用率确定,所述可用并行度范围的最大值根据所述第一作业的吞吐量的峰值确定,所述第一作业降低并行度后的新第一并行度属于所述可用并行度范围。
10.一种数据处理***,其特征在于,所述数据处理***包括管理节点、空闲状态的目标计算节点,所述数据处理***中运行第二作业;
所述管理节点,用于根据所述数据处理***中的空闲计算节点数量和/或等待状态的作业数量确定集群资源状态为空闲状态,所述等待状态的作业数量小于第一阈值和/或所述空闲计算节点数量大于或等于第二阈值;
所述管理节点,还用于根据所述集群资源状态确定提高所述第二作业的并行度的新增节点策略,根据所述新增节点策略向所述目标计算节点发送指令;
所述目标计算节点,用于接收所述管理节点的指令,根据所述指令运行所述第二作业;
运行所述第二作业的计算节点集合包括主计算节点;
所述目标计算节点还用于,根据所述指令,向所述主计算节点发送注册信息;
所述主计算节点,用于根据所述注册信息将所述第二作业的原拓扑结构更新为新拓扑结构,根据所述新拓扑结构运行所述第二作业,并将所述新拓扑结构发送给所述目标计算节点;所述第二作业的原拓扑结构用于指示所述计算节点集合中所有计算节点的逻辑连接关系,所述第二作业的新拓扑结构用于指示更新后的所述计算节点集合中所有计算节点的逻辑连接关系;
所述目标计算节点,还用于接收所述新拓扑结构,并根据所述新拓扑结构运行所述第二作业。
11.根据权利要求10所述的***,其特征在于,
所述目标计算节点,还用于在接收所述新拓扑结构之后,向所述主计算节点返回确认信息;
所述主计算节点,还用于根据所述确认信息向所述目标计算节点发送训练指令,所述训练指令携带时间戳;
所述目标计算节点,具体用于在所述时间戳指示的时刻之后运行所述第二作业;
所述主计算节点,还用于在所述时间戳指示的时刻之后确定所述第二作业更新的训练模型,并发送给所述目标计算节点;
所述目标计算节点,具体用于根据所述更新的训练模型运行所述第二作业。
12.根据权利要求10或11所述的***,其特征在于,运行所述第二作业的计算节点集合包括主计算节点和第一计算节点,
所述主计算节点,还用于将所述新拓扑结构发送给所述第一计算节点;
所述第一计算节点,用于根据所述新拓扑结构运行所述第二作业。
13.根据权利要求12所述的***,其特征在于,所述管理节点还用于,
获取所述第二作业的评价模型,所述评价模型用于表示所述第二作业的并行度与运行所述第二作业的计算节点的存储资源利用率的对应关系,以及,所述第二作业的并行度与所述第二作业的吞吐量的对应关系;
所述管理节点还用于,根据所述评价模型确定所述第二作业的可用并行度范围,所述可用并行度范围的最小值根据所述计算节点的存储资源利用率确定,所述可用并行度范围的最大值根据所述第二作业的吞吐量的峰值确定,所述第二作业提高并行度后的新第二并行度属于所述可用并行度范围。
14.一种数据处理方法,其特征在于,应用于包括管理节点和计算节点的数据处理***,所述数据处理***中运行第一作业,运行所述第一作业的计算节点集合包括至少一个计算节点,所述至少一个计算节点中包括主计算节点,所述方法包括:
所述管理节点根据所述数据处理***中的空闲计算节点数量和/或等待状态的作业数量确定集群资源状态为紧张状态,所述等待状态的作业数量大于或等于第一阈值和/或所述空闲计算节点数量小于第二阈值;
所述管理节点根据所述集群资源状态确定降低所述第一作业的并行度的删减策略,所述删减策略用于指示从所述计算节点集合删减目标计算节点;
所述管理节点根据所述删减策略向所述主计算节点发送删减指令,以使得所述目标计算节点停止运行所述第一作业;
所述管理节点获取所述第一作业的评价模型,所述评价模型用于表示所述第一作业的并行度与运行所述第一作业的计算节点的存储资源利用率的对应关系,以及,所述第一作业的并行度与所述第一作业的吞吐量的对应关系;
所述管理节点根据所述评价模型确定所述第一作业的可用并行度范围,所述可用并行度范围的最小值根据所述计算节点的存储资源利用率确定,所述可用并行度范围的最大值根据所述第一作业的吞吐量的峰值确定,所述第一作业降低并行度后的新第一并行度属于所述可用并行度范围。
15.根据权利要求14所述的方法,其特征在于,所述管理节点根据所述集群资源状态确定降低所述第一作业的并行度的删减策略包括:
所述管理节点根据所述评价模型,确定降低所述第一作业的并行度并删减所述目标计算节点,并从所述第一作业的可用并行度范围中确定所述第一作业降低并行度后的新第一并行度。
16.一种数据处理方法,其特征在于,应用于包括管理节点和计算节点的数据处理***,所述数据处理***中运行第一作业,运行所述第一作业的计算节点集合包括至少两个计算节点,所述至少两个计算节点中包括主计算节点和目标计算节点,所述方法包括:所述主计算节点接收所述管理节点发送的删减策略,所述删减策略用于指示目标计算节点停止运行所述第一作业;
所述主计算节点根据所述删减策略向所述目标计算节点发送删减指令,以指示所述目标计算节点停止运行所述第一作业;
所述主计算节点根据所述删减策略将所述第一作业的原拓扑结构更新为新拓扑结构,并根据所述新拓扑结构继续运行所述第一作业,所述第一作业的原拓扑结构用于指示所述计算节点集合中所有计算节点的逻辑连接关系,所述第一作业的新拓扑结构用于指示更新后的所述计算节点集合中所有计算节点的逻辑连接关系。
17.根据权利要求16所述的方法,其特征在于,所述删减指令携带时间戳,所述时间戳用于指示所述目标计算节点停止运行所述第一作业的时刻。
18.根据权利要求16或17所述的方法,其特征在于,运行所述第一作业的计算节点集合包括未被删减的第一计算节点,所述方法还包括:
所述主计算节点向所述第一计算节点发送所述新拓扑结构,以指示所述第一计算节点根据所述新拓扑结构继续训练所述第一作业。
19.一种数据处理方法,其特征在于,应用于包括管理节点和计算节点的数据处理***,所述数据处理***中运行第一作业,运行所述第一作业的计算节点集合包括至少两个计算节点,所述至少两个计算节点中包括主计算节点和第一计算节点,所述方法包括:
所述主计算节点接收所述管理节点发送的删减策略,所述删减策略用于指示所述主计算节点停止运行所述第一作业;
所述主计算节点根据所述删减策略将所述第一作业的原拓扑结构更新为新拓扑结构,并将所述新拓扑结构发送给所述第一计算节点,以指示所述第一计算节点根据所述更新的拓扑结构继续运行所述第一作业,所述第一作业的原拓扑结构用于指示所述计算节点集合中所有计算节点的逻辑连接关系,所述第一作业的新拓扑结构用于指示更新后的所述计算节点集合中所有计算节点的逻辑连接关系;所述主计算节点根据所述删减策略停止运行所述第一作业。
20.根据权利要求19所述的方法,其特征在于,运行所述第一作业的计算节点集合包括第二计算节点,所述删减策略还用于指示所述第二计算节点停止运行所述第一作业,所述方法还包括:
所述主计算节点根据所述删减策略向所述第二计算节点发送删减指令,以指示所述第二计算节点停止运行所述第一作业。
21.根据权利要求20所述的方法,其特征在于,所述删减指令携带时间戳,所述时间戳用于指示所述第二计算节点停止运行所述第一作业的时刻。
22.根据权利要求19至21中任一项所述的方法,其特征在于,所述方法还包括:
所述主计算节点,根据所述删减策略停止向所述第一计算节点发送地址信息,以指示第一计算节点所述主计算节点停止运行所述第一作业;
所述第一计算节点为新的主计算节点,所述方法还包括:
所述主计算节点向所述第一计算节点发送所述第一作业的批尺寸和运行所述第一作业所需数据的读取路径。
23.一种数据处理方法,其特征在于,应用于包括管理节点和计算节点的数据处理***,所述数据处理***中运行第一作业,运行所述第一作业的计算节点集合包括至少两个计算节点,所述至少两个计算节点中包括主计算节点和第一计算节点,所述方法包括:
所述第一计算节点接收主计算节点发送的新拓扑结构,所述新拓扑结构为所述主计算节点根据所述管理节点发送的删减策略更新所述第一作业的原拓扑结构得到的新拓扑结构,所述第一作业的新拓扑结构用于指示更新后的所述计算节点集合中所有计算节点的逻辑连接关系;
所述第一计算节点根据所述新拓扑结构继续运行所述第一作业。
24.根据权利要求23所述的方法,其特征在于,所述方法还包括:
基于超过预设的时间阈值未接收所述主计算节点发送的地址信息,所述第一计算节点向所述管理节点发送申请消息,用于申请成为新的主计算节点。
25.根据权利要求24所述的方法,其特征在于,所述第一计算节点为新的主计算节点,所述方法还包括:
所述第一计算节点接收所述主计算节点发送的所述第一作业的批尺寸和运行所述第一作业所需数据的读取路径。
26.一种数据处理方法,其特征在于,应用于包括管理节点、空闲状态的目标计算节点的数据处理***,所述数据处理***中运行第二作业,所述方法包括:
所述管理节点根据所述数据处理***中的空闲计算节点数量和/或等待状态的作业数量确定集群资源状态为空闲状态,所述等待状态的作业数量小于第一阈值和/或所述空闲计算节点数量大于或等于第二阈值;
所述管理节点根据所述集群资源状态确定提高所述第二作业的并行度的新增节点策略;
所述管理节点根据所述新增节点策略向所述目标计算节点发送指令,以指示所述目标计算节点根据所述指令运行所述第二作业;
所述管理节点获取所述第二作业的评价模型,所述评价模型包括所述第二作业的并行度与运行所述第二作业的计算节点的存储资源利用率的对应关系,以及,所述第二作业的并行度与所述第二作业的吞吐量的对应关系;
所述管理节点根据所述评价模型确定所述第二作业的可用并行度范围,所述可用并行度范围的最小值根据所述计算节点的存储资源利用率确定,所述可用并行度范围的最大值根据所述第二作业的吞吐量的峰值确定,所述第二作业提高并行度后的新第二并行度属于所述可用并行度范围。
27.一种数据处理方法,其特征在于,应用于包括管理节点和空闲状态的目标计算节点的数据处理***,所述数据处理***中运行第二作业,运行所述第二作业的计算节点集合包括至少一个计算节点,所述至少一个计算节点中包括主计算节点,所述方法包括:
所述主计算节点接收目标计算节点发送的注册信息,所述注册信息用于申请运行所述第二作业;
所述主计算节点根据所述注册信息将所述第二作业的原拓扑结构更新为新拓扑结构,并根据所述新拓扑结构运行所述第二作业,所述第二作业的原拓扑结构用于指示所述计算节点集合中所有计算节点的逻辑连接关系,所述第二作业的新拓扑结构用于指示更新后的所述计算节点集合中所有计算节点的逻辑连接关系;
所述主计算节点将所述新拓扑结构发送给所述目标计算节点,以使得所述目标计算节点根据所述新拓扑结构运行所述第二作业。
28.根据权利要求27所述的方法,其特征在于,所述计算节点集合还包括第一计算节点,所述方法还包括:
所述主计算节点将所述新拓扑结构发送给所述第一计算节点,以使得所述第一计算节点根据所述新拓扑结构运行所述第二作业。
29.根据权利要求27或28所述的方法,其特征在于,所述方法还包括:
所述主计算节点接收所述目标计算节点的确认信息,用于指示所述目标计算节点收到所述新拓扑结构;
所述主计算节点根据所述确认信息向所述目标计算节点发送训练指令,所述训练指令携带时间戳,用于指示所述目标计算节点在所述时间戳指示的时刻之后加入运行所述第二作业。
30.根据权利要求29所述的方法,其特征在于,所述方法还包括:
在所述时间戳指示的时刻后,所述主计算节点在所述时间戳指示的时刻之后确定所述第二作业更新的训练模型,并发送给所述目标计算节点,以使得所述目标计算节点根据所述更新的训练模型运行所述第二作业。
31.一种数据处理方法,其特征在于,应用于包括管理节点、空闲状态的目标计算节点的数据处理***,所述数据处理***中运行第二作业,运行所述第二作业的计算节点集合包括至少一个计算节点,所述至少一个计算节点中包括主计算节点,所述方法包括:
目标计算节点接收所述管理节点发送的指令,所述指令用于指示所述目标计算节点运行所述第二作业;
所述目标计算节点根据所述指令向所述主计算节点发送注册信息,用于申请运行所述第二作业;
所述目标计算节点接收所述主计算节点根据所述注册信息发送的新拓扑结构,所述新拓扑结构为所述主计算节点根据所述管理节点发送的新增节点策略更新所述第二作业的原拓扑结构得到的新拓扑结构,所述第二作业的新拓扑结构用于指示更新后的所述计算节点集合中所有计算节点的逻辑连接关系;
所述目标计算节点根据所述新拓扑结构运行所述第二作业。
32.根据权利要求31所述的方法,其特征在于,所述方法还包括:
所述目标计算节点接收所述更新的拓扑结构之后,向所述主计算节点返回确认信息;
所述目标计算节点接收所述主计算节点根据所述确认信息发送的训练指令,所述训练指令携带时间戳;
所述目标计算节点在所述时间戳指示的时刻之后,根据所述新拓扑结构运行所述第二作业。
33.根据权利要求32所述的方法,其特征在于,所述方法还包括:
所述目标计算节点接收所述主计算节点发送的更新的训练模型,所述更新的训练模型为所述主计算节点在所述第二作业在所述时间戳指示的时刻之后确定的训练模型;
所述目标计算节点根据所述更新的训练模型运行所述第二作业。
34.一种数据处理方法,其特征在于,应用于包括管理节点、空闲状态的目标计算节点的数据处理***,所述数据处理***中运行第二作业,运行所述第二作业的计算节点集合包括至少一个计算节点,所述至少一个计算节点中包括主计算节点和第一计算节点所述方法包括:
所述第一计算节点接收所述主计算节点发送的新拓扑结构,所述新拓扑结构为所述主计算节点根据所述管理节点发送的新增节点策略更新所述第二作业的原拓扑结构得到的新拓扑结构,所述第二作业的新拓扑结构用于指示更新后的所述计算节点集合中所有计算节点的逻辑连接关系;
所述第一计算节点接收所述主计算节点发送的训练指令,所述训练指令携带时间戳;
所述第一计算节点在所述时间戳指示的时刻之后,根据所述新拓扑结构运行。
35.一种管理节点,其特征在于,应用于包括计算节点的数据处理***,所述数据处理***中运行第一作业,运行所述第一作业的计算节点集合包括至少一个计算节点,所述至少一个计算节点中包括主计算节点,包括:
确定单元,用于根据所述数据处理***中的空闲计算节点数量和/或等待状态的作业数量确定集群资源状态为紧张状态,所述等待状态的作业数量大于或等于第一阈值和/或所述空闲计算节点数量小于第二阈值;
所述确定单元还用于,根据所述集群资源状态确定降低所述第一作业的并行度的删减策略,所述删减策略用于指示从所述计算节点集合删减目标计算节点;
发送单元,用于根据所述删减策略向所述主计算节点发送删减指令,以使得所述目标计算节点停止运行所述第一作业;
获取单元,用于获取所述第一作业的评价模型,所述评价模型用于表示所述第一作业的并行度与运行所述第一作业的计算节点的存储资源利用率的对应关系,以及,所述第一作业的并行度与所述第一作业的吞吐量的对应关系;
所述确定单元还用于,根据所述评价模型确定所述第一作业的可用并行度范围,所述可用并行度范围的最小值根据所述计算节点的存储资源利用率确定,所述可用并行度范围的最大值根据所述第一作业的吞吐量的峰值确定,所述第一作业降低并行度后的新第一并行度属于所述可用并行度范围。
36.根据权利要求35所述的管理节点,其特征在于,所述确定单元具体用于:
根据所述评价模型,确定降低所述第一作业的并行度并删减所述目标计算节点,并从所述第一作业的可用并行度范围中确定所述第一作业降低并行度后的新第一并行度。
37.一种主计算节点,其特征在于,应用于包括管理节点和计算节点的数据处理***,所述数据处理***中运行第一作业,运行所述第一作业的计算节点集合包括至少两个计算节点,所述至少两个计算节点中包括所述主计算节点和目标计算节点,所述主计算节点包括:
接收单元,用于接收所述管理节点发送的删减策略,所述删减策略用于指示目标计算节点停止运行所述第一作业;
发送单元,用于根据所述删减策略向所述目标计算节点发送删减指令,以指示所述目标计算节点停止运行所述第一作业;
更新单元,用于根据所述删减策略将所述第一作业的原拓扑结构更新为新拓扑结构,并根据所述新拓扑结构继续运行所述第一作业,所述第一作业的原拓扑结构用于指示所述计算节点集合中所有计算节点的逻辑连接关系,所述第一作业的新拓扑结构用于指示更新后的所述计算节点集合中所有计算节点的逻辑连接关系。
38.根据权利要求37所述的主计算节点,其特征在于,所述删减指令携带时间戳,所述时间戳用于指示所述目标计算节点停止运行所述第一作业的时刻。
39.根据权利要求37或38所述的主计算节点,其特征在于,运行所述第一作业的计算节点集合包括未被删减的第一计算节点,所述发送单元还用于:
向所述第一计算节点发送所述新拓扑结构,以指示所述第一计算节点根据所述新拓扑结构继续训练所述第一作业。
40.一种主计算节点,其特征在于,应用于包括管理节点和计算节点的数据处理***,所述数据处理***中运行第一作业,运行所述第一作业的计算节点集合包括至少两个计算节点,所述至少两个计算节点中包括主计算节点和第一计算节点,所述主计算节点包括:
接收单元,用于接收所述管理节点发送的删减策略,所述删减策略用于指示所述主计算节点停止运行所述第一作业;
更新单元,用于根据所述删减策略将所述第一作业的原拓扑结构更新为新拓扑结构,并将所述新拓扑结构发送给所述第一计算节点,以指示所述第一计算节点根据所述更新的拓扑结构继续运行所述第一作业,所述第一作业的原拓扑结构用于指示所述计算节点集合中所有计算节点的逻辑连接关系,所述第一作业的新拓扑结构用于指示更新后的所述计算节点集合中所有计算节点的逻辑连接关系;所述主计算节点根据所述删减策略停止运行所述第一作业。
41.根据权利要求40所述的主计算节点,其特征在于,运行所述第一作业的计算节点集合包括第二计算节点,所述删减策略还用于指示所述第二计算节点停止运行所述第一作业,所述主计算节点还包括:
发送单元,用于根据所述删减策略向所述第二计算节点发送删减指令,以指示所述第二计算节点停止运行所述第一作业。
42.根据权利要求41所述的主计算节点,其特征在于,所述删减指令携带时间戳,所述时间戳用于指示所述第二计算节点停止运行所述第一作业的时刻。
43.根据权利要求40至42中任一项所述的主计算节点,其特征在于,所述主计算节点还包括:
发送单元,用于根据所述删减策略停止向所述第一计算节点发送地址信息,以指示第一计算节点所述主计算节点停止运行所述第一作业;
所述第一计算节点为新的主计算节点,所述发送单元还用于:
向所述第一计算节点发送所述第一作业的批尺寸和运行所述第一作业所需数据的读取路径。
44.一种计算节点,其特征在于,应用于包括管理节点和计算节点的数据处理***,所述数据处理***中运行第一作业,运行所述第一作业的计算节点集合包括至少两个计算节点,所述至少两个计算节点中包括主计算节点和第一计算节点,所述计算节点包括:
接收单元,用于接收主计算节点发送的新拓扑结构,所述新拓扑结构为所述主计算节点根据所述管理节点发送的删减策略更新所述第一作业的原拓扑结构得到的新拓扑结构,所述第一作业的新拓扑结构用于指示更新后的所述计算节点集合中所有计算节点的逻辑连接关系;
运行单元,用于根据所述新拓扑结构继续运行所述第一作业。
45.根据权利要求44所述的计算节点,其特征在于,所述计算节点还包括:
发送单元,基于超过预设的时间阈值未接收所述主计算节点发送的地址信息,向所述管理节点发送申请消息,用于申请成为新的主计算节点。
46.根据权利要求45所述的计算节点,其特征在于,所述第一计算节点为新的主计算节点,所述接收单元还用于:
接收所述主计算节点发送的所述第一作业的批尺寸和运行所述第一作业所需数据的读取路径。
47.一种管理节点,其特征在于,应用于包括所述管理节点、空闲状态的目标计算节点的数据处理***,所述数据处理***中运行第二作业,所述管理节点包括:
确定单元,用于根据所述数据处理***中的空闲计算节点数量和/或等待状态的作业数量确定集群资源状态为空闲状态,所述等待状态的作业数量小于第一阈值和/或所述空闲计算节点数量大于或等于第二阈值;
所述确定单元,还用于所述管理节点根据所述集群资源状态确定提高所述第二作业的并行度的新增节点策略;
发送单元,用于根据所述新增节点策略向所述目标计算节点发送指令,以指示所述目标计算节点根据所述指令运行所述第二作业;
获取单元,用于获取所述第二作业的评价模型,所述评价模型包括所述第二作业的并行度与运行所述第二作业的计算节点的存储资源利用率的对应关系,以及,所述第二作业的并行度与所述第二作业的吞吐量的对应关系;
所述确定单元还用于,根据所述评价模型确定所述第二作业的可用并行度范围,所述可用并行度范围的最小值根据所述计算节点的存储资源利用率确定,所述可用并行度范围的最大值根据所述第二作业的吞吐量的峰值确定,所述第二作业提高并行度后的新第二并行度属于所述可用并行度范围。
48.一种计算节点,其特征在于,应用于包括管理节点、空闲状态的计算节点的数据处理***,所述数据处理***中运行第二作业,运行所述第二作业的计算节点集合包括至少一个计算节点,所述至少一个计算节点中包括主计算节点,所述计算节点包括:
接收单元,用于接收所述管理节点发送的指令,所述指令用于指示所述计算节点运行所述第二作业;
发送单元,用于根据所述指令向所述主计算节点发送注册信息,用于申请运行所述第二作业;
所述接收单元,还用于接收所述主计算节点根据所述注册信息发送的新拓扑结构,所述新拓扑结构为所述主计算节点根据所述管理节点发送的新增节点策略更新所述第二作业的原拓扑结构得到的新拓扑结构,所述第二作业的新拓扑结构用于指示更新后的所述计算节点集合中所有计算节点的逻辑连接关系;
运行单元,用于根据所述新拓扑结构运行所述第二作业。
49.根据权利要求48所述的计算节点,其特征在于,
所述发送单元,还用于接收所述更新的拓扑结构之后,向所述主计算节点返回确认信息;
所述接收单元,还用于接收所述主计算节点根据所述确认信息发送的训练指令,所述训练指令携带时间戳;
所述运行单元,还用于在所述时间戳指示的时刻之后,根据所述新拓扑结构运行所述第二作业。
50.根据权利要求49所述的计算节点,其特征在于,
所述接收单元,还用接收所述主计算节点发送的更新的训练模型,所述更新的训练模型为所述主计算节点在所述第二作业在所述时间戳指示的时刻之后确定的训练模型;
所述计算节点还包括:
更新单元,用于根据所述更新的训练模型运行所述第二作业。
51.一种计算节点,其特征在于,应用于包括管理节点、空闲状态的目标计算节点的数据处理***,所述数据处理***中运行第二作业,运行所述第二作业的计算节点集合包括至少一个计算节点,所述至少一个计算节点中包括主计算节点和第一计算节点所述计算节点包括:
接收单元,用于接收所述主计算节点发送的新拓扑结构,所述新拓扑结构为所述主计算节点根据所述管理节点发送的新增节点策略更新所述第二作业的原拓扑结构得到的新拓扑结构,所述第二作业的新拓扑结构用于指示更新后的所述计算节点集合中所有计算节点的逻辑连接关系;
所述接收单元,还用于接收所述主计算节点发送的训练指令,所述训练指令携带时间戳;
运行单元,用于在所述时间戳指示的时刻之后,根据所述新拓扑结构运行。
52.一种管理节点,其特征在于,包括:
存储器,用于存储指令;
处理器,用于执行所述存储器中的指令,使得所述管理节点执行权利要求14至15,或26中任一项所述的方法。
53.一种计算节点,其特征在于,包括:
存储器,用于存储指令;
处理器,用于执行所述存储器中的指令,使得所述计算节点执行权利要求16至25,或27至34中任一项所述的方法。
54.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储指令,当所述指令在计算机上运行时,使得所述计算机执行权利要求14至34中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911067661.5A CN112764893B (zh) | 2019-11-04 | 2019-11-04 | 数据处理方法和数据处理*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911067661.5A CN112764893B (zh) | 2019-11-04 | 2019-11-04 | 数据处理方法和数据处理*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112764893A CN112764893A (zh) | 2021-05-07 |
CN112764893B true CN112764893B (zh) | 2024-03-26 |
Family
ID=75692437
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911067661.5A Active CN112764893B (zh) | 2019-11-04 | 2019-11-04 | 数据处理方法和数据处理*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112764893B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113222118B (zh) * | 2021-05-19 | 2022-09-09 | 北京百度网讯科技有限公司 | 神经网络训练方法、装置、电子设备、介质和程序产品 |
WO2023040683A1 (zh) * | 2021-09-17 | 2023-03-23 | 华为技术有限公司 | 传输数据的方法和输入输出设备 |
CN113835896B (zh) * | 2021-09-29 | 2024-03-22 | 东北大学 | 一种Gaia***中面向迭代计算的并行度动态调整方法 |
CN114401263A (zh) * | 2022-01-21 | 2022-04-26 | 中兴飞流信息科技有限公司 | 基于微服务实现的图片etl接入弹性处理分析方法及*** |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103685015A (zh) * | 2013-12-17 | 2014-03-26 | 清华大学 | 基于构件的可扩展路由器任务分派方法 |
CN106487555A (zh) * | 2015-08-28 | 2017-03-08 | 中兴通讯股份有限公司 | 一种业务节点的调整方法、装置及设备 |
CN110109800A (zh) * | 2019-04-10 | 2019-08-09 | 网宿科技股份有限公司 | 一种服务器集群***的管理方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015127668A1 (en) * | 2014-02-28 | 2015-09-03 | Pivotal Software, Inc. | Task centric resource scheduling framework |
-
2019
- 2019-11-04 CN CN201911067661.5A patent/CN112764893B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103685015A (zh) * | 2013-12-17 | 2014-03-26 | 清华大学 | 基于构件的可扩展路由器任务分派方法 |
CN106487555A (zh) * | 2015-08-28 | 2017-03-08 | 中兴通讯股份有限公司 | 一种业务节点的调整方法、装置及设备 |
CN110109800A (zh) * | 2019-04-10 | 2019-08-09 | 网宿科技股份有限公司 | 一种服务器集群***的管理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112764893A (zh) | 2021-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112764893B (zh) | 数据处理方法和数据处理*** | |
US10963292B2 (en) | Techniques to manage virtual classes for statistical tests | |
Tuli et al. | COSCO: Container orchestration using co-simulation and gradient based optimization for fog computing environments | |
US11243816B2 (en) | Program execution on heterogeneous platform | |
WO2022068663A1 (zh) | 内存分配方法、相关设备及计算机可读存储介质 | |
US11429434B2 (en) | Elastic execution of machine learning workloads using application based profiling | |
WO2022048557A1 (zh) | Ai模型的训练方法、装置、计算设备和存储介质 | |
CN111738488A (zh) | 一种任务调度方法及其装置 | |
CN113449859A (zh) | 一种数据处理方法及其装置 | |
US20200073677A1 (en) | Hybrid computing device selection analysis | |
Zhang et al. | Towards memory friendly long-short term memory networks (LSTMs) on mobile GPUs | |
US11880715B2 (en) | Method and system for opportunistic load balancing in neural networks using metadata | |
Zhang et al. | Learning-driven interference-aware workload parallelization for streaming applications in heterogeneous cluster | |
CN114895773A (zh) | 异构多核处理器的能耗优化方法、***、装置及存储介质 | |
Ardagna et al. | Predicting the performance of big data applications on the cloud | |
Nichols et al. | MagmaDNN: accelerated deep learning using MAGMA | |
CN115827225A (zh) | 异构运算的分配方法、模型训练方法、装置、芯片、设备及介质 | |
CN114741161A (zh) | 一种基于混合集群的hpc作业集群感知方法 | |
WO2023207630A1 (zh) | 一种任务求解方法及其装置 | |
Ghose et al. | FGFS: Feature Guided Frontier Scheduling for SIMT DAGs | |
Huang et al. | Efficient dynamic device placement for deep neural network training on heterogeneous systems | |
Rahmani et al. | Machine learning-driven energy-efficient load balancing for real-time heterogeneous systems | |
Gao et al. | A deep reinforcement learning-based approach to the scheduling of multiple workflows on non-dedicated edge servers | |
WO2024054227A1 (en) | Interference detection-based scheduling for sharing gpus | |
Liu et al. | Comprehensive evaluation of large-scale parallel matrix factorization algorithms |
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 |