框架的部署方法、装置、计算机设备和存储介质与流程

文档序号:26101484发布日期:2021-07-30 18:12阅读:50来源:国知局
框架的部署方法、装置、计算机设备和存储介质与流程

本申请涉及深度学习技术领域,特别是涉及一种框架的部署方法、装置、计算机设备和存储介质。



背景技术:

在深度学习发展阶段,每个深度学习研究者都需要写大量的重复代码,为了提高工作效率,这些研究者就将这些代码写成了一个框架放到网上让所有研究者一起使用。接着,网上就出现了不同的框架用于深度学习技术产品的开发和测试,因此,如何将深度学习的框架快速的部署至物理机上即成为了当下研究者关注的问题。

目前,将深度学习框架部署在物理机上时,物理机通常需要先从官方库中下载已有的深度学习框架的安装包,再结合所依赖本机环境下的各种依赖安装包、本机的开发环境、操作系统的版本和设备硬件配置参数等重新编译生成深度学习框架的安装包,实现深度学习框架在本机设备上的部署。

随着部署深度学习框架的异构计算平台兴起,新兴的异构计算平台构建自己的软件栈体系并提供了对应的加速卡。主流的加速卡厂商除了nvidia以外,rocm体系也迅速兴起。但是,这些新兴的异构计算平台上的软件架构并不完备,比如,现有主流nvidia平台上pytorch框架的部署及测试存在大量的指导文档,一般可提供编译好的二进制包实现直接安装和使用,可实现深度学习框架的快速部署。然而,rocm平台上的软件架构并不完备,一些通用的库功能还在相继的开发完善中。官方的torch二进制安装包几乎没有,官网上的部署文档多数基于ubuntu系统,针对centos等其他linux系统的少之又少。这种局面间接导致只能通过源码编译的方式产出合理的版本的目标框架来匹配异构计算平台进行部署。

但是,当将深度学习框架部署在物理机集群,特别是部署在保密性较高的国产异构计算平台的集群时,使用上述方法存在部署效率低下的问题。



技术实现要素:

基于此,有必要针对上述技术问题,提供一种能够提高在集群的物理机中软件框架的部署效率的框架的部署方法、装置、计算机设备和存储介质。

第一方面,一种框架的部署方法,所述方法包括:

根据待部署集群中的各物理机的开发环境信息,搭建所述待部署集群的目标框架的开发环境;

获取所述目标框架的配置文件,并在所述目标开发环境中根据所述配置文件生成所述目标框架;

对所述目标框架进行功能性验证,并在所述目标框架验证通过的情况下将所述目标框架的框架安装包存储在共享服务器上,以使所述待部署集群中的各物理机从所述共享服务器上获取所述框架安装包进行所述目标框架的部署。

上述实施例所述的方法,测试机通过待部署集群中的各物理机的开发环境信息预先搭建待部署集群的目标框架的开发环境,实现了在测试机上模拟待部署集群中的各物理机的开发环境,可以使之后基于该模拟的开发环境获取到的目标框架能够适用于待部署集群中的任一物理机,因此,当待部署集群中的任一物理机需要部署目标框架时,物理机用户不需要再结合自身开发环境对目标框架进行配置,以及重新编译生成目标框架的安装包,减少了很多环境配置所需的复杂操作流程,而物理机用户可以从共享服务器上获取到目标框架的框架安装包后直接安装使用,极大的提高了目标框架在物理机上的部署效率,特别是面对集群的物理机部署时,由于集群中各物理机的开发环境和用户需求均不相同,而应用上述方法实现集群的各物理机的部署时,由于共享服务器上存储的目标框架的框架安装包是预先通过模拟待部署集群的开发环境得到的,所以目标框架的框架安装包不会因各物理机开发环境差异和物理机用户差异而需要重新编译生成,进一步的提高了集群的物理机的部署效率。

在其中一个实施例中,所述根据待部署集群中的各物理机的开发环境信息,搭建所述待部署集群的目标框架的开发环境,包括:

获取所述目标框架的镜像文件;

在所述目标框架的镜像文件中添加各所述物理机的开发环境信息;

根据添加后的镜像文件生成所述目标框架的目标开发环境。

本实施例实现了模拟待部署集群中的各物理机的开发环境的方法,且通过在镜像文件上添加各物理机的开发环境信息的方式搭建目标框架的开发环境。其中由于目标框架的镜像文件包含了目标框架的基础开发环境,则在该镜像文件的基础上添加各物理机的开发环境信息,即可迅速匹配待部署集群的开发环境,如果后期待部署集群的各物理机的开发环境发生变换时,不需要反复配置目标框架的基础开发环境,只需要额外修改各物理机的开发环境信息即可,进而提高了测试机搭建目标框架的开发环境的效率和历史数据的重复使用性。

在其中一个实施例中,所述各所述物理机的开发环境信息包括:所述待部署集群中的各物理机的编译器、网络接口、相关依赖的应用库、分布式插件、rocm系统。

在其中一个实施例中,所述对所述目标框架进行功能性验证,并在所述目标框架验证通过的情况下将所述目标框架的框架安装包存储在共享存储服务器上,包括:

在测试机的开发环境下,使用预设的测试用例在所述目标框架上进行功能性测试;

若所述功能性测试通过,则向所述共享服务器发送验证请求,以使所述共享服务器对所述目标框架进行功能性验证,并在功能性验证通过的情况下存储所述验证请求中包括的所述目标框架的框架安装包。

本实施例中,在测试机得到目标框架时,进一步的在测试机上进行功能性验证,以验证目标框架是否可用以及是否存在缺省的库,使测试机可以得到有效可用的目标框架后再部署到集群中的各物理机上,避免之后物理机在部署目标框架时出现目标框架不适用的问题,提高目标框架部署的效率。

在其中一个实施例中,所述方法还包括:

若所述功能性测试未通过,则重新生成所述目标框架,并返回执行所述在测试机的开发环境下,使用预设的测试用例在所述目标框架上进行功能性测试的步骤,直到功能性测试通过为止。

在其中一个实施例中,所述验证请求还包括所述目标框架的依赖安装包,所述依赖安装包是所述测试机在使用所述测试用例对所述目标框架进行功能性测试的过程中抓取的功能性依赖安装包,

所述若所述功能性测试通过,则向所述共享服务器发送验证请求,以使所述共享服务器对所述目标框架进行功能性验证,并在功能性验证通过的情况下存储所述验证请求中包括的所述目标框架的框架安装包,包括:

若所述功能性测试通过,则向所述共享服务器发送验证请求,以使所述共享服务器对所述目标框架进行功能性验证,并在功能性验证通过的情况下存储所述验证请求中包括的所述目标框架的框架安装包和所述目标框架的依赖安装包。

本实施例中,在测试机对目标框架进行功能性验证的过程中,可以抓取到目标框架的依赖安装包,由于目标框架的依赖安装包是根据测试用例对应的各功能依赖得到的,属于一些基础功能对应的安装包,在实际应用中被使用的频率较高,因此本实施例的验证请求中还包括了目标框架的依赖安装包,使之后物理机还可以获取到该依赖安装包进行目标框架的部署,实现相应功能的应用,不需要物理机用户再自行根据相应功能配置文件编译生成依赖安装包实现对应功能应用,从而使上述部署方法可以满足更多用户需求,从而提高了上述部署方法的适用性。

第二方面,一种框架的部署方法,其特征在于,所述方法包括:

从共享服务器上获取目标框架的框架安装包;所述框架安装包是测试机根据待部署集群中的各物理机的开发环境信息搭建的所述待部署集群的目标框架的开发环境、所述目标框架的配置文件、以及通过所述测试机进行功能性验证和所述共享服务器进行功能性验证后得到安装包;

根据所述框架安装包进行所述目标框架的部署。

本实施例中,由于共享服务器上存储的目标框架的框架安装包是测试机通过模拟物理机的开发环境编译生成的,使该目标框架的框架安装包可以适用于集群中的任一物理,因此,当集群中的各物理机进行目标框架的部署时,可以直接从共享服务器上获取目标框架的框架安装包进行安装不需要再结合本机的开发环境重新编译生成目标框架的安装包再进行安装部署,简化了目标框架的部署流程,实现了目标框架的快速部署。

第三方面,一种框架的部署方法,其特征在于,所述方法包括:

接收测试机发送的验证请求;所述验证请求中包括目标框架的框架安装包,所述框架安装包是所述测试机根据待部署集群中的各物理机的开发环境信息搭建的所述待部署集群的目标框架的开发环境、所述目标框架的配置文件、以及通过所述测试机进行功能性验证后得到安装包;

根据所述验证请求对目标框架进行功能性验证;

在所述功能性验证通过的情况下存储所述目标框架的框架安装包,以使所述待部署集群中的各物理机从所述共享服务器上获取所述框架安装包进行所述目标框架的部署。

本实施例中,由于共享服务器上存储的目标框架的框架安装包是测试机通过模拟物理机的开发环境编译生成的,使该目标框架的框架安装包可以适用于集群中的任一物理机,而且共享服务器对框架进行了进一步的功能性验证,以验证目标框架可以应用在共享服务器上,从而进一步的提高了目标框架的适用性,因此,当集群中的各物理机进行目标框架的部署时,可以直接从共享服务器上获取目标框架的框架安装包进行安装不需要再结合本机的开发环境重新编译生成目标框架的安装包再进行安装部署,简化了目标框架的部署流程,实现了目标框架的快速部署。

第四方面,一种框架的部署装置,所述装置包括:

搭建模块,用于根据待部署集群中的各物理机的开发环境信息,搭建所述待部署集群的目标框架的开发环境;

获取模块,用于获取所述目标框架的配置文件,并在所述目标开发环境中根据所述配置文件生成所述目标框架;

验证部署模块,用于对所述目标框架进行功能性验证,并在所述目标框架验证通过的情况下将所述目标框架的框架安装包存储在共享服务器上,以使所述待部署集群中的各物理机从所述共享服务器上获取所述框架安装包进行所述目标框架的部署。

第五方面,一种框架的部署装置,所述装置包括:

获取模块,用于从共享服务器上获取目标框架的框架安装包;所述框架安装包是测试机根据待部署集群中的各物理机的开发环境信息搭建的所述待部署集群的目标框架的开发环境、所述目标框架的配置文件、以及通过所述测试机进行功能性验证和所述共享服务器进行功能性验证后得到安装包;

部署模块,用于根据所述框架安装包进行所述目标框架的部署。

第六方面,一种框架的部署装置,所述装置包括:

接收模块,用于接收测试机发送的验证请求;所述验证请求中包括目标框架的框架安装包,所述框架安装包是所述测试机根据待部署集群中的各物理机的开发环境信息搭建的所述待部署集群的目标框架的开发环境、所述目标框架的配置文件、以及通过所述测试机进行功能性验证后得到安装包;

验证模块,用于根据所述验证请求对目标框架进行功能性验证;

存储模块,用于在所述功能性验证通过的情况下存储所述目标框架的框架安装包,以使所述待部署集群中的各物理机从所述共享服务器上获取所述框架安装包进行所述目标框架的部署。

第七方面,一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述第一方面的方法。

第八方面,一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述第二方面的方法。

第九方面,一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述第三方面的方法。

第十方面,一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面的方法。

第十一方面,一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述第二方面的方法。

第十二方面,一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述第三方面的方法。

附图说明

图1为一个实施例中应用系统的结构示意图;

图2为一个实施例中框架的部署方法的流程示意图;

图3为图2实施例中s101的一种实现方式的流程示意图;

图4为图2实施例中s103的一种实现方式的流程示意图;

图5为一个实施例中框架的部署方法的流程示意图;

图6为一个实施例中框架的部署方法的流程示意图;

图7为一个实施例中框架的部署方法的流程示意图;

图8为一个实施例中框架的部署装置的结构框图;

图9为一个实施例中框架的部署装置的结构框图;

图10为一个实施例中框架的部署装置的结构框图;

图11为一个实施例中框架的部署装置的结构框图;

图12为一个实施例中框架的部署装置的结构框图;

图13为一个实施例中计算机设备的内部结构图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

本申请提供的框架的部署方法,可以应用于如图1所示的应用系统中。其中,测试机与共享服务器连接,共享服务器与计算节点集群连接,共享服务器和计算节点集群可以处于内网中,不与外网连接。计算节点集群中包括多台物理机,其可以是基于国产异构计算平台的非联网计算节点集群,也可以是基于国产异构计算平台的联网计算节点集群。计算节点集群中的各物理机可以用于部署各种类型的软件框架进行机器学习模型或深度学习模型的推理。测试机可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和服务器等;共享服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。

本领域技术人员可以理解,图1中示出的应用系统的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的应用系统的限定,具体的应用系统可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,如图2所示,提供了一种框架的部署方法,以该方法应用于图1中的测试机为例进行说明,包括以下步骤:

s101,根据待部署集群中各物理机的开发环境信息,搭建待部署集群的目标框架的开发环境。

其中,各物理机的开发环境信息可以包括各物理机的编译器、网络接口、相关依赖的应用库、分布式插件、生态系统等一系列与待部署集群的开发环境相关的程序文件。其中的生态系统可以是rocm系统,nvidia系统等。目标框架可以是机器学习框架,也可以是深度学习框架,例如,目标框架可以是pytorch框架、tensorflow框架等。

本实施例中,测试机可以在联网的环境下实时的从待部署集群中各物理机上获取各物理机的当前硬件和/或软件的相关配置文件,并根据相关配置文件得到各物理机的开发环境;可选的,测试机也可以在非联网的环境下预先获取到待部署集群中各物理机的相关硬件和/或软件的相关配置文件,再根据该相关配置文件得到各物理机的开发环境。在测试机得到待部署集群中各物理机的开发环境,即待部署集群的开发环境后,即可搭建与该待部署集群的开发环境一致的开发环境,并将搭建的开发环境作为目标框架在待部署集群上部署时的开发环境,以实现在测试机上模拟待部署集群的开发环境。

当测试机模拟好待部署集群的开发环境后,即可进一步的结合目标框架的部署环境信息或者结合目标框架的部署需求,搭建目标框架的开发环境。在一种应用场景下,测试机搭建目标框架的开发环境的过程包括:测试机获取待部署集群中各物理机的开发环境信息和目标框架的部署环境信息,然后对待部署集群中各物理机的开发环境信息所包含的程序文件,以及目标框架的部署环境信息所包含的程序文件进行一起编译生成待部署集群的目标框架的开发环境;可选的,测试机也可以先对目标框架的部署环境信息所包含的程序文件进行编译生成过程文件,再进一步的基于该过程文件添加待部署集群中各物理机的开发环境信息所包含的程序文件后进行再次编译生成待部署集群的目标框架的开发环境;可选的,测试机还可以先对待部署集群中各物理机的开发环境信息进行编译生成过程文件,再进一步的基于该过程文件添加目标框架的部署环境信息所包含的程序文件后进行再次编译生成待部署集群的目标框架的开发环境。

例如,若目标框架的部署环境信息包括诸如目标框架部署时所需的应用系统、应用系统依赖的应用库、基本功能配置参数等与目标框架部署相关的程序文件;各物理机的开发环境信息包括各物理机的编译器、网络接口、相关依赖的应用库、分布式插件、生态系统等一系列与待部署集群的开发环境相关的程序文件;具体的,测试机可以将目标框架部署时所需的应用系统、应用系统依赖的应用库、基本功能配置参数等与目标框架相关的程序文件,以及各物理机的编译器、网络接口、相关依赖的应用库、分布式插件、生态系统等一系列与待部署集群的开发环境相关的程序文件进行编译生成待部署集群的目标框架的开发环境。可选的,测试机也可以先对将目标框架部署时所需的应用系统、应用系统依赖的应用库、基本功能配置参数等与目标框架相关的程序文件进行编译生成过程文件,再在该过程文件中添加各物理机的编译器、网络接口、相关依赖的应用库、分布式插件、生态系统等一系列与待部署集群的开发环境相关的程序文件,最后对添加后的过程文件进行编译生成待部署集群的目标框架的开发环境。

s102,获取目标框架的配置文件,并在开发环境中根据配置文件生成目标框架。

其中,目标框架的配置文件可以是目标框架的源码工程。本实施例中,测试机可以直接在联网的环境下从相关数据库(例如官方仓库)中下载目标框架的源码工程,然后在之前搭建好的目标框架的开发环境中进行编译,生成目标框架。可选的,在编译过程中测试机可以按照需求配置并安装编译选项,例如是否使用mpi接口、ibverbs插件等,然后将编译过程中产生的选项工具安装包借助centos的rpm包缓存到指定的路径,方便后期待部署集群可以从测试机上下载得到选项工具安装包进行使用。

s103,对目标框架进行功能性验证,并在目标框架验证通过的情况下将目标框架的框架安装包存储在共享服务器上,以使待部署集群中的各物理机从共享服务器上获取框架安装包进行目标框架的部署。

本实施例中,当测试机根据获取的目标框架的配置文件生成目标框架时,即可将该目标框架部署到测试机上和/或共享服务器上进行功能性验证,进而验证生成的目标框架是否能够正常部署。若将目标框架部署到测试机上进行功能性测试,且验证通过,则说明目标框架适用于测试机上的开发环境,且可以在测试机上正常使用,若将目标框架部署到共享服务器进行功能性测试,且验证通过,则说明目标框架也适用于共享服务器上的开发环境,且可以在共享服务器上正常使用。在实际应用中,测试机将目标框架部署至测试机上进行功能性验证,若该验证通过,则确定目标框架验证通过,在此场景下,测试机可以直接将目标框架的框架安装包发送到共享服务器上进行存储,之后,待部署集群中任一物理机均可以从共享服务器上获取到目标框架的框架安装包进行安装部署。可选的,测试机也可以直接将目标框架的框架安装包发送到共享服务器上进行再次功能性验证,若验证通过后再将框架安装包进行存储。

本实施例公开的框架的部署方法,根据待部署集群中各物理机的开发环境信息,搭建待部署集群的目标框架的开发环境,获取目标框架的配置文件,并在开发环境中根据配置文件生成目标框架;对目标框架进行功能性验证,并在目标框架验证通过的情况下将目标框架的框架安装包存储在共享服务器上,以使待部署集群中的各物理机从共享服务器上获取框架安装包进行目标框架的部署。上述方法中,测试机通过待部署集群中的各物理机的开发环境信息预先搭建待部署集群的目标框架的开发环境,实现了在测试机上模拟待部署集群中的各物理机的开发环境,可以使之后基于该模拟的开发环境获取到的目标框架能够适用于待部署集群中的任一物理机,因此,当待部署集群中的任一物理机需要部署目标框架时,物理机用户不需要再结合自身开发环境对目标框架进行配置,以及重新编译生成目标框架的安装包,减少了很多环境配置所需的复杂操作流程,而物理机用户可以从共享服务器上获取到目标框架的框架安装包后直接安装使用,极大的提高了目标框架在物理机上的部署效率,特别是面对集群的物理机部署时,由于集群中各物理机的开发环境和用户需求均不相同,而应用上述方法实现集群的各物理机的部署时,由于共享服务器上存储的目标框架的框架安装包是预先通过模拟待部署集群的开发环境得到的,所以目标框架的框架安装包不会因各物理机开发环境差异和物理机用户差异而需要重新编译生成,进一步的提高了集群的物理机的部署效率。

在一个实施例中,还提供了上述s101的一种实现方式,如图3所示,上述s101“根据待部署集群中各物理机的开发环境信息,搭建待部署集群的目标框架的开发环境”,包括:

s201,获取目标框架的镜像文件。

本实施例中,测试机在获取到待部署集群中的各物理机的开发环境信息时,可以先从开发环境信息中提取出生态系统的类型,确定生态系统的版本类型及版本号,再根据生态系统的版本类型及版本号从相应的容器数据库中下载对应系统类型和版本号的镜像文件,以便之后使用。例如,假设目标框架为pytorch框架,需要将pytorch框架部署在rocm系统上,也就是说,待部署集群的开发环境中包含rocm系统,因此,测试机可以在docker的rocm官方仓库中直接下载(pull)装载好一定依赖项的pytorch镜像文件。需要说明的是,目标框架的镜像文件为基础镜像文件,测试机获取基础镜像文件相当于测试机搭建基础开发环境。

s202,在目标框架的镜像文件中添加各物理机的开发环境信息。

当测试机获取到目标框架的镜像文件和各物理机的开发环境信息后,即可在目标框架的镜像文件中添加各物理机的开发环境信息,得到添加后的镜像文件。例如,测试机下载好pytorch镜像后,在该pytorch镜像基础上安装各物理机的编译器、网络接口、相关依赖的应用库、分布式插件、生态系统等一系列与待部署集群的开发环境相关的程序文件。

s203,根据添加后的镜像文件生成目标框架的开发环境。

当测试机在目标框架的镜像文件的基础上添加了各物理机的开发环境信息后,可以进一步的编译添加后的镜像文件,进而生成目标框架的开发环境,以搭建完成目标框架的开发环境。

上述实施例实现了测试机采用容器(docker)的方式搭建目标框架的开发环境,其中由于目标框架的镜像文件包含了目标框架的基础开发环境,则在该镜像文件的基础上添加各物理机的开发环境信息,即可迅速匹配待部署集群的开发环境,如果后期待部署集群的各物理机的开发环境发生变换时,不需要反复配置目标框架的基础开发环境,只需要额外修改各物理机的开发环境信息即可,进而提高了测试机搭建目标框架的开发环境的效率和历史数据的重复使用性。

在一个实施例中,还提供了上述s103的一种实现方式,如图4所示,上述s103“对目标框架进行功能性验证,并在目标框架验证通过的情况下将目标框架的框架安装包存储在共享服务器上”,包括:

s301,在测试机的开发环境下,使用预设的测试用例在目标框架上进行功能性测试,若功能性测试通过,则执行步骤s302;若功能性测试未通过,则执行步骤s303。

本实施例涉及测试机对目标框架进行功能性验证的具体方式,具体的,测试机可以预先构建不同应用场景的测试用例,例如,分类任务的测试用例、检测任务类的测试用例、识别任务类的测试用例等,再将这些测试用例应用在目标框架上依次进行功能性测试,以便验证s102中编译生成的目标框架在测试机当下的开发环境中是否可用或者是否存在缺省的库。若这些测试用例均可以测试通过,则可确定目标框架验证通过,若这些测试例中只要有一个测试用例未通过,则可确定目标框架验证未通过。

s302,向共享服务器发送验证请求,以使共享服务器对目标框架进行功能性验证,并在功能性验证通过的情况下存储验证请求中包括的目标框架的框架安装包。

其中,验证请求用于指示共享服务器对目标框架进行功能性验证,该验证请求中携带目标框架的框架安装包。

本实施例涉及的是测试机对目标框架进行功能性测试的结果是验证通过的结果,此种结果说明目标框架可以在测试机当下的开发环境中正常使用,在此情况下,测试机会打包生成可移迁安装的框架安装包(例如whl安装文件),便于在不具备编译环境下的计算机节点集群上安装,然后测试机向共享服务器发送携带框架安装包的验证请求。共享服务器在接收到验证请求后,可以进一步的从验证请求中提取出目标框架的框架安装包,并将框架安装包安装在共享服务器上,以及构建不同应用场景的测试用例,例如,分类任务的测试用例、检测任务类的测试用例、识别任务类的测试用例等,再将这些测试用例应用在目标框架上依次进行功能性测试,以便验证s301中验证通过的目标框架在共享服务器当下的开发环境中是否可用或者是否存在缺省的库。若这些测试用例均可以测试通过,则存储验证请求中包括的目标框架的框架安装包,以便之后待部署集群中各物理机从共享服务器上获取框架安装包使用。若这些测试用例中存在测试未通过的测试用例,则确定目标框架在共享服务器上不可使用,需要共享服务器反馈信息至测试机,指示测试机重新修复目标框架或者重新编译生成目标框架,以重新生成目标框架的框架安装包,以及重新在测试机和共享服务器上进行功能性验证,直到所有验证通过为止。需要说明的是,在测试机对目标框架进行功能性测试的过程中,可以抓取并存储依赖的安装包,以便之后其它设备需要时从测试机上获取。可以理解的是,测试机上使用的测试用例可以与共享服务器上使用的测试用例相同,也可以不相同,这可以根据实际测试需求确定,此处不限定。

s303,重新生成目标框架,返回执行在测试机的开发环境下,使用预设的测试用例在目标框架上进行功能性测试的步骤,直到功能性测试通过为止。

本实施例涉及的是测试机对目标框架进行功能性测试的结果是验证未通过的结果,此种结果,说明目标框架在测试机当下的开发环境中不能正常使用,在此情况下,测试机按照前述s101-s102的步骤,调整编译重新生成目标框架,再返回前述s301的步骤,对重新生成的目标框架进行功能性测试,直至测试通过为止。

本实施例中,在测试机得到目标框架时,进一步的在测试机上进行功能性验证,以验证目标框架是否可用以及是否存在缺省的库,使测试机可以得到有效可用的目标框架后再部署到集群中的各物理机上,避免之后物理机在部署目标框架时出现目标框架不适用的问题,提高目标框架的部署效率。

在一个实施例中,测试机向共享服务器发送的验证请求中还包括目标框架的依赖安装包。其中,依赖安装包是测试机在使用测试用例对目标框架进行功能性测试的过程中抓取的功能性依赖安装包,则对应的,测试机在执行上述s302的步骤时,可以具体执行,在功能性验证通过的情况下,向共享服务器发送验证请求,以使共享服务器对目标框架进行功能性验证,并在功能性验证通过的情况下存储验证请求中包括的目标框架的框架安装包和目标框架的依赖安装包。

本实施例中,测试机指示共享服务器对目标框架进行功能性验证的方式与前述s301所述的方法一致,详细内容可参见前述说明,此处不赘述。需要说明的是,在测试机或者共享服务器使用各种类型的测试用例对目标框架进行功能性验证的过程中,均可以抓取目标框架的依赖安装包,并存储在共享服务器上,以便之后待部署集群中各物理机可以从共享服务器上获取到目标框架的依赖安装包进行安装使用,完善目标框架的各种类型软件功能。

本实施例中,在测试机对目标框架进行功能性验证的过程中,可以抓取到目标框架的依赖安装包,由于目标框架的依赖安装包是根据测试用例对应的各功能依赖得到的,属于一些基础功能对应的安装包,在实际应用中被使用的频率较高,因此本实施例的验证请求中还包括了目标框架的依赖安装包,使之后物理机还可以获取到该依赖安装包进行目标框架的部署,实现相应功能的应用,不需要物理机用户再自行获取相应的更新配置文件,再根据配置文件编译生成依赖安装包实现对应功能应用,从而使上述部署方法可以满足更多用户需求,提高了上述部署方法的适用性。

可选的,提供了一种具体的目标框架,目标框架为pytorch框架,对应该pytorch框架部署在rocm异构计算平台上。rocm异构计算平台是当前一种新兴的异构计算平台,但是这种新兴的异构计算平台的软件架构体系并不完善,一些通用的库功能还在相继的开发中,官方的torch二进制安装包几乎没有,这种局面导致只能通过源码编译的方式产生出合理的pytorch框架的版本来匹配rocm异构计算平台。前述实施例提供的框架的部署方法即可实现将pytorch框架快速的部署至计算节点集群(rocm异构计算平台集群)中各物理机上,具体部署方法可参见前述说明。需要说明的是,该实施例中的计算节点集群中各物理机上都安装有rocm系统。

上述所有实施例为测试机侧的框架的部署方法,下面图5实施例为物理机侧的框架的部署方法,下面将具体说明物理机侧的框架的部署方法。

在一个实施例中,如图5所示,提供了一种框架的部署方法,以该方法应用于图1中的物理机为例进行说明,包括以下步骤:

s401,从共享服务器上获取目标框架的框架安装包。

其中,框架安装包是测试机根据待部署集群中的各物理机的开发环境信息搭建的待部署集群的目标框架的开发环境、目标框架的配置文件、以及通过测试机进行功能性验证和共享服务器进行功能性验证后得到安装包。

s402,根据框架安装包进行目标框架的部署。

本实施例涉及待部署集群中任一物理机部署目标框架的过程,在此过程中,物理机需要先获取目标框架的框架安装包,具体的可以从共享服务器上拷贝目标框架的安装包,进一步的将目标框架安装至物理机上,并启动具体任务的执行,以完成目标框架的快速部署。需要说明的是,在实际部署目标框架前,物理机还可以采用测试用例的方式对目标框架先进行测试,若测试通过,再将目标框架部署至物理机上,若测试不通过,物理机可以通过共享服务器将反馈信息传达至测试机,以指示测试机重新编译生成目标框架,或者对目标框架进行修复。

本实施例中,由于共享服务器上存储的目标框架的框架安装包是测试机通过模拟物理机的开发环境编译生成的,使该目标框架的框架安装包可以适用于集群中的任一物理机,因此,当集群中的各物理机进行目标框架的部署时,可以直接从共享服务器上获取目标框架的框架安装包进行安装不需要再结合本机的开发环境重新编译生成目标框架的安装包再进行安装部署,简化了目标框架的部署流程,实现了目标框架的快速部署。

上述图5实施例为物理机侧的框架的部署方法,下面图6实施例为共享服务器侧的框架的部署方法,下面将具体说明共享服务器侧的框架的部署方法。

在一个实施例中,如图6所示,提供了一种框架的部署方法,以该方法应用于图1中的共享服务器为例进行说明,包括以下步骤:

s501,接收测试机发送的验证请求;验证请求中包括目标框架的框架安装包,框架安装包是测试机根据待部署集群中的各物理机的开发环境信息搭建的待部署集群的目标框架的开发环境、目标框架的配置文件、以及通过测试机进行功能性验证后得到安装包。

s502,根据验证请求对目标框架进行功能性验证。

s503,在功能性验证通过的情况下存储目标框架的框架安装包,以使待部署集群中的各物理机从共享服务器上获取框架安装包进行目标框架的部署。

本实施例涉及共享服务器验证测试机编译生成的目标框架是否能够在共享服务器上正常使用的过程,并在验证通过后将测试机编译生成的目标框架的框架安装包进行存储,以便之后与共享服务器连接的待部署集群中的各物理机可以直接获取目标框架的框架安装包使用。上述验证的具体过程、测试机编译生成目标框架的具体过程、物理机部署目标框架的具体过程可以参见前述实施例的说明,此处不赘述。

本实施例中,由于共享服务器上存储的目标框架的框架安装包是测试机通过模拟物理机的开发环境编译生成的,使该目标框架的框架安装包可以适用于集群中的任一物理,而且共享服务器对目标框架进行了进一步的功能性验证,以验证目标框架可以应用在共享服务器上,从而进一步的提高了目标框架的适用性,因此,当集群中的各物理机进行目标框架的部署时,可以直接从共享服务器上获取目标框架的框架安装包进行安装不需要再结合本机的开发环境重新编译生成目标框架的安装包再进行安装部署,简化了目标框架的部署流程,实现了目标框架的快速部署。

在一个实施例中,提供了另一种应用图1实施例所示的应用系统进行框架的部署方法,该方法可以实现将目标框架快速的部署至计算节点集群中各物理机上,如图7所示,该方法具体包括:

s601,测试机获取目标框架的镜像文件。

s602,测试机在目标框架的镜像文件中添加各物理机的开发环境信息。

s603,测试机根据添加后的镜像文件生成目标框架的开发环境。

s604,在测试机的开发环境下,开发编译目标框架,使用预设的测试用例在目标框架上进行功能性验证,若功能性验证通过,则执行步骤s605;若功能性验证未通过,则执行步骤s611。

s605,测试机生成目标框架的框架安装包,并向共享服务器发送验证请求,其中验证请求中携带框架安装包。

s606,共享服务器接收验证请求后,从验证请求中提取目标框架的框架安装包安装目标框架,对目标框架进行功能性验证,若功能性验证通过,则执行步骤s607,若功能性验证未通过,则执行s610。

s607,存储验证请求中包括的目标框架的框架安装包。

s608,计算机节点集群中的各物理机从共享服务器上获取目标框架的框架安装包。

s609,计算机节点集群中的各物理机安装框架安装包进行目标框架的部署。

s610,向测试机反馈验证失败信息,使测试机重新生成目标框架,并返回执行上述s604的步骤,直到功能性验证通过为止。

s611,重新生成目标框架,返回执行上述s604的步骤,直到功能性验证通过为止。

上述实施例中各步骤在前述均有说明,详细内容请参见前述说明,此处不赘述。

应该理解的是,虽然图2-7的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-7中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。

在一个实施例中,如图8所示,提供了一种框架的部署装置,包括:

搭建模块11,用于根据待部署集群中的各物理机的开发环境信息,搭建所述待部署集群的目标框架的开发环境。

获取模块12,用于获取所述目标框架的配置文件,并在所述目标开发环境中根据所述配置文件生成所述目标框架。

验证部署模块13,用于对所述目标框架进行功能性验证,并在所述目标框架验证通过的情况下将所述目标框架的框架安装包存储在共享服务器上,以使所述待部署集群中的各物理机从所述共享服务器上获取所述框架安装包进行所述目标框架的部署。

在一个实施例中,如图9所示,上述搭建模块11,包括:

获取单元111,用于获取所述目标框架的镜像文件;

添加单元112,用于在所述目标框架的镜像文件中添加各所述物理机的开发环境信息;

生成单元113,用于根据添加后的镜像文件生成所述目标框架的开发环境。

在一个实施例中,所述开发环境信息包括:所述待部署集群中的各物理机的生态系统、编译器、网络接口、相关依赖的应用库、分布式插件。

在一个实施例中,如图10所示,上述验证部署模块13,包括:

第一验证单元131,用于在测试机的开发环境下,使用预设的测试用例在所述目标框架上进行功能性测试;

第二验证单元132,用于在所述功能性测试通过的情况下,向所述共享服务器发送验证请求,以使所述共享服务器对所述目标框架进行功能性验证,并在功能性验证通过的情况下存储所述验证请求中包括的所述目标框架的框架安装包;

第三验证单元133,用于在所述功能性测试未通过的情况下,重新生成所述目标框架,并返回执行所述在测试机的开发环境下,使用预设的测试用例在所述目标框架上进行功能性测试的步骤,直到功能性测试通过为止。

在一个实施例中,如图11所示,所述验证请求还包括所述目标框架的依赖安装包,所述依赖安装包是所述测试机在使用所述测试用例对所述目标框架进行功能性测试的过程中抓取的功能性依赖安装包,

对应的,所述第二验证单元132具体用于在所述功能性测试通过的情况下,向所述共享服务器发送验证请求,以使所述共享服务器对所述目标框架进行功能性验证,并在功能性验证通过的情况下存储所述验证请求中包括的所述目标框架的框架安装包和所述目标框架的依赖安装包。

在一个实施例中,如图11所示,提供了一种框架的部署装置,包括:

获取模块21,用于从共享服务器上获取目标框架的框架安装包;所述框架安装包是测试机根据待部署集群中的各物理机的开发环境信息搭建的所述待部署集群的目标框架的开发环境、所述目标框架的配置文件、以及通过所述测试机进行功能性验证和所述共享服务器进行功能性验证后得到安装包;

部署模块22,用于根据所述框架安装包进行所述目标框架的部署。

在一个实施例中,如图12所示,提供了一种框架的部署装置,包括:

接收模块31,用于接收测试机发送的验证请求;所述验证请求中包括目标框架的框架安装包,所述框架安装包是所述测试机根据待部署集群中的各物理机的开发环境信息搭建的所述待部署集群的目标框架的开发环境、所述目标框架的配置文件、以及通过所述测试机进行功能性验证后得到安装包;

验证模块32,用于根据所述验证请求对目标框架进行功能性验证;

存储模块33,用于在所述功能性验证通过的情况下存储所述目标框架的框架安装包,以使所述待部署集群中的各物理机从所述共享服务器上获取所述框架安装包进行所述目标框架的部署。

关于框架的部署装置的具体限定可以参见上文中对于框架的部署方法的限定,在此不再赘述。上述框架的部署装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图13所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储测试数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种框架的部署方法。

本领域技术人员可以理解,图13中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:

根据待部署集群中各物理机的开发环境信息,搭建所述待部署集群的目标框架的开发环境;

获取所述目标框架的配置文件,并在所述开发环境中根据所述配置文件生成所述目标框架;

对所述目标框架进行功能性验证,并在所述目标框架验证通过的情况下将所述目标框架的框架安装包存储在共享服务器上,以使所述待部署集群中的各物理机从所述共享服务器上获取所述框架安装包进行所述目标框架的部署。

上述实施例提供的一种计算机设备,其实现原理和技术效果与上述方法实施例类似,在此不再赘述。

在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:

从共享服务器上获取目标框架的框架安装包;所述框架安装包是测试机根据待部署集群中的各物理机的开发环境信息搭建的所述待部署集群的目标框架的开发环境、所述目标框架的配置文件、以及通过所述测试机进行功能性验证和所述共享服务器进行功能性验证后得到安装包;

根据所述框架安装包进行所述目标框架的部署。

上述实施例提供的一种计算机设备,其实现原理和技术效果与上述方法实施例类似,在此不再赘述。

在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:

接收测试机发送的验证请求;所述验证请求中包括目标框架的框架安装包,所述框架安装包是所述测试机根据待部署集群中的各物理机的开发环境信息搭建的所述待部署集群的目标框架的开发环境、所述目标框架的配置文件、以及通过所述测试机进行功能性验证后得到安装包;

根据所述验证请求对目标框架进行功能性验证;

在所述功能性验证通过的情况下存储所述目标框架的框架安装包,以使所述待部署集群中的各物理机从所述共享服务器上获取所述框架安装包进行所述目标框架的部署。

上述实施例提供的一种计算机设备,其实现原理和技术效果与上述方法实施例类似,在此不再赘述。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:

根据待部署集群中各物理机的开发环境信息,搭建所述待部署集群的目标框架的开发环境;

获取所述目标框架的配置文件,并在所述开发环境中根据所述配置文件生成所述目标框架;

对所述目标框架进行功能性验证,并在所述目标框架验证通过的情况下将所述目标框架的框架安装包存储在共享服务器上,以使所述待部署集群中的各物理机从所述共享服务器上获取所述框架安装包进行所述目标框架的部署。

上述实施例提供的一种计算机可读存储介质,其实现原理和技术效果与上述方法实施例类似,在此不再赘述。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:

从共享服务器上获取目标框架的框架安装包;所述框架安装包是测试机根据待部署集群中的各物理机的开发环境信息搭建的所述待部署集群的目标框架的开发环境、所述目标框架的配置文件、以及通过所述测试机进行功能性验证和所述共享服务器进行功能性验证后得到安装包;

根据所述框架安装包进行所述目标框架的部署。

上述实施例提供的一种计算机可读存储介质,其实现原理和技术效果与上述方法实施例类似,在此不再赘述。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:

接收测试机发送的验证请求;所述验证请求中包括目标框架的框架安装包,所述框架安装包是所述测试机根据待部署集群中的各物理机的开发环境信息搭建的所述待部署集群的目标框架的开发环境、所述目标框架的配置文件、以及通过所述测试机进行功能性验证后得到安装包;

根据所述验证请求对目标框架进行功能性验证;

在所述功能性验证通过的情况下存储所述目标框架的框架安装包,以使所述待部署集群中的各物理机从所述共享服务器上获取所述框架安装包进行所述目标框架的部署。

上述实施例提供的一种计算机可读存储介质,其实现原理和技术效果与上述方法实施例类似,在此不再赘述。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-onlymemory,rom)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(randomaccessmemory,ram)或外部高速缓冲存储器。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(staticrandomaccessmemory,sram)或动态随机存取存储器(dynamicrandomaccessmemory,dram)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1