CN111327692A - 模型训练方法、装置及集群系统 - Google Patents

模型训练方法、装置及集群系统 Download PDF

Info

Publication number
CN111327692A
CN111327692A CN202010080825.4A CN202010080825A CN111327692A CN 111327692 A CN111327692 A CN 111327692A CN 202010080825 A CN202010080825 A CN 202010080825A CN 111327692 A CN111327692 A CN 111327692A
Authority
CN
China
Prior art keywords
target
node
cluster
computing
request
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.)
Pending
Application number
CN202010080825.4A
Other languages
English (en)
Inventor
骆宝童
丁瑞全
张恒华
胡在斌
黄凯文
李志�
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN202010080825.4A priority Critical patent/CN111327692A/zh
Publication of CN111327692A publication Critical patent/CN111327692A/zh
Priority to PCT/CN2020/117723 priority patent/WO2021155667A1/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Molecular Biology (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请实施例公开了一种模型训练方法、装置及集群系统,涉及人工智能技术领域。具体实现方案为:硬件方面,通过将控制节点和至少一个计算节点通过网络互连,在计算节点中引入GPU作为计算资源,从而大幅度提升集群系统的硬件能力,进而提升模型训练的效率。软件方面,通过对slurm框架进行优化,引入客户端、超级管理平台等,使得集群系统用起来更方便。

Description

模型训练方法、装置及集群系统
技术领域
本申请实施例涉及人工智能(Artificial Intelligence,AI)技术领域,尤其涉及一种模型训练方法、装置及集群系统。
背景技术
随着人工智能的不断发展,对AI模型的训练需求也越来越大。AI模型训练过程中,当训练的数据集较小时,深度学习效果并不理想,甚至不如相对简单的机器学习方法。但是,当数据集增大后,利用深度学习训练出的AI模型的效果开始超过其他机器学习的训练效果。
常见的深度学习过程中,通过使用高性能计算集群(high performancecomputing,HPC)对大规模的数据集进行训练,以得到AI模型。HPC总体结构可分为以下几个主要部分:外部网络、主节点(master node)、计算节点(compute node)、存储(stroage)、计算网络(computation network)以及管理网络(management network)等。其中,计算节点的计算资源包括单核中央处理器(central processing unit,CPU)、多核CPU或多CPU等。
上述的HPC中,单个计算节点的计算资源主要以CPU为主,硬件能力有限,导致上述的HPC使用深度学习训练AI模型的效率较低。
发明内容
本申请实施例提供一种模型训练方法、装置及集群系统,通过使用具有GPU卡的计算节点来提高集群系统的硬件能力,从而提高模型训练的效率。
第一方面,本申请实施例提供一种集群系统,包括:控制节点、至少一个计算节点、存储节点;其中,所述控制节点,与所述至少一个计算节点中的各计算节点建立连接,用于为训练目标模型的任务分配计算资源;所述计算节点包括至少一个中央处理器CPU和至少一个图形处理器GPU,用于利用所述计算资源训练目标模型;所述存储节点与所述至少一个计算节点中的各计算节点建立网络连接,用于存储训练目标模型所需的数据。
一种可行的设计中,所述至少一个计算节点中的任意两个计算节点基于无限带宽Infiniband技术互联建立网络连接,所述计算节点内部的CPU与GPU通过高速外围组件互联PCIE连接,所述计算节点内部的GPU与GPU通过NV link连接。
第二方面,本申请实施例提供一种模型训练方法,适用于控制节点、至少一个计算节点、存储节点的集群系统,所述方法包括:所述控制节点接收应用程序接口API服务器发送的第一请求,所述第一请求是所述API服务器根据第一用户通过第一终端上的客户端发送的训练目标模型所需的资源信息得到的,所述控制节点根据所述资源信息,为所述目标模型分配目标资源,所述控制节点向目标计算节点发送第二请求,使得所述目标计算节点使用所述目标资源训练目标模型。
一种可行的设计中,所述资源信息包括下述信息中的至少一个:目标计算节点的数量、利用所述目标计算节点训练所述目标模型时被占用的GPU的数量、利用所述目标计算节点训练所述目标模型时被占用的CPU的数量。
一种可行的设计中,上述的方法还包括:所述控制节点接收第二终端设备发送的管理请求,所述管理请求用于请求管理所述集群系统中的计算节点,所述控制节点根据所述管理请求管理所述集群系统中的计算节点。
一种可行的设计中,所述控制节点根据所述管理请求管理所述集群系统中的计算节点,包括:所述控制节点调用集群开放应用程序接口Open API对第二用户鉴权;若所述第二用户通过鉴权,则所述控制节点根据所述管理请求管理所述集群系统中的计算节点。
一种可行的设计中,所述管理请求携带所述第二用户的访问密钥标识和第一密钥,所述第一密钥是所述第二终端设备利用预设认证机制生成的,所述控制节点调用集群开放应用程序接口Open API对第二用户鉴权,包括:所述控制节点调用所述集群Open API,利用所述预设认证机制生成第二密钥,若所述第一密钥和所述第二密钥相同,则所述控制节点确定所述第二用户的管理权限,所述控制节点根据所述管理权限向所述第二终端设备发送权限信息,以使得所述第二终端设备根据所述权限信息显示所述第二用户对应的权限。
一种可行的设计中,所述集群Open API包括集群管理API,所述管理请求用于请求创建或删除集群;或者,所述集群Open API包括机器管理API,所述管理请求用于请求对所述至少一个计算节点中的任意一个计算节点执行下述任一项操作:上线、下线、重启、重装、维修、屏蔽。
第三方面,本申请实施例提供一种模型训练方法,适用于控制节点、至少一个计算节点、存储节点的集群系统,所述方法包括:目标计算节点接收控制节点发送的第二请求,所述第二请求是所述控制节点接收到应用程序接口API服务器发送的第一请求并为目标模型分配目标资源后发送的,所述第一请求是所述API服务器根据第一用户通过第一终端上的客户端发送的训练目标模型所需的资源信息得到的,所述目标节点包含于所述至少一个计算节点,所述目标计算节点使用所述目标资源训练所述目标模型,所述目标计算节点将训练好的目标模型发送至存储节点。
一种可行的设计中,所述资源信息包括下述信息中的至少一个:目标计算节点的数量、利用所述目标计算节点训练所述目标模型时被占用的GPU的数量、利用所述目标计算节点训练所述目标模型时被占用的CPU的数量。
一种可行的设计中,上述的方法还包括:所述目标计算节点接收所述第一终端设备发送的查询请求,所述查询请求用于请求展示所述目标计算节点上的目标资源训练所述目标模型时所述目标资源的使用状况,所述目标计算节点向所述第一终端设备发送查询响应,所述查询响应携带所述目标资源的使用状况信息,以使得所述第一终端设备根据所述使用状况信息显示所述目标资源的使用状况。
第四方面,本申请实施例提供一种模型训练装置,包括:
接收单元,用于接收应用程序接口API服务器发送的第一请求,所述第一请求携带训练目标模型所需的资源信息,所述第一请求是所述API服务器根据第一用户通过第一终端上的客户端发送的训练目标模型所需的资源信息得到的;
处理单元,用于根据所述资源信息,为所述目标模型分配目标资源;;
发送单元,用于向目标计算节点发送第二请求,使得所述目标计算节点使用所述目标资源训练目标模型。
一种可行的设计中,所述资源信息包括下述信息中的至少一个:目标计算节点的数量、利用所述目标计算节点训练所述目标模型时被占用的GPU的数量、利用所述目标计算节点训练所述目标模型时被占用的CPU的数量。
一种可行的设计中,所述接收单元,还用于接收第二终端设备发送的管理请求,所述管理请求用于请求管理所述集群系统中的计算节点;
所述处理单元,还用于根据所述管理请求管理所述集群系统中的计算节点。
一种可行的设计中,所述处理单元,在根据所述管理请求管理所述集群系统中的计算节点时,调用集群开放应用程序接口Open API对第二用户鉴权,若所述第二用户通过鉴权,则根据所述管理请求管理所述集群系统中的计算节点。
一种可行的设计中,所述管理请求携带所述第二用户的访问密钥标识和第一密钥,所述第一密钥是所述第二终端设备利用预设认证机制生成的,所述处理单元,用于调用所述集群Open API,利用所述预设认证机制生成第二密钥,若所述第一密钥和所述第二密钥相同,则确定所述第二用户的管理权限;所述发送单元,还用于根据所述管理权限向所述第二终端设备发送权限信息,以使得所述第二终端设备根据所述权限信息显示所述第二用户对应的权限。
一种可行的设计中,所述集群Open API包括集群管理API,所述管理请求用于请求创建或删除集群;或者,所述集群Open API包括机器管理API,所述管理请求用于请求对所述至少一个计算节点中的任意一个计算节点执行下述任一项操作:上线、下线、重启、重装、维修、屏蔽。
第五方面,本申请实施例提供一种模型训练装置,包括:
接收单元,用于接收控制节点发送的第二请求,所述第二请求是所述控制节点接收到应用程序接口API服务器发送的第一请求并为目标模型分配目标资源后发送的,所述第一请求是所述API服务器根据第一用户通过第一终端上的客户端发送的训练目标模型所需的资源信息得到的,所述目标节点包含于所述至少一个计算节点;
处理单元,用于使用所述目标资源训练所述目标模型;
发送单元,用于将训练好的目标模型发送至存储节点。
一种可行的设计中,所述资源信息包括下述信息中的至少一个:目标计算节点的数量、利用所述目标计算节点训练所述目标模型时被占用的GPU的数量、利用所述目标计算节点训练所述目标模型时被占用的CPU的数量。
一种可行的设计中,所述接收单元,还用于接收所述第一终端设备发送的查询请求,所述查询请求用于请求展示所述目标计算节点上的目标资源训练所述目标模型时所述目标资源的使用状况;
所述发送单元,还用于向所述第一终端设备发送查询响应,所述查询响应携带所述目标资源的使用状况信息,以使得所述第一终端设备根据所述使用状况信息显示所述目标资源的使用状况。
第六方面,本申请实施例提供一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行第二方面或第二方面任意可能实现的方法。
第七方面,本申请实施例提供一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行第三方面或第三方面任意可能实现的方法。
第八方面,本申请实施例提供一种包含指令的计算机程序产品,当其在电子设备上运行时,使得电子设备计算机执行上述第二方面或第二方面的各种可能的实现方式中的方法。
第九方面,本申请实施例提供一种包含指令的计算机程序产品,当其在电子设备上运行时,使得电子设备计算机执行上述第三方面或第三方面的各种可能的实现方式中的方法
第十方面,本申请实施例提供一种存储有计算机指令的非瞬时计算机可读存储介质,所述非瞬时计算机可读存储介质中存储有指令,当其在电子设备上运行时,使得电子设备执行如上述第二方面或第二方面的各种可能的实现方式中的方法。
第十一方面,本申请实施例提供一种存储有计算机指令的非瞬时计算机可读存储介质,所述非瞬时计算机可读存储介质中存储有指令,当其在电子设备上运行时,使得电子设备执行如上述第三方面或第三方面的各种可能的实现方式中的方法。
第十二方面,本申请实施例提供一种集群系统,包括:控制节点和至少一个计算节点,其中,所述控制节点,与所述至少一个计算节点中的各计算节点基于传输控制协议TCP建立网络连接,所述计算节点的计算资源包括至少一个中央处理器CPU和至少一个图形处理器GPU。
上述申请中的一个实施例具有如下优点或有益效果:通过将控制节点和至少一个计算节点通过网络互连,在计算节点中引入GPU作为计算资源,从而大幅度提升集群系统的硬件能力,进而提升模型训练的效率。另外,采用HDFS文件系统来临时存储用户执行环境,并存储最终运行结果的系统,可以避免用于训练模型的数据集存放在计算节点上占用过多存储空间的弊端,也可以避免训练好的模型放置在智能节点上安全的弊端。
上述可选方式所具有的其他效果将在下文中结合具体实施例加以说明。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1是本申请实施例提供的集群系统的结构示意图;
图2是本申请实施例提供的集群系统的底层框架的示意图;
图3是本申请实施例提供的集群系统的网络优化示意图;
图4是本申请实施例提供的集群系统的系统级性能约束分析示意图;
图5是本申请实施例提供的集群系统的计算节点的内存监控示意图;
图6是本申请实施例提供的模型训练方法的流程图;
图7是本申请实施例提供的模型训练方法中HGCP的系统架构示意图;
图8是本申请实施例提供的模型训练方法中提交任务的过程示意图;
图9是本申请实施例提供的模型训练方法中slurm OPEN API的示意图;
图10是本申请实施例提供的模型训练方法中鉴权的过程示意图;
图11是本申请实施例提供的模型训练方法中api server的部署示意图;
图12是本申请实施例提供的模型训练方法中超管平台的工作示意图;
图13为本申请实施例提供的模型训练装置的结构示意图;
图14为本申请实施例提供的模型训练装置的结构示意图;
图15是用来实现本申请实施例的模型训练方法的电子设备的框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
在人工智能快速发展的今天,由CPU和GPU共同构成的异构计算平台正在发挥着越来越重要的作用。当前大数据时代,在训练的数据集较小时,深度学习的效果并不理想,这也是深度学习没有引起重视的原因之一。在较小数据集上训练的深度学习模型效果还不如一些相对简单的机器学习方法。但是,当数据集比较大时,深度学习的效果开始超过其他机器学习的效果,高性能集群(high performance computing,HPC)有能力使用更大的数据集来训练模型,使得HPC成为人工智能发展的一个重要部分。
常见的用于模型训练的HPC,总体结构可分为以下几个主要部分:外部网络、主节点(master node)、计算节点(compute node)、存储(stroage)、计算网络(computationnetwork)以及管理网络(management network)等。其中,计算节点的计算资源包括单核中央处理器(central processing unit,CPU)、多核CPU或多CPU等。
上述的HPC中,单个计算节点的计算资源主要以CPU为主,硬件能力有限,导致上述的HPC使用深度学习训练AI模型的效率较低。
同时,高性能计算集群(high performance computing cluster)是计算机科学的一个分支,以解决复杂的可还行计算或数值计算为目的,是由多台节点(服务器)构成的一种松散耦合的计算节点集合。为用户提供高性能计算、网络请求响应或专业的应用程序(包括并行计算、数据库、web)等服务。但是,如何管理大规模计算集群的计算节点、训练任务如何调度,则是一个棘手的问题,虽然业界目前引入简单的Linux实用程序资源(简单的Linux实用程序资源管理,slurm)管理集群系统,但是一般仅仅是针对slurm调度插件的使用方法做了优化,并未跳出slurm框架,即并未对slurm框架进行升级优化。
有鉴于此,本申请实施例提供一种模型训练方法、装置及集群系统,在硬件方面,通过引入GPU作为计算资源,大幅度提升集群系统的硬件能力,进而提升模型训练的效率;在软件方面,通过对slurm框架进行优化,引入客户端、超级管理平台等,使得集群系统用起来更方便。下面,分别从硬件能力改进和软件能力改进两方面对本申请实施例进行详细说明。
首先,硬件能力改进。
图1是本申请实施例提供的集群系统的结构示意图。请参照图1,本申请实施例提供的集群系统包括:控制节点、至少一个计算节点、存储节点;其中,所述控制节点,与所述至少一个计算节点中的各计算节点建立连接,如基于传输控制协议(TransmissionControl Protocol,TCP)的网络连接等;所述计算节点的计算资源包括至少一个中央处理器(central processing unit,CPU)和至少一个图形处理器(Graphics Processing Unit,GPU);所述存储节点与所述至少一个计算节点中的各计算节点建立网络连接,用于存储训练目标模型所需的数据,该存储节点例如为分布式文件系统(Hadoop Distributed FileSystem,HDFS)等,训练目标模型所需的数据包括客户端、样本数据集等,另外,计算节点训练好目标模型后,该目标模型也被存储在存储节点,所述客户端用于向API服务器提交资源信息等,使得API服务器对资源信息进行整合等,得到第一请求并向所述控制节点提交,图中未示意出API服务器,实际实现时,API服务器与控制节点可以集成设置,也可以独立设置。研发人员可通过第一终端设备登录集群系统,提交用于请求模型训练的第一请求等,管理员可通过第二终端设备登录集群系统,进行创建集群、删除集群、上线机器、下线机器、屏蔽机器等操作,其中,机器即为计算节点。
需要说明的是,第一终端设备和第二终端设备可以是相同设备,也可以是不同的终端设备,本申请实施例并不限制。
图1中,每个计算节点的计算资源包括CPU和GPU,计算节点例如为用于AI模型训练的一体机,具有3个CPU和8个GPU,其中,CPU和GPU的可灵活设置。另外,计算节点包含的计算资源也可以是显存可编程门阵列(Field-Programmable Gate Array,FPGA)等,本申请实施例并不限制。
HDFS文件系统是用来临时存储用户执行环境,并存储最终运行结果的系统,可以避免用于训练模型的数据集存放在计算节点上占用过多存储空间的弊端,也可以避免训练好的模型放置在计算节点上不安全的弊端。
需要说明的是,本申请实施例中的控制节点的数量并不限定为一个,例如,为了避免控制节点出现故障后导致整个集群系统宕机,本申请实施例可以设置一个主控制节点和一个备控制节点,当主控制器节点出现故障时,可以启动备控制节点。
本申请实施例提供的集群系统,通过将控制节点和至少一个计算节点通过网络互连,在计算节点中引入GPU作为计算资源,从而大幅度提升集群系统的硬件能力,进而提升模型训练的效率。另外,采用HDFS文件系统来临时存储用户执行环境,并存储最终运行结果的系统,可以避免用于训练模型的数据集存放在计算节点上占用过多存储空间的弊端,也可以避免训练好的模型放置在智能节点上安全的弊端。
以下为清楚起见,将现有的集群系统称之为高性能集群(high performancecomputing,HPC)系统,将本申请实施例提供的集群系统称之为高性能GPU平台(HighPerformance GPU Cluster Platform,HGCP)。
下面,从底层框架、任务调度、网络优化、性能剖析工具、计算节点、集群实时监控和集群运维管理对如何进行硬件改进进行详细说明。
A、底层框架。
图2是本申请实施例提供的集群系统的底层框架的示意图。请参照图2,本申请实施例提供的集群系统,由下至上包括芯片、系统设计、性能优化、集群、框架和应用六层。其中,芯片层包括各种计算资源,如CPU、GPU、FPGA、集成电路(Application SpecificIntegrated Circuit,ASIC)以及其他AI芯片。系统设计层包括云端和边缘AI一体机、高性能存储池、高速互联架构等。性能优化层包括计算优化、输入输出(inpit output,IO)或通信优化等。集群层包括K8S(Kubernetes)云原生、智能调度、自动扩缩容等。框架层包括一些深度学习框架,如飞桨(Paddle Paddle)、TF、Torch等。应用层包括视频、图像、自然语言理解、搜索、推荐或广告等。
请参照图2,本申请提供的集群系统基于slurm开源Linux集群资源管理系统,具有良好的扩展性和高度容错性。本申请实施例提供的HGCP,除了具备slurm固有的功能外,还拥有完整的训练任务生命流程管理、机器管理、故障监控能力,自动化程度极高。其中,slurm固有的功能包括资源管理功能和丰富的作业调度功能,如简单的先进先出(FirstInput First Output,FIFO)、作业优先级计算、资源抢占等功能,能够对多种不同实现的多点接口(Multi Point Interface,MPI)提供良好的支持。另外,本申请实施例提供的集群系统还支持对GPU、网络带宽甚至内存等通用计算资源的分配。
B、任务调度。
现有的HPC只是使用了slurm提供的几个基础的调度逻辑,如FIFO等。本申请实施例中,为了打通AI训练任务在集群系统中的高速流转,HGCP在上层新建了一个高效的任务调度系统,充分考虑各业务拥有高优资源数量及集群中实际运行和待运行的训练任务,将所有资源池化,针对每个业务设置高优逻辑限额(quota),并规定单计算节点任务和多计算节点任务的GPU使用配比,减少资源碎片的影响,有效的降低集群资源闲置,提高GPU集群资源使用效率,降低运营成本。
C、网络优化。
一般而言,网络通信是深度学习训练的一大瓶颈,深度学习类计算任务,具有计算量大、中间结果多等特点,这要求集群系统具有高效传递的消息传递机制和海量的数据存储访问能力,而这两者的效率很大程度上取决于网络速度。现有技术中的大部分基于slurm的HPC都采用多点接口(Multi Point Interface,MPI)传递消息和并行处理,而使用MPI传递消息和并行处理有两个问题:消息传递慢、系统CPU占用高,同时,计算节点本身的网络硬件也限制了通信的能力。为解决这些问题,本申请实施例提供的HGCP对网络进行优化。优化过程中,所述至少一个计算节点中的任意两个计算节点基于无限带宽Infiniband技术互联建立网络连接,所述计算节点内部的所述CPU与所述GPU通过高速外围组件互联PCIE连接,所述计算节点内部的GPU与GPU通过NV link连接。示例性的,可参见图3。
图3是本申请实施例提供的集群系统的网络优化示意图。请参照图3,图中示意出两个计算节点,分别是第一计算节点和第二计算节点,每个计算节点包括CPU节点(node)和GPU盒(BOX),CPU node中包含CPU1和CPU2,GPU BOX中包含三个非易失性存储器快速(Non-Volatile Memory Express,NVMe),简称硬盘,另外,GPU BOX中还包括8个GPU,如图中的0~8,以及网络接口控制器(network interface controller,NIC)、PCIE SW等。图中实线箭头所示为PCIE连接,虚线箭头所示为NVlink连接。需要说明的是,虽然图中为清楚起见,第一计算节点中,GPU部分仅示意出PCIE连接,第二计算节点GPU部分仅示意出NVlink连接,但是实际中,每个计算节点的GPU部分即包括PCIE连接和NVlink连接。
本申请实施例提供的集群系统使用基于全双工、交换式串行传输的新型I/O总线技术无限带宽(Infiniband,IB),取代了现有集群系统中常用的MPI通信方式,简化并提高了计算节点间的连接速度。同时,一个计算节点内部的CPU与GPU使用PCIE连线,GPU和GPU间采用NVlink高速互联,极大的提高了计算节点内部GPU卡间的通信。同时,PCIE、NVlink、以太网(Ethernet)/远程数据存取(Remote Direct Memory Access,RDMA)网络带宽、延时差异大,需要分配最优资源组合,本申请实施例提供的HGCP采用拓扑感知调度,优化通信带宽。
D、性能剖析工具。
通常情况下,集群利用率是核心的考核指标,提高利用率相当于降低及其使用陈本,同时帮助业务训练程序进行资料搜集(profiling)和针对性能优化取得良好效果。但是现有的HPC无系统级的细粒度的性能分析工具,为实现性能分析,通常使用的方式是与业务协商好之后在单个节点上进行性能分析,从启动到采集到数据分析都需要人为介入,并需要和业务方面启动训练做好协调,只能具体问题具体分析(case by case),效率低不适合大面积推广。
本申请实施例提供的HGCP,采用深度学习系统性能分析器(Deep learningsystem Performance profiler,Dperf)对HGCP进行性能分析,Dperf是面向深度学习训练常见的系统级的一站式性能剖析与瓶颈定位系统。该工具通过将NET、IO、H2D、P2P等数据通路上的关键计算节点的流量信息与CPU、双倍速率(Double Data Rate,DDR)、图形用双倍数据传输率存储器(Graphics Double Data Rate,GDDR)等关键计算资源的利用率信息统一抓取并同轴显示,方便业务定位程序瓶颈并进行针对性的优化。同时,把Dperf训练工具与集群任务调度结合起来,对GPU训练集群的任务进行普查性质的自动监控。一方面,可以帮助集群管理者来了解各个业务的使用情况和瓶颈所在,提高集群整体利用率。另一方面,帮助开发者监控资源利用率,指导参数调整,增强扩展能力,同时帮助定位硬件约束,调优硬件配置,本申请实施例提供的Dperf具有低开销、多维度、易扩展、细粒度和可视化等优势。示例性的,可参照图4。
图4是本申请实施例提供的集群系统的系统级性能约束分析示意图。请参照图4,深度学习训练整个流程涉及环境准备、数据读取、数据预处理、前向训练、后向训练、参数更新,数据存储受CPU、主存和硬盘IO约束,而训练过程受上下行链路,显存等因素影响。通过Dperf系统级性能分析工具,分析程序受哪方面硬件影响。例如,若数据读取和预处理时间长,同时系统可用CPU、磁盘资源较多,则可以多开数据处理进程提高数据处理速度。若训练程序等待训练数据时间较长,则可以将数据处理和训练异步执行,减少等待时间。
E、计算节点。
目前的HPC的计算节点受限于GPU卡数、通信、功耗、散热等问题的影响,算力密度低,无法承受模型训练任务的需求。而本申请实施例提供的HGCP,利用具备GPU的计算节点,拥有高计算密度、高散热效率,支持硬件模块系统化、互联接口标准化、互联拓扑弹性化,引领了AI计算的硬件发展方向,参与并主导AI硬件平台的发展,有效支撑集群的AI训练任务。
F、集群实时监控。
目前的HPC吴实时细粒度监控,缺失每个计算节点、计算任务的细粒度监控,做到CPU、DDR、GPU和GDDR等关键资源的利用率信息同意抓取并同轴显示,用户和管理只能登陆物理节点查看机器运行状态,或者被动由业务告知故障信息,极大的影响了集群运行效率。而本申请实施例提供的HGCP,为了监控和分析集群系统的运行情况,同时为系统调度收集参数,在HGCP集群部署了监控平台以及硬件监控插件(Hadoop Authentication Service,HAS)等,通过实时监控采集HGCP集群的控制节点、计算节点等功能组件的CPU、GPU、内存、网络和存储等关键性能数据,然后以图形化的方式直观显示,可以了解硬件环境的运行状况,及时发现HGCP中可能隐含的故障问题,进而在第一时间对故障给出解决方案。示例性的,可参见图5,图5是本申请实施例提供的集群系统的计算节点的内存监控示意图。请参照图5,从14:40开始至15:40,一个计算节点的内存的占用如图中波形所示。
G、集群运维管理。
目前,随着HPC的集群规模的持续扩大,计算节点的不断扩充,计算节点的标准运行环境部署将会变化成一个常态化、费时费力的工作,目前的HPC没有给出一个高效的、标准的运维解决方案,故障发现、定位、报修和恢复上线均需要人工接入,效率低下,浪费精力。同时,故障计算节点可视为被闲置的计算节点,闲置等于浪费。表1列出了一般运维操作种类及操作时间。
表1
操作 操作方式 平均操作时间
新机器环境配置 自动化脚本 20min
机器上线集群 手动操作 30min
集群资源队列调整 手动操作 10min
机器故障维修 维修人员接入 1day
故障信息统计 手动操作 1hour
集群环境升级 手动操作 1day
本申请实施例提供的HGCP,建设之初先顺利运维流程,需要实现流程化、流程标准化、标准自动化。同时运维自动化解决不了所有问题,不能为了自动化而自动化,20%的重复工作消耗80%的时间、精力,只需要集中精力把20%的重复性工作做好,基本就能达到很好的状态。集群自动化运维工具旨在管理大量的计算节点,同时具有单一的图形用户界面。本申请实施例提供的HGCP集群通过超管平台系统进行机器管理。
其次,软件能力改进。
图6是本申请实施例提供的模型训练方法的流程图,本实施例是从控制节点和计算节点交互的角度,对本申请实施例所述的模型训练方法进行详细说明的,本实施例包括:
100、第一终端上的客户端向API服务器发送训练目标模型所需的资源信息。
101、控制节点接收应用程序接口API服务器发送的第一请求。
其中,所述第一请求是所述API服务器根据第一用户通过第一终端上的客户端发送的训练目标模型所需的资源信息得到的。
示例性的,目前的HPC没有用户客户端,第一用户使用HCP训练模型过程繁琐,这是因为训练脚本的配置、训练数据的访问、训练结果的获取都需要直接到HCP中获取,HPC并未对自身的功能做很好的封装,极大了浪费了第一用户的时间。其中,第一用户通常指研发人员等训练模型的研究人员,模型可以是各种AI模型,如人脸识别模型、人脸检测模型等,本申请实施例并不限制。而本申请实施例提供的模型训练方法,预先对HGCP进行封装,得到一个客户端,该客户端存储在HDFS上,供第一用户下载。第一用户在第一终端设备上下载并安装客户端,该客户端用于向HGCP提交训练任务。
102、所述控制节点根据所述资源信息,为所述目标模型分配目标资源。
目前的HPC训练任务管理粗放,其虽然能够面对多租户,即能够被多个第一用户同时使用,不同的第一用户训练不同的目标模型,但是不同的第一用户的使用需求却又存在波峰波谷,现有的基于slurm的HPC大多数默认使用FIFO排队机制,没有优先级限制,不支持超发,使得某些第一用户资源闲置,而其他的第一用户无资源可用。而本申请实施例中,HGCP的计算资源包括CPU、GPU、内存、FPGA等,第一终端设备的显示界面上显示配置界面,供第一用户配置训练目标模型所需计算节点的个数,对于每个计算节点,需要占用该计算节点的哪些CPU、GPU等,第一终端设备根据用户输入的配置,生成训练目标模型所需的资源信息等,并将该资源信息等发送给API服务器,API服务器对该资源信息等进行整合生成第一请求并发送给控制节点。控制节点在接收到API服务器发送的第一请求后,根据该第一请求为目标模型分配计算资源。例如,第一请求携带的资源信息为4个计算节点和16个GPU,则控制节点为该目标模型分配4个计算节点,假设每个计算节点上有8个GPU,则该4个计算节点分别为该目标模型提供4个GPU,或者,该4个计算节点依次提供4个、6个、2个、2个GPU。
103、所述控制节点向目标计算节点发送第二请求。
其中,所述目标计算节点是包含所述目标资源的计算节点。
示例性的,控制节点为目标模型配置好目标资源后,向包含目标资源的计算节点发送第二请求,以触发目标计算节点训练目标模型。
104、所述目标计算节点使用所述目标资源训练目标模型。
105、所述目标计算节点将训练好的目标模型存储至所述存储节点。
继续沿用步骤102中的例子,则步骤103~105中,继续沿用上述步骤102中的例子,假设提供16个GPU的目标计算节点分别为计算节点1、计算节点2、计算节点3和计算节点4,则该4个计算节点作为目标计算节点,分布式对目标模型进行训练,信令完毕后,将各自训练好的部分存储至存储节点,如存储至HDFS。
本申请实施例提供的模型训练方法,控制节点接收到API服务器发送的第一请求后,根据该第一请求为目标模型分配目标资源,并向包含目标资源的目标计算节点发送第二请求,以触发目标计算节点执行模型训练,并将训练好的模型存储至HDFS系统。采用该种方案,用户通过使用预先封装好了的客户端提交训练任务,无需通过命令行编辑脚本等,过程简单,极大程度上提高了模型训练的效率。
本申请实施例中,软件改进方面,大致包括系统架构的改进、slurm开放(open)应用程序接口(Application Programming Interface,API)的改进,下面,对该两项改进进行详细说明。
第一、系统架构。
图7是本申请实施例提供的模型训练方法中HGCP的系统架构示意图。请参照图7,本申请实施例提供的HGCP系统实现了用户和资源的完全隔离。第一用户从HDFS系统下载并安装客户端(client),通过客户端向API发送训练目标模型所需的资源信息,使得API服务器对该资源信息等进行整合得到第一请求,并向控制节点提交用于训练模型的第一请求。当目标任务在目标节点上运行时,第一用户可以通过第一终端设备向目标计算节点发送查询请求,查询请求用于请求展示所述目标计算节点上的目标资源训练所述目标模型时,所述目标资源的使用状况;目标计算节点接收到该查询请求后,获取训练目标模型这项任务的运行状况,并下载允许过程中产生的数据,之后,目标计算节点向所述第一终端设备发送查询响应,所述查询响应携带所述目标资源的使用状况信息,以使得所述第一终端设备根据所述使用状况信息显示所述目标资源的使用状况。训练好目标模型后,该目标模型被保持到HDFS系统上,第一用户或其他用户可以从HDFS系统上下载最终结果。下面,对图7中的各个模型进行详细说明。
a、客户端。
本申请实施例中,第一用户可以在任何地方下载并按照存储在HDFS系统上的客户端,通过客户端向API服务器发送资源信息等,使得API服务器对资源信息等进行整合得到第一请求,并向控制节点发送第一请求,一个第一请求可以视为一项任务。第一请求携带的资源信息包括下述信息中的至少一个:目标计算节点的数量、利用所述目标计算节点训练所述目标模型时被占用的GPU的数量、利用所述目标计算节点训练所述目标模型时被占用的CPU的数量、所述HDFS系统的路径、所述HDFS的用户名或密码。客户端对应的后台通过本申请实施例所述的slurm OPEN API进行任务的提交、查看、终止、训练数据的获取等操作,作业提交采用异步提交模式。实例性的,可参见图8。
图8是本申请实施例提供的模型训练方法中提交任务的过程示意图。请参照图8,第一用户通过第一终端设备上的客户端向上层提交作业,API服务(server)进行请求鉴权,鉴权通过后作业入库。之后,运行在控制节点上的作业管理(job manager)从数据库获取带提交作业,将作业提提交至HGCP,运行在计算节点上的工作同步(Job SyncController)同步作业运行状态至监视服务器(Monitor server)和slurm资源管理系统。
b、HDFS系统。
本申请实施例提供的HGCP中,HDFS系统是用来临时存储用户执行环境并存储最终训练好的模型的系统,其中,用户执行环境即为上述的客户端。另外,本申请实施例并不限制必须时HDFS系统,在其他可行的实现方式中,也可以是第一用户私有的文件系统。
c、资源调度器。
实例性的,该资源调度器是控制节点上的一个模块,用于根据第一请求为目标模型分配目标资源。资源分配粒度是以GPU为单位而非以计算节点为单位。如果第一用户的一个模型训练任务不能将目标计算节点上的GPU全部用完,该目标计算节点及其剩余的GPU会被分配给其他训练任务。该调度器可以同时支持CPU和GPU的混合调度。例如,第一用户在提交所需资源为GPU的训练任务时,如果不将全部的GPU用完,则其他用户还可以通过剩余的GPU提交训练任务。
d、资源。
本申请实施例中,资源以计算节点和GPU为粒度进行划分,一个训练任务可以运行在不同的计算节点的不同GPU上。
第二、slurm OPEN API。
e、整体架构。
示例性的,可参见图9,图9是本申请实施例提供的模型训练方法中slurm OPENAPI的示意图。请参照图9,该架构包括:
第三方平台,指一些深度学习平台,如飞桨云(paddle clound)等平台;
集群组件,指slurm集群客户端;
API server,指slurm OPEN API的统一入口,负责路由解析和请求处理等;
鉴权(authentication),指slurm集群认证服务模块;
数据库(database),指XDB数据平台,存储用户权限、作业信息、队列额度(quota)等数据;
作业管理(job manager),用于作业管理控制,负责作业排队和提交控制;
作业同步控制器(job sync Controller),负责同步作业状态、GPU利用率、GPU槽位、节点秩(rank)以及时间等数据;
队列同步控制器(Queue SyncController),负责推送队列更新事件至第三方平台(新建队列、队列Quota更新等事件);
节点监控服务(MonitorServer):部署在每个计算节点上,提供训练作业在该计算节点的运行数据。
f、接口鉴权。
Open API接口鉴权主要用于请求身份认证,判断当前请求的合法性,常用方法有令牌(Token)认证,AK/SK认证;为了接口访问安全性,本文采用AK/SK认证方法。一种可行的实现方式中,控制节点接收第二用户利用第二终端设备发送的管理请求,该管理请求携带所述第二用户的访问密钥标识和第一密钥,所述第一密钥是所述第二终端设备利用预设认证机制生成的,所述控制节点调用集群开放应用程序接口Open API对第二用户鉴权时,控制节点调用所述集群Open API,利用所述预设认证机制生成第二密钥,若所述第一密钥和所述第二密钥相同,则所述控制节点确定所述第二用户的管理权限,控制节点根据所述管理权限向所述第二终端设备发送用于更新所述管理平台图形界面的数据流,使得所述第二终端设备更新所述管理平台图形界面并显示,以供所述第二用户通过更新后的管理平台图形界面管理所述集群系统。
示例性的,采用AK/SK认证时,访问密钥标识(access key ID)用于标识第二用户,第一密钥例如为秘密访问密钥(Secret Access Key,SK),是第二用户用于加密认证字符串和服务用来验证认证字符串的密钥,其中,SK必须保密。控制节点接收到第二用户发送的管理请求后,使用相同的预设认证机制生成认证字符串,以下称之为第二密钥。之后,控制节点比对管理请求中的第一密钥和生成的第二密钥,如果该两个密钥相同,则为第二用户指定管理权限,并执行相关操作,如果该两个密钥不相同,则控制节点将忽略该操作并向第二终端设备返回错误代码。
图10是本申请实施例提供的模型训练方法中鉴权的过程示意图。请参照图10,第二用户通过第二终端设备上的客户端向控制节点上的鉴权服务发送AK/SK,鉴权服务向第二终端设备返回令牌(token);之后,第二用户通过第二终端设备上的客户端向控制节点上的API服务发送管理请求和令牌,API服务根据该管理请求和令牌向第二终端设备发送管理响应。
本申请实施例中,第二用户为管理员,可以分为多个等级,如集群管理员、部门管理员、普通用户等,示例性的,可参见表2。
表2
Figure BDA0002380252340000191
Figure BDA0002380252340000201
根据表2可知:可以针对不同的第二用户设置不同的权限。
g、API部署。
示例性的,可参见图11,图11是本申请实施例提供的模型训练方法中api server的部署示意图。请参照图11,为了服务稳定性,api server部署在服务器(server)1、server2和server3等3台服务器上,同时,server1部署job_manager、job_sync_controller和4个apiserver实例,server2和server3部署1个nginx实例和8个api server实例,apiserver和nginx绑定,nginx再和BGW绑定。
h、超管平台。
本申请实施例中,针对HGCP设置超管平台进行机器管理、集群管理等,主要为管理员和用户提供一下几个主要特征:
1)便捷管理:通过HGCP超管平台,管理员可以上线、暂停、启动、重启、下线选定的任何节点,同时管理员还可以批量选定计算节点,通过一次鼠标点击以广播的形式向被选中的节点发出命令;
2)模块化:HGCP超管平台系统运行于LINUX服务器上,使用My SQL数据库存储统计、监控、配置、日志等数据,后端整合为具备通用功能的模块,使用超级文本预处理(Hypertext Preprocessor,PHP)、Python、Ansible、Shell开发,通过超管平台API接口对数据库数据以及计算节点进行操作。前端展示页面面向集群管理员与普通用户,尽可能简化操作,提高效率;
3)高效并发:针对计算节点的环境安装、软件升级更新,管理员能够向集群中所有或者部分节点下发标准环境配置包;
4)可靠:本申请实施例提供的HGCP配有多台控制节点,保证管理系统的容灾性、服务连续性,这些控制节点通过Ansile远程管理集群计算节点,进行环境配置、升级调整、系统检查等操作。
集群系统的管理过程中,控制节点接收第二用户利用第二终端设备发送的管理请求,所述管理请求用于请求管理所述集群系统中的计算节点,所述管理请求是所述第二终端设备根据用户对管理平台图形界面的操作得到的,然后,控制节点调用集群开放应用程序接口Open API对第二用户鉴权;接着,若所述第二用户通过鉴权,则所述控制节点根据所述管理请求管理所述集群系统中的计算节点。示例性的,请参照图12,图12是本申请实施例提供的模型训练方法中超管平台的工作示意图。请参照图12,集群Open API包括集群管理API和机器管理API,第二终端设备的屏幕上显示超管平台的管理平台图形界面,集群管理员通过超过平台图形界面进行集群操作,向下调用集群管理API或机器管理API。其中,调用集群管理API时,管理请求用于请求创建或删除集群,基于该调用,配置数据库中集群信息,底层集群管理模块(cluster_manager)探测到数据库中有新操作任务,开始进行相关操作;调用机器管理API时,管理请求用于请求对所述至少一个计算节点中的任意一个计算节点执行下述任一项操作:上线、下线、重启、重装、维修、屏蔽,基于该调用,配置数据库中节点信息,节点管理模块(node_manager)探测到数据库中有新操作任务,开始进行相关操作。
接下来,对针对集群的操作和节点的操作分别进详细说明。
针对集群的操作包括:
1、创建集群。
创建过程中,首先,对参数进行校验,包括集群是否已存在、上线参数是否合法等;然后,将集群任务写入集群操作任务(cluster_task表),任务操作(task_op)设置为安装(install),任务状态(task-status)设置为待定(pending),最终由集群管理(clustermanager)完成真正的上线操作。
2、删除集群。
为了集群安全,管理员必须先线性集群所有机器,才能删除集群。删除过程中,首先,对参数进行校验,包括集群是否存在,集群是否还存在运行中机器,上线参数是否合法等;然后,将集群任务写入集群操作任务(cluster_task表),任务操作(task_op)设置为卸载(uninstall),任务状态(task-status)设置为待定(pending),最终由集群管理(clustermanager)完成真正的下线操作。
3、集群基本信息列表
该集群基本信息列表包括cluster_info表和cluster_task表,cluster_info表中包含已上线运行的集群信息,cluster_info表中包含处于流程中的集群信息。若该两个表表示同一个集群,如果有下线操作,则状态以cluster_task表中的状态为主。
4、集群详细信息列表
本申请实施例中,只有running状态的集群可调用详情接口。cluster_info表中包含已上线的集群,node_info表中汇聚所需要的信息。
5、集群机器列表展示
该集群机器列表包括node_info表和node_task表,node_info表获取去已上线的机器列表,node_info表获取已上线的机器列表,node_task表获取流程中的机器列表。
6、上线机器
本申请实施例中,上线是一种操作,该操作的效果是对集群系统扩容。上线过程中,首先,对参数进行校验,包括校验集群是否存在、对上线参数的合法性进行校验等。之后,将上线任务写入节点操作任务(node_task表),任务操作(task_op)设置为安装(install),任务状态(task-status)设置为待定(pending),将待上线的及节点信息写入节点信息(node_info)表,标记状态为安装(installing),最终由节点管理(node manager)完成真正的上线操作,以及完成更新task和info表。
7、下线机器
本申请实施例中,下行机器时,自动先将机器标记为不可调度,再执行下线流程。下线过程中,首先对参数进行校验,包括校验集群是否存在、对下线参数的合法性进行校验等。之后,查询节点信息(node_info)表,如果及诶单之前流程出错,则直接从node_info表中删除节点即可,将下线任务写入节点操作任务(node_task表),任务操作(task_op)设置为卸载(uninstall),任务状态(task-status)设置为待定(pending),将待上线的及节点信息写入节点信息(node_info)表,最终由节点管理(node manager)完成真正的下线操作。
8、变更机器屏蔽状态
变更过程中,首先对参数进行校验,包括校验机器是否加入集群、对参数的合法性进行校验等。之后,查询集群信息(cluster_info)表获取集群apiserver地址,调用apiserver接口完成状态屏蔽。
9、变更机器归属
变更过程中,首先对参数进行校验,包括校验机器是否加入集群、对参数的合法性进行校验等。之后,查询集群信息(cluster_info)表获取集群apiserver地址,调用apiserver接口完成机器归属标签变更。
上述介绍了本申请实施例提到的模型训练方法的具体实现,下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
图13为本申请实施例提供的模型训练装置的结构示意图。该装置可以集成在电子设备中或通过电子设备实现,电子设备可以终端设备或服务器等。如图13所示,在本实施例中,该模型训练装置100可以包括:
接收单元11,用于接收应用程序接口API服务器发送的第一请求,所述第一请求是所述API服务器根据第一用户通过第一终端上的客户端发送的训练目标模型所需的资源信息得到的;
处理单元12,用于根据所述资源信息,为所述目标模型分配目标资源;
发送单元13,用于向目标计算节点发送第二请求,使得所述目标计算节点使用所述目标资源训练目标模型。
一种可行的设计中,所述资源信息包括下述信息中的至少一个:目标计算节点的数量、利用所述目标计算节点训练所述目标模型时被占用的GPU的数量、利用所述目标计算节点训练所述目标模型时被占用的CPU的数量。
一种可行的设计中,所述接收单元11,还用于接收第二终端设备发送的管理请求,所述管理请求用于请求管理所述集群系统中的计算节点;
所述处理单元12,还用于根据所述管理请求管理所述集群系统中的计算节点。
一种可行的设计中,所述处理单元12,在根据所述管理请求管理所述集群系统中的计算节点时,调用集群开放应用程序接口Open API对第二用户鉴权,若所述第二用户通过鉴权,则根据所述管理请求管理所述集群系统中的计算节点。
一种可行的设计中,所述管理请求携带所述第二用户的访问密钥标识和第一密钥,所述第一密钥是所述第二终端设备利用预设认证机制生成的,所述处理单元12,用于调用所述集群Open API,利用所述预设认证机制生成第二密钥,若所述第一密钥和所述第二密钥相同,则确定所述第二用户的管理权限;
所述发送单元13,还用于根据所述管理权限向所述第二终端设备发送权限信息,以使得所述第二终端设备根据所述权限信息显示所述第二用户对应的权限。
一种可行的设计中,所述集群Open API包括集群管理API,所述管理请求用于请求创建或删除集群;
或者,
所述集群Open API包括机器管理API,所述管理请求用于请求对所述至少一个计算节点中的任意一个计算节点执行下述任一项操作:上线、下线、重启、重装、维修、屏蔽。
本申请实施例提供的装置,可用于如上实施例中控制节点执行的方法,其实现原理和技术效果类似,在此不再赘述
图14为本申请实施例提供的模型训练装置的结构示意图。该装置可以集成在电子设备中或通过电子设备实现,电子设备可以终端设备或服务器等。如图14所示,在本实施例中,该模型训练装置200可以包括:
接收单元21,用于接收控制节点发送的第二请求,所述第二请求是所述控制节点接收到应用程序接口API服务器发送的第一请求并为目标模型分配目标资源后发送的,所述第一请求是所述API服务器根据第一用户通过第一终端上的客户端发送的训练目标模型所需的资源信息得到的,所述目标节点包含于所述至少一个计算节点;
处理单元22,用于使用所述目标资源训练所述目标模型;
发送单元23,用于将训练好的目标模型发送至存储节点。
一种可行的设计中,所述资源信息包括下述信息中的至少一个:目标计算节点的数量、利用所述目标计算节点训练所述目标模型时被占用的GPU的数量、利用所述目标计算节点训练所述目标模型时被占用的CPU的数量。
一种可行的设计中,所述接收单元21,还用于接收所述第一终端设备发送的查询请求,所述查询请求用于请求展示所述目标计算节点上的目标资源训练所述目标模型时所述目标资源的使用状况;
所述发送单元23,还用于向所述第一终端设备发送查询响应,所述查询响应携带所述目标资源的使用状况信息,以使得所述第一终端设备根据所述使用状况信息显示所述目标资源的使用状况。
本申请实施例提供的装置,可用于如上实施例中目标计算节点执行的方法,其实现原理和技术效果类似,在此不再赘述。
图15是用来实现本申请实施例的模型训练方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图15所示,该电子设备包括:一个或多个处理器31、存储器32,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图15中以一个处理器31为例。
存储器32即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请所提供的模型训练的方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的模型训练的方法。
存储器32作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的模型训练的方法对应的程序指令/模块(例如,附图13所示的接收单元11、处理单元12和发送单元13,以及附图14所示的接收单元21、处理单元22和发送单元23)。处理器31通过运行存储在存储器32中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的模型训练的方法。
存储器32可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据模型训练的电子设备的使用所创建的数据等。此外,存储器32可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器32可选包括相对于处理器31远程设置的存储器,这些远程存储器可以通过网络连接至模型训练的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
模型训练的方法的电子设备还可以包括:输入装置33和输出装置34。处理器31、存储器32、输入装置33和输出装置34可以通过总线或者其他方式连接,图15中以通过总线连接为例。
输入装置33可接收输入的数字或字符信息,以及产生与模型训练的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置34可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
本申请实施例还提供一种集群系统,包括:控制节点和至少一个计算节点,其中,所述控制节点,与所述至少一个计算节点中的各计算节点基于传输控制协议TCP建立网络连接;所述计算节点的计算资源包括至少一个中央处理器CPU和至少一个图形处理器GPU。
根据本申请实施例提供的技术方案,通过引入GPU作为计算资源,大幅度提升集群系统的硬件能力,进而提升模型训练的效率;在软件方面,通过对slurm框架进行优化,引入客户端、超级管理平台等,使得集群系统用起来更方便。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。

Claims (23)

1.一种集群系统,其特征在于,包括:控制节点、至少一个计算节点、存储节点;其中,
所述控制节点,与所述至少一个计算节点中的各计算节点建立连接,用于为训练目标模型的任务分配计算资源;
所述计算节点包括至少一个中央处理器CPU和至少一个图形处理器GPU,用于利用所述计算资源训练目标模型;
所述存储节点与所述至少一个计算节点中的各计算节点建立网络连接,用于存储训练目标模型所需的数据。
2.根据权利要求1所述的系统,其特征在于,
所述至少一个计算节点中的任意两个计算节点基于无限带宽Infiniband技术互联建立网络连接,所述计算节点内部的CPU与GPU通过高速外围组件互联PCIE连接,所述计算节点内部的GPU与GPU通过NVlink连接。
3.一种模型训练方法,其特征在于,适用于控制节点、至少一个计算节点、存储节点的集群系统,所述方法包括:
所述控制节点接收应用程序接口API服务器发送的第一请求,所述第一请求是所述API服务器根据第一用户通过第一终端上的客户端发送的训练目标模型所需的资源信息得到的;
所述控制节点根据所述资源信息,为所述目标模型分配目标资源;
所述控制节点向目标计算节点发送第二请求,使得所述目标计算节点使用所述目标资源训练目标模型。
4.根据权利要求3所述的方法,其特征在于,所述资源信息包括下述信息中的至少一个:目标计算节点的数量、利用所述目标计算节点训练所述目标模型时被占用的GPU的数量、利用所述目标计算节点训练所述目标模型时被占用的CPU的数量。
5.根据权利要求3或4所述的方法,其特征在于,还包括:
所述控制节点接收第二终端设备发送的管理请求,所述管理请求用于请求管理所述集群系统中的计算节点;
所述控制节点根据所述管理请求管理所述集群系统中的计算节点。
6.根据权利要求5所述的方法,其特征在于,所述控制节点根据所述管理请求管理所述集群系统中的计算节点,包括:
所述控制节点调用集群开放应用程序接口Open API对第二用户鉴权;
若所述第二用户通过鉴权,则所述控制节点根据所述管理请求管理所述集群系统中的计算节点。
7.根据权利要求6所述的方法,其特征在于,所述管理请求携带所述第二用户的访问密钥标识和第一密钥,所述第一密钥是所述第二终端设备利用预设认证机制生成的,所述控制节点调用集群开放应用程序接口Open API对第二用户鉴权,包括:
所述控制节点调用所述集群Open API,利用所述预设认证机制生成第二密钥;
若所述第一密钥和所述第二密钥相同,则所述控制节点确定所述第二用户的管理权限;
所述控制节点根据所述管理权限向所述第二终端设备发送权限信息,以使得所述第二终端设备根据所述权限信息显示所述第二用户对应的权限。
8.根据权利要求6所述的方法,其特征在于,
所述集群Open API包括集群管理API,所述管理请求用于请求创建或删除集群;
或者,
所述集群Open API包括机器管理API,所述管理请求用于请求对所述至少一个计算节点中的任意一个计算节点执行下述任一项操作:上线、下线、重启、重装、维修、屏蔽。
9.一种模型训练方法,其特征在于,适用于控制节点、至少一个计算节点、存储节点的集群系统,所述方法包括:
目标计算节点接收控制节点发送的第二请求,所述第二请求是所述控制节点接收到应用程序接口API服务器发送的第一请求并为目标模型分配目标资源后发送的,所述第一请求是所述API服务器根据第一用户通过第一终端上的客户端发送的训练目标模型所需的资源信息得到的,所述目标节点包含于所述至少一个计算节点;
所述目标计算节点使用所述目标资源训练所述目标模型;
所述目标计算节点将训练好的目标模型发送至存储节点。
10.根据权利要求9所述的方法,其特征在于,所述资源信息包括下述信息中的至少一个:目标计算节点的数量、利用所述目标计算节点训练所述目标模型时被占用的GPU的数量、利用所述目标计算节点训练所述目标模型时被占用的CPU的数量。
11.根据权利要求9或10所述的方法,其特征在于,还包括:
所述目标计算节点接收所述第一终端设备发送的查询请求,所述查询请求用于请求展示所述目标计算节点上的目标资源训练所述目标模型时所述目标资源的使用状况;
所述目标计算节点向所述第一终端设备发送查询响应,所述查询响应携带所述目标资源的使用状况信息,以使得所述第一终端设备根据所述使用状况信息显示所述目标资源的使用状况。
12.一种模型训练装置,其特征在于,包括:
接收单元,用于接收应用程序接口API服务器发送的第一请求,所述第一请求携带训练目标模型所需的资源信息,所述第一请求是所述API服务器根据第一用户通过第一终端上的客户端发送的训练目标模型所需的资源信息得到的;
处理单元,用于根据所述资源信息,为所述目标模型分配目标资源;
发送单元,用于向目标计算节点发送第二请求,使得所述目标计算节点使用所述目标资源训练目标模型。
13.根据权利要求12所述的装置,其特征在于,所述资源信息包括下述信息中的至少一个:目标计算节点的数量、利用所述目标计算节点训练所述目标模型时被占用的GPU的数量、利用所述目标计算节点训练所述目标模型时被占用的CPU的数量。
14.根据权利要求12或13所述的装置,其特征在于,
所述接收单元,还用于接收第二终端设备发送的管理请求,所述管理请求用于请求管理集群系统中的计算节点;
所述处理单元,还用于根据所述管理请求管理所述集群系统中的计算节点。
15.根据权利要求14所述的装置,其特征在于,
所述处理单元,在根据所述管理请求管理所述集群系统中的计算节点时,调用集群开放应用程序接口Open API对第二用户鉴权,若所述第二用户通过鉴权,则根据所述管理请求管理所述集群系统中的计算节点。
16.根据权利要求15所述的装置,其特征在于,
所述管理请求携带所述第二用户的访问密钥标识和第一密钥,所述第一密钥是所述第二终端设备利用预设认证机制生成的,所述处理单元,用于调用所述集群Open API,利用所述预设认证机制生成第二密钥,若所述第一密钥和所述第二密钥相同,则确定所述第二用户的管理权限;
所述发送单元,还用于根据所述管理权限向所述第二终端设备发送权限信息,以使得所述第二终端设备根据所述权限信息显示所述第二用户对应的权限。
17.根据权利要求15所述的装置,其特征在于,
所述集群Open API包括集群管理API,所述管理请求用于请求创建或删除集群;
或者,
所述集群Open API包括机器管理API,所述管理请求用于请求对所述至少一个计算节点中的任意一个计算节点执行下述任一项操作:上线、下线、重启、重装、维修、屏蔽。
18.一种模型训练装置,其特征在于,包括:
接收单元,用于接收控制节点发送的第二请求,所述第二请求是所述控制节点接收到应用程序接口API服务器发送的第一请求并为目标模型分配目标资源后发送的,所述第一请求是所述API服务器根据第一用户通过第一终端上的客户端发送的训练目标模型所需的资源信息得到的,所述目标节点包含于至少一个计算节点;
处理单元,用于使用所述目标资源训练所述目标模型;
发送单元,用于将训练好的目标模型发送至存储节点。
19.根据权利要求18所述的装置,其特征在于,所述资源信息包括下述信息中的至少一个:目标计算节点的数量、利用所述目标计算节点训练所述目标模型时被占用的GPU的数量、利用所述目标计算节点训练所述目标模型时被占用的CPU的数量。
20.根据权利要求18或19所述的装置,其特征在于,
所述接收单元,还用于接收所述第一终端设备发送的查询请求,所述查询请求用于请求展示所述目标计算节点上的目标资源训练所述目标模型时所述目标资源的使用状况;
所述发送单元,还用于向所述第一终端设备发送查询响应,所述查询响应携带所述目标资源的使用状况信息,以使得所述第一终端设备根据所述使用状况信息显示所述目标资源的使用状况。
21.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求3-8中任一项所述的方法;或者,以使所述至少一个处理器能够执行权利要求9-11任一项所述的方法。
22.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行权利要求3-8中任一项所述的方法;或者,所述计算机指令用于使所述计算机执行权利要求9-11中任一项所述的方法。
23.一种集群系统,其特征在于,包括:控制节点和至少一个计算节点,其中,
所述控制节点,与所述至少一个计算节点中的各计算节点基于传输控制协议TCP建立网络连接;
所述计算节点的计算资源包括至少一个中央处理器CPU和至少一个图形处理器GPU。
CN202010080825.4A 2020-02-05 2020-02-05 模型训练方法、装置及集群系统 Pending CN111327692A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202010080825.4A CN111327692A (zh) 2020-02-05 2020-02-05 模型训练方法、装置及集群系统
PCT/CN2020/117723 WO2021155667A1 (zh) 2020-02-05 2020-09-25 模型训练方法、装置及集群系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010080825.4A CN111327692A (zh) 2020-02-05 2020-02-05 模型训练方法、装置及集群系统

Publications (1)

Publication Number Publication Date
CN111327692A true CN111327692A (zh) 2020-06-23

Family

ID=71172573

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010080825.4A Pending CN111327692A (zh) 2020-02-05 2020-02-05 模型训练方法、装置及集群系统

Country Status (2)

Country Link
CN (1) CN111327692A (zh)
WO (1) WO2021155667A1 (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111984744A (zh) * 2020-08-13 2020-11-24 孙小丽 基于远程通信和人工智能的信息处理方法及云端服务平台
CN112087506A (zh) * 2020-09-01 2020-12-15 北京字节跳动网络技术有限公司 一种集群节点管理方法、装置及计算机存储介质
CN112241321A (zh) * 2020-09-24 2021-01-19 北京影谱科技股份有限公司 基于Kubernetes的算力调度方法和装置
CN113033098A (zh) * 2021-03-26 2021-06-25 山东科技大学 一种基于AdaRW算法的海洋目标检测深度学习模型训练方法
WO2021155667A1 (zh) * 2020-02-05 2021-08-12 北京百度网讯科技有限公司 模型训练方法、装置及集群系统
CN114584455A (zh) * 2022-03-04 2022-06-03 吉林大学 一种基于企业微信的中小型高性能集群监控系统
WO2022206717A1 (zh) * 2021-03-31 2022-10-06 华为技术有限公司 一种模型训练方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107480717A (zh) * 2017-08-16 2017-12-15 北京奇虎科技有限公司 训练作业处理方法及系统、计算设备、计算机存储介质
CN107766148A (zh) * 2017-08-31 2018-03-06 北京百度网讯科技有限公司 一种异构集群及任务处理方法和装置
US20180314926A1 (en) * 2017-04-28 2018-11-01 Intel Corporation Smart memory handling and data management for machine learning networks
CN109409738A (zh) * 2018-10-25 2019-03-01 平安科技(深圳)有限公司 基于区块链平台进行深度学习的方法、电子装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110018817A (zh) * 2018-01-05 2019-07-16 中兴通讯股份有限公司 数据的分布式运行方法及装置、存储介质及处理器
CN108564164B (zh) * 2018-01-08 2022-04-29 中山大学 一种基于spark平台的并行化深度学习方法
CN109086134A (zh) * 2018-07-19 2018-12-25 郑州云海信息技术有限公司 一种深度学习作业的运行方法和装置
CN110413294B (zh) * 2019-08-06 2023-09-12 中国工商银行股份有限公司 服务发布系统、方法、装置和设备
CN111327692A (zh) * 2020-02-05 2020-06-23 北京百度网讯科技有限公司 模型训练方法、装置及集群系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180314926A1 (en) * 2017-04-28 2018-11-01 Intel Corporation Smart memory handling and data management for machine learning networks
CN107480717A (zh) * 2017-08-16 2017-12-15 北京奇虎科技有限公司 训练作业处理方法及系统、计算设备、计算机存储介质
CN107766148A (zh) * 2017-08-31 2018-03-06 北京百度网讯科技有限公司 一种异构集群及任务处理方法和装置
CN109409738A (zh) * 2018-10-25 2019-03-01 平安科技(深圳)有限公司 基于区块链平台进行深度学习的方法、电子装置

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021155667A1 (zh) * 2020-02-05 2021-08-12 北京百度网讯科技有限公司 模型训练方法、装置及集群系统
CN111984744A (zh) * 2020-08-13 2020-11-24 孙小丽 基于远程通信和人工智能的信息处理方法及云端服务平台
CN112087506A (zh) * 2020-09-01 2020-12-15 北京字节跳动网络技术有限公司 一种集群节点管理方法、装置及计算机存储介质
CN112087506B (zh) * 2020-09-01 2023-02-07 北京火山引擎科技有限公司 一种集群节点管理方法、装置及计算机存储介质
CN112241321A (zh) * 2020-09-24 2021-01-19 北京影谱科技股份有限公司 基于Kubernetes的算力调度方法和装置
CN113033098A (zh) * 2021-03-26 2021-06-25 山东科技大学 一种基于AdaRW算法的海洋目标检测深度学习模型训练方法
CN113033098B (zh) * 2021-03-26 2022-05-17 山东科技大学 一种基于AdaRW算法的海洋目标检测深度学习模型训练方法
WO2022206717A1 (zh) * 2021-03-31 2022-10-06 华为技术有限公司 一种模型训练方法及装置
CN114584455A (zh) * 2022-03-04 2022-06-03 吉林大学 一种基于企业微信的中小型高性能集群监控系统
CN114584455B (zh) * 2022-03-04 2023-06-30 吉林大学 一种基于企业微信的中小型高性能集群监控系统

Also Published As

Publication number Publication date
WO2021155667A1 (zh) 2021-08-12

Similar Documents

Publication Publication Date Title
CN111327692A (zh) 模型训练方法、装置及集群系统
JP7421511B2 (ja) アプリケーションをデプロイするための方法及び装置、電子機器、読み取り可能な記憶媒体並びにコンピュータプログラム
CN112668386A (zh) 使用机器人过程自动化用于文档处理的长时间运行工作流
US10977076B2 (en) Method and apparatus for processing a heterogeneous cluster-oriented task
CN109245908B (zh) 一种主从集群切换的方法和装置
US10498817B1 (en) Performance tuning in distributed computing systems
CN113157459A (zh) 一种基于云服务的负载信息处理方法及系统
Cohen et al. Introducing new deformable surfaces to segment 3D images
Lin et al. A heuristic task scheduling algorithm for heterogeneous virtual clusters
CN111783053A (zh) 一种交互式统一大数据编程计算平台
US8977752B2 (en) Event-based dynamic resource provisioning
CN113204425B (zh) 供进程管理内部线程的方法、装置、电子设备及存储介质
CN105933136B (zh) 一种资源调度方法及系统
CN114237853A (zh) 应用于异构系统的任务执行方法、装置、设备、介质和程序产品
CN113806097A (zh) 一种数据处理方法、装置、电子设备以及存储介质
Rashmi et al. Resource optimised workflow scheduling in Hadoop using stochastic hill climbing technique
CN111435315A (zh) 分配资源的方法、装置、设备和计算机可读介质
CN114579250A (zh) 一种构建虚拟集群的方法、装置及存储介质
CN113760638A (zh) 一种基于kubernetes集群的日志服务方法和装置
CN111767149A (zh) 调度方法、装置、设备及存储设备
CN110928659A (zh) 一种具有自适应功能的数值水池系统远程多平台接入方法
CN102902593A (zh) 基于缓存机制的协议分发处理系统
CN113472886B (zh) 分布式集群系统及其控制方法
CN112667393B (zh) 分布式任务计算调度框架搭建的方法、装置及计算机设备
US9772877B2 (en) Managing I/O operations in a shared file system

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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20200623