KR20210065817A - Apparatus for Layer switching of Deep Learning Private Cloud Service - Google Patents
Apparatus for Layer switching of Deep Learning Private Cloud Service Download PDFInfo
- Publication number
- KR20210065817A KR20210065817A KR1020200037145A KR20200037145A KR20210065817A KR 20210065817 A KR20210065817 A KR 20210065817A KR 1020200037145 A KR1020200037145 A KR 1020200037145A KR 20200037145 A KR20200037145 A KR 20200037145A KR 20210065817 A KR20210065817 A KR 20210065817A
- Authority
- KR
- South Korea
- Prior art keywords
- user
- container
- deep learning
- information
- private cloud
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Biophysics (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
- Computer And Data Communications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
본 발명은 프라이빗 클라우드 서비스에 관한 것으로, 특히 딥러닝 프라이빗 클라우드 서비스의 계층 전환 장치에 관한 것이다.The present invention relates to a private cloud service, and more particularly, to an apparatus for layer switching of a deep learning private cloud service.
이 부분에 기술된 내용은 단순히 본 실시예에 대한 배경 정보를 제공할 뿐 종래기술을 구성하는 것은 아니다.The content described in this section merely provides background information for the present embodiment and does not constitute the prior art.
프라이빗 클라우드 서비스는 기업이 직접 클라우드 환경을 구축하고, 이를 기업 내부에서 활용하거나 또는 계열사에 공개하는 것을 의미한다. 외부 클라우드 사업자의 서비스를 이용하지 않고 서비스를 위한 인프라를 해당 조직의 방화벽 뒤에서 내부적으로 운영하여 컴퓨팅 리소스를 보다 효율적으로 관리할 수 있다. 하지만 프라이빗 클라우드 서비스는 최고 수준의 보안이 적용되는 만큼 비용이 많이 드는 문제가 있다.Private cloud service means that a company directly builds a cloud environment, uses it inside the company, or discloses it to affiliates. Computing resources can be managed more efficiently by operating the infrastructure for the service internally behind the organization's firewall without using the services of an external cloud provider. However, there is a problem that private cloud services are expensive as the highest level of security is applied.
프라이빗 클라우드 서비스는 외부에 의존하지 않기 때문에 구성이 자유롭고 자사의 비즈니스에 최적화된 서비스를 구현하기에 용이하며, 상대적으로 보안성이 높다. 하지만, 초기 투자 비용이 많이 들며, 일정 수준 이상의 규모를 확보하지 않으면 오히려 효용성이 떨어지는 문제가 있다.Since the private cloud service does not depend on the outside, it is easy to configure, and it is easy to implement a service optimized for your own business, and it has relatively high security. However, there is a problem in that the initial investment cost is high, and if the scale is not secured above a certain level, the utility is rather reduced.
본 발명의 실시예들은 개인 또는 단체 등에서 보유하거나 접근할 수 있는 GPGPU 시스템을 공동으로 효과적으로 활용할 수 있는 딥러닝 기반의 프라이빗 클라우드 GPGPU 및 CPU와 같은 제한된 자원을 분배하여 다른 사용자로부터 방해 받지 않고 독립적인 개발 및 실행 환경을 구성하여 컨테이너 기술 또는 클라우드 기술을 통해 제공하는데 발명의 주된 목적이 있다.Embodiments of the present invention are independent development without interference from other users by distributing limited resources such as deep learning-based private cloud GPGPU and CPU that can effectively utilize the GPGPU system that can be owned or accessed by individuals or groups, etc. And the main object of the invention is to configure the execution environment and provide it through container technology or cloud technology.
본 발명의 명시되지 않은 또 다른 목적들은 하기의 상세한 설명 및 그 효과로부터 용이하게 추론할 수 있는 범위 내에서 추가적으로 고려될 수 있다.Other objects not specified in the present invention may be additionally considered within the scope that can be easily inferred from the following detailed description and effects thereof.
본 실시예의 일 측면에 의하면, 본 발명은 딥러닝 통합 서버와 통신을 수행하고, 다양한 형태의 물리 장치 계층을 추상화 계층으로 전환하는 계산 노드 에이전트를 포함하는 프라이빗 클라우드 서비스의 계층 전환 장치를 제안한다.According to one aspect of the present embodiment, the present invention proposes a layer switching device for a private cloud service that communicates with a deep learning integration server and includes a compute node agent that converts various types of physical device layers into abstraction layers.
본 발명의 또 다른 실시예에 따르면, 본 발명은 사용자가 설정하는 운영 환경을 딥러닝 통합 서버에 등록된 장치 그룹과 결합하도록 유휴 장치 그룹을 찾고, 상기 유휴 장치 그룹을 사용자의 요청에 따라 계산 노드 에이전트로 배정하는 일을 수행하는 작업 스케줄러를 포함하는 프라이빗 클라우드 서비스의 계층 전환 장치를 제안한다.According to another embodiment of the present invention, the present invention finds an idle device group to combine the operating environment set by the user with the device group registered in the deep learning integration server, and sets the idle device group to a computation node according to the user's request. We propose a layer switching device for a private cloud service including a task scheduler that performs tasks assigned to an agent.
이상에서 설명한 바와 같이 본 발명의 실시예들에 의하면, 본 발명은 제한된 자원을 상호 배타적으로 분배하여 다른 사용자로부터 방해 받지 않고 독립적인 개발 및 실행 환경을 구성할 수 있는 효과가 있다.As described above, according to the embodiments of the present invention, the present invention has an effect that an independent development and execution environment can be configured without interference from other users by distributing limited resources to each other.
본 발명의 실시예들에 의하면, 본 발명은 AI 분야의 프로그래밍을 위한 환경으로 프로그래밍 노트북 인터페이스를 기본적으로 제공하며, 일정 규모 이상의 개발 프로젝트를 위해서 일반적인 개발 환경이 필요한 사용자를 위해서는 Microsoft 회사가 공개 소스로 공개한 개발 환경 IDE등을 온라인으로 사용할 수 있는 환경을 제공하는 효과가 있다.According to the embodiments of the present invention, the present invention basically provides a programming laptop interface as an environment for programming in the field of AI, and for users who need a general development environment for a development project of a certain size or more, the Microsoft company is an open source It has the effect of providing an environment where the public development environment IDE can be used online.
여기에서 명시적으로 언급되지 않은 효과라 하더라도, 본 발명의 기술적 특징에 의해 기대되는 이하의 명세서에서 기재된 효과 및 그 잠정적인 효과는 본 발명의 명세서에 기재된 것과 같이 취급된다.Even if it is an effect not explicitly mentioned herein, the effects described in the following specification expected by the technical features of the present invention and their potential effects are treated as if they were described in the specification of the present invention.
도 1은 본 발명의 일 실시예에 따른 딥러닝 프라이빗 클라우드 서비스의 계층 전환 장치에 의한 계층 전환 방법을 나타내는 흐름도이다.
도 2는 본 발명의 일 실시예에 따른 딥러닝 프라이빗 클라우드 서비스의 추상화 계층을 나타내는 도면이다.
도 3은 본 발명의 일 실시예에 따른 딥러닝 프라이빗 클라우드 서비스의 계산 노드 에이전트의 처리를 나타내는 흐름도이다.
도 4는 본 발명의 일 실시예에 따른 딥러닝 프라이빗 클라우드 서비스의 계산 노드 에이전트의 새로운 장치 그룹 등록을 나타내는 도면이다.
도 5는 본 발명의 일 실시예에 따른 딥러닝 프라이빗 클라우드 서비스의 계산 노드 에이전트에 따른 운영 컨테이너 동기화를 나타내는 도면이다.
도 6은 본 발명의 일 실시예에 따른 딥러닝 프라이빗 클라우드 서비스의 계산 노드 에이전트에 따른 에이전트 상태 제어를 나타내는 도면이다.
도 7은 본 발명의 일 실시예에 따른 딥러닝 프라이빗 클라우드 서비스의 계산 노드 에이전트에서 운영 컨테이너 제어 절차를 나타내는 흐름도이다.
도 8은 본 발명의 일 실시예에 따른 딥러닝 프라이빗 클라우드 서비스의 딥러닝 작업 스케줄러의 동작을 나타내는 도면이다.
도 9는 본 발명의 일 실시예에 따른 딥러닝 프라이빗 클라우드 서비스의 딥러닝 작업 스케줄러의 처리를 나타내는 흐름도이다.
도 10은 본 발명의 일 실시예에 따른 딥러닝 프라이빗 클라우드 서비스의 웹 서비스 구조를 나타내는 도면이다.
도 11은 본 발명의 일 실시예에 따른 딥러닝 프라이빗 클라우드 서비스의 개념 구조를 나타내는 도면이다.
도 12는 실시예들에서 사용되기에 적합한 컴퓨팅 기기를 포함하는 컴퓨팅 환경을 예시하여 설명하기 위한 블록도이다.1 is a flowchart illustrating a layer switching method by a layer switching device of a deep learning private cloud service according to an embodiment of the present invention.
2 is a diagram illustrating an abstraction layer of a deep learning private cloud service according to an embodiment of the present invention.
3 is a flowchart illustrating the processing of a computation node agent of a deep learning private cloud service according to an embodiment of the present invention.
4 is a diagram illustrating a new device group registration of a compute node agent of a deep learning private cloud service according to an embodiment of the present invention.
5 is a diagram illustrating synchronization of an operating container according to a compute node agent of a deep learning private cloud service according to an embodiment of the present invention.
6 is a diagram illustrating agent state control according to a compute node agent of a deep learning private cloud service according to an embodiment of the present invention.
7 is a flowchart illustrating an operation container control procedure in a compute node agent of a deep learning private cloud service according to an embodiment of the present invention.
8 is a diagram illustrating an operation of a deep learning task scheduler of a deep learning private cloud service according to an embodiment of the present invention.
9 is a flowchart illustrating processing of a deep learning task scheduler of a deep learning private cloud service according to an embodiment of the present invention.
10 is a diagram illustrating a web service structure of a deep learning private cloud service according to an embodiment of the present invention.
11 is a diagram illustrating a conceptual structure of a deep learning private cloud service according to an embodiment of the present invention.
12 is a block diagram illustrating and describing a computing environment including a computing device suitable for use in embodiments.
이하, 첨부된 도면을 참조하여 본 발명의 실시 예를 상세히 설명한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 게시되는 실시 예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 본 발명의 게시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings. Advantages and features of the present invention, and a method for achieving them will become apparent with reference to the embodiments described below in detail in conjunction with the accompanying drawings. However, the present invention is not limited to the embodiments published below, but may be implemented in various different forms, and only these embodiments allow the publication of the present invention to be complete, and common knowledge in the technical field to which the present invention pertains. It is provided to fully inform the possessor of the scope of the invention, and the present invention is only defined by the scope of the claims. Like reference numerals refer to like elements throughout.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.Unless otherwise defined, all terms (including technical and scientific terms) used herein may be used in the meaning commonly understood by those of ordinary skill in the art to which the present invention belongs. In addition, terms defined in a commonly used dictionary are not to be interpreted ideally or excessively unless clearly defined in particular.
본 출원에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다, 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terms used in this application are only used to describe specific embodiments, and are not intended to limit the present invention. The singular expression includes the plural expression unless the context clearly dictates otherwise. In the present application, terms such as “comprise” or “have” are intended to designate that a feature, number, step, operation, component, part, or combination thereof described in the specification exists, but one or more other features It should be understood that this does not preclude the existence or addition of numbers, steps, operations, components, parts, or combinations thereof.
제2, 제1 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되지는 않는다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제2 구성요소는 제1 구성요소로 명명될 수 있고, 유사하게 제1 구성요소도 제2 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.Terms including an ordinal number such as second, first, etc. may be used to describe various elements, but the elements are not limited by the terms. The above terms are used only for the purpose of distinguishing one component from another. For example, without departing from the scope of the present invention, the second component may be referred to as the first component, and similarly, the first component may also be referred to as the second component. and/or includes a combination of a plurality of related listed items or any of a plurality of related listed items.
도 1은 본 발명의 일 실시예에 따른 딥러닝 프라이빗 클라우드 서비스의 계층 전환 장치에 의한 계층 전환 방법을 나타내는 흐름도이다.1 is a flowchart illustrating a layer switching method by a layer switching device of a deep learning private cloud service according to an embodiment of the present invention.
딥러닝 프라이빗 클라우드 서비스는 개인/단체 등에서 보유하거나 접근할 수 있는 GPGPU 시스템을 효과적으로 공동으로 활용할 수 있다. 이 서비스는 GPGPU를 사용하길 원하는 데이터 과학자에서부터 고도로 숙련된 IT 개발자에게 GPGPU 및 중앙 처리 장치(CPU)와 같이 제한된 자원을 상호 배타적으로 분배하여, 다른 사용자로부터 방해 받지 않고 독립적인 개발 및 실행 환경을 언제든지 구성할 수 있는 기술을 컨테이너 기술과 클라우드 기술을 통해 제공한다. 여기서, 데이터 과학자는 데이터 과학과 관련된 분야를 전공하고 데이터 분석과 관련된 업무에 종사하는 사람을 의미한다.The deep learning private cloud service can effectively jointly utilize the GPGPU system that can be owned or accessed by individuals/groups. This service mutually-exclusively distributes limited resources such as GPGPU and central processing unit (CPU) to data scientists who want to use GPGPU, to highly skilled IT developers, from data scientists who want to use GPGPU, allowing independent development and execution environments at any time without interference from other users. Configurable technology is provided through container technology and cloud technology. Here, a data scientist refers to a person who majors in a field related to data science and is engaged in data analysis-related work.
GPGPU(General-Purpose computing on Graphics Processing Units)는 GPU 상의 범용 계산을 나타내며, 일반적으로 컴퓨터 그래픽스를 위한 계산만 맡았던 그래픽 처리 장치(GPU)를 중앙 처리 장치(CPU)가 맡았던 응용 프로그램들의 계산에 사용하는 기술이다.GPGPU (General-Purpose Computing on Graphics Processing Units) refers to general-purpose computation on the GPU, where the graphics processing unit (GPU), which was normally only responsible for computation for computer graphics, is used for calculation of applications that the central processing unit (CPU) was responsible for. it's technology
딥러닝 프라이빗 클라우드 서비스(10)는 최근에 화제인 AI 분야의 프로그래밍을 위한 환경으로 프로그래밍 노트북 인터페이스를 기본적으로 제공하며, 일정 규모 이상의 개발 프로젝트를 위해서 일반적인 개발 환경이 필요한 사용자를 위해서는 Microsoft 회사가 공개 소스로 공개한 개발 환경 IDE등을 온라인으로 사용할 수 있는 환경을 제공한다.The deep learning private cloud service (10) provides a programming laptop interface as an environment for programming in the AI field, which has recently been a hot topic, and for users who need a general development environment for development projects of a certain size or more, a Microsoft company is an open source It provides an environment where you can use the development environment IDE, etc., published as .
딥러닝 프라이빗 클라우드 서비스의 계층 전환 장치(30)는 계산 노드 에이전트(120) 및 작업 스케줄러(110)를 포함한다.The
도 1을 참조하여 딥러닝 프라이빗 클라우드 서비스의 계층 전환 장치(30)에 의한 계층 전환 방법을 설명한다.A layer switching method by the
프라이빗 클라우드 서비스의 계층 전환 방법은 작업 스케줄러에 의해 사용자가 설정하는 운영 환경을 딥러닝 통합 서버에 등록된 장치 그룹과 결합하도록 유휴 장치 그룹을 찾고, 유휴 장치 그룹을 사용자의 요청에 따라 계산 노드 에이전트로 배정하는 일을 수행하는 단계(S110) 및 딥러닝 통합 서버와 통신하고, 계산 노드 에이전트에 의해 다양한 형태의 물리 장치 계층을 추상화 계층으로 전환하는 단계(S120)를 포함한다.The layer switching method of the private cloud service is to find an idle device group to combine the operating environment set by the user by the task scheduler with the device group registered in the deep learning integration server, and convert the idle device group into a compute node agent according to the user's request. It includes the step of performing the assignment (S110) and the step of communicating with the deep learning integration server, and converting the physical device layer of various types into the abstraction layer by the computation node agent (S120).
도 1에서는 각각의 과정을 순차적으로 실행하는 것으로 개재하고 있으나 이는 예시적으로 설명한 것에 불과하고, 이 분야의 기술자라면 본 발명의 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 도 1에 기재된 순서를 변경하여 실행하거나 또는 하나 이상의 과정을 병렬적으로 실행하거나 다른 과정을 추가하는 것으로 다양하게 수정 및 변형하여 적용 가능할 것이다.Although it is interposed as sequentially executing each process in FIG. 1, this is only illustratively described, and those skilled in the art change the order described in FIG. 1 within the range that does not deviate from the essential characteristics of the embodiment of the present invention. Alternatively, various modifications and variations may be applied by executing one or more processes in parallel or adding other processes.
프라이빗 클라우드 서비스의 계층 전환 방법은 프라이빗 클라우드 서비스의 계층 전환 장치(30)에 의해 수행된다. 이하에서는 프라이빗 클라우드 서비스의 계층 전환 장치(30)가 수행하는 동작에 관하여 설명한다.The layer switching method of the private cloud service is performed by the
프라이빗 클라우드 서비스의 계층 전환 장치(30)는 계산 노드 에이전트(110) 및 작업 스케줄러(120)에 의해 계층 전환을 수행할 수 있다.The
계산 노드 에이전트(110)는 딥러닝 통합 서버(300)와 통신하고, 다양한 형태의 물리 장치 계층(100)을 추상화 계층(200)으로 전환할 수 있다.The
작업 스케줄러(120)는 사용자가 설정하는 운영 환경을 딥러닝 통합 서버(300)에 등록된 장치 그룹과 결합하도록 유휴 장치 그룹을 찾고, 유휴 장치 그룹을 사용자의 요청에 따라 계산 노드 에이전트(110)로 배정하는 일을 수행할 수 있다.The
물리 장치 계층(100)은 다수의 서버들을 네트워크를 통해서 사용할 수 있다.The
추상화 계층(200)은 물리 장치 계층을 단순화하여 복수의 장치 그룹(210), 복수의 저장 볼륨(230) 및 복수의 운영 컨테이너(240)로 구분된 개념 장치를 형성하고, 단순화된 개념 장치를 사용하여 사용자에게 서비스를 제공하는 기반을 형성할 수 있다.The
복수의 장치 그룹(210) 각각은 연산 작업을 수행하는 복수의 연산 코어(220)를 포함할 수 있다.Each of the plurality of
복수의 장치 그룹(210)은 복수의 연산 코어(220) 각각을 분리하여 운영 컨테이너(240)와 결합하거나 일부 연산 코어(220)들을 조합하여 운영 컨테이너(240)와 결합할 수 있다.The plurality of
연산 코어(220)는 제조사 정보, 코어 성능 표기 또는 코어가 제공하는 연산 기술 정보를 적어도 하나 포함하는 범용 연산 코어 및 제조사 정보, 복수의 서버의 모델 정보, 코어의 성능 표기 정보 또는 연산 기술 정보를 적어도 하나 포함하는 딥러닝 연산 코어를 포함할 수 있으며, 반드시 이에 한정되는 것은 아니다.The computation core 220 includes at least one general-purpose computation core and manufacturer information including at least one of manufacturer information, core performance notation or computation technology information provided by the core, model information of a plurality of servers, core performance labeling information, or computation technology information. It may include a deep learning computation core including one, but is not necessarily limited thereto.
저장 볼륨(230)은 사용자가 사용하거나 생성하는 데이터를 보관하고, 운영 컨테이너(240)와 적어도 하나 결합하여 공유할 수 있다.The
운영 컨테이너(240)는 사용자가 사용할 수 있는 운영 시스템 및 시스템 소프트웨어와 응용 소프트웨어가 미리 설정된 사용자 환경을 제공할 수 있다.The
운영 컨테이너(240)는 적어도 하나의 연산 코어(220) 및 적어도 하나의 저장 볼륨(230)과 결합하고, 이미지 상태 및 활성 상태로 구분되어 사용자에 의해 이미지 상태의 운영 컨테이너를 선택하여 활성화할 수 있다.The
운영 컨테이너(240)는 사용자가 운영 컨테이너(240)를 비활성화하는 경우 비활성화된 운영 컨테이너는 제거되고, 사용자가 운영 컨테이너(240)를 재활성화하는 경우 이전에 사용했던 결합을 재조합하여 새로운 운영 컨테이너가 생성될 수 있다.In the
계산 노드 에이전트(110)는 물리 장치 계층(100)에 포함된 CPU 및 GPGPU 정보를 취합하여 각각 연산 코어(220) 정보로 전환한 후 딥러닝 통합 서버(300)에 하나의 장치 그룹(210)으로 등록할 수 있다. 구체적으로, 계산 노드 에이전트(110)는 장치 그룹(210) 등록 시 딥러닝 통합 서버(300)의 주소와 등록에 필요한 보안 토큰을 입력하고, 보안 토큰에 따라서 장치 그룹(210)에 접근할 수 있는 사용자가 제한될 수 있다.
계산 노드 에이전트(110)는 주기적으로 물리 장치 계층에 포함된 CPU 및 GPGPU 정보를 조회하여 연산 코어의 정보를 갱신하고, 갱신된 연산 코어의 정보를 딥러닝 통합 서버에 보고할 수 있다. 구체적으로, 계산 노드 에이전트(110)는 새로운 CPU 또는 GPGPU가 추가된 경우 추가된 CPU 또는 GPGPU를 탐지하여 관리하는 장치 그룹(210)에 추가하고, 기존의 CPU 또는 GPGPU가 제거된 경우 제거된 CPU 또는 GPGPU를 탐지하여 관리하는 장치 그룹(210)에 삭제하여 장치 그룹(210)의 정보를 갱신할 수 있다.The
계산 노드 에이전트(110)는 추상화 계층(200)의 운영 컨테이너(240)를 활성화할 때, 운영 컨테이너(240)의 저장소로부터 최신의 운영 컨테이너를 탐색하여 운영 컨테이너(240)를 동기화하고, 기존의 운영 컨테이너와 최신의 운영 컨테이너가 같은 경우 기존의 운영 컨테이너를 재사용하고, 기존의 운영 컨테이너와 최신의 운영 컨테이너가 다른 경우 기존의 운영 컨테이너를 그대로 두고, 최신 운영 컨테이너를 형성할 수 있다. 구체적으로, 계산 노드 에이전트(110)는 장치 그룹(210)과 결합한 기존의 활성 운영 컨테이너(112)가 모두 비활성화되었을 때 장치 그룹(210)과 결합한 기존의 활성 운영 컨테이너(112)를 물리 장치 계층(100)에서 제거할 수 있다.When the
계산 노드 에이전트(110)는 딥러닝 통합 서버로부터 사용자 환경 정보의 요청을 전달받으며, 사용자 환경 정보의 요청에 의해 요청 정보를 수신하고, 요청 정보를 분석하여 추상화 계층(200)의 운영 컨테이너(240), 저장 볼륨(230) 및 장치 그룹(210)을 결합하여 활성화하여 활성 운영 컨테이너(112)를 생성할 수 있다. 구체적으로, 계산 노드 에이전트(110)는 활성화 중에 발생하는 모든 정보를 딥러닝 통합 서버에 전달하며, 문제가 발생할 경우 문제가 발생한 활성 운영 컨테이너(112)를 제거하고, 사용자 요청 작업에 유형에 따라서 운영 컨테이너의 활성 서비스를 초기화할 수 있다.The
예를 들어, 계산 노드 에이전트(110)는 상호작용 작업의 경우, 운영 컨테이너(240)에 개인 노트북 인터페이스를 제공하는 서비스와 온라인 통합 개발 환경 인터페이스를 제공하는 서비스를 활성화할 수 있다. 계산 노드 에이전트(110)는 상호작용 작업 및 수업이나 팀 단위로 사용하려는 요청이 함께 있는 경우, 개인 노트북 인터페이스를 제공하는 서비스 대신, 노트북 허브 인터페이스를 제공하는 서비스를 편성 및 재구성하여 서비스를 하고, 온라인 통합 개발 환경 인터페이스는 비활성화한 상태로 시작할 수 있다. 계산 노드 에이전트(110)는 배치 작업으로 구성되는 경우, 딥러닝 통합 서버(300)와 직접 통신하는 배치 작업의 동작 상태를 점검하고 사용자가 접근하여 상태를 확인하는 시큐어 터미널 서비스를 제공할 수 있다.For example, in the case of an interactive task, the
계산 노드 에이전트(110)는 장치 그룹(210)의 연산 코어(220)와 결합한 활성 운영 컨테이너(112)를 추적하고, 활성 운영 컨테이너(112)가 사용하는 장치 그룹의 부하를 측정하고 상태 변화를 탐지하여 딥러닝 통합 서버(300)에 활성 운영 컨테이너(112)에 대한 정보를 갱신할 수 있다.The
작업 스케줄러(120)는 사용자가 설정하는 운영 환경을 딥러닝 통합 서버(300)에 등록된 장치 그룹과 결합하도록 유휴 장치 그룹을 찾고, 유휴 장치 그룹을 사용자의 요청에 배정하는 일을 수행할 수 있다.The
사용자의 요청은 연산 코어(220)를 배정한 후, 사용자의 조작에 의해 업무를 진행하는 상호 작용 작업 또는 사용자의 조작이 사전에 정의되어있거나, 자동화된 처리 프로세서를 가지고 있는 배치 작업을 포함할 수 있다.The user's request may include an interactive task in which the operation is performed by the user's manipulation after allocating the computational core 220, or a batch task in which the user's manipulation is predefined or has an automated processing processor. .
작업 스케줄러(120)는 스케줄링 대상이 되는 사용자를 선택하고, 선택된 사용자의 우선 순위에 따라 가장 높은 우선 순위를 갖는 사용자의 우선 순위를 갖는 작업을 선택하며, 선택된 자원을 순서대로 읽어 유휴 자원 및 자원 그룹을 비교하여 작업에 자원을 할당하여 자원을 선택하며, 선택된 작업에 계산 노드 에이전트(110)를 할당할 수 있다.The
작업 스케줄러(120)는 자원을 배정 받기를 대기하고 있는 사용자들을 선택하고, 선택된 사용자 중에서 독점적으로 자원을 사용하고 있는 사용자 이력을 기반으로 우선 순위를 변경하고, 사용자의 이력 점수가 동일한 경우 먼저 자원 배정을 요청한 사용자가 높은 우선 순위를 가질 수 있다.The
작업 스케줄러(120)는 사용자 이력 기반의 점수를 위해 티켓과 티켓 부채를 적용할 수 있다.The
티켓은 일정한 값으로 초기화되며, 자원 사용 기준에 따라 사용할 때 마다 감소할 수 있다.Tickets are initialized with a constant value, and may decrease each time they are used according to resource usage criteria.
티켓 부채는 티켓을 모두 소진한 상태에서 자원을 계속해서 사용하는 경우, 자원 사용 기준에 도달 할 때 마다 증가할 수 있다.Ticket debt can increase each time the resource usage threshold is reached if resources are continuously used after all tickets are exhausted.
사용자의 우선 순위는 티켓을 가진 사용자가 높은 우선 순위를 갖고, 티켓이 없고 티켓 부채가 있는 경우, 티켓 부채의 수준의 경고가 기 설정된 경고 미만일 경우 차순위를 갖고, 티켓이 없고 티켓 부채의 수준의 경고가 기 설정된 경고 이상일 경우 최하위 순위를 가지며, 자원이 부족할 필요한 경우 해당 사용자의 자원은 강제로 해제될 수 있다.The priority of the user is that the user with the ticket has a higher priority, has no ticket and has ticket debt, has the next highest priority when the warning of the level of ticket debt is less than the preset warning, and has no ticket and has the warning of the level of ticket debt If is greater than a preset warning, it has the lowest priority, and when resources are insufficient, the user's resources can be forcibly released.
프라이빗 클라우드 서비스의 계층 전환 장치(30)는 딥러닝 통합 서버(300)에 통신하여 작업 스케줄러(120)에 의해 배정된 계산 노드 에이전트(110)를 통해 다양한 형태의 물리 장치 계층(100)을 추상화 계층(200)으로 전환할 수 있다.The
딥러닝 프라이빗 클라우드 서비스를 구성하는 계층에 대해서는 도 2를 참조하여 자세히 설명한다.Layers constituting the deep learning private cloud service will be described in detail with reference to FIG. 2 .
도 2는 본 발명의 일 실시예에 따른 딥러닝 프라이빗 클라우드 서비스의 추상화 계층을 나타내는 도면이다.2 is a diagram illustrating an abstraction layer of a deep learning private cloud service according to an embodiment of the present invention.
딥러닝 프라이빗 클라우드 서비스(10)는 도 11과 같은 구조를 가지며, 크게 물리 장치 계층(100)과 물리 장치 계층(100)을 개념화하는 추상화 계층(200), 이들 추상 계층 개념을 이용하여 다양한 물리 장치를 통합 및 조합하여 사용자가 사용할 수 있도록 여러 가지 서비스를 제공하는 서비스 계층으로 구분한다. 다음은 각 계층에 대한 개념에 관해서 설명한다.The deep learning
물리 장치 계층(100)은 물리 장치 처리부이며, 추상화 계층(200)은 추상화 처리부이고, 서비스 계층은 서비스 처리부이다. 여기서, 서비스 계층은 딥러닝 통합 서버(300)로 구현될 수 있으며, 반드시 이에 한정되는 것은 아니다.The
물리 장치 계층(100)은 연산을 위한 서버, 데이터 저장을 위한 스토리지 서버, 다양한 컨테이너 구성 정보를 가지고 있는 스토리지 서버, 사용자가 웹 인터페이스로 접근할 수 있도록 하는 웹 서버 등으로 형성될 수 있다.The
구체적으로, 물리 장치 계층(100)은 실질적인 물리 장치와 이 장치들을 네트워크를 통해서 사용할 수 있도록 하는 운영 시스템 및 소프트웨어를 말한다. 따라서, 물리 장치 계층(100)은 실제로 독립적으로 운영 시스템 및 소프트웨어를 가진다면 컴퓨터 가상화 기술로 생성한 가상 기계도 포함될 수 있다. 즉, 물리 장치 계층(100)은 가상화 기술 및 다양한 플랫폼 서비스를 제공하고 있는 퍼블릭 클라우드의 시스템도 포함될 수 있다.Specifically, the
추상화 계층(200)은 매우 다양한 형태의 물리 장치 계층(100)을 단순화하고, 단순화된 개념 장치를 사용하여, 다양한 조합이나 통합을 통해 사용자에게 서비스를 제공할 수 있는 기반을 제공한다. 추상화 계층(200)에서는 물리 장치 계층(100)을 장치 그룹(210)과 연산 코어(220), 저장 볼륨(230) 및 운영 컨테이너(240)로 구분한다.The
추상화 계층(200)에 대한 설명은 도 2를 참조하여 자세히 설명한다.The description of the
장치 그룹(210)은 연산 코어(220)들의 집합이다. 장치 그룹(210)에 포함된 연산 코어(220)들은 각각을 분리하여 독립적으로 선택하여 운영 컨테이너(240)와 결합하거나, 일부 연산 코어(220)들을 조합하여 하나의 운영 컨테이너(240)와 결합할 수 있다. 즉, 서로 다른 장치 그룹(210)에 속한 연산 코어(220)들은 하나의 운영 컨테이너(240)에 포함될 수 없다. 추상화 방법에 따라서, 같은 장치 그룹(210)에 포함된 연산 코어들의 조합 방법이 제한될 수 있다. 예를 들어, 최대 4개의 범용 코어 혹은 최대 4개의 딥러닝 코어같이 한 번에 조합할 수 있는 수가 제한될 수 있다.
연산 코어(220)는 다른 사용자의 환경으로부터 격리할 수 있는 상태의 장치를 의미한다. 연산 코어(220)는 다양한 기술을 통해서 운영 컨테이너(240)와 결합할 수 있고, 운영 컨테이너(240)에서 동작할 사용자의 모든 소프트웨어는 결합한 연산 코어(220)만을 사용하고, 포함되지 않은 다른 연산 코어(220)에 영향을 주지 않아야만 한다.The computational core 220 refers to a device in a state that can be isolated from the environment of other users. The computational core 220 may be combined with the
딥러닝 프라이빗 클라우드 서비스(10)에서는 연산 코어(220)를 범용 연산 코어와 딥러닝 연산 코어로 구분할 수 있으며, 반드시 이에 한정되는 것은 아니다.In the deep learning
범용 연산 코어는 일반적인 CPU 칩세트의 코어 단위를 포함한다. 범용 연산 코어는 물리적인 제조사 정보, 코어 성능 표기 및 코어가 제공하는 연산 기술(명령어셋 표기 등) 정보를 포함할 수 있다.A general-purpose computational core includes a core unit of a general CPU chipset. The general-purpose computation core may include physical manufacturer information, core performance labeling, and computation technology (instruction asset labeling, etc.) information provided by the core.
딥러닝 연산 코어에는 GPGPU 장치들을 포함한다. 딥러닝 연산 코어도 범용 연산 코어와 마찬가지로 물리적인 제조사 정보 및 물리 장치 모델 정보, 코어 성능 표기, 연산 기술 정보를 포함할 수 있다.The deep learning computation core includes GPGPU units. The deep learning computational core may include physical manufacturer information, physical device model information, core performance notation, and computational technology information like general-purpose computational cores.
저장 볼륨(230)은 사용자가 사용하는 소프트웨어가 사용하거나 생성하는 데이터를 보관할 수 있는 장치를 의미한다. 저장 볼륨(230)은 사용자가 사용할 운영 컨테이너(240)에 하나 이상이 결합될 수 있다. 저장 볼륨(230)은 장치 그룹(210)에 포함되지 않는다. 하나의 저장 볼륨(230)은 지정된 사용자와 지정된 운영 컨테이너(240)와 결합한다. 새로운 운영 컨테이너(240)를 생성할 때, 새로운 저장 볼륨(230)이 할당된다. The
저장 볼륨(230)은 운영 컨테이너(240)들 사이에서 공유할 수 있으며, 만약 사용자가 기존의 저장 볼륨(230)을 참조하고자 할 경우, 저장 볼륨(230)의 공유를 통해서 사용자 접근을 허용할 수 있다.The
운영 컨테이너(240)는 사용자가 사용할 수 있는 운영 시스템 및 시스템 소프트웨어와 응용 소프트웨어가 미리 설정된 사용자 환경을 말한다. 운영 컨테이너(240)는 이미지 상태와 활성 상태로 구분되며, 사용자는 이미지 상태의 운영 컨테이너(240)를 선택하여 활성화하여 사용할 수 있다.The
도 2를 참조하면, 운영 컨테이너(240)를 활성화하기 위해서는 앞서 설명한 연산 코어(220)와 저장 볼륨(230)이 결합하여야 한다. 활성 운영 컨테이너(112)는 한 개 이상의 연산 코어(220)와 한 개 이상의 저장 볼륨(230)과 결합한 상태이며, 사용자가 운영 컨테이너(240)를 비활성화할 경우, 해당 운영 컨테이너(240)는 완전히 제거된다. 사용자가 운영 컨테이너(240)를 재활성화하고자 하는 경우, 이전에 사용했던 결합을 재현하여 새로운 운영 컨테이너(240)를 제공할 수 있다.Referring to FIG. 2 , in order to activate the
계산 노드 에이전트는 도 3 내지 도 7을 참조하여 자세히 설명한다.The compute node agent will be described in detail with reference to FIGS. 3 to 7 .
도 3은 본 발명의 일 실시예에 따른 딥러닝 프라이빗 클라우드 서비스의 계산 노드 에이전트의 처리를 나타내는 흐름도이다.3 is a flowchart illustrating the processing of a computation node agent of a deep learning private cloud service according to an embodiment of the present invention.
계산 노드 에이전트(110)는 물리 장치 계층(100)에 있는 여러 가지 장치들을 추상화 계층(200)으로 전환하기 위한 서비스이다. 계산 노드 에이전트(110)는 딥러닝 프라이빗 클라우드(10)의 통합 서버에 주기적으로 통신하여, 다음과 같은 업무를 처리한다.The
계산 노드 에이전트가 시작되면(S310), 장치 그룹 정보를 갱신하고(S320), 운영 컨테이너를 관리하고(S330), 통신을 수행할 수 있다(S340).When the compute node agent starts (S310), device group information is updated (S320), the operation container is managed (S330), and communication can be performed (S340).
장치 그룹 정보를 갱신하기 전에 새로운 장치 그룹을 등록할 수 있으며, 이는 도 4를 참조하여 자세히 설명한다.A new device group may be registered before updating device group information, which will be described in detail with reference to FIG. 4 .
도 4는 본 발명의 일 실시예에 따른 딥러닝 프라이빗 클라우드 서비스의 계산 노드 에이전트의 새로운 장치 그룹 등록을 나타내는 도면이다.4 is a diagram illustrating a new device group registration of a compute node agent of a deep learning private cloud service according to an embodiment of the present invention.
계산 노드 에이전트(110)는 하나의 기계(서버)에 포함된 CPU 및 GPGPU 정보를 취합하여, 각각 연산 코어 정보로 전환한 후, 딥러닝 프라이빗 클라우드 통합 서버(300)에 하나의 장치 그룹으로 등록한다.The
계산 노드 에이전트(110)는 등록 시 등록하고자 하는 딥러닝 프라이빗 클라우드 통합 서버(300)의 주소와 등록에 필요한 보안 토큰을 입력하여야 한다. 사용한 보안 토큰에 따라서, 이 장치 그룹에 접근할 수 있는 사용자가 제한될 수 있다.The
장치 그룹 정보를 갱신(S320)은 CPU 및 GPGPU 장치 정보를 조회하며(S322), N초가 되면 정보 조회를 중지한다(S324). 여기서, N초는 사용자가 설정한 시간일 수 있으며, CPU 및 GPGPU 장치 정보를 조회(S322)와 N초 중지(S324)를 반복하여 수행할 수 있다.In updating device group information (S320), CPU and GPGPU device information is inquired (S322), and when N seconds are reached, the information inquiry is stopped (S324). Here, N seconds may be a time set by the user, and may repeatedly perform inquiry (S322) and N second stop (S324) for CPU and GPGPU device information.
장치 그룹 정보를 갱신(S320)은 CPU 및 GPGPU 장치 정보를 조회(S322)가 끝나면 통신(S340)을 위해 CPU 및 GPGPU 장치 정보를 전달할 수 있다.Updating device group information (S320) may transmit CPU and GPGPU device information for communication (S340) when the inquiry (S322) for CPU and GPGPU device information is finished.
계산 노드 에이전트(110)는 시스템 조회를 통해 주기적으로 물리 장치에 포함된 CPU 및 GPGPU 정보를 다시 조회하여 기존의 연산 코어 정보를 갱신한다. 갱신된 정보는 딥러닝 프라이빗 클라우드 통합 서버(300)에 보고하여, 항상 최신 상태가 유지될 수 있도록 한다. The
만약, 장치 관리자에 의해서 새로운 CPU나 GPGPU가 추가된 경우, 이를 탐지하여, 관리하는 장치 그룹 정보에 추가한다. 반대로 기존의 CPU나 GPGPU가 제거된 경우도 추가와 같은 절차를 통해 장치 그룹의 정보가 갱신된다.If a new CPU or GPGPU is added by the device manager, it is detected and added to the managed device group information. Conversely, even when the existing CPU or GPGPU is removed, device group information is updated through the same procedure as addition.
운영 컨테이너를 관리(S330)는 컨테이너를 제어하고(S332), 컨테이너 정보를 동기화할 수 있다(S334). 컨테이너 제어(S332) 및 컨테이너 정보 동기화(S334)를 반복적으로 수행하여 통신(S340)을 위해 정보를 전달할 수 있다.Managing the operation container (S330) may control the container (S332) and synchronize container information (S334). By repeatedly performing container control ( S332 ) and container information synchronization ( S334 ), information may be transmitted for communication ( S340 ).
통신(S340)은 CPU 및 GPGPU 장치 정보, 컨테이너 제어 및 컨테이너 정보 동기화 정보를 딥러닝 통합 서버(S350)에 등록할 수 있다.Communication (S340) may register CPU and GPGPU device information, container control and container information synchronization information to the deep learning integration server (S350).
운영 컨테이너 동기화(S334)는 도 5를 참조하여 자세히 설명한다. 도 5는 본 발명의 일 실시예에 따른 딥러닝 프라이빗 클라우드 서비스의 계산 노드 에이전트에 따른 운영 컨테이너 동기화를 나타내는 도면이다.Operation container synchronization ( S334 ) will be described in detail with reference to FIG. 5 . 5 is a diagram illustrating synchronization of an operation container according to a compute node agent of a deep learning private cloud service according to an embodiment of the present invention.
계산 노드 에이전트(110)는 운영 컨테이너(240)를 활성화할 때, 도 5와 같이 항상 비활성 운영 컨테이너(114)에 형성된 운영 컨테이너 저장소로부터 최신의 운영 컨테이너를 탐색한다. 만약 이전에 사용했던 운영 컨테이너와 최신 운영 컨테이너가 같은 경우, 운영 컨테이너 저장소에서 받지 않고, 기존의 운영 컨테이너를 재사용한다. 기존의 운영 컨테이너와 최신 운영 컨테이너가 다른 경우에는 기존의 운영 컨테이너를 그대로 두고, 새로운 운영 컨테이너를 받는다. 이때, 두 개 이상의 서로 다른 버전의 같은 운영 컨테이너가 존재할 수 있다. 두 개 이상의 서로 다른 버전의 같은 운영 컨테이너는 제1 운영 컨테이너(242) 및 제2 운영 컨테이너(244)이다.When the
계산 노드 에이전트(110)는 장치 그룹(210)과 결합한 기존의 활성 운영 컨테이너(112)가 모두 비활성화되었을 때 해당 운영 컨테이너를 물리 장치에서 제거한다.The
컨테이너 제어(S332)는 도 6을 참조하여 자세히 설명한다. 도 6은 본 발명의 일 실시예에 따른 딥러닝 프라이빗 클라우드 서비스의 계산 노드 에이전트에 따른 에이전트 상태 제어를 나타내는 도면이다.The container control ( S332 ) will be described in detail with reference to FIG. 6 . 6 is a diagram illustrating agent state control according to a compute node agent of a deep learning private cloud service according to an embodiment of the present invention.
계산 노드 에이전트(110)는 도 6과 같이 딥러닝 프라이빗 클라우드 통합 스케줄러로부터 사용자 환경 정보(310)의 구성 요청을 전달받으며, 새로운 사용자 환경 정보(310)의 요청이 발생한 경우, 해당 사용자 환경 정보(310)의 요청 정보를 수신하고, 사용자 환경 정보(310)의 요청 정보를 분석하여 운영 컨테이너(240)와 저장 볼륨(230) 및 관리하는 장치 그룹(210)의 연산 코어(220)를 신속하게 결합하여 활성화한다. 활성화 중에 발생하는 모든 정보를 딥러닝 프라이빗 클라우드 통합 서버(300)에 전달하며, 만약 문제가 발생할 경우, 문제가 발생한 활성 운영 컨테이너(112)를 제거한다.The
사용자가 활성 운영 컨테이너(112)를 비활성화하는 경우, 딥러닝 프라이빗 클라우드 통합 서버(300)는 해당 활성 운영 컨테이너(112)를 관리하는 계산 노드 에이전트(110)에 사건을 배당하고 계산 노드 에이전트(110)는 해당 활성 운영 컨테이너(112)를 제거한다. When the user deactivates the active operational container 112, the deep learning private
컨테이너 제어(S332)의 절차는 도 7을 참조하여 자세히 설명한다. 도 7은 본 발명의 일 실시예에 따른 딥러닝 프라이빗 클라우드 서비스의 계산 노드 에이전트에서 운영 컨테이너 제어 절차를 나타내는 흐름도이다.The procedure of the container control ( S332 ) will be described in detail with reference to FIG. 7 . 7 is a flowchart illustrating an operation container control procedure in a compute node agent of a deep learning private cloud service according to an embodiment of the present invention.
계산 노드 에이전트(110)는 사용자 요청 작업에 유형에 따라서 운영 컨테이너(240)의 활성 서비스를 다르게 초기화한다. 상호작용 작업의 경우, 운영 컨테이너(240)에 개인 노트북 인터페이스를 제공하는 서비스와 온라인 통합 개발 환경 인터페이스를 제공하는 서비스를 활성화한다. 만약 상호작용 작업이면서, 수업이나 팀 단위로 사용하려는 요청이 함께 있는 경우에는 개인 노트북 인터페이스를 제공하는 서비스 대신, 노트북 허브 인터페이스를 제공하는 서비스를 편성 및 재구성하여 서비스를 하고, 온라인 통합 개발 환경 인터페이스는 비활성화한 상태로 시작한다. 배치 작업으로 구성해야 하는 경우에는 딥러닝 통합 서버(300)와 직접 통신할 수 있는 시큐어 터미널 서비스만 제공한다. 이 터미널 서비스는 배치 작업의 동작 상태를 점검하는 등의 목적으로, 사용자가 접근하여 상태를 확인할 수 있게 할 때 사용된다.The
컨테이너 제어(S332)의 절차는 컨테이너 제어 단계(S710)를 통해 활성화(S720)되거나 활성화를 실패(S730)할 수 있다. 여기서, 활성화 실패(S730)는 사용자 요청 작업에 유형에 따라서 운영 컨테이너의 활성 서비스를 다르게 초기화할 수 있다.The container control (S332) procedure may be activated (S720) or the activation may fail (S730) through the container control step (S710). Here, in the activation failure ( S730 ), the active service of the operation container may be differently initialized according to the type of the user requested task.
작업 처리 실패(S730)는 사용자 볼륨 확인 단계(S750), 다중 사용자용 확인 단계(S752), 노트북 프로그래밍 요구사항 확인 단계(S754), 개인 개발 환경 요구사항 확인 단계(S756) 또는 원격 접속 요구사항 확인 단계(S758)를 거쳐 상술한 과정에서 확인이 불가능 할 경우 작업 처리가 실패할 수 있다.Job processing failure (S730) is the user volume check step (S750), multi-user check step (S752), laptop programming requirements check step (S754), personal development environment requirements check step (S756) or remote access requirements check If confirmation is not possible in the above-described process through step S758, the job processing may fail.
계산 노드 에이전트에서 운영 컨테이너 제어 절차는 사용자 볼륨 확인 단계(S750), 다중 사용자용 확인 단계(S752), 노트북 프로그래밍 요구사항 확인 단계(S754), 개인 개발 환경 요구사항 확인 단계(S756) 또는 원격 접속 요구사항 확인 단계(S758)를 거치며, 컨테이너 정보를 동기화 한다(S740).In the compute node agent, the operational container control procedure is a user volume verification step (S750), a multi-user verification step (S752), a laptop programming requirement verification step (S754), a personal development environment requirement verification step (S756) or a remote access request A confirmation step (S758) is performed, and container information is synchronized (S740).
사용자 볼륨 확인 단계(S750)는 컨테이너에 볼륨을 연결하여(S760), 운영 컨테이너 정보를 동기화하며(S770), 다중 사용자용 확인 단계(S752)는 Jupyter Hub 패키지 설치 및 활성화(S762)하고, 운영 컨테이너 정보를 동기화하며(S770), 노트북 프로그래밍 요구사항 확인 단계(S754)는 Jupyter Notebook 서비스를 활성화하여(S764), 운영 컨테이너 정보를 동기화하며(S770), 개인 개발 환경 요구사항 확인 단계(S756)는 추가 패키지 설치 및 서비스를 활성화하여(S766), 운영 컨테이너 정보를 동기화하며(S770), 원격 접속 요구사항 확인 단계(S758)는 SSH를 설정하여(S768), 운영 컨테이너 정보를 동기화한다(S770).The user volume verification step (S750) connects the volume to the container (S760), synchronizes the production container information (S770), the multi-user verification step (S752) installs and activates the Jupyter Hub package (S762), and the production container Synchronize information (S770), check notebook programming requirements step (S754) activate Jupyter Notebook service (S764), synchronize operational container information (S770), and check personal development environment requirements step (S756) add By activating the package installation and service (S766), the operation container information is synchronized (S770), and in the remote access requirement confirmation step (S758), SSH is set (S768), and the operation container information is synchronized (S770).
컨테이너 제어(S332)의 절차는 사용자 볼륨 확인 단계(S750), 다중 사용자용 확인 단계(S752), 노트북 프로그래밍 요구사항 확인 단계(S754), 개인 개발 환경 요구사항 확인 단계(S756), 원격 접속 요구사항 확인 단계(S758)에서의 운영 컨테이너 정보 동기화(S740) 및 컨테이너에 볼륨을 연결(S760), Jupyter Hub 패키지 설치 및 활성화(S762), Jupyter Notebook 서비스를 활성화하여(S764), 추가 패키지 설치 및 서비스를 활성화(S766) 및 SSH를 설정(S768)하여 운영 컨테이너 정보 동기화(770)가 끝나면 사용자 요청 작업에 유형에 따라서 운영 컨테이너의 활성 서비스가 다르게 초기될 수 있다.The procedure of container control (S332) includes user volume verification step (S750), multi-user verification step (S752), laptop programming requirements verification step (S754), personal development environment requirements verification step (S756), remote access requirements Synchronize operational container information in the verification step (S758) (S740) and attach volumes to containers (S760), install and activate Jupyter Hub packages (S762), activate Jupyter Notebook services (S764), install additional packages and services After activation (S766) and SSH setting (S768) to complete operational container information synchronization (770), the active service of the operational container may be initialized differently depending on the type of user requested operation.
계산 노드 에이전트(110)는 관리하는 장치 그룹(210)의 연산 코어(220)와 결합한 활성 운영 컨테이너(112)를 추적한다. 활성 운영 컨테이너(112)가 사용하는 장치 그룹의 부하를 측정하고, 활성 운영 컨테이너(112) 상태 변화를 탐지하여, 딥러닝 프라이빗 클라우드 통합 서버(300)에 활성 운영 컨테이너(112)에 대한 정보를 주기적 및 지속해서 갱신한다. 예를 들어, 활성 운영 컨테이너(112)가 외부 요인에 의해 중단되는 경우, 딥러닝 프라이빗 클라우드 통합 서버(300)에, 문제가 발생을 보고하여 사용자와 관리자가 해당 상황에 대해 대응할 수 있게 한다.The
작업 스케줄러는 도 8 및 도 9을 참조하여 자세히 설명한다.The task scheduler will be described in detail with reference to FIGS. 8 and 9 .
도 8은 본 발명의 일 실시예에 따른 딥러닝 프라이빗 클라우드 서비스의 딥러닝 작업 스케줄러의 동작을 나타내는 도면이다.8 is a diagram illustrating an operation of a deep learning task scheduler of a deep learning private cloud service according to an embodiment of the present invention.
딥러닝 작업 스케줄러(120)는 사용자가 필요로 하는 운영 환경을 딥러닝 프라이빗 클라우드 통합 서버(300)에 등록된 장치 그룹과 결합할 수 있도록 유휴 장치 그룹을 찾고, 해당 장치 그룹을 사용자 요청(410)에 배정하는 일을 수행한다. The deep
도8을 참조하면, 딥러닝 작업 스케줄러(120)는 사용자의 권한에 따라 사용할 수 있는 장치 그룹(210)의 범위를 선정한다. 선정된 그룹 범위에서 요청(410)한 연산 코어(220)의 종류와 개수를 유휴 상태로 가지고 있는 장치 그룹(210)을 임의로 선발하고, 해당 장치 그룹(210)에 포함된 연산 코어(220)들을 요청에 배정한다. 요청 처리 배정은 사용자 권한 조회(420) 및 장치 상태 조회(430)를 이용하여 요청 처리 배정할 수 있다.Referring to FIG. 8 , the deep
요청에 배정된 자원은 해당 연산 코어(220)를 관리하는 딥러닝 에이전트(110)에 의해 운영 컨테이너(240)가 전개될 것이다. 만약 사용자가 요청한 연산 코어(220)의 요구사항을 만족하는 장치 그룹(210)이 존재하지 않는 경우, 요청 방법에 따라 처리 방식이 달라진다. 요청 방법은 상호작용 작업과 배치 처리 작업으로 구분한다. 이하에서는 상호작용 작업과 배치 처리 작업에 대해 설명한다. 여기서, 딥러닝 에이전트는 계산 노드 에이전트이다. The resource allocated to the request will be deployed by the
상호작용 작업은 연산 코어(220)를 배정한 후, 소프트웨어에 의해서 자동으로 처리되는 요소가 거의 없고, 사용자가 조작하여 어떤 업무를 진행시켜야 하는 작업을 의미한다. 대부분의 데이터 조작 행위나, 데이터 훈련 등의 단계, 사용자의 프로그램 개발 단계는 상호작용 작업으로 표현할 수 있다. The interactive task refers to a task in which there are few elements automatically processed by the software after allocating the computational core 220 , and the user has to manipulate the operation to proceed with a certain task. Most of the data manipulation actions, data training steps, and user program development steps can be expressed as interactive work.
상호작용 작업을 위해서 딥러닝 작업 스케줄러(120)는 자원을 최대한 빠르게 배정할 수 있도록 노력한다. 만약 배정할 수 없는 상황이 발생하는 경우, 짧은 시간 동안 다른 유휴 자원이 발생할 때까지 대기하였다가, 여전히 배정할 수 없을 때, 사용자가 현재 배정이 어려운 사정을 알 수 있도록 딥러닝 프라이빗 클라우드 통합 서버(300)에게 알릴 수 있다. 딥러닝 에이전트(110)는 상호작용 작업을 위한 운영 컨테이너를 전개할 때, 데이터 조작 등에서 많이 사용하는 프로그래밍 노트북 인터페이스 환경과 온라인에서 사용할 수 있는 프로그램 개발 환경을 제공할 수 있도록 노력하여 전개한다. 만약 전개하고 있는 운영 컨테이너에서 노트북 인터페이스 환경이나 프로그램 개발 환경을 제공할 수 없는 경우, 작업 처리 실패로 간주하고, 딥러닝 프라이빗 클라우드 통합 서버(300)에 작업을 수행할 수 없음을 알려야 한다. 그리고 딥러닝 에이전트(110)는 전개하던 운영 컨테이너를 비활성화 상태로 만든다.For the interactive task, the deep
배치 작업은 상호작용 작업과 달리 사용자의 조작이 사전에 정의되어있거나, 필요치 않은 자동화된 처리 프로세스를 가지고 있는 작업을 의미한다. 일반적으로 데이터 학습을 통해 미리 만들어진 어떤 처리자가 있고, 처리자를 통해서 다른 입력 데이터를 처리하여 그 결과를 얻고자 할 때 사용한다. A batch job, unlike an interactive job, means a job that has an automated processing process that does not require a user's operation in advance or is pre-defined. Generally, there is a pre-made processor through data learning, and it is used when processing other input data through the processor to obtain the result.
딥러닝 작업 스케줄러(120)는 배치 작업을 배정할 수 없을 때, 자원 배정 실패라고 판단하기까지 상호작용과 비교하여 상당히 긴 시간 동안 대기한다. 딥러닝 에이전트(110)는 배치 작업을 처리할 때, 운영 컨테이너를 생성하며, 별도의 사용자 환경을 전개하지 않고, 원격에서 사용자 프로세스가 정상적으로 처리되고 있는 확인할 수 있는 정보를 수집할 수 있는 환경만을 제공하려고 노력한다. 정보 수집 행위를 정상적으로 할 수 없을 때에 배치 작업은 실패로 처리하고, 운영 컨테이너(240)를 비활성화 상태로 만든다.When the deep
도 9는 본 발명의 일 실시예에 따른 딥러닝 프라이빗 클라우드 서비스의 딥러닝 작업 스케줄러의 처리를 나타내는 흐름도이다.9 is a flowchart illustrating processing of a deep learning task scheduler of a deep learning private cloud service according to an embodiment of the present invention.
딥러닝 작업 스케줄러(120)는 상술한 바와 같이 작업의 형태에 따라, 작업 실패로 판단하는 기준이 달라진다. 뿐만 아니라, 연산 코어(220)의 수가 사용자의 요청에 비해 부족할 경우, 특정 사용자에게 쏠림 현상을 방지할 수 있도록 할 수 있다. 이 기능을 사용하는 경우, 딥러닝 작업 스케줄러(120)는 사용자의 과거 사용 이력 패턴, 최근에 사용한 시간, 최근 사용하지 않은 누적 시간, 최근 사용한 연산 코어의 수, 요청한 후 대기한 시간 등을 파악하여, 사용자 간의 우선순위를 조정한다.As described above, the deep
딥러닝 작업 스케줄러(120)는 기본적으로 일찍 요청된 작업부터 처리하려고 하지만, 사용자 간 우선순위를 통해 작업의 순서를 재조정할 수 있는 기능을 갖는다.The deep
도 9를 참조하면, 작업 스케줄러(120)가 시작되면, 요청 작업 대기열(S910), 자원 풀(S920) 및 사용자 풀(S930)을 불러올 수 있다. 여기서, 사용자 풀은 사용자 사용 이력을 포함할 수 있으며, 반드시 이에 한정되는 것은 아니다.Referring to FIG. 9 , when the
요청 작업 대기열(S910)은 작업 배치 요청(S940)에 의해 불러올 수 있으며, 사용자 후보 선택 단계(S912) 및 대상 태스크 선택 단계(S914)에서 이용할 수 있다.The requested work queue ( S910 ) may be called by a work arrangement request ( S940 ), and may be used in the user candidate selection step ( S912 ) and the target task selection step ( S914 ).
자원 풀(S920)은 자원 선택 단계(S950)에서 이용할 수 있으며, 사용자 풀(S930)은 사용자 후보 선택 단계(S912)에서 이용할 수 있다.The resource pool S920 may be used in the resource selection step S950 , and the user pool S930 may be used in the user candidate selection step S912 .
도 9는 딥러닝 작업 스케줄러의 구성요소와 정보 전달 구조를 표현한 것이다. 딥러닝 작업 스케줄러(120)는 사용자 후보 선택(S912)과 대상 작업(태스크)을 선택(S914), 계산 노드의 자원을 선택(S950)하는 3개의 과정으로 구성될 수 있다.9 shows the components and information delivery structure of the deep learning task scheduler. The deep
자원 선택 과정(S950)에서 자원이 부족한 경우에 대기열 N분 대기 단계(S952)를 거쳐 요청 작업 대기열 단계(S910)를 다시 수행하며, 자원 선택 과정(S950)이 완료되면 에이전트 배정을 통해 계산 노드 에이전트 단계(S960)를 수행할 수 있다.If the resource is insufficient in the resource selection process (S950), the request work queue step (S910) is performed again through the queue N-minute waiting step (S952), and when the resource selection process (S950) is completed, the agent is calculated through the agent assignment Step S960 may be performed.
사용자 후보 선택 단계(S912)는 스케줄링 대상이 되는 사용자를 선택하는 과정으로, 단계 S930을 통해 자원을 배정 받기를 대기하고 있는 사용자들을 선택한다. 선택된 사용자 중에서 단계 S920에서 최근에 독점적으로 자원을 사용하고 있는 등의 사용자 이력에 기반한 점수 요인을 통해, 우선순위를 변경한다. 만약 사용자의 사용자 이력 점수가 동일한 경우, 먼저 자원 배정을 요청한 사용자가 높은 우선순위를 갖는다.The user candidate selection step S912 is a process of selecting users to be scheduled, and users waiting to be allocated resources are selected through step S930. The priority is changed through a score factor based on a user history such as recently exclusively using a resource among the selected users in step S920. If the user history scores of the users are the same, the user who requests resource allocation first has a higher priority.
딥러닝 작업 스케줄러(120)는 사용자 이력 기반 점수를 위해 티켓과 티켓 부채를 적용하고 있다. 티켓은 일정한 값으로 초기화된다. 티켓은 자원 사용 기준(예를 들어, GPGPU 1개를 10분간 사용)에 맞게 사용할 때 마다 감소한다. 티켓 부채는 티켓을 모두 소진하여 0인 상태에서 자원을 계속해서 사용하는 경우, 자원 사용 기준에 도달 할 때 마다 증가한다. 사용자 우선 순위는 티켓을 가진 사용자가 높은 우선 순위를 갖는다. 이때, 티켓의 규모의 비교는 하지 않고, 티켓의 유무로만 판단한다. 티켓이 없고 티켓 부채가 있는 경우, 티켓 부채의 수준의 경고 미만일 경우 차순위를 갖는다. 마지막으로 티켓이 없고 티켓 부채의 수준의 경고를 넘어선 경우 최하위 순위를 가지며, 시스템에서 자원이 부족할 필요한 경우, 해당 사용자의 자원은 강제로 해제될 수 있다.The deep
대상 태스크(작업) 선택 단계(S914)는 선정된 사용자 우선 순위에 따라, 가장 높은 우선 순위를 갖는 사용자의 가장 최우선 태스크를 선택한다. 만약 해당 사용자의 태스크(작업)와 비슷한 시기(예를 들면 1분 이내)에 제출된 태스크(작업)가 존재하는 경우, 동시에 선택한다.In the target task (job) selection step S914, the highest priority task of the user having the highest priority is selected according to the selected user priority. If there is a task (job) submitted at a similar time (eg, within 1 minute) to the user's task (job), select them at the same time.
본 발명의 일 실시예에 따르면, 태스크(작업)는 운영체계가 제어하는 프로그램의 기본 단위를 의미한다.According to an embodiment of the present invention, a task (job) refers to a basic unit of a program controlled by an operating system.
자원 선택 단계(S950)는 선택된 태스크를 제출 순으로 읽어, 자원 풀에 있는 유휴 자원 및 자원 그룹을 비교하여 태스크에 자원을 할당한다. 만약 이 단계에서 자원이 부족한 경우, 해당 태스크는 일정 시간 동안 스케줄링(예를 들면 5분)을 하지 않고 대기 상태에 둔다. 대기된 태스크는 다른 태스크가 종료되어 자원이 반환되는 경우, 반환된 자원이 태스크의 요구사항이 일치하는지 검사하며, 일치할 경우 즉시 대기 해제 된다. 대기 해제된 태스크는 다시 전체 스케줄링 절차를 거친다. 성공적으로 자원 선택이 완료된 경우, 해당 태스크에 계산 노드 에이전트를 할당한다.The resource selection step S950 reads the selected tasks in the order of submission, compares idle resources and resource groups in the resource pool, and allocates resources to the tasks. If the resource is insufficient in this step, the task is put in a waiting state without scheduling (eg, 5 minutes) for a certain period of time. The queued task checks whether the returned resource matches the task's requirements when other tasks are terminated and resources are returned. If they match, the waiting task is immediately released. A task that has been released from waiting goes through the entire scheduling procedure again. When resource selection is successfully completed, a compute node agent is assigned to the task.
본 발명의 일 실시에에 따르면, 자원은 컴퓨터로 실행되는 작업이나 태스크가 필요로 하는 컴퓨터 시스템, 운영 체제의 기구나 기능을 의미한다. 예를 들어 자원은 주기억 장치, 입출력 장치, 중앙 연산 처리 장치, 타이머, 데이터 세트, 제어 프로그램, 처리 프로그램 등을 의미하며 반드시 이에 한정되는 것은 아니다.According to an embodiment of the present invention, a resource refers to a computer system or a mechanism or function of an operating system required for a job or task executed by a computer. For example, the resource means a main memory device, an input/output device, a central processing unit, a timer, a data set, a control program, a processing program, and the like, but is not necessarily limited thereto.
도 10은 본 발명의 일 실시예에 따른 딥러닝 프라이빗 클라우드 서비스의 웹 서비스 구조를 나타내는 도면이다.10 is a diagram illustrating a web service structure of a deep learning private cloud service according to an embodiment of the present invention.
딥러닝 통합 서버(300)는 다양한 데이터베이스 솔루션을 사용하여 서비스 제공한다. 딥러닝 통합 서버(300)는 (i) 시스템에 요청, 정보 조작 등을 위한 REST API 서비스, (ii) 신속한 상태 변경 통지 및 정보 교환을 위한 웹 소켓 서비스, (iii) 딥러닝 통합 서버의 성능의 측정 정보를 기록할 수 있는 성능 측정 기능, (iv) 시스템에서 발생할 수 있는 여러 가지 예외를 기록할 수 있는 사건 보고 기능, (v) 사용자의 요청에 즉각적으로 대응할 필요가 없거나, 시간이 지연될 수 있는 처리를 수행하는 백그라운드 처리 서비스, (vi) 운영 데이터 기록을 위한 데이터베이스 연동, (vii) 자주 접근하는 데이터나 세션을 저장하기 위한 캐쉬 기능을 갖는다.The deep
REST API 서비스는 웹 브라우저 혹은 에이전트와 같은 클라이언트에서 서버에 정보 조회/생성/변경 요청을 할 수 있는 기능을 제공한다. 클라이언트에서 HTTP(S) 프로토콜을 다룰 수 있다면, 서버가 제공하는 API를 사용할 수 있다.REST API service provides a function to request information inquiry/creation/change from a client such as a web browser or agent to the server. If the client can handle the HTTP(S) protocol, you can use the API provided by the server.
웹 소켓 서비스는 HTTP 프로토콜의 서브프로토콜인 웹 소켓 프로토콜은 HTTP 프로토콜과 달리 연결상태를 유지하며, 쌍방의 데이터를 주고 받을 수 있다. 따라서, 웹 소켓 서비스는 한쪽의 상태 변화나 알림 등의 목적에 활용이 가능하다. 딥러닝 통합 서버(300)는 사용자와 딥러닝 통합 서버 간에 웹 소켓 연결을 별도로 유지하며, 사용자 요청에 대한 상태 변화가 발생하는 경우, 사용자가 즉시 알 수 있도록 한다. 또한, 딥러닝 통합 서버(300)는 딥러닝 에이전트(110)와도 웹 소켓 연결을 유지하여 딥러닝 에이전트(110)에 작업이 배정되거나, 딥러닝 에이전트(110)의 운영 컨테이너(240)의 상태 변경에 대한 정보를 즉각적으로 반영할 수 있도록 하고 있다.Unlike the HTTP protocol, the websocket protocol, which is a subprotocol of the HTTP protocol, maintains a connection state and can send and receive data from both sides. Therefore, the websocket service can be used for the purpose of changing the state of one side or notifying. The deep
도 10을 참조하면, 딥러닝 통합 서버(300)는 REST API와 웹 소켓을 이용하여 다른 컴포넌트와 통신한다. REST API는 어떤 상태를 조작하거나, 새로운 정보를 생성하고자 하는 등의 행위를 할 수 있도록 HTTP(S) 프로토콜을 기반으로 제공한다. 웹 소켓은 딥러닝 통합 서버(300)에서 발생하는 정보의 변경을 즉시 전파하기 위해서 사용할 수 있다.Referring to FIG. 10 , the deep
예를 들어, 사용자가 작업 요청을 하는 경우, 사용자가 보고 있는 인터페이스에 내부적으로 REST API를 사용하여, 딥러닝 통합 서버(300)에 이 요청을 전달한다. 딥러닝 통합 서버(300)는 딥러닝 작업 스케줄러(120)를 호출하여 작업 배정을 의뢰하고, 작업 배정이 성공한 경우, 사용자와 배정된 장치 그룹을 가진 딥러닝 에이전트(110)에 웹 소켓을 사용하여 통지한다. 작업 배정이 실패한 경우는 사용자에게만 웹 소켓을 사용하여 통지한다. 만약 사용자에게 통지를 실패한 경우, 사용자는 새로 고침을 통해 REST API를 사용하여 호출하여 최신 정보를 얻을 수 있다.For example, when a user makes a work request, the REST API is used internally for the interface the user is viewing, and the request is delivered to the deep
새로운 작업을 통지 받은 딥러닝 에이전트(110)는 운영 컨테이너를 전개하며, 이에 대한 정보를 웹 소켓과 REST API 모두 활용하여 통합 서버에 전파한다. 딥러닝 통합 서버(300)는 전파된 사항에 따라, 중요 사항은 데이터베이스에 기록하고, 필요한 경우 사용자에게 변경된 상태 정보를 가공하여 웹 소켓을 사용하여 전파한다.The
성능 측정 기능에서 딥러닝 프라이빗 클라우드의 통합 서버(300)는 서버의 상태를 알 수 있도록, 사용자의 요청 빈도, 데이터베이스 접근 빈도, 접근 시간 등의 측정 정보를 관리하며, Prometheus, StatsD(302)와 같은 성능 측정 정보를 기록하는 데이터베이스와 연동할 수 있도록 하고 있다. 성능 측정 정보는 인증 시도 횟수, 인증성공 횟수, 인증 실패 횟수, 인증에 성공한 사용자수, HTTP 응답 상태 빈도, HTTP 요청 빈도, HTTP 응답에 걸린 시간, 세션 정보 접근 횟수, 캐쉬 적중 빈도, 캐쉬 실패 빈도, 데이터베이스 접근 빈도, 데이터베이스 접근 시간 등을 외부에서 측정할 수 있도록 제공한다.In the performance measurement function, the
사건 보고 기능은 딥러닝 프라이빗 클라우드 서비스(10)의 각 요소 소프트웨어서 발생하는 예기치 못한 오류를 기록하고, 발생한 오류를 해결할 수 있도록 하는 기능이다. 이를 위해서 Sentry(302)라는 사건 기록 소프트웨어를 사용하며, 이 서비스를 통해서 에러가 발생할 경우, 운영진 등의 관계자에게 사건 발생 즉시 상황을 전파하고, 별도로 기록된 사건의 내용을 분석하여, 문제를 해결할 수 있도록 한다.The event reporting function is a function to record unexpected errors that occur in each component software of the deep learning
백그라운드 처리 서비스는 딥러닝 프라이빗 클라우드 서비스(10)에서 지연된 사용자 요청 처리 및 주기적인 서비스 루틴을 동작시키기 위해서 사용한다. 백그라운드 처리 서비스는 파이썬의 Celery를 이용하여 실현한다. 딥러닝 작업 스케줄러 서비스 루틴도 백그라운드 처리 서비스를 통해서 동작한다.The background processing service is used to process delayed user requests and operate periodic service routines in the deep learning
백그라운드 처리 서비스는 도 12와 같이 시스템 장애에 대비하여 이중화를 할 수 있도록 고려하여 설계하였다. 백그라운드 처리 요청을 전달하는 매개 소프트웨어인 RabbitMQ 혹은 Redis(304)는 각각 시스템 장애 극복을 위한 클러스터 구성을 할 수 있다. 또한, 전달 받아 처리하는 딥러닝 지연 처리 루틴이나 스케줄 기능 또한 각각 독립적으로 서로 다른 장치에서 운영할 수 있으며, 이를 통해 특정 시스템의 장애로 인해 서비스가 중단되는 상태를 막을 수 있고, 시스템의 부하가 집중되는 경우 이를 위한 시스템을 증설하여 부하를 분산할 수도 있다.The background processing service was designed in consideration of redundancy in preparation for system failure as shown in FIG. 12 . RabbitMQ or Redis 304, which is an intermediary software that delivers background processing requests, can configure a cluster for overcoming system failure, respectively. In addition, the deep learning delay processing routine or schedule function that receives and processes can also be operated independently on different devices, thereby preventing service interruption due to a specific system failure and concentrating the system load. If necessary, the load can be distributed by expanding a system for this purpose.
본 발명의 일 실시예에 따르면, 딥러닝 지연 처리 루틴 및 딥러닝 작업 스케줄(309)은 부하 분산을 위한 수평 확장 기능에 사용될 수 있으며, 반드시 이에 한정되는 것은 아니다.According to an embodiment of the present invention, the deep learning delay processing routine and the deep learning task schedule 309 may be used for a horizontal scaling function for load balancing, but is not necessarily limited thereto.
본 발명의 일 실시예에 따르면, RabbitMQ는 오픈 소스 메시지 브로커 소프트웨어(메시지 지향 미들웨어)로서, 메시지를 생산하는 생산자(Producer)가 메시지를 큐에 저장해 두면, 메시지를 수신하는 소비자(Consumer)가 메시지를 가져와 처리하는 Publish/Subscribe 방식의 메시지 전달 브로커이다. Redis는 디스크에 상주하는 인메모리 데이터베이스로, Remote Dictionary Server의 약자로서, "키-값" 구조의 비정형 데이터를 저장하고 관리하기 위한 오픈 소스 기반의 비관계형 데이터베이스 관리 시스템(DBMS)이다.According to an embodiment of the present invention, RabbitMQ is an open source message broker software (message-oriented middleware). When a message producer stores a message in a queue, a consumer who receives the message sends the message. It is a publish/subscribe method message delivery broker that imports and processes. Redis is an in-memory database residing on a disk, an abbreviation of Remote Dictionary Server. It is an open source non-relational database management system (DBMS) for storing and managing unstructured data in a "key-value" structure.
딥러닝 프라이빗 클라우드 통합 서버는 정보 기록 및 조회를 위해서 관계형 데이터베이스를 사용한다. 관계형 데이터베이스는 PostgreSQL과 MySQL(306)를 사용할 수 있다. 관계형 데이터베이스는 공개소스로 사용할 수 있고, 매우 안정적으로 많이 사용하고 있는 PostgreSQL과 오라클에서 인수한 공개 소프트웨어인 MySQL, MySQL의 개발자가 MySQL의 기능을 개선한 MariaDB 최신버전에 대하여 테스트를 완료하였다. 데이터베이스에는 사용자의 접근 기록, 사용자가 연산코어를 사용한 기록 등 운영에 필요한 정보가 보관된다.The deep learning private cloud integration server uses a relational database for information recording and retrieval. The relational database can use PostgreSQL and MySQL (306). The relational database can be used as an open source, and PostgreSQL, which is very stable and widely used, MySQL, the open software acquired by Oracle, and the latest version of MariaDB, which the developer of MySQL has improved the functions of MySQL, have been tested. The database stores information necessary for operation, such as user access records and user use of computational cores.
본 발명의 일 실시예에 따르면, PostgreSQL은 확장 가능성 및 표준 준수를 강조하는 객체-관계형 데이터베이스 관리 시스템(ORDBMS)의 하나이다. MySQL은 오라클 사가 관리 및 배포하고 있는 오픈소스 관계형 데이터베이스 관리 시스템이다.According to one embodiment of the present invention, PostgreSQL is one of object-relational database management systems (ORDBMS) that emphasizes extensibility and standards compliance. MySQL is an open source relational database management system maintained and distributed by Oracle Corporation.
딥러닝 프라이빗 클라우드 통합 서버는 사용자 요청의 쏠림으로 인한 부하를 분산하기 위해서, 사용자 접속 정보를 기록하는 세션을 별도의 캐쉬 서버에 저장할 수 있도록 하고 있다. 캐쉬 서버로는 Memcached와 Redis를 지원한다The deep learning private cloud integrated server allows the session to record user access information to be stored in a separate cache server in order to distribute the load due to the concentration of user requests. Memcached and Redis are supported as cache servers.
본 발명의 일 실시예에 따르면, Memcached는 범용 분산 캐시 시스템이다. 외부 데이터 소스(예를 들어, 데이터베이스나 API)의 읽기 횟수를 줄이기 위해 데이터와 객체들을 RAM에 캐시 처리함으로써 동적 데이터베이스 드리븐 웹사이트의 속도를 높이기 위해 사용될 수 있다.According to one embodiment of the present invention, Memcached is a general-purpose distributed cache system. It can be used to speed up dynamic database driven websites by caching data and objects in RAM to reduce the number of reads from external data sources (eg databases or APIs).
사용자는 시스템 장애가 발생하더라도, 다른 딥러닝 통합 서버의 인스턴스에 접속할 수 있으며, 기존의 서버에서 사용하던 캐쉬 기록이나 세션이 유지되어, 시스템 장애를 인지하지 못하고, 계속해서 서비스를 사용할 수 있다.Even if a system failure occurs, the user can connect to the instance of another deep learning integrated server, and the cache record or session used in the existing server is maintained, so the user can continue to use the service without recognizing the system failure.
웹 서버는 사용자 인터페이스를 담고 있는 자바스크립트 프로그램 코드와 웹 문서와 이미지 등을 서비스하고, REST API 서비스 혹은 웹 소켓 서비스로 들어오는 요청에 대한 부하 분산 기능을 일부 수행한다. 웹 서버는 NGinx와 Apache HTTP 서버를 지원한다.The web server serves the JavaScript program code containing the user interface, web documents, and images, and partially performs a load balancing function for requests coming to the REST API service or web socket service. The web server supports NGinx and Apache HTTP server.
본 발명의 일 실시예에 따르면, NGinx는 웹 서버 소프트웨어로, 가벼움과 높은 성능을 목표로 하며, 웹 서버, 리버스 프록시 및 메일 프록시 기능을 가질 수 있다. Apache HTTP 서버는 아파치 소프트웨어 재단에서 관리하는 HTTP 웹 서버이다.According to an embodiment of the present invention, NGinx is web server software, which aims at lightness and high performance, and may have web server, reverse proxy and mail proxy functions. Apache HTTP Server is an HTTP web server maintained by the Apache Software Foundation.
데이터 스토리지 서버는 사용자의 활성 운영 컨테이너에 결합할 수 있는 사용자 볼륨을 제공하는 서버를 말한다. 이 서버는 기본적으로 NFS 서비스가 가능한 모든 제품이 적용 가능하며, 필요한 경우 IP-SAN과 같은 네트워크 기반의 스토리지 기술이 적용된 제품을 사용할 수 있다.A data storage server is a server that provides user volumes that can be bound to the user's active production containers. Basically, all products capable of NFS service can be applied to this server, and if necessary, products with network-based storage technology such as IP-SAN can be used.
도 11은 본 발명의 일 실시예에 따른 딥러닝 프라이빗 클라우드 서비스의 개념 구조를 나타내는 도면이다.11 is a diagram illustrating a conceptual structure of a deep learning private cloud service according to an embodiment of the present invention.
도 11은 본 발명의 일 실시예에 따른 사용자에게 제공하는 딥러닝 프라이빗 클라우드 서비스를 예시한 예시도이다.11 is an exemplary diagram illustrating a deep learning private cloud service provided to a user according to an embodiment of the present invention.
딥러닝 프라이빗 클라우드 서비스는 사용자 웹 통합 인터페이스 및 관리자 웹 통합 인터페이스를 구성할 수 있으며, 사용자 웹 통합 인터페이스는 사용자가 단말기와 상호 작용하는 시스템이고, 관리자 웹 통합 인터페이스는 관리자가 단말기와 상호 작용하는 시스템일 수 있다. 여기서, 단말기는 컴퓨터, 휴대폰 등과 같은 통신망으로 연결되어 데이터를 입력하거나 처리 결과를 출력하는 장치일 수 있다.The deep learning private cloud service can configure a user web integrated interface and an administrator web integrated interface, the user web integrated interface is a system in which the user interacts with the terminal, and the administrator web integrated interface is a system in which the administrator interacts with the terminal. can Here, the terminal may be a device connected to a communication network such as a computer or a mobile phone to input data or output a processing result.
본 발명의 일 실시예에 따르면, 사용자 웹 통합 인터페이스는 사용자가 Git 기반 소스 형상 관리 서비스, 딥러닝 작업 스케줄러, 소스와 Learning DB 통합 툴, 딥러닝 수행 서비스, 실행 서비스(보고서 및 로그) 및 Learning DB 관리 서비스를 수행할 수 있다. 본 발명의 일 실시예에 따르면, 관리자 웹 통합 인터페이스는 관리자가 장치 상태/성능 모니터링, 스케줄러 튜너, 학생 지원 서비스, 연산 장치 모니터 및 Tensorflow 모니터를 수행할 수 있다. 사용자 웹 통합 인터페이스 및 관리자 웹 통합 인터페이스가 수행하는 수행 동작은 상술한 바에 한정하지 않는다. 여기서, 연산 장치는 장치 그룹으로 구현될 수 있으며, 반드시 이에 한정되는 것은 아니다.According to an embodiment of the present invention, the user web integration interface provides a user with a Git-based source configuration management service, a deep learning task scheduler, a source and learning DB integration tool, a deep learning execution service, an execution service (reports and logs) and a learning DB management services can be performed. According to an embodiment of the present invention, the administrator web integrated interface allows the administrator to perform device status/performance monitoring, scheduler tuner, student support service, computing device monitor, and Tensorflow monitor. The operations performed by the user web integrated interface and the administrator web integrated interface are not limited to the above description. Here, the computing device may be implemented as a device group, but is not limited thereto.
도 11에서, 물리 장치 레이어는 물리 장치 계층(100)을 의미하며, 추상화 레이어는 추상화 계층(200)을 의미할 수 있다.In FIG. 11 , the physical device layer may mean the
도 12는 실시예들에서 사용되기에 적합한 컴퓨팅 기기를 포함하는 컴퓨팅 환경을 예시하여 설명하기 위한 블록도이다.12 is a block diagram illustrating and describing a computing environment including a computing device suitable for use in embodiments.
도 12는 예시적인 실시예들에서 사용되기에 적합한 컴퓨팅 기기를 포함하는 컴퓨팅 환경을 예시하여 설명하기 위한 블록도이다. 도시된 실시예에서, 각 컴포넌트들은 이하에 기술된 것 이외에 상이한 기능 및 능력을 가질 수 있고, 이하에 기술되지 것 이외에도 추가적인 컴포넌트를 포함할 수 있다.12 is a block diagram illustrating and describing a computing environment including a computing device suitable for use in example embodiments. In the illustrated embodiment, each component may have different functions and capabilities other than those described below, and may include additional components other than those described below.
도시된 컴퓨팅 환경은 선형성을 갖는 프라이빗 클라우드 서비스의 계층 전환 장치(30)를 포함한다. 일 실시예에서, 선형성을 갖는 프라이빗 클라우드 서비스의 계층 전환 장치(30)는 타 단말기와 신호를 송수신하는 모든 형태의 컴퓨팅 기기일 수 있다. The illustrated computing environment includes a
선형성을 갖는 프라이빗 클라우드 서비스의 계층 전환 장치(30)는 적어도 하나의 프로세서(1610), 컴퓨터 판독 가능한 저장매체(1620) 및 통신 버스(1660)를 포함한다. 프로세서(1610)는 선형성을 갖는 프라이빗 클라우드 서비스의 계층 전환 장치(30)로 하여금 앞서 언급된 예시적인 실시예에 따라 동작하도록 할 수 있다. 예컨대, 프로세서(1610)는 컴퓨터 판독 가능한 저장 매체(1620)에 저장된 하나 이상의 프로그램들을 실행할 수 있다. 상기 하나 이상의 프로그램들은 하나 이상의 컴퓨터 실행 가능 명령어를 포함할 수 있으며, 상기 컴퓨터 실행 가능 명령어는 프로세서(1610)에 의해 실행되는 경우 선형성을 갖는 프라이빗 클라우드 서비스의 계층 전환 장치(30)로 하여금 예시적인 실시예에 따른 동작들을 수행하도록 구성될 수 있다.The
컴퓨터 판독 가능한 저장 매체(1620)는 컴퓨터 실행 가능 명령어 내지 프로그램 코드, 프로그램 데이터 및/또는 다른 적합한 형태의 정보를 저장하도록 구성된다. 컴퓨터 판독 가능한 저장 매체(1620)에 저장된 프로그램(1630)은 프로세서(1610)에 의해 실행 가능한 명령어의 집합을 포함한다. 일 실시예에서, 컴퓨터 판독한 가능 저장 매체(1620)는 메모리(랜덤 액세스 메모리와 같은 휘발성 메모리, 비휘발성 메모리, 또는 이들의 적절한 조합), 하나 이상의 자기 디스크 저장 기기들, 광학 디스크 저장 기기들, 플래시 메모리 기기들, 그 밖에 선형성을 갖는 프라이빗 클라우드 서비스의 계층 전환 장치(30)에 의해 액세스되고 원하는 정보를 저장할 수 있는 다른 형태의 저장 매체, 또는 이들의 적합한 조합일 수 있다.Computer-readable storage medium 1620 is configured to store computer-executable instructions or program code, program data, and/or other suitable form of information. The
통신 버스(1660)는 프로세서(1610), 컴퓨터 판독 가능한 저장 매체(1620)를 포함하여 선형성을 갖는 프라이빗 클라우드 서비스의 계층 전환 장치(30)의 다른 다양한 컴포넌트들을 상호 연결한다.The
선형성을 갖는 프라이빗 클라우드 서비스의 계층 전환 장치(30)는 또한 하나 이상의 입출력 장치(미도시)를 위한 인터페이스를 제공하는 하나 이상의 입출력 인터페이스(1640) 및 하나 이상의 통신 인터페이스(1650)를 포함할 수 있다. 입출력 인터페이스(1640) 및 통신 인터페이스(1650)는 통신 버스(1660)에 연결된다. 입출력 장치(미도시)는 입출력 인터페이스(1040)를 통해 선형성을 갖는 프라이빗 클라우드 서비스의 계층 전환 장치(30)의 다른 컴포넌트들에 연결될 수 있다. 예시적인 입출력 장치는 포인팅 장치(마우스 또는 트랙패드 등), 키보드, 터치 입력 장치(터치패드 또는 터치스크린 등), 음성 또는 소리 입력 장치, 다양한 종류의 센서 장치 및/또는 촬영 장치와 같은 입력 장치, 및/또는 디스플레이 장치, 프린터, 스피커 및/또는 네트워크 카드와 같은 출력 장치를 포함할 수 있다. 예시적인 입출력 장치(미도시)는 선형성을 갖는 프라이빗 클라우드 서비스의 계층 전환 장치(30)를 구성하는 일 컴포넌트로서 선형성을 갖는 프라이빗 클라우드 서비스의 계층 전환 장치(30)의 내부에 포함될 수도 있고, 선형성을 갖는 프라이빗 클라우드 서비스의 계층 전환 장치(30)와는 구별되는 별개의 장치로 컴퓨팅 기기와 연결될 수도 있다.The
본 실시예들에 따른 동작은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능한 매체에 기록될 수 있다. 컴퓨터 판독 가능한 매체는 실행을 위해 프로세서에 명령어를 제공하는 데 참여한 임의의 매체를 나타낸다. 컴퓨터 판독 가능한 매체는 프로그램 명령, 데이터 파일, 데이터 구조 또는 이들의 조합을 포함할 수 있다. 예를 들면, 자기 매체, 광기록 매체, 메모리 등이 있을 수 있다. 컴퓨터 프로그램은 네트워크로 연결된 컴퓨터 시스템 상에 분산되어 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수도 있다. 본 실시예를 구현하기 위한 기능적인(Functional) 프로그램, 코드, 및 코드 세그먼트들은 본 실시예가 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있을 것이다.The operations according to the present embodiments may be implemented in the form of program instructions that can be performed through various computer means and recorded in a computer-readable medium. Computer-readable media refers to any medium that participates in providing instructions to a processor for execution. Computer-readable media may include program instructions, data files, data structures, or a combination thereof. For example, there may be a magnetic medium, an optical recording medium, a memory, and the like. A computer program may be distributed over a networked computer system so that computer readable code is stored and executed in a distributed manner. Functional programs, codes, and code segments for implementing the present embodiment may be easily inferred by programmers in the technical field to which the present embodiment pertains.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위 내에서 다양한 수정, 변경 및 치환이 가능할 것이다. 따라서, 본 발명에 개시된 실시 예 및 첨부된 도면들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시 예 및 첨부된 도면에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구 범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리 범위에 포함되는 것으로 해석되어야 할 것이다.The above description is merely illustrative of the technical idea of the present invention, and those of ordinary skill in the art to which the present invention pertains may make various modifications, changes, and substitutions within the scope without departing from the essential characteristics of the present invention. will be. Accordingly, the embodiments disclosed in the present invention and the accompanying drawings are intended to explain, not to limit the technical spirit of the present invention, and the scope of the technical spirit of the present invention is not limited by these embodiments and the accompanying drawings. . The protection scope of the present invention should be construed by the following claims, and all technical ideas within the scope equivalent thereto should be construed as being included in the scope of the present invention.
10: 딥러닝 프라이빗 클라우드
100: 물리 장치 계층
200: 추상화 계층10: Deep Learning Private Cloud
100: physical device layer
200: abstraction layer
Claims (15)
딥러닝 통합 서버와 통신을 수행하고, 다양한 형태의 물리 장치 계층을 추상화 계층으로 전환하는 계산 노드 에이전트를 포함하는 프라이빗 클라우드 서비스의 계층 전환 장치.In the layer switching device of the private cloud service,
A layer switching device of a private cloud service that communicates with the deep learning integration server and includes a compute node agent that converts various types of physical device layers into abstraction layers.
상기 물리 장치 계층은 다수의 서버들을 네트워크를 통해서 사용하고,
상기 추상화 계층은 상기 물리 장치 계층을 단순화하여 복수의 장치 그룹, 복수의 저장 볼륨 및 복수의 운영 컨테이너로 구분된 개념 장치를 형성하고, 상기 단순화된 개념 장치를 사용하여 사용자에게 서비스를 제공하는 기반이 형성되고,
상기 복수의 장치 그룹 각각은 연산 작업을 수행하는 복수의 연산 코어를 포함하고,
상기 저장 볼륨은 사용자가 사용하거나 생성하는 데이터를 보관하고, 상기 운영 컨테이너와 적어도 하나 결합하여 공유하고,
상기 운영 컨테이너는 상기 사용자가 사용할 수 있는 운영 시스템 및 시스템 소프트웨어와 응용 소프트웨어가 미리 설정된 사용자 환경을 제공하는 것을 특징으로 하는 프라이빗 클라우드 서비스의 계층 전환 장치.According to claim 1,
The physical device layer uses a plurality of servers through a network,
The abstraction layer simplifies the physical device layer to form a conceptual device divided into a plurality of device groups, a plurality of storage volumes, and a plurality of operation containers, and is a basis for providing services to users using the simplified conceptual device. formed,
Each of the plurality of device groups includes a plurality of computational cores for performing computational tasks,
The storage volume stores data used or generated by the user, and shares it in combination with at least one operation container,
The operating container provides a user environment in which an operating system and system software and application software that can be used by the user are set in advance.
상기 복수의 장치 그룹은,
상기 복수의 연산 코어 각각을 분리하여 상기 운영 컨테이너와 결합하거나 일부 연산 코어들을 조합하여 상기 운영 컨테이너와 결합하고,
상기 연산 코어는,
제조사 정보, 코어 성능 표기 또는 코어가 제공하는 연산 기술 정보를 적어도 하나 포함하는 범용 연산 코어; 및
제조사 정보, 상기 복수의 서버의 모델 정보, 코어의 성능 표기 정보 또는 연산 기술 정보를 적어도 하나 포함하는 딥러닝 연산 코어를 포함하는 프라이빗 클라우드 서비스의 계층 전환 장치.3. The method of claim 2,
The plurality of device groups,
Separating each of the plurality of computational cores and combining them with the operational container or combining some computational cores with the operational container,
The computational core is
A general-purpose computational core including at least one of manufacturer information, core performance indication, or computational technology information provided by the core; and
A layer switching device for a private cloud service including a deep learning computation core including at least one of manufacturer information, model information of the plurality of servers, performance representation information of a core, or computation technology information.
상기 운영 컨테이너는,
적어도 하나의 상기 연산 코어 및 적어도 하나의 상기 저장 볼륨과 결합하고, 이미지 상태 및 활성 상태로 구분되어 상기 사용자에 의해 상기 이미지 상태의 운영 컨테이너를 선택하여 활성화하고,
상기 운영 컨테이너는 상기 사용자가 상기 운영 컨테이너를 비활성화하는 경우 상기 비활성화된 운영 컨테이너는 제거되고, 상기 사용자가 상기 운영 컨테이너를 재활성화하는 경우 이전에 사용했던 결합을 재조합하여 새로운 운영 컨테이너를 생성하는 것을 특징으로 하는 프라이빗 클라우드 서비스의 계층 전환 장치.3. The method of claim 2,
The operating container is
Combined with at least one of the computational core and at least one of the storage volume, divided into an image state and an active state, select and activate an operation container of the image state by the user
In the operation container, when the user deactivates the operation container, the deactivated operation container is removed, and when the user reactivates the operation container, a previously used combination is recombined to create a new operation container. Layer switching device for private cloud services.
상기 계산 노드 에이전트는,
상기 물리 장치 계층에 포함된 CPU 및 GPGPU 정보를 취합하여 각각 연산 코어 정보로 전환한 후 상기 딥러닝 통합 서버에 하나의 장치 그룹으로 등록하고,
상기 장치 그룹 등록 시 상기 딥러닝 통합 서버의 주소와 등록에 필요한 보안 토큰을 입력하고, 상기 보안 토큰에 따라서 상기 장치 그룹에 접근할 수 있는 사용자가 제한되는 것을 특징으로 하는 프라이빗 클라우드 서비스의 계층 전환 장치.According to claim 1,
The compute node agent comprises:
After collecting CPU and GPGPU information included in the physical device layer and converting each into computational core information, it is registered as one device group in the deep learning integrated server,
When registering the device group, input the address of the deep learning integration server and a security token required for registration, and according to the security token, users who can access the device group are restricted. .
상기 계산 노드 에이전트는,
주기적으로 상기 물리 장치 계층에 포함된 CPU 및 GPGPU 정보를 조회하여 상기 연산 코어의 정보를 갱신하고, 상기 갱신된 연산 코어의 정보를 상기 딥러닝 통합 서버에 보고하고,
새로운 CPU 또는 GPGPU가 추가된 경우 상기 추가된 CPU 또는 GPGPU를 탐지하여 관리하는 장치 그룹에 추가하고, 기존의 CPU 또는 GPGPU가 제거된 경우 상기 제거된 CPU 또는 GPGPU를 탐지하여 관리하는 장치 그룹에 삭제하여 상기 장치 그룹의 정보를 갱신하는 것을 특징으로 하는 프라이빗 클라우드 서비스의 계층 전환 장치.6. The method of claim 5,
The compute node agent comprises:
Periodically inquire the CPU and GPGPU information included in the physical device layer to update the information of the computational core, and report the updated information of the computational core to the deep learning integration server,
When a new CPU or GPGPU is added, the added CPU or GPGPU is detected and added to the managed device group. When the existing CPU or GPGPU is removed, the removed CPU or GPGPU is detected and deleted from the managed device group. The layer switching device of the private cloud service, characterized in that the information of the device group is updated.
상기 계산 노드 에이전트는,
상기 추상화 계층의 운영 컨테이너를 활성화할 때, 상기 운영 컨테이너의 저장소로부터 최신의 운영 컨테이너를 탐색하여 상기 운영 컨테이너를 동기화하고,
기존의 운영 컨테이너와 최신의 운영 컨테이너가 같은 경우 상기 기존의 운영 컨테이너를 재사용하고, 상기 기존의 운영 컨테이너와 상기 최신의 운영 컨테이너가 다른 경우 상기 기존의 운영 컨테이너를 그대로 두고, 상기 최신 운영 컨테이너를 형성하고,
상기 장치 그룹과 결합한 기존의 활성 운영 컨테이너가 모두 비활성화되었을 때 상기 장치 그룹과 결합한 기존의 활성 운영 컨테이너를 물리 장치 계층에서 제거하는 것을 특징으로 하는 프라이빗 클라우드 서비스의 계층 전환 장치.7. The method of claim 6,
The compute node agent comprises:
When activating the operational container of the abstraction layer, searching for the latest operational container from the storage of the operational container and synchronizing the operational container;
When the existing operational container and the newest operational container are the same, the existing operational container is reused, and when the existing operational container and the latest operational container are different, the existing operational container is left as it is, and the newer operational container is formed and,
The layer switching device of the private cloud service, characterized in that when all the existing active operation containers associated with the device group are deactivated, the existing active operation containers associated with the device group are removed from the physical device layer.
상기 계산 노드 에이전트는,
상기 딥러닝 통합 서버로부터 사용자 환경 정보의 요청을 전달받으며, 상기 사용자 환경 정보의 요청에 의해 요청 정보를 수신하고, 상기 요청 정보를 분석하여 상기 추상화 계층의 운영 컨테이너, 저장 볼륨 및 장치 그룹을 결합하여 활성화하여 활성 운영 컨테이너를 생성하고,
상기 활성화 중에 발생하는 모든 정보를 상기 딥러닝 통합 서버에 전달하며, 문제가 발생할 경우 문제가 발생한 활성 운영 컨테이너를 제거하고, 사용자 요청 작업에 유형에 따라서 운영 컨테이너의 활성 서비스를 초기화하는 것을 특징으로 하는 프라이빗 클라우드 서비스의 계층 전환 장치.8. The method of claim 7,
The compute node agent comprises:
Receives a request for user environment information from the deep learning integration server, receives request information by the request for user environment information, analyzes the request information, and combines the operation container, storage volume and device group of the abstraction layer Activate to create an active production container,
All information generated during the activation is transmitted to the deep learning integration server, and when a problem occurs, the active operation container in which the problem occurs is removed, and the active service of the operation container is initialized according to the type of user requested operation, characterized in that A tier switching device for private cloud services.
상기 계산 노드 에이전트는,
상호작용 작업의 경우, 운영 컨테이너에 개인 노트북 인터페이스를 제공하는 서비스와 온라인 통합 개발 환경 인터페이스를 제공하는 서비스를 활성화하고,
상호작용 작업 및 수업이나 팀 단위로 사용하려는 요청이 함께 있는 경우, 개인 노트북 인터페이스를 제공하는 서비스 대신, 노트북 허브 인터페이스를 제공하는 서비스를 편성 및 재구성하여 서비스를 하고, 온라인 통합 개발 환경 인터페이스는 비활성화한 상태로 시작하고,
배치 작업으로 구성되는 경우, 딥러닝 통합 서버와 직접 통신하는 배치 작업의 동작 상태를 점검하고 상기 사용자가 접근하여 상태를 확인하는 시큐어 터미널 서비스를 제공하는 것을 특징으로 하는 프라이빗 클라우드 서비스의 계층 전환 장치.9. The method of claim 8,
The compute node agent comprises:
for interactive tasks, enable a service that provides a personal laptop interface to the production container and a service that provides an online integrated development environment interface;
When there is a request for interactive work and class or team use, instead of a service that provides a personal laptop interface, a service that provides a laptop hub interface is organized and reconfigured to provide the service, and the online integrated development environment interface is disabled start with the state,
When it is composed of a batch job, it checks the operation status of the batch job that communicates directly with the deep learning integration server, and provides a secure terminal service for the user to access and check the status.
상기 계산 노드 에이전트는,
상기 장치 그룹의 연산 코어와 상기 결합한 활성 운영 컨테이너를 추적하고, 상기 활성 운영 컨테이너가 사용하는 장치 그룹의 부하를 측정하고 상태 변화를 탐지하여 상기 딥러닝 통합 서버에 상기 활성 운영 컨테이너에 대한 정보를 갱신하는 것을 특징으로 하는 프라이빗 클라우드 서비스의 계층 전환 장치.10. The method of claim 9,
The compute node agent comprises:
Tracks the computing core of the device group and the combined active operation container, measures the load of the device group used by the active operation container, detects a state change, and updates the information on the active operation container in the deep learning integration server Layer switching device of the private cloud service, characterized in that.
사용자가 설정하는 운영 환경을 상기 딥러닝 통합 서버에 등록된 장치 그룹과 결합하도록 유휴 장치 그룹을 찾고, 상기 유휴 장치 그룹을 사용자의 요청에 배정하는 일을 수행하는 작업 스케줄러를 더 포함하고,
상기 작업 스케줄러는 스케줄링 대상이 되는 사용자를 선택하고, 상기 선택된 사용자의 우선 순위 중 값이 가장 높은 우선 순위를 갖는 사용자의 우선 순위를 갖는 작업을 선택하며, 상기 선택된 자원을 순서대로 읽어 유휴 자원 및 자원 그룹을 비교하여 작업에 자원을 할당하여 자원을 선택하며, 상기 선택된 작업에 상기 계산 노드 에이전트를 할당하고,
상기 프라이빗 클라우드 서비스의 계층 전환 장치는 상기 딥러닝 통합 서버에 통신하여 상기 작업 스케줄러에 의해 배정된 상기 계산 노드 에이전트를 통해 다양한 형태의 상기 물리 장치 계층을 상기 추상화 계층으로 전환하는 것을 특징으로 하는 프라이빗 클라우드 서비스의 계층 전환 장치.According to claim 1,
Further comprising a task scheduler to find an idle device group to combine the operating environment set by the user with the device group registered in the deep learning integration server, and to assign the idle device group to the user's request,
The task scheduler selects a user to be scheduled, selects a task having the priority of the user having the highest value among the priorities of the selected user, and reads the selected resources in order to find idle resources and resources selecting a resource by allocating a resource to a task by comparing groups, allocating the compute node agent to the selected task,
The private cloud service layer switching device communicates with the deep learning integration server and converts the physical device layer of various types into the abstraction layer through the compute node agent assigned by the task scheduler. A device for switching layers of services.
사용자가 설정하는 운영 환경을 딥러닝 통합 서버에 등록된 장치 그룹과 결합하도록 유휴 장치 그룹을 찾고, 상기 유휴 장치 그룹을 사용자의 요청에 따라 계산 노드 에이전트로 배정하는 일을 수행하는 작업 스케줄러를 포함하는 프라이빗 클라우드 서비스의 계층 전환 장치.In the layer switching device of the private cloud service,
A task scheduler that finds an idle device group to combine the operating environment set by the user with the device group registered in the deep learning integration server, and assigns the idle device group as a compute node agent according to the user's request. A tier switching device for private cloud services.
상기 사용자의 요청은,
연산 코어를 배정한 후, 상기 사용자의 조작에 의해 업무를 진행하는 상호 작용 작업 또는 상기 사용자의 조작이 사전에 정의되어있거나, 자동화된 처리 프로세서를 가지고 있는 배치 작업을 포함하고,
상기 작업 스케줄러는,
상기 작업 스케줄러는 스케줄링 대상이 되는 사용자를 선택하고, 상기 선택된 사용자의 우선 순위 중 값이 가장 높은 우선 순위를 갖는 사용자의 우선 순위를 갖는 작업을 선택하며, 상기 선택된 자원을 순서대로 읽어 유휴 자원 및 자원 그룹을 비교하여 작업에 자원을 할당하여 자원을 선택하며, 상기 선택된 작업에 상기 계산 노드 에이전트를 할당하는 프라이빗 클라우드 서비스의 계층 전환 장치.13. The method of claim 12,
The user's request is
After allocating a computational core, an interactive task or a batch task in which the user's operation is defined in advance or has an automated processing processor to perform a task by the user's operation,
The task scheduler is
The task scheduler selects a user to be scheduled, selects a task having the priority of the user having the highest value among the priorities of the selected user, and reads the selected resources in order to find idle resources and resources A layer switching device for a private cloud service that compares groups, allocates resources to tasks, selects a resource, and allocates the compute node agent to the selected task.
상기 작업 스케줄러는,
자원을 배정 받기를 대기하고 있는 사용자들을 선택하고, 상기 선택된 사용자 중에서 독점적으로 자원을 사용하고 있는 사용자 이력을 기반으로 상기 우선 순위를 변경하고, 상기 사용자의 이력 점수가 동일한 경우 먼저 자원 배정을 요청한 사용자가 우선 순위를 갖는 것을 특징으로 하는 프라이빗 클라우드 서비스의 계층 전환 장치.14. The method of claim 13,
The task scheduler is
A user who selects users waiting to be allocated a resource, changes the priority based on a user history who exclusively uses a resource among the selected users, and requests resource allocation first if the history scores of the users are the same Layer switching device of the private cloud service, characterized in that it has priority.
상기 작업 스케줄러는,
사용자 이력 기반의 점수를 위해 티켓과 티켓 부채를 적용하고,
상기 티켓은 일정한 값으로 초기화되며, 자원 사용 기준에 따라 사용할 때 마다 감소하고,
상기 티켓 부채는 상기 티켓을 모두 소진한 상태에서 자원을 계속해서 사용하는 경우, 자원 사용 기준에 도달 할 때 마다 증가하고,
상기 사용자의 우선 순위는 상기 티켓을 가진 사용자가 우선 순위를 갖고, 상기 티켓이 없고 티켓 부채가 있는 경우, 상기 티켓 부채의 수준의 경고가 기 설정된 경고 미만일 경우 차순위를 갖고, 상기 티켓이 없고 상기 티켓 부채의 수준의 경고가 상기 설정된 경고 이상일 경우 최하위 순위를 가지며, 자원이 부족할 필요한 경우 해당 사용자의 자원은 강제로 해제되는 것을 특징으로 하는 프라이빗 클라우드 서비스의 계층 전환 장치.14. The method of claim 13,
The task scheduler is
Apply tickets and ticket debt for scoring based on user history;
The ticket is initialized with a constant value and decreases each time it is used according to the resource usage criteria,
The ticket debt increases each time the resource usage criterion is reached when the resource is continuously used while all the tickets are exhausted,
The priority of the user is that the user with the ticket has priority, if there is no ticket and there is ticket debt, the level of warning of the ticket debt is less than a preset warning, the next priority is, if there is no ticket and the ticket When the level of debt warning is higher than the set warning, it has the lowest rank, and when resources are insufficient, the user's resources are forcibly released.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20190154913 | 2019-11-27 | ||
KR1020190154913 | 2019-11-27 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20210065817A true KR20210065817A (en) | 2021-06-04 |
KR102341376B1 KR102341376B1 (en) | 2021-12-21 |
Family
ID=76391889
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200037145A KR102341376B1 (en) | 2019-11-27 | 2020-03-26 | Apparatus for Layer switching of Deep Learning Private Cloud Service |
KR1020200037146A KR102341377B1 (en) | 2019-11-27 | 2020-03-26 | Method for Providing Service of Deep Learning Private Cloud Service System |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200037146A KR102341377B1 (en) | 2019-11-27 | 2020-03-26 | Method for Providing Service of Deep Learning Private Cloud Service System |
Country Status (1)
Country | Link |
---|---|
KR (2) | KR102341376B1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116483482A (en) * | 2023-05-19 | 2023-07-25 | 北京百度网讯科技有限公司 | Deep learning task processing method, system, device, equipment and medium |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023177019A1 (en) * | 2022-03-18 | 2023-09-21 | 엘지전자 주식회사 | Edge-cloud collaboration system and method |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120281708A1 (en) * | 2011-05-06 | 2012-11-08 | Abhishek Chauhan | Systems and methods for cloud bridging between public and private clouds |
JP2013004000A (en) * | 2011-06-21 | 2013-01-07 | Nippon Telegr & Teleph Corp <Ntt> | Load adjustment method, load adjustment server, server device for load adjustment, and load adjustment program |
KR20130068564A (en) * | 2011-12-15 | 2013-06-26 | 한국전자통신연구원 | Terminal apparatus having operating system based on web and method for providing service using thereof |
KR20140128188A (en) * | 2013-04-27 | 2014-11-05 | (주)이공감 | Virtualization Desktop Infrastructure Systerm |
US20160378782A1 (en) * | 2015-06-25 | 2016-12-29 | Vmware, Inc. | Virtual desktop infrastructure private cloud |
US20190318100A1 (en) * | 2018-04-17 | 2019-10-17 | Oracle International Corporation | High granularity application and data security in cloud environments |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP4006728A1 (en) | 2010-07-09 | 2022-06-01 | State Street Corporation | Systems and methods for private cloud computing |
CA2936358C (en) | 2014-02-07 | 2021-09-07 | Oracle International Corporation | Mobile cloud service architecture |
KR20170072552A (en) * | 2015-12-17 | 2017-06-27 | 에스케이텔레콤 주식회사 | Method and apparatus for servicing container in cloud development |
KR20190091659A (en) * | 2018-01-29 | 2019-08-07 | 한국전자통신연구원 | Method and apparatus for routing based on trust in cloud service networking |
-
2020
- 2020-03-26 KR KR1020200037145A patent/KR102341376B1/en active IP Right Grant
- 2020-03-26 KR KR1020200037146A patent/KR102341377B1/en active IP Right Grant
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120281708A1 (en) * | 2011-05-06 | 2012-11-08 | Abhishek Chauhan | Systems and methods for cloud bridging between public and private clouds |
JP2013004000A (en) * | 2011-06-21 | 2013-01-07 | Nippon Telegr & Teleph Corp <Ntt> | Load adjustment method, load adjustment server, server device for load adjustment, and load adjustment program |
KR20130068564A (en) * | 2011-12-15 | 2013-06-26 | 한국전자통신연구원 | Terminal apparatus having operating system based on web and method for providing service using thereof |
KR20140128188A (en) * | 2013-04-27 | 2014-11-05 | (주)이공감 | Virtualization Desktop Infrastructure Systerm |
US20160378782A1 (en) * | 2015-06-25 | 2016-12-29 | Vmware, Inc. | Virtual desktop infrastructure private cloud |
US20190318100A1 (en) * | 2018-04-17 | 2019-10-17 | Oracle International Corporation | High granularity application and data security in cloud environments |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116483482A (en) * | 2023-05-19 | 2023-07-25 | 北京百度网讯科技有限公司 | Deep learning task processing method, system, device, equipment and medium |
CN116483482B (en) * | 2023-05-19 | 2024-03-01 | 北京百度网讯科技有限公司 | Deep learning task processing method, system, device, equipment and medium |
Also Published As
Publication number | Publication date |
---|---|
KR102341376B1 (en) | 2021-12-21 |
KR20210065818A (en) | 2021-06-04 |
KR102341377B1 (en) | 2021-12-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7566000B2 (en) | Leveraging Microservice Containers to Provide Tenant Isolation in a Multi-Tenant API Gateway | |
US11474872B2 (en) | Techniques for managing long-running tasks with a declarative provisioner | |
JP6856696B2 (en) | System for container management and scheduling | |
US11509729B2 (en) | Field service management mobile offline synchronization | |
CN106664321B (en) | Placement policy based allocation of computing resources | |
US11481239B2 (en) | Apparatus and methods to incorporate external system to approve deployment provisioning | |
US10223024B2 (en) | Storage controller for provisioning storage services for an application based upon application-specific requirements | |
CN112104723B (en) | Multi-cluster data processing system and method | |
US20160378554A1 (en) | Parallel and Distributed Computing Using Multiple Virtual Machines | |
US11263058B2 (en) | Methods and apparatus for limiting data transferred over the network by interpreting part of the data as a metaproperty | |
US11755337B2 (en) | Techniques for managing dependencies of an orchestration service | |
US10776385B2 (en) | Methods and apparatus for transparent database switching using master-replica high availability setup in relational databases | |
US8949430B2 (en) | Clustered computer environment partition resolution | |
US20180176070A1 (en) | System and method to handle events using historical data in serverless systems | |
US10620928B2 (en) | Global cloud applications management | |
US10353752B2 (en) | Methods and apparatus for event-based extensibility of system logic | |
KR102341376B1 (en) | Apparatus for Layer switching of Deep Learning Private Cloud Service | |
US11507584B2 (en) | Logical partitions via header-based partition filtering | |
US11487750B2 (en) | Dynamically optimizing flows in a distributed transaction processing environment | |
US20240211306A1 (en) | Techniques for handling polling frequency in event delivery network (edn) | |
CN118591794A (en) | Control is disclosed to enable an interactive scheduler for a cloud cluster orchestration system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |