用于软件模块开发的系统技术方案

技术编号:33068640 阅读:57 留言:0更新日期:2022-04-15 10:00
用于软件模块开发的系统和方法。配置文件和进程代理模块结合计算机系统协同操作,以预配置一个或更多个执行环境以实施开发中的用户软件模块的一个或更多个实例。配置文件包含限定执行环境的限制和能力以及软件模块所需的参数的硬件和软件配置。进程代理启动执行环境并确保在执行环境中执行的软件模块可以访问配置文件中设置的资源。一旦软件模块的执行完成,性能结果就会被传递给进程代理进行核对和分析。然后可以使用这些结果来确定软件模块的哪次实施进行得最好。的哪次实施进行得最好。的哪次实施进行得最好。

【技术实现步骤摘要】
【国外来华专利技术】用于软件模块开发的系统


[0001]本专利技术涉及软件开发。更具体地,本专利技术涉及用于开发软件模块的系统和方法。

技术介绍

[0002]过去几年,人工智能,更具体地说是机器学习和神经网络的兴趣和发展的激增,致使对用于开发此类技术的系统的需求迅速增长。为此,越来越多的计算机科学家、开发人员和工程师正在突破技术界限,以得到越来越好的系统。然而,这也给这些科学家、工程师和开发人员带来了许多潜在的问题。
[0003]在开发软件时,不同的配置在性能方面会产生不同的结果。因此,为了优化正在开发的软件的性能,开发人员需要保持跟踪这些不同的配置,并确保保持提供最佳结果的配置。然而,一些软件可能有几十个甚至数百个配置,并且保持跟踪如此多的参数和设置在最好的情况下也仍是繁重的。同样,运行软件的系统的配置也会影响软件的性能。因此,还需要保持跟踪系统的配置,以确保软件的各种配置都在公平的竞争环境中竞争。同样,这可能成为一项繁重的任务。
[0004]应该清楚的是,由于可以使用各种形式的执行环境来执行软件开发,所以上述所有变得更加具有挑战性。为确保正在开发的软件的各种配置都得到正确评估,执行此类软件的执行环境的配置将必须尽可能彼此相同。
[0005]在开发神经网络和机器学习系统时,上述问题更加尖锐。此类系统使用的超参数很容易达到数百个,并且确保正在开发的软件系统的每个版本都在相同的执行环境中运行可能在最好的情况下也仍是困难的。不仅如此,所使用的超参数的每次更改都可能产生不同的结果,因此,需要整理、跟踪和管理每个系统的性能,以确保正确的参数设置与正确的性能指标相关联。
[0006]因此,需要解决上述问题的系统和/或方法。优选地,这样的方法或系统即使不能克服也可以减轻上述问题,并且还优选地,这样的系统或方法也易于开发人员和/或研究人员使用。

技术实现思路

[0007]本专利技术提供了用于软件模块开发的系统和方法。配置文件和进程代理模块结合计算机系统协同操作,以预配置(provision,配置、准备、预备、初始化)一个或更多个执行环境以实施开发中的用户软件模块的一个或更多个实例。配置文件包含限定执行环境的限制和能力以及软件模块所需的参数的硬件和软件配置。进程代理启动执行环境并确保在执行环境中执行的软件模块可以访问配置文件中设置的资源。一旦软件模块的执行完成,性能结果就会被传递给进程代理进行核对和分析。然后可以使用这些结果来确定软件模块的哪次实施进行得最好。在一个具体实现方式中,进程代理本身是虚拟机,并管理其他虚拟机/执行环境和其他作业的配置、预配置和启动。
[0008]在第一方面,本专利技术提供了一种用于预配置和启动软件模块的一个或更多个实例
的系统,该系统包括:
[0009]‑
配置文件,其详细说明用于实施所述软件模块的至少一个实例的硬件和软件配置;
[0010]‑
进程代理模块,其用于配置至少一个计算机系统以实施所述软件模块的所述至少一个实例,所述进程代理使用所述配置文件来配置所述至少一个计算机系统;
[0011]其中
[0012]‑
所述配置文件存储在数据存储装置中,使得所述文件是可检索的,使得所述软件模块的每次实施都使用所述配置文件;
[0013]‑
所述配置文件由标识符唯一标识,所述标识符与所述软件模块唯一相关联。
[0014]在第二方面,本专利技术提供了一种用于启动软件模块的多个实例的系统,该系统包括:
[0015]‑
配置文件,其详细描述用于实施所述软件模块的所述多个实例的配置;
[0016]‑
进程代理模块,其用于配置至少一个计算机系统以实施所述软件模块的所述多个实例,所述进程代理使用所述配置文件来配置所述至少一个计算机系统;
[0017]其中
[0018]‑
所述配置文件由标识符唯一标识,所述标识符与所述软件模块唯一相关联。
附图说明
[0019]现在将参考以下附图描述本专利技术的实施方式,其中不同附图中相同的附图标记表示相同的元件并且其中:
[0020]图1是示出根据本专利技术的一个方面的系统中的部件的框图。
具体实施方式
[0021]一方面,本专利技术提供了一种包括配置文件和进程代理模块的系统。这两者合作以解决上述问题。在操作中,配置文件由用户准备并且与用户正在准备/开发的软件模块唯一相关联。配置文件被准备以包括将运行用户软件模块的虚拟机所需的软件和硬件配置。这可能包括:要为虚拟机提供多少RAM(随机存取存储器);要为虚拟机分配/提供多少处理器内核(或多个处理器);有多少GPU专用于该虚拟机;以及,在一些使用多任务环境的实现方式中,要赋予软件模块的进程什么优先级。除此之外,配置文件还可以包括软件模块可能需要的各种参数的范围。例如,软件模块可以是神经网络的实现,照此,神经网络中的各个节点将需要超参数值。配置文件可以包括神经网络中各个节点的各种超参数的范围。
[0022]与配置文件协作,进程代理用于基于配置文件的内容进行执行环境的配置。因此,进程代理读取配置文件的内容,并在必要时基于这些内容预配置一个或更多个执行环境。此外,进程代理实际上启动与配置文件唯一相关联的软件模块,并在必要时再次使用配置文件中的参数值用于软件模块的相关部件。应该清楚的是,配置文件还可以包含诸如要执行多少软件模块的试验/测试/实现之类的参数。因此,进程代理采用这些试验参数并预配置必要数量的执行环境以并行地运行必要数量的软件模块实例。例如,如果配置文件指出需要软件模块的五个实例,每个实例都有特定的要使用的参数组,则进程代理将配置并启动五个相同的执行环境,每个环境都将执行带有相关参数的软件模块。
[0023]除了上述之外,进程代理还可以接收和核对由被测试和/或开发的软件模块的各种实例产生的任何结果。这包括软件模块的各种配置实例(通过参数)的性能数据。通过这样做,进程代理可以收集、核对和排列(按性能结果)各种结果。因此,进程代理可以确定使用哪些参数为软件模块产生最佳性能配置。然后可以将这些结果和排名呈现给用户,并且如果需要或期望,用户可以重写/修改配置文件,使得优化参数在配置文件中。
[0024]为清楚起见,由配置文件和进程代理控制、预配置和启动的执行环境的概念包括在独立于平台的环境上执行的单独资源(例如CPU、RAM、GPU、网络适配器),该环境能够将这些资源暴露给一组用户定义的程序。术语“执行环境”包括诸如虚拟机、进程虚拟机、docker容器以及物理机的完全虚拟化或仿真之类的示例。因此,当进程代理启动执行环境时,这可能包括启动专门预配置的虚拟机、物理机的仿真(预配置有特定资源),或简单地启动预配置有用户程序可用的特定资源的特定软件环境(即软件模块)。
[0025]应该清楚的是,配置文件和进程代理的使用还提供了额外的优势。一旦找到了用于软件模块的最佳(或接近最佳)参数并将其输入到配置文件中,就可以将该文件存储在数据存储装置中。每当必须再次执行或实施软件模块时本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种用于预配置和启动软件模块的一个或更多个实例的系统,所述系统包括:

配置文件,所述配置文件详细说明用于实施所述软件模块的至少一个实例的硬件和软件配置;

进程代理模块,所述进程代理模块用于配置至少一个计算机系统以实施所述软件模块的所述至少一个实例,所述进程代理使用所述配置文件来配置所述至少一个计算机系统;其中

所述配置文件存储在数据存储装置中,使得所述文件是能检索的,使得所述软件模块的每次实施都使用所述配置文件;并且

所述配置文件由标识符唯一标识,所述标识符与所述软件模块唯一相关联。2.根据权利要求1所述的系统,其中,所述软件模块实现神经网络。3.根据权利要求2所述的系统,其中,所述配置文件包含要用作所述神经网络的超参数的值的范围。4.根据权利要求2所述的系统,其中,所述配置文件使所述进程代理启动所述软件模块的多个实例。5.根据权利要求4所述的系统,其中,所述软件模块的所述多个实例中的每个实例都使用不同的超参数值组。6.根据权利要求5所述的系统,其中,所述软件模块的每个实例都产生被发送到所述进程代理的输出。7.根据权利要求6所述的系统,其中,所述进程代理评估所述软件模块的所述实例的输出,并基于所述软件模块的所述多个实例的所述输出确定用于所述神经网络的最佳超参数组。8.根据权利要求1所述的系统,其中,所述配置文件包含要用作所述软件模块的参数的值的范围,所述参数是影响所述软件模块的性能的值。9.根据权利要求8所述的系统,其中,所述配置文件使所述进程代理启动所述软件模块的多个实例。10.根据权利要求4所...

【专利技术属性】
技术研发人员:托马斯
申请(专利权)人:瑟威斯劳加拿大有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1