CN111610976B - 异构应用移植方法、装置和计算机设备 - Google Patents
异构应用移植方法、装置和计算机设备 Download PDFInfo
- Publication number
- CN111610976B CN111610976B CN202010269454.4A CN202010269454A CN111610976B CN 111610976 B CN111610976 B CN 111610976B CN 202010269454 A CN202010269454 A CN 202010269454A CN 111610976 B CN111610976 B CN 111610976B
- Authority
- CN
- China
- Prior art keywords
- heterogeneous
- heterogeneous application
- application
- code
- container
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/76—Adapting program code to run in a different environment; Porting
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种异构应用移植方法、装置和计算机设备。其中,异构应用移植方法包括:S1、在物理机上安装并配置容器环境,其中,物理机存储待移植的异构应用的代码;S2、定制目标镜像;S3、启动目标镜像对应的容器,并在容器中验证异构应用的运行环境;S4、在异构应用的运行环境验证通过后,移植异构应用。本发明实施例的异构应用移植方法、装置和计算机设备,通过在物理机上安装并配置容器环境,并定制目标镜像,以及启动目标镜像对应的容器,并在容器中验证异构应用的运行环境,然后在异构应用的运行环境验证通过后,移植异构应用,提高了应用移植和测试效率,节省资源,降低成本。
Description
技术领域
本发明涉及虚拟机云计算技术领域,尤其涉及一种异构应用移植方法、装置和计算机设备。
背景技术
在高性能计算领域,随着芯片制造技术逐渐接近半导体材料的物理极限,传统的摩尔定律逐渐失效,由NVIDIA公司推出的图形计算单元(GPU)所引领的异构计算潮流已经成为继续提升计算能力的重要方向。异构计算需要CPU和异构加速设备分工协作、共同运算,因此大量过去开发的只使用CPU计算的应用程序需要进行移植。另一方面,当前存在不同厂商、不同架构的多种异构加速设备,适用于某些加速设备的应用程序在需要在其他不同的设备上运行时也可能需要进行移植。随着各种异构加速设备不断更新演进以及新的异构加速设备不断出现,应用移植工作会越来越多。针对异构应用程序的移植,现有技术普遍没有关注异构计算平台的稳定性、适应性与更新迭代问题。因为在异构应用程序的移植方面,现有的技术主要针对CUDA(Compute Unified Device Architecture,统一计算设备架构,由显卡厂商NVIDIA推出的异构计算平台)或OPENCL(Open Computing Language,开放运算语言,由非盈利性技术组织Khronos Group维护的可以兼容多家厂商异构加速设备的异构计算平台),这两类计算平台目前已相对较为成熟,虽然也有更新迭代,但主要功能特性基本稳定且文档完善,应用在移植过程中一般只需要根据目标平台的文档,调整应用代码去适应目标平台。而当前,更多异构加速设备纷纷出现,如AMD的GPU、华为的AI训练加速卡等。这些新兴计算设备相应的计算软件平台不像CUDA和OPENCL那样成熟稳定。以AMD的ROCM异构计算平台为例,其更新迭代速度快(目前大概一到两个月更新一个版本),多个版本同时存在,功能特性变化快,而且相关文档不完善。这给异构应用程序的移植带来的一个问题就是,不仅应用程序本身需要进行修改,而且修改的目标也是不稳定的。例如一个应用,同样是针对ROCM平台的移植,某个功能特性在某一个ROCM版本能够正常运行,另一个版本下却无法运行。
现有的应用程序移植与测试方法普遍假设目标异构计算平台是稳定的、可靠的,只针对应用本身提出解决问题的方法。而在当前新兴异构计算平台不断涌现、迭代频繁的情况下,移植过程中遇到的问题可能是目标异构计算平台造成的。如果不考虑这一点,则可能无法成功移植。即使考虑到异构计算平台本身的问题,但使用现有的基于物理机的移植与测试方法,需要多次甚至频繁更换异构计算平台相关环境,单机下的删除和安装费时费力,若使用多台物理机安装不同版本的异构计算平台则耗费较多资源。使用docker容器技术可以在同一物理机安装多个不同版本的异构计算平台,但容器技术在测试领域目前主要用于应用测试的批量化与自动化,其应用程序和依赖环境或者部署在同一镜像中,或者分别部署在多个镜像中然后通过容器管理调度工具联合操作。在这种模式下,某一容器中修改了应用程序代码后,需要在其他镜像中进行更新,而且异构应用程序的移植过程本身不适合批量化、连续化操作。
发明内容
本发明的目的旨在至少在一定程度上解决上述的技术问题之一。
为此,本发明的第一个目的在于提出一种异构应用移植方法,能够提高应用移植和测试效率,节省资源,降低成本。
本发明的第二个目的在于提出一种异构应用移植装置。
本发明的第三个目的在于提出一种计算机设备。
本发明的第四个目的在于提出一种非临时性计算机可读存储介质。
为了实现上述目的,本发明第一方面实施例提出一种异构应用移植方法,该方法包括:
S1、在物理机上安装并配置容器环境,其中,所述物理机存储待移植的异构应用的代码;
S2、定制目标镜像;
S3、启动所述目标镜像对应的容器,并在所述容器中验证所述异构应用的运行环境;
S4、在所述异构应用的运行环境验证通过后,移植所述异构应用。
可选的,定制目标镜像,包括:
获取异构计算平台的基础组件和异构应用的依赖库;
根据所述基础组件和所述依赖库定制所述目标镜像。
可选的,在所述容器中验证异构应用的运行环境,包括:
验证所述异构应用的CPU运行环境;和/或
验证所述异构应用的异构计算平台运行环境。
可选的,验证所述异构应用的CPU运行环境,包括:
在所述容器中编译运行所述异构应用的CPU代码;
如果所述CPU代码编译运行正常,则确定所述异构应用的CPU运行环境验证通过;
如果所述CPU代码编译运行异常,则将第一异常结果与第一正常结果进行对比,以确定第一异常点,并修正所述第一异常点直至所述异构应用的CPU运行环境验证通过。
可选的,验证所述异构应用的异构计算平台运行环境,包括:
在所述容器中编译运行所述异构计算平台的测试用例;
如果所述测试用例编译运行正常,则确定所述异构应用的异构计算平台运行环境验证通过;
如果所述测试用例编译运行异常,则将第二异常结果与第二正常结果进行对比,以确定第二异常点,并修正所述第二异常点直至所述异构应用的异构计算平台运行环境验证通过。
可选的,移植所述异构应用,包括:
在所述容器中修改所述异构应用的代码;
编译修改代码后的异构应用;
在编译通过后,测试修改代码后的异构应用的功能。
可选的,方法还包括:
如果编译修改代码后的异构应用未通过,则修改所述异构应用的代码;或者
更换另一目标镜像,直至编译修改代码后的异构应用通过。
可选的,方法还包括:
如果测试修改代码后的异构应用的功能未通过,则修改所述异构应用的代码;或者
更换另一目标镜像,直至测试修改代码后的异构应用的功能通过。
可选的,方法还包括:
在更换所述另一目标镜像后,判断所述另一目标镜像是否已验证;
如果已通过验证,则跳转至步骤S4;
如果未通过验证,则进一步判断所述另一目标镜像是否已定制;
如果已定制,则跳转至步骤S3;
如果未定制,则跳转至步骤S2。
可选的,方法还包括:
在所述物理机上测试所述异构应用。
可选的,在所述物理机上测试所述异构应用,包括:
在所述物理机上部署与移植所述异构应用成功的容器环境保持一致的运行环境;
在所述物理机的运行环境下测试所述异构应用的功能与性能。
可选的,方法还包括:
在测试通过后,发布所述异构应用的相关信息。
本发明实施例的异构应用移植方法,通过在物理机上安装并配置容器环境,并定制目标镜像,以及启动所述目标镜像对应的容器,并在所述容器中验证异构应用的运行环境,然后在所述异构应用的运行环境验证通过后,移植所述异构应用,提高了应用移植和测试效率,节省资源,降低成本。
为了实现上述目的,本发明第二方面实施例提出了一种异构应用移植装置,包括:
配置模块,用于在物理机上安装并配置容器环境,其中,所述物理机存储待移植的异构应用的代码;
定制模块,用于定制目标镜像;
验证模块,用于启动所述目标镜像对应的容器,并在所述容器中验证所述异构应用的运行环境;
移植模块,用于在所述异构应用的运行环境验证通过后,移植所述异构应用。
可选的,所述定制模块,用于:
获取异构计算平台的基础组件和异构应用的依赖库;
根据所述基础组件和所述依赖库定制所述目标镜像。
可选的,所述验证模块,包括:
第一验证单元,用于验证所述异构应用的CPU运行环境;和/或
第二验证单元,用于验证所述异构应用的异构计算平台运行环境。
可选的,所述第一验证单元,用于:
在所述容器中编译运行所述异构应用的CPU代码;
如果所述CPU代码编译运行正常,则确定所述异构应用的CPU运行环境验证通过;
如果所述CPU代码编译运行异常,则将第一异常结果与第一正常结果进行对比,以确定第一异常点,并修正所述第一异常点直至所述异构应用的CPU运行环境验证通过。
可选的,所述第二验证单元,用于:
在所述容器中编译运行所述异构计算平台的测试用例;
如果所述测试用例编译运行正常,则确定所述异构应用的异构计算平台运行环境验证通过;
如果所述测试用例编译运行异常,则将第二异常结果与第二正常结果进行对比,以确定第二异常点,并修正所述第二异常点直至所述异构应用的异构计算平台运行环境验证通过。
可选的,所述移植模块,用于:
在所述容器中修改所述异构应用的代码;
编译修改代码后的异构应用;
在编译通过后,测试修改代码后的异构应用的功能。
可选的,所述移植模块,还用于:
如果编译修改代码后的异构应用未通过,则修改所述异构应用的代码;或者
更换另一目标镜像,直至编译修改代码后的异构应用通过。
可选的,所述移植模块,还用于:
如果测试修改代码后的异构应用的功能未通过,则修改所述异构应用的代码;或者
更换另一目标镜像,直至测试修改代码后的异构应用的功能通过。
可选的,所述移植模块,还用于在更换所述另一目标镜像后,判断所述另一目标镜像是否已验证;如果已通过验证,则针对所述另一目标镜像移植所述异构应用;如果未通过验证,则进一步判断所述另一目标镜像是否已定制;
如果已定制,则所述验证模块针对所述另一目标镜像验证异构应用的运行环境;
如果未定制,则所述定制模块定制所述另一目标镜像。
可选的,装置还包括:
测试模块,用于在所述物理机上测试所述异构应用。
可选的,所述测试模块,用于:
在所述物理机上部署与移植所述异构应用成功的容器环境保持一致的运行环境;
在所述物理机的运行环境下测试所述异构应用的功能与性能。
可选的,装置还包括:
发布模块,用于在测试通过后,发布所述异构应用的相关信息。
本发明实施例的异构应用移植装置,通过在物理机上安装并配置容器环境,并定制目标镜像,以及启动所述目标镜像对应的容器,并在所述容器中验证异构应用的运行环境,然后在所述异构应用的运行环境验证通过后,移植所述异构应用,提高了应用移植和测试效率,节省资源,降低成本。
为了实现上述目的,本发明第三方面实施例提出了一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如第一方面实施例所述的异构应用移植方法。
为了实现上述目的,本发明第四方面实施例还提出了一种非临时性计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如第一方面实施例所述的异构应用移植方法。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
构成本发明的一部分的说明书附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是本发明一个实施例的异构应用移植方法的流程图;
图2是本发明另一个实施例的异构应用移植方法的流程图;
图3是本发明又一个实施例的异构应用移植方法的流程图;
图4是本发明一个具体实施例的异构应用移植方法的流程图;
图5是本发明一个实施例的异构应用移植装置的结构示意图;
图6是本发明一个具体实施例的异构应用移植装置的结构示意图;
图7是本发明另一个具体实施例的异构应用移植装置的结构示意图;
图8是本发明又一个具体实施例的异构应用移植装置的结构示意图;
图9是本发明另一个实施例的异构应用移植装置的结构示意图;
图10是本发明又一个实施例的异构应用移植装置的结构示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
以下结合具体实施例对本发明作进一步详细描述,这些实施例不能理解为限制本发明所要求保护的范围。
下面参考附图描述本发明实施例的异构应用移植方法、装置和计算机设备。
图1是本发明一个实施例的异构应用移植方法的流程图,如图1所示,该方法包括以下步骤:
S1,在物理机上安装并配置容器环境。
在本发明中,主要通过容器技术来实现异构应用程序的移植。在执行移植操作之前,需要先在物理机上安装并配置容器环境。其中,物理机可预先存储待移植的异构应用的代码。
在本发明的一个实施例中,采用了docker容器技术,主要目的在于docker容器能够实现多个不同异构计算平台在同一物理机上的高效部署和方便切换。但是容器技术不止docker容器一种,传统的虚拟机也可以实现这一功能,而虚拟机占用资源多,性能较差。当然,docker容器仅为示例,如果有其他高效的容器技术,同样可以适用于本发明。
下面简单介绍一下docker容器技术。docker是一种能够提供操作系统内核以上完整的应用运行环境封装与隔离的容器技术,具有轻量级、易部署、性能接近物理机等特点,当前在互联网、云计算等领域应用广泛。使用docker容器技术可以实现应用程序的批量或自动测试与部署,其过程主要包括配置docker使用环境,打包、分发测试代码,代码测试,结果反馈,应用部署等步骤。
S2,定制目标镜像。
具体地,可获取异构计算平台的基础组件和异构应用的依赖库,然后根据基础组件和依赖库定制目标镜像。以AMD的ROCM异构计算平台为例,可以从docker镜像仓库中拉取AMD提供的ROCM的各个版本的镜像。该ROCM镜像只有必需的基本ROCM组件,因此还需要在此基础上将移植应用所需的如特定的编译器、计算库等其他依赖库打包安装,定制移植所需的新镜像(目标镜像)。
在本发明的一个实施例中,目标镜像中不包含待移植的异构应用。也就是说,现有技术中通常将待移植的异构应用打包至目标镜像中,而本发明则无须打包异构应用,只需预先将待移植的异构应用对应的代码保存至物理机中即可。
S3,启动目标镜像对应的容器,并在容器中验证异构应用的运行环境。
在容器中验证异构应用的运行环境主要包括CPU运行环境和/或异构计算平台运行环境。也就是说,在启动容器后,既可以单独验证异构应用的CPU运行环境,也可以单独验证异构应用的异构计算平台运行环境,还可以两者均进行验证。
1、在验证异构应用的CPU运行环境时,具体过程如下:在容器中编译运行异构应用的CPU代码。如果CPU代码编译运行正常,则确定异构应用的CPU运行环境验证通过。如果CPU代码编译运行异常,则将第一异常结果与第一正常结果进行对比,以确定第一异常点,并修正第一异常点直至异构应用的CPU运行环境验证通过。
2、在验证异构应用的异构计算平台运行环境时,具体过程如下:在容器中编译运行异构计算平台的测试用例。如果测试用例编译运行正常,则确定异构应用的异构计算平台运行环境验证通过;如果测试用例编译运行异常,则将第二异常结果与第二正常结果进行对比,以确定第二异常点,并修正第二异常点直至异构应用的异构计算平台运行环境验证通过。
S4,在异构应用的运行环境验证通过后,移植异构应用。
在异构应用的运行环境验证通过后,可以确定该运行环境符合异构应用移植的要求,便可以执行移植异构应用的操作。
具体地,先在容器中修改异构应用的代码,然后编译修改代码后的异构应用。在编译通过后,测试修改代码后的异构应用的功能。
应当理解的是,由于异构应用的代码不是安装在目标镜像中,而是保存在物理机上,可通过挂载的方式将物理机中的异构应用所在目录加入到镜像目录,所以在容器中对异构应用的代码进行的修改可直接保存在物理机中,还可以通过git等工具进行版本控制,即使容器被关闭甚至删除也不受影响。
在本发明的另一个实施例中,如果编译修改代码后的异构应用未通过,可通过两种方法解决。第一种方法:进一步修改异构应用的代码,直至编译通过。第二种方法:更换另一目标镜像,直至编译修改代码后的异构应用通过。
测试修改代码后的异构应用的功能分为两种情况,一种情况是测试功能正常,则通过;否则,测试功能异常,未通过。在测试功能未通过的情况下,同样可以通过两种方法解决。第一种方法:进一步修改异构应用的代码,直至测试功能通过。第二种方法:更换另一目标镜像,直至测试修改代码后的异构应用的功能通过。
在本发明的又一个实施例中,在编译修改代码后的异构应用未通过,或者测试修改代码后的异构应用的功能未通过,更换了另一目标镜像的情况下,则可包括以下步骤:
在更换另一目标镜像后,判断另一目标镜像是否已验证。如果已通过验证,则跳转至步骤S4,直接移植异构应用即可;如果未通过验证,则进一步判断另一目标镜像是否已定制。如果已定制,则跳转至步骤S3,验证该目标镜像对应的异构应用的运行环境;如果未定制,则跳转至步骤S2,重新对目标镜像进行定制。
在移植异构应用之后,如图2所示,异构应用移植方法还包括:
S5,在物理机上测试异构应用。
具体来说,在物理机上部署与移植异构应用成功的容器环境保持一致的运行环境,然后在物理机的运行环境下测试异构应用的功能与性能,从而完成异构应用在真实运行环境下的测试。
此外,如图3所示,异构应用移植方法还包括:
S6,在测试通过后,发布异构应用的相关信息。
相关信息可包括移植后的应用程序代码、异构计算平台版本以及其他依赖库的信息等,至此完成该应用程序异构版本的移植工作。
本发明实施例的异构应用移植方法,通过在物理机上安装并配置容器环境,并定制目标镜像,以及启动目标镜像对应的容器,并在容器中验证异构应用的运行环境,然后在异构应用的运行环境验证通过后,移植异构应用,提高了应用移植和测试效率,节省资源,降低成本。
下面通过一个具体实施例,来对本发明的异构应用移植方法进行详细阐述。
图4是本发明一个具体实施例的异构应用移植方法的流程图。
本实施例基于docker容器技术实现异构应用程序的移植与测试,并以针对AMD公司的ROCM平台的移植为例,结合图4所示,进行详细阐述。图4中的虚线框中的部分为在docker容器环境中的操作,虚线框以外为物理机环境中的操作。
S401,docker环境安装配置。
在物理机上安装合适版本的docker容器。
S402,目标镜像定制。
构建或拉取所需的异构计算平台镜像。如果所需异构计算平台没有合适的已有镜像,需要手动定制所需的镜像,同时也应该将所要移植的应用所需的其他软件环境,如特定的编译器、计算库等依赖,打包安装到镜像中。以ROCM的应用移植为例,可以从Docker Hub(docker官方提供的镜像仓库)中拉取AMD官方提供的ROCM的各个版本的镜像。官方ROCM镜像只有必须的基本ROCM组件,还需要在此基础上将移植应用所需的其他依赖库打包安装,定制移植所需的新镜像。
此处,除了异构计算平台本身根据版本不同可以有多个镜像之外,还可以根据其他依赖环境的不同定制不同的镜像。需要注意的是,定制的镜像中不需要安装所要移植的应用程序,只需要移植的应用程序的代码存放在宿主机(上一步的物理机)上即可。
应当理解的是,本步骤是将后期可能用到的测试镜像一次全部定制完成,后续使用只需要进行切换即可。实际操作中,可能难以准确预期未来将会用到的全部镜像,甚至在应用移植过程中又会有新的目标异构计算平台版本发布,因此目标镜像的定制不一定要在初期全部完成,可以先定制出移植应用之前能够预料到的所需镜像。在移植过程中如有新的镜像需求,可以再通过本步骤进行镜像定制。
S403,docker容器中CPU运行环境验证。
选择需要测试的目标镜像,启动容器。在启动时,将要移植的应用程序代码所在目录挂载到容器的同名目录。保持应用程序代码在宿主机和容器中的目录相同,从而可以简化编译过程的调试。不改变所要移植的应用程序代码,在启动的容器中进行编译运行,控制编译和运行过程只使用CPU,检验在该容器环境中,移植的应用程序的原版CPU代码是否可以正常编译运行。如果可以,说明该镜像的CPU运行环境相关部分工作正常,可进入步骤S404;如果不能正常编译运行,则跳转至步骤S405。需检查该镜像的CPU运行环境,必要时与能够正常编译运行的物理机的运行环境对比,直至找到问题所在。之后,回到步骤S402,修改镜像,确保容器环境下CPU程序编译运行正常。
S404,docker容器中异构计算平台运行环境验证。
在上一步已通过CPU运行环境验证的容器中,编译运行与该容器环境相同的物理机环境下能够正常工作的异构计算测试用例,以此来验证该容器环境下的异构计算平台运行是否正常。通常情况下,可以使用目标异构计算平台自带的测试用例进行本步骤。如果测试用例可以正常编译运行,可进入步骤S406;如果测试用例无法正常编译运行,则跳转至步骤S405,检查镜像环境。必要时与能够正常运行测试用例的物理机环境对比,直至找到问题所在。之后,回到步骤S402,修改镜像,确保容器环境下异构计算平台工作正常。
应当理解的是,步骤S403和步骤S404的执行顺序可以交换,最后只需保证docker环境下CPU和异构计算平台运行环境均正常即可。
S406,容器环境中应用程序代码修改。
由于应用程序代码不是安装在容器镜像中,而是将宿主机存储设备中的应用程序所在目录通过挂载的方式加入到镜像目录,所以在容器中对应用程序代码进行的修改可直接保存在宿主机存储设备中,还可以通过git等工具进行版本控制,即使容器被关闭甚至删除也不受影响。
S407,应用程序编译。
如果应用程序编译通过,则进入步骤S408。
如果编译不通过,则返回步骤S406,再次修改应用程序代码,直至编译通过。或者还可以跳转至步骤S409,选择其他镜像进行尝试。
S408,应用程序功能测试。
如果测试通过,则进入步骤S410。
如果测试不通过,则同样返回步骤S406,再次修改应用程序代码,直至编译通过。或者同样跳转至步骤S409,选择其他镜像进行尝试。
应用程序代码修改、编译和功能测试,是一个反复循环迭代的过程。大型的异构应用程序,代码体量庞大,结构复杂,一次编译运行成功几乎不可能。在编译、运行过程中出现报错,以及运行不报错但计算结果错误等情况,可能的原因多种多样,既有可能是代码移植过程中引入了错误,也有可能是应用程序代码的某些特性在当前使用的异构计算平台未被支持,或者还有其他更加复杂的问题。这种情况下,需要在容器环境中修改、编译、运行应用程序代码,查看结果,分析问题,再次修改、编译、运行。循环迭代的终点是移植后的应用程序在容器中能够正确运行。
另一方面,还可以将应用程序代码目录挂载到目标异构计算平台的其他版本的容器中进行测试。由于应用程序代码位于宿主机存储设备,各个容器中看到的代码都是同一份,对代码做出的修改无需在不同容器下同步。对于在编译或者功能验证阶段出现报错是选择修改应用程序代码还是选择更换容器的问题,可以由进行应用程序移植的人员根据实际情况和经验进行选择。如果选择更换镜像(S409),则进入步骤S411,判断更换的镜像是否已验证。如果已验证,则跳转至步骤S406;如果未通过验证,则进入步骤S412,进一步判断该镜像是否已定制。如果已定制,则跳转至步骤S403;否则,跳转至步骤S402。
S410,物理机部署与测试通过的容器一致的环境。
完成了应用程序在容器环境中的正确运行之后,在物理机部署与该容器环境完全一致的异构计算平台和CPU运行环境。
S413,物理机环境下进行代码功能测试。
如果移植后的应用程序代码在物理机环境下能够正确运行,且各项功能正常,则可进入步骤S414;否则,返回步骤S410。检查物理机环境与能够正常运行该应用程序的容器环境的差异,进行必要修改,直至移植后的应用程序代码能够在物理机环境正确运行。
S414,物理机环境下进行代码性能测试。
异构应用程序一般对程序性能有较高要求。在上一步确认了移植后的应用程序在物理机上能够正确运行之后,采用该应用程序的标准算例在物理机上进行性能测试,检验移植后的应用程序的性能。如果性能满足设计要求,则进入步骤S415;否则,返回步骤S406,对应用程序代码进行优化。docker容器对应用程序性能影响很小,代码优化的工作流程与移植过程的代码修改是相似的,只是工作的目标由面向功能的修改变为面向性能的修改。但是,优化过程对应用程序代码进行的修改有可能导致编译和运行问题。
S415,移植代码发布。
上一步得到了满足性能要求的异构应用程序代码之后,可以进行该移植版本的发布。发布内容可包括移植后的应用程序代码、异构计算平台版本以及其他依赖库的信息等。至此完成了该应用程序一个异构版本的移植工作。
本发明提供的异构应用移植方法,可以实现在一台物理机上,一次构建多个不同版本的异构计算平台,多次且方便地切换使用,节约了人员的时间精力,减少了物资消耗,提高了应用程序移植和测试效率。需要移植的应用程序代码不属于某一容器镜像,而是位于宿主机的存储设备,由不同的容器通过挂载操作而共享。这种模式下,任何容器中对应用代码进行的修改在其他容器中均可见,无需再进行同步,方便了应用程序代码在不同版本的异构计算平台上进行测试。
为了实现上述实施例,本发明还提出了一种异构应用移植装置。
图5是本发明一个实施例的异构应用移植装置的结构示意图。
如图5所示,该装置包括配置模块51、定制模块52、验证模块53以及移植模块54。
配置模块51,用于在物理机上安装并配置容器环境。
定制模块52,用于定制目标镜像,其中,目标镜像中不包含待移植的异构应用。
定制模块52,具体用于获取异构计算平台的基础组件和异构应用的依赖库;根据基础组件和依赖库定制目标镜像。
验证模块53,用于启动目标镜像对应的容器,并在容器中验证异构应用的运行环境。
如图6-图8所示,验证模块53,进一步包括第一验证单元531和/或第二验证单元532。
第一验证单元531,用于验证异构应用的CPU运行环境。
第一验证单元531,具体用于:在容器中编译运行异构应用的CPU代码;如果CPU代码编译运行正常,则确定异构应用的CPU运行环境验证通过;如果CPU代码编译运行异常,则将第一异常结果与第一正常结果进行对比,以确定第一异常点,并修正第一异常点直至异构应用的CPU运行环境验证通过。
第二验证单元532,用于验证异构应用的异构计算平台运行环境。
第二验证单元532,具体用于:在容器中编译运行异构计算平台的测试用例;如果测试用例编译运行正常,则确定异构应用的异构计算平台运行环境验证通过;如果测试用例编译运行异常,则将第二异常结果与第二正常结果进行对比,以确定第二异常点,并修正第二异常点直至异构应用的异构计算平台运行环境验证通过。
移植模块54,用于在异构应用的运行环境验证通过后,移植异构应用。
移植模块54,具体用于:在容器中修改异构应用的代码;编译修改代码后的异构应用;在编译通过后,测试修改代码后的异构应用的功能。
移植模块54,还用于:如果编译修改代码后的异构应用未通过,则修改异构应用的代码;或者更换另一目标镜像,直至编译修改代码后的异构应用通过。
移植模块54,还用于如果测试修改代码后的异构应用的功能未通过,则修改异构应用的代码;或者更换另一目标镜像,直至测试修改代码后的异构应用的功能通过。
移植模块54,还用于在更换另一目标镜像后,判断另一目标镜像是否已验证。如果已通过验证,则针对另一目标镜像移植异构应用;如果未通过验证,则进一步判断另一目标镜像是否已定制;如果已定制,则验证模块53针对另一目标镜像验证异构应用的运行环境;如果未定制,则定制模块52定制另一目标镜像。
在本发明的另一个实施例中,如图9所示,异构应用移植装置还包括测试模块55。
测试模块55,用于在物理机上测试异构应用。
测试模块,具体用于:在物理机上部署与移植异构应用成功的容器环境保持一致的运行环境;在物理机的运行环境下测试异构应用的功能与性能。
在本发明的又一个实施例中,如图10所示,异构应用移植装置还包括发布模块56。
发布模块56,用于在测试通过后,发布异构应用的相关信息。
应当理解的是,本实施例的异构应用移植装置与第一方面实施例的异构应用移植方法的描述一致,此处不再赘述。
本发明实施例的异构应用移植装置,通过在物理机上安装并配置容器环境,并定制目标镜像,以及启动目标镜像对应的容器,并在容器中验证异构应用的运行环境,然后在异构应用的运行环境验证通过后,移植异构应用,提高了应用移植和测试效率,节省资源,降低成本。
为了实现上述实施例,本发明还提出了一种计算机设备。
该计算机设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时,实现如第一方面实施例的异构应用移植方法。
为了实现上述实施例,本发明还提出了一种非临时性计算机可读存储介质。
该非临时性计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如第一方面实施例的异构应用移植方法。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
需要说明的是,在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
Claims (20)
1.一种异构应用移植方法,其特征在于,包括:
S1、在物理机上安装并配置容器环境,其中,所述物理机存储待移植的异构应用的代码,通过挂载的方式将所述物理机中的异构应用所在目录加入到镜像目录,不同容器通过挂载操作共享,在容器中对应用程序代码的修改直接保存在所述物理机中;
S2、定制目标镜像;
其中,定制目标镜像,包括:
获取异构计算平台的基础组件和异构应用的依赖库;
根据所述基础组件和所述依赖库定制所述目标镜像;
S3、启动所述目标镜像对应的容器,并在所述容器中验证所述异构应用的运行环境;
在所述容器中验证异构应用的运行环境,包括:验证所述异构应用的CPU运行环境;
验证所述异构应用的CPU运行环境,包括:
在所述容器中编译运行所述异构应用的CPU代码;
如果所述CPU代码编译运行正常,则确定所述异构应用的CPU运行环境验证通过;
如果所述CPU代码编译运行异常,则将第一异常结果与第一正常结果进行对比,以确定第一异常点,并修正所述第一异常点直至所述异构应用的CPU运行环境验证通过;
S4、在所述异构应用的运行环境验证通过后,移植所述异构应用;
其中,移植所述异构应用,包括:
在所述容器中修改所述异构应用的代码;
编译修改代码后的异构应用;
在编译通过后,测试修改代码后的异构应用的功能。
2.如权利要求1所述的方法,其特征在于,在所述容器中验证异构应用的运行环境,包括:
验证所述异构应用的异构计算平台运行环境。
3.如权利要求2所述的方法,其特征在于,验证所述异构应用的异构计算平台运行环境,包括:
在所述容器中编译运行所述异构计算平台的测试用例;
如果所述测试用例编译运行正常,则确定所述异构应用的异构计算平台运行环境验证通过;
如果所述测试用例编译运行异常,则将第二异常结果与第二正常结果进行对比,以确定第二异常点,并修正所述第二异常点直至所述异构应用的异构计算平台运行环境验证通过。
4.如权利要求1所述的方法,其特征在于,还包括:
如果编译修改代码后的异构应用未通过,则修改所述异构应用的代码;或者
更换另一目标镜像,直至编译修改代码后的异构应用通过。
5.如权利要求1所述的方法,其特征在于,还包括:
如果测试修改代码后的异构应用的功能未通过,则修改所述异构应用的代码;或者
更换另一目标镜像,直至测试修改代码后的异构应用的功能通过。
6.如权利要求4或5所述的方法,其特征在于,还包括:
在更换所述另一目标镜像后,判断所述另一目标镜像是否已验证;
如果已通过验证,则跳转至步骤S4;
如果未通过验证,则进一步判断所述另一目标镜像是否已定制;
如果已定制,则跳转至步骤S3;
如果未定制,则跳转至步骤S2。
7.如权利要求1所述的方法,其特征在于,还包括:
在所述物理机上测试所述异构应用。
8.如权利要求7所述的方法,其特征在于,在所述物理机上测试所述异构应用,包括:
在所述物理机上部署与移植所述异构应用成功的容器环境保持一致的运行环境;
在所述物理机的运行环境下测试所述异构应用的功能与性能。
9.如权利要求7所述的方法,其特征在于,还包括:
在测试通过后,发布所述异构应用的相关信息。
10.一种异构应用移植装置,其特征在于,包括:
配置模块,用于在物理机上安装并配置容器环境,其中,所述物理机存储待移植的异构应用的代码,通过挂载的方式将所述物理机中的异构应用所在目录加入到镜像目录,不同容器通过挂载操作共享,在容器中对应用程序代码的修改直接保存在所述物理机中;
定制模块,用于定制目标镜像;
所述定制模块,用于:
获取异构计算平台的基础组件和异构应用的依赖库;
根据所述基础组件和所述依赖库定制所述目标镜像;
验证模块,用于启动所述目标镜像对应的容器,并在所述容器中验证所述异构应用的运行环境;
所述验证模块,包括第一验证单元,用于验证所述异构应用的CPU运行环境;
所述第一验证单元,用于:
在所述容器中编译运行所述异构应用的CPU代码;
如果所述CPU代码编译运行正常,则确定所述异构应用的CPU运行环境验证通过;
如果所述CPU代码编译运行异常,则将第一异常结果与第一正常结果进行对比,以确定第一异常点,并修正所述第一异常点直至所述异构应用的CPU运行环境验证通过;
移植模块,用于在所述异构应用的运行环境验证通过后,移植所述异构应用;
所述移植模块,用于:
在所述容器中修改所述异构应用的代码;
编译修改代码后的异构应用;
在编译通过后,测试修改代码后的异构应用的功能。
11.如权利要求10所述的装置,其特征在于,所述验证模块,包括:
第二验证单元,用于验证所述异构应用的异构计算平台运行环境。
12.如权利要求11所述的装置,其特征在于,所述第二验证单元,用于:
在所述容器中编译运行所述异构计算平台的测试用例;
如果所述测试用例编译运行正常,则确定所述异构应用的异构计算平台运行环境验证通过;
如果所述测试用例编译运行异常,则将第二异常结果与第二正常结果进行对比,以确定第二异常点,并修正所述第二异常点直至所述异构应用的异构计算平台运行环境验证通过。
13.如权利要求10所述的装置,其特征在于,所述移植模块,还用于:
如果编译修改代码后的异构应用未通过,则修改所述异构应用的代码;或者
更换另一目标镜像,直至编译修改代码后的异构应用通过。
14.如权利要求10所述的装置,其特征在于,所述移植模块,还用于:
如果测试修改代码后的异构应用的功能未通过,则修改所述异构应用的代码;或者
更换另一目标镜像,直至测试修改代码后的异构应用的功能通过。
15.如权利要求13或14所述的装置,其特征在于,
所述移植模块,还用于在更换所述另一目标镜像后,判断所述另一目标镜像是否已验证;如果已通过验证,则针对所述另一目标镜像移植所述异构应用;如果未通过验证,则进一步判断所述另一目标镜像是否已定制;
如果已定制,则所述验证模块针对所述另一目标镜像验证异构应用的运行环境;
如果未定制,则所述定制模块定制所述另一目标镜像。
16.如权利要求10所述的装置,其特征在于,还包括:
测试模块,用于在所述物理机上测试所述异构应用。
17.如权利要求16所述的装置,其特征在于,所述测试模块,用于:
在所述物理机上部署与移植所述异构应用成功的容器环境保持一致的运行环境;
在所述物理机的运行环境下测试所述异构应用的功能与性能。
18.如权利要求16所述的装置,其特征在于,还包括:
发布模块,用于在测试通过后,发布所述异构应用的相关信息。
19.一种计算机设备,其特征在于,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如权利要求1-9任一所述的异构应用移植方法。
20.一种非临时性计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-9任一所述的异构应用移植方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010269454.4A CN111610976B (zh) | 2020-04-08 | 2020-04-08 | 异构应用移植方法、装置和计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010269454.4A CN111610976B (zh) | 2020-04-08 | 2020-04-08 | 异构应用移植方法、装置和计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111610976A CN111610976A (zh) | 2020-09-01 |
CN111610976B true CN111610976B (zh) | 2023-04-07 |
Family
ID=72199309
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010269454.4A Active CN111610976B (zh) | 2020-04-08 | 2020-04-08 | 异构应用移植方法、装置和计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111610976B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112882751A (zh) * | 2021-02-25 | 2021-06-01 | 曙光信息产业(北京)有限公司 | Cuda程序移植方法、装置、电子设备及存储介质 |
CN113190238B (zh) * | 2021-03-26 | 2024-10-15 | 中科曙光南京研究院有限公司 | 框架的部署方法、装置、计算机设备和存储介质 |
CN113268426A (zh) * | 2021-05-28 | 2021-08-17 | 曙光信息产业(北京)有限公司 | 一种应用测试方法、装置、计算机设备及存储介质 |
CN114841298B (zh) * | 2022-07-06 | 2022-09-27 | 山东极视角科技有限公司 | 一种训练算法模型的方法、装置、电子设备和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107766050A (zh) * | 2017-10-31 | 2018-03-06 | 新华三云计算技术有限公司 | 一种异构应用的部署方法以及装置 |
CN109274722A (zh) * | 2018-08-24 | 2019-01-25 | 北京北信源信息安全技术有限公司 | 数据共享方法、装置以及电子设备 |
CN110704162A (zh) * | 2019-09-27 | 2020-01-17 | 北京百度网讯科技有限公司 | 物理机共享容器镜像的方法、装置、设备及存储介质 |
CN110727547A (zh) * | 2019-09-11 | 2020-01-24 | 上海爱数信息技术股份有限公司 | 一种保护Docker应用容器的系统及方法 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5815415A (en) * | 1996-01-19 | 1998-09-29 | Bentley Systems, Incorporated | Computer system for portable persistent modeling |
US20040060038A1 (en) * | 2002-09-25 | 2004-03-25 | Duncan Johnston-Watt | Verifiable processes in a heterogeneous distributed computing environment |
US20080216064A1 (en) * | 2005-09-29 | 2008-09-04 | William Braswell | Method, Architecture and Software of Meta-Operating System, Operating Systems and Applications For Parallel Computing Platforms |
CN102799434B (zh) * | 2012-07-12 | 2016-02-10 | 北京深思数盾科技有限公司 | 一种利用软件保护装置实现自动代码移植的方法 |
CN103257878A (zh) * | 2013-05-16 | 2013-08-21 | 浪潮通信信息系统有限公司 | 一种基于云计算的应用程序的跨平台平滑迁移方法 |
US10452372B2 (en) * | 2014-12-15 | 2019-10-22 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and deployment module for managing a container to be deployed on a software platform |
US20200034167A1 (en) * | 2016-08-10 | 2020-01-30 | Nutanix, Inc. | Automatic application migration across virtualization environments |
CN106951322A (zh) * | 2017-02-28 | 2017-07-14 | 中国科学院深圳先进技术研究院 | 一种cpu/gpu异构环境的图像协同处理程序获取方法及系统 |
CN107122187A (zh) * | 2017-04-26 | 2017-09-01 | 四川中电启明星信息技术有限公司 | 一种业务系统异构操作系统访问设计方法 |
CA2997302C (en) * | 2018-03-05 | 2021-05-11 | Appzero Software Corp. | Application migration |
US11314627B2 (en) * | 2018-04-20 | 2022-04-26 | Sap Se | Test automation system for distributed heterogenous environments |
US10747650B2 (en) * | 2018-08-21 | 2020-08-18 | Jpmorgan Chase Bank, N.A. | Systems and methods for on-demand container-based development environments |
CN109408115B (zh) * | 2018-09-12 | 2022-03-04 | 上海华云互越数据技术有限公司 | 一种基于容器环境中迁移对象的方法及计算系统 |
CN109901852B (zh) * | 2019-02-28 | 2022-11-29 | 苏州浪潮智能科技有限公司 | 基于Docker原生CentOS的CUDA的安装方法、装置及设备 |
CN110399134A (zh) * | 2019-06-28 | 2019-11-01 | 绿漫科技有限公司 | 一种基于容器的快速部署方法及系统 |
CN110543328B (zh) * | 2019-07-26 | 2022-10-18 | 苏州浪潮智能科技有限公司 | 基于Ambari的跨平台组件管理方法、系统、终端及存储介质 |
CN110851237B (zh) * | 2019-11-13 | 2023-09-26 | 北京计算机技术及应用研究所 | 一种面向国产平台的容器跨异构集群重构方法 |
-
2020
- 2020-04-08 CN CN202010269454.4A patent/CN111610976B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107766050A (zh) * | 2017-10-31 | 2018-03-06 | 新华三云计算技术有限公司 | 一种异构应用的部署方法以及装置 |
CN109274722A (zh) * | 2018-08-24 | 2019-01-25 | 北京北信源信息安全技术有限公司 | 数据共享方法、装置以及电子设备 |
CN110727547A (zh) * | 2019-09-11 | 2020-01-24 | 上海爱数信息技术股份有限公司 | 一种保护Docker应用容器的系统及方法 |
CN110704162A (zh) * | 2019-09-27 | 2020-01-17 | 北京百度网讯科技有限公司 | 物理机共享容器镜像的方法、装置、设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
邱丽波 ; 邵笑梅 ; 苏慧 ; 王守勇 ; .嵌入式系统eCOS移植分析及应用.现代电子技术.2008,(24),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN111610976A (zh) | 2020-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111610976B (zh) | 异构应用移植方法、装置和计算机设备 | |
US20240028320A1 (en) | Methods and systems of software testing, distribution, installation and deployment | |
US10114637B1 (en) | Automatically updating a shared project build platform | |
US8533676B2 (en) | Single development test environment | |
Gamblin et al. | The Spack package manager: bringing order to HPC software chaos | |
US10579966B1 (en) | Adapting a shared project build platform to a developer plugin | |
US8745585B2 (en) | Meta-data for single development test environment | |
EP2932374B1 (en) | Systems, methods, and computer program products for a software build and load process using a compilation and deployment service | |
US8843921B1 (en) | System and method for controlling installed third party software components | |
US20130174124A1 (en) | Version numbering in single development and test environment | |
CN111399865A (zh) | 一种基于容器技术自动构建目标文件的方法 | |
EP2107458A1 (en) | Modelling software appliance | |
US20120272204A1 (en) | Uninterruptible upgrade for a build service engine | |
KR20070049095A (ko) | 서비스 패키지로 소프트웨어 제품을 업데이트하는 방법 및컴퓨터 판독가능 매체 | |
CN113986395B (zh) | 一种linux系统下应用依赖自包含技术的打包方法 | |
AU2012201749B2 (en) | Single development test environment | |
JP2018041450A (ja) | 技術的システムのオペレーティングソフトウェアの変更およびシミュレーション | |
CN112882718B (zh) | 编译处理方法、装置、设备及存储介质 | |
CN111124454A (zh) | 镜像构建方法与装置、电子设备、存储介质 | |
CN103645888A (zh) | 一种自动构建操作系统的系统及方法 | |
Peiro et al. | PaRTiKle OS, a replacement for the core of RTLinux-GPL | |
CN115639779A (zh) | 用于分发和执行工业控制器中的软件扩展的系统和方法 | |
EP2503450A2 (en) | Version numbering in single development and test environment | |
CN113064577A (zh) | 一种基于多核ARM的Linux实时改造方法 | |
Hegde et al. | Package Management System in Linux |
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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20220425 Address after: No. 33, Qiuyun Road, Qiaolin street, Pukou District, Nanjing City, Jiangsu Province, 211805 Applicant after: Zhongke Shuguang (Nanjing) Computing Technology Co.,Ltd. Address before: 100193 No.36 Zhongguancun Software Park, No.8 Dongbeiwang West Road, Haidian District, Beijing Applicant before: Dawning Information Industry (Beijing) Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |