一种面向高性能计算的随作业自动部署运行环境方法与流程

文档序号:24047409发布日期:2021-02-23 19:19阅读:77来源:国知局
一种面向高性能计算的随作业自动部署运行环境方法与流程

[0001]
本发明涉及计算机系统软件领域,尤其涉及一种面向高性能计算的随作业自动部署运行环境方法。


背景技术:

[0002]
当前的高性能计算机系统将物理结点划分为登录结点和计算结点,用户在登录结点发出作业请求后,高性能计算系统通过作业管理系统来分配计算结点以响应这些请求,完成相应的任务。在这个过程中,当前主要存在以下几种模式。
[0003]
一、传统的高性能计算作业执行方式
[0004]
传统的高性能计算系统中,用户之间共享登录结点(如图1所示)。用户在登录到登录结点之后,在登录结点的环境之下进行自己的应用程序的开发调试,这时用户可能会配置若干原本系统环境下没有的库和依赖。当用户准备将作业在计算结点上执行时,传统用户一般通过两种方式来配置好计算结点上所需要的运行环境。第一种是用户直接将作业所需要的库和依赖拷贝到相应的计算结点上,然后在作业执行时指定这些相应的结点来运行。第二种是将作业所需要的库和依赖配置到全局共享文件系统中,在作业执行时通过参数指定好相关的库和依赖的路径即可。
[0005]
这样的作业管理系统主要存在以下缺点:
[0006]
1.用户的作业部署压力大,为了使得作业可以被正常执行,需要手动配置环境,在第一种方式下,使用的计算结点数量越多,手动配置的压力越大。
[0007]
2.改变了高性能计算系统的原有环境。经过一个用户配置过的结点很可能会影响其他用户的使用,导致系统环境配置的混乱,并且这样的环境也不能保护用户的隐私。
[0008]
二、依赖容器的作业部署方式
[0009]
一个作业的使用的库和依赖项可能会很复杂,为了使得作业的部署更加简单,容器技术被应用到高性能计算的作业部署中。例如docker,将运行环境封装到一个容器image中,利用这个image可以实现较为迅速的作业的移植和部署。在计算结点上,用户只需要将封装好的容器image部署好,就相当于配置好了作业所需要的完整系统环境。这种融入容器技术的高性能计算作业管理系统,相对于传统的方式有了一定的效率提升。
[0010]
但是这种方式下依然存在着相应的缺点:
[0011]
1.用户使用容器来封装自己的作业运行环境,容器的内容必须包含这个作业运行所需要的完整系统环境,而这些内容都必须由用户手动维护,给用户带来较大的负担。
[0012]
2.用户封装完成作业的执行环境,生成容器image,还需要用户手动将这个容器image部署到计算结点或者全局共享文件系统上,并在通过作业管理系统运行作业时需要指定作业管理系统运行这个容器image,这些工作依然给用户带来了较大的负担。
[0013]
3.传统的容器使用的隔离技术给作业的运行带来了较大的性能开销。


技术实现要素:

[0014]
本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一种面向高性能计算的随作业自动部署运行环境方法,通过一种轻量级的运行环境来提高高性能计算的作业部署效率,减少用户的负担的同时引入近乎可以忽略的开销,减少用户的环境配置负担。
[0015]
为解决上述技术问题,本发明提出的技术方案为:
[0016]
一种面向高性能计算的随作业自动部署运行环境方法,包括以下步骤:
[0017]
s1)在高性能计算系统结点预置隔离运行环境:基于分层文件系统实现用户的环境共享和自由定制以及运行环境的自动部署,结合进程隔离实现多用户互相独立的开发和运行环境;
[0018]
s2)用户登录到登录结点的隔离运行环境:用户登录到高性能计算系统的登录结点,面向高性能的随作业自动部署的运行环境机制为用户提供一个隔离的轻量级的开发环境;
[0019]
s3)用户在登录结点进行对作业的开发调试以及对作业运行环境的配置,并向作业管理系统发出作业运行请求;
[0020]
s4)作业管理系统为用户作业分配高性能计算系统结点的计算结点,并在作业加载的同时自动将用户的上层文件系统随作业同步部署到分配的计算结点上,然后相应的计算结点运行用户的作业;
[0021]
s5)作业执行完毕,计算结点将结果反馈给用户的登录结点,然后计算结点清除掉自己的上层文件系统,结束作业进程并结束。
[0022]
进一步的,步骤s1)具体包括:将标准的系统环境作为层次化文件系统的底层,将用户自定义的作业运行所需要的依赖作为层次化文件系统的上层,在高性能计算系统的登录结点和计算结点预置底层文件系统,在登录结点上运行一个daemon进程监听用户登录请求,同时将随作业自动部署的运行环境机制融入到作业管理系统中。
[0023]
进一步的,所述随作业自动部署的运行环境机制具体包括;作业管理系统在收到来自登录结点的用户作业运行请求时,首先为其分配计算结点,然后在计算结点上启动一个轻量级运行环境,把用户在登录结点的自定义环境自动同步到这些计算结点上来,作为作业的运行环境。
[0024]
进一步的,步骤s2)具体包括以下步骤:
[0025]
s21)用户向高性能计算系统的登录结点发出登录请求;
[0026]
s22)登录结点的daemon进程持续监听,收到用户的登录请求后启动轻量级运行环境作为用户的登录空间,所述轻量级运行环境包括一个拥有一棵完整的进程树的隔离的进程,以及一个空的上层文件系统;
[0027]
s23)用户登录到登录结点启动的所述轻量级运行环境中。
[0028]
进一步的,步骤s3)具体包括以下步骤:
[0029]
s31)用户按照实际需求直接使用底层文件系统的标准配置;
[0030]
s32)用户在上层文件系统中针对自己独有的作业进行开发调试,同时针对独有的运行依赖项进行自主配置;
[0031]
s33)用户的作业在登录结点开发调试完成之后,执行作业运行命令,向作业管理
系统发出作业运行请求。
[0032]
进一步的,步骤s4)具体包括以下步骤:
[0033]
s41)作业管理系统收到用户作业运行请求时,根据当前系统中计算结点的负载情况为作业分配相应的计算结点,并在计算结点上启动一个轻量级运行环境作为作业的执行空间,所述轻量级运行环境包括一个拥有一棵完整的进程树的隔离的进程,以及一个空的上层文件系统;
[0034]
s42)将用户在登录结点的上层文件系统同步到所分配的计算结点上,所述登录结点的上层文件系统作为该计算结点的上层文件系统;
[0035]
s43)所分配的计算结点根据上层文件中系统中用户的作业内容以及作业所需要的依赖项执行作业。
[0036]
本发明还提出一种面向高性能计算的运行环境自动部署装置,包括计算机设备,所述计算机设备被编程或配置以执行上述的面向高性能计算的随作业自动部署运行环境方法。
[0037]
本发明还提出一种计算机可读存储介质,所述计算机可读存储介质存储有被编程或配置以执行上述的面向高性能计算的随作业自动部署运行环境方法的计算机程序。
[0038]
与现有技术相比,本发明的优点在于:
[0039]
1.本发明在计算结点部署用户的作业以及运行环境的过程是对用户完全透明的,在用户看来是完全自动完成的,这很大程度上减轻了用户的负担。同时这种随作业自动部署的运行环境机制相对于用户的手动部署更加高效,特别适用于高性能计算情景。
[0040]
2.本发明仅仅使用了层次化文件系统来为用户实现运行环境的自由定制,不需要引入传统的容器image,空间开销相对更小。同时本发明相对于传统的容器技术隔离程度也更低。这些对于高性能计算场景来说能够在保证用户需求的同时提供更小的性能开销。
[0041]
3.本发明支持用户自由定制自己的运行环境,系统管理员维护和管理底层基本环境,用户之间开发环境相互隔离互不影响,相对于传统的高性能计算系统使用场景,本发明在保证了用户共享系统标准配置的情况下,又提供给用户更大的自主权,保护了用户的隐私。同时用户的自由定制也不会影响到底层系统环境,提高了系统的安全性。
附图说明
[0042]
图1是传统的高性能计算作业执行方式图;
[0043]
图2是本发明的运行环境部署示意图;
[0044]
图3是本发明的总体流程图。
具体实施方式
[0045]
以下结合说明书附图和具体优选的实施例对本发明作进一步描述,但并不因此而限制本发明的保护范围。
[0046]
本发明解决的问题是,第一,引入一种轻量级的运行环境的概念,其只利用层次化的文件系统来做应用依赖的封装,将标准的系统环境作为层次化文件系统的底层,将用户自定义的作业运行所需要的依赖等作为层次化文件系统的上层。这样每个用户都可以共享标准的系统环境,并且用户对于环境的更改定制不会在用户之间产生影响。相对于传统的
容器来说,这样的运行环境更加轻量级,带来的开销也更低。第二,在运行环境的部署方式上,提供一种透明自动的随作业部署方式。首先,用户登录结点和计算结点预置底层文件系统,都是一些公用层,提供标准的系统环境。用户在登录结点上自定义各类运行库,这类定制发生在上层文件系统中。然后在加载作业的时候,作业管理系统自动将上层文件系统随作业部署至分配的计算结点上,以实现自动部署。
[0047]
本发明的核心思想是通过一种轻量级的运行环境来提高高性能计算的作业部署效率,减少用户的负担的同时引入近乎可以忽略的开销。整体而言,首先,在高性能计算机的每个登录结点和计算结点,设计层次化文件系统实现多用户的共享环境定制与隔离。其中底层文件系统是由系统管理员管理和维护的标准系统环境,上层文件系统是各个用户的自由定制空间,用户可以在这一层部署自己的作业,配置相应的运行依赖项。在登录结点,为登录的用户设计一个隔离的运行环境,通过进程隔离以及层次化的文件系统来实现。当新的用户登录时,登录结点启动一个新的进程,并将这个进程进行隔离,这样每个用户都独立地拥有一整棵进程树,在共享底层文件系统地基础上,独立地拥有自己的上层文件系统,也就是共享了标准系统配置的情况下,可以进行自己的运行环境定制,这个过程既不会影响到底层文件系统,也不会在不同用户之间造成影响,并且这个过程是在极短的时间内完成的,时间开销小,同时又因为没有传统的容器image空间占用,上层文件系统的初始化也为空,因此空间开销也极小。其次,在用户配置完成自己的运行环境,执行作业运行命令时,作业管理系统在加载作业的同时自动将用户的上层文件系统随作业部署到分配的计算结点上(如图2所示),这个过程对于用户来说是透明的、自动完成的,很大程度上减少了用户的环境配置负担。
[0048]
如图3所示,本发明提出一种面向高性能计算的随作业自动部署运行环境方法,包括以下步骤:
[0049]
s1)在高性能计算系统结点预置隔离运行环境:基于分层文件系统实现用户的环境共享和自由定制以及运行环境的自动部署,结合进程隔离实现多用户互相独立的开发和运行环境;
[0050]
s2)用户登录到登录结点的隔离运行环境:用户登录到高性能计算系统的登录结点,面向高性能的随作业自动部署的运行环境机制为用户提供一个隔离的轻量级的开发环境;
[0051]
s3)用户在登录结点进行对作业的开发调试以及对作业运行环境的配置,并向作业管理系统发出作业运行请求;
[0052]
s4)作业管理系统为用户作业分配高性能计算系统结点的计算结点,并在作业加载的同时自动将用户的上层文件系统随作业同步部署到分配的计算结点上,然后相应的计算结点运行用户的作业;
[0053]
s5)作业执行完毕,计算结点将结果反馈给用户的登录结点,然后计算结点清除掉自己的上层文件系统,结束作业进程并结束。
[0054]
本实施例的步骤s1)具体包括:将标准的系统环境作为层次化文件系统的底层,将用户自定义的作业运行所需要的依赖作为层次化文件系统的上层,在高性能计算系统的登录结点和计算结点预置底层文件系统,在登录结点上运行一个daemon进程监听用户登录请求,同时将随作业自动部署的运行环境机制融入到作业管理系统中。高性能计算系统中结
点分为计算结点和登录结点,作业管理系统负责处理登录结点发出的作业请求,将计算任务分配到合适的计算结点上。本发明仅仅使用了层次化文件系统来为用户实现运行环境的自由定制,不需要引入传统的容器image,空间开销相对更小。同时本发明相对于传统的容器技术隔离程度也更低。这些对于高性能计算场景来说能够在保证用户需求的同时提供更小的性能开销。
[0055]
在登录结点上运行的daemon进程的作用是给登录的用户提供一个隔离的开发环境。在高性能计算系统中,用户通过登录到登录结点时,登录结点上daemon进程持续监听是否有用户的登录请求,当监听到用户的登录请求时,这个daemon进程负责启动一个新的隔离的进程,这个进程独立地拥有一棵完整的进程树。然后叠加一个空的文件系统作为层次化文件系统的上层,这也是用户开发配置的空间。
[0056]
随作业自动部署的运行环境机制具体包括;作业管理系统在收到来自登录结点的用户作业运行请求时,首先为其分配计算结点,然后在计算结点上启动一个轻量级运行环境,把用户在登录结点的自定义环境自动同步到这些计算结点上来,作为作业的运行环境。传统的作业管理系统在收到登录结点的作业运行请求时,分配完计算结点之后就直接在计算结点上运行作业。而本实施例中随作业自动部署的运行环境机制对作业管理系统的实现进行了相应修改,使得作业运行过程中不同用户之间的作业相互隔离,同时减少了用户的环境配置负担。
[0057]
本实施例的步骤s2)具体包括以下步骤:
[0058]
s21)用户向高性能计算系统的登录结点发出登录请求;
[0059]
s22)登录结点的daemon进程持续监听,收到用户的登录请求后启动轻量级运行环境作为用户的登录空间,所述轻量级运行环境包括一个拥有一棵完整的进程树的隔离的进程,以及一个空的上层文件系统;
[0060]
s23)用户登录到登录结点启动的所述轻量级运行环境中。
[0061]
本实施例的步骤s3)具体包括以下步骤:
[0062]
s31)用户按照实际需求直接使用底层文件系统的标准配置,系统管理员所维护的标准系统环境作为层次化文件系统的底层,用户可以完全共享这些标准配置,例如基本的依赖库都可以被用户直接使用,不需要用户再次手动配置;
[0063]
s32)用户在上层文件系统中针对自己独有的作业进行开发调试,同时针对独有的运行依赖项进行自主配置,用户作业的开发调试以及自定义的配置均在层次化文件系统的上层,每个用户都拥有自己独有的作业,在上层文件系统中进行开发调试,对于其他用户不可见,用户作业所使用的独有的运行依赖项,用户进行自主配置,这也发生在层次化文件系统的上层;
[0064]
s33)用户的作业在登录结点开发调试完成之后,执行作业运行命令,向作业管理系统发出作业运行请求。
[0065]
上述步骤支持用户自由定制自己的运行环境,系统管理员维护和管理底层基本环境,用户之间开发环境相互隔离互不影响,相对于传统的高性能计算系统使用场景,本发明在保证了用户共享系统标准配置的情况下,又提供给用户更大的自主权,保护了用户的隐私。同时用户的自由定制也不会影响到底层系统环境,提高了系统的安全性。
[0066]
本实施例的步骤s4)具体包括以下步骤:
[0067]
s41)作业管理系统收到用户作业运行请求时,根据当前系统中计算结点的负载情况为作业分配相应的计算结点,并在计算结点上启动一个轻量级运行环境作为作业的执行空间,所述轻量级运行环境包括一个拥有一棵完整的进程树的隔离的进程,以及一个空的上层文件系统;
[0068]
s42)将用户在登录结点的上层文件系统同步到所分配的计算结点上,所述登录结点的上层文件系统作为该计算结点的上层文件系统;
[0069]
s43)所分配的计算结点根据上层文件中系统中用户的作业内容以及作业所需要的依赖项执行作业。
[0070]
上述步骤中,在计算结点部署用户的作业以及运行环境的过程是对用户完全透明的,在用户看来是完全自动完成的,这很大程度上减轻了用户的负担。同时这种随作业自动部署的运行环境机制相对于用户的手动部署更加高效,特别适用于高性能计算情景
[0071]
本实施例还提出一种面向高性能计算的运行环境自动部署装置,包括计算机设备,所述计算机设备被编程或配置以执行上述的面向高性能计算的随作业自动部署运行环境方法。
[0072]
本实施例还提出一种计算机可读存储介质,所述计算机可读存储介质存储有被编程或配置以执行上述的面向高性能计算的随作业自动部署运行环境方法的计算机程序。
[0073]
上述只是本发明的较佳实施例,并非对本发明作任何形式上的限制。虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明。因此,凡是未脱离本发明技术方案的内容,依据本发明技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均应落在本发明技术方案保护的范围内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1