KR102341377B1 - 딥러닝 프라이빗 클라우드 서비스 시스템의 서비스 제공 방법 - Google Patents

딥러닝 프라이빗 클라우드 서비스 시스템의 서비스 제공 방법 Download PDF

Info

Publication number
KR102341377B1
KR102341377B1 KR1020200037146A KR20200037146A KR102341377B1 KR 102341377 B1 KR102341377 B1 KR 102341377B1 KR 1020200037146 A KR1020200037146 A KR 1020200037146A KR 20200037146 A KR20200037146 A KR 20200037146A KR 102341377 B1 KR102341377 B1 KR 102341377B1
Authority
KR
South Korea
Prior art keywords
service
deep learning
information
terminal
user
Prior art date
Application number
KR1020200037146A
Other languages
English (en)
Other versions
KR20210065818A (ko
Inventor
허대영
최규연
Original Assignee
주식회사 가토랩
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 가토랩 filed Critical 주식회사 가토랩
Publication of KR20210065818A publication Critical patent/KR20210065818A/ko
Application granted granted Critical
Publication of KR102341377B1 publication Critical patent/KR102341377B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

본 실시예들은 발명은 딥러닝 통합 서버가, 사용자의 단말기를 통해 전달되는 작업 요청에 의해 계층 전환 장치에 작업 배정을 요청하는 단계, 계층 전환 장치가, 작업 스케줄러에 의해 작업 배정을 수행하여 유휴 장치 그룹을 찾아 계산 노드 에이전트에 배정하고, 배정된 계산 노드 에이전트에 의해 다양한 형태의 물리 장치 계층을 추상화 계층으로 전환하는 단계 및 딥러닝 통합 서버가, 계층 전환 장치에서 전환된 활성 운영 컨테이너에 대한 정보를 사용자의 단말기에 제공하는 단계를 포함하는 프라이빗 클라우드 서비스 시스템의 서비스 제공 방법을 제안한다.

Description

딥러닝 프라이빗 클라우드 서비스 시스템의 서비스 제공 방법{Method for Providing Service of Deep Learning Private Cloud Service System}
본 발명은 프라이빗 클라우드 서비스에 관한 것으로, 특히 딥러닝 프라이빗 클라우드 서비스 시스템의 서비스 제공 방법에 관한 것이다.
이 부분에 기술된 내용은 단순히 본 실시예에 대한 배경 정보를 제공할 뿐 종래기술을 구성하는 것은 아니다.
프라이빗 클라우드 서비스는 기업이 직접 클라우드 환경을 구축하고, 이를 기업 내부에서 활용하거나 또는 계열사에 공개하는 것을 의미한다. 외부 클라우드 사업자의 서비스를 이용하지 않고 서비스를 위한 인프라를 해당 조직의 방화벽 뒤에서 내부적으로 운영하여 컴퓨팅 리소스를 보다 효율적으로 관리할 수 있다. 하지만 프라이빗 클라우드 서비스는 최고 수준의 보안이 적용되는 만큼 비용이 많이 드는 문제가 있다.
프라이빗 클라우드 서비스는 외부에 의존하지 않기 때문에 구성이 자유롭고 자사의 비즈니스에 최적화된 서비스를 구현하기에 용이하며, 상대적으로 보안성이 높다. 하지만, 초기 투자 비용이 많이 들며, 일정 수준 이상의 규모를 확보하지 않으면 오히려 효용성이 떨어지는 문제가 있다.
본 발명의 실시예들은 개인 또는 단체 등에서 보유하거나 접근할 수 있는 GPGPU 시스템을 공동으로 효과적으로 활용할 수 있는 딥러닝 기반의 프라이빗 클라우드 GPGPU 및 CPU와 같은 제한된 자원을 분배하여 다른 사용자로부터 방해 받지 않고 독립적인 개발 및 실행 환경을 구성하여 컨테이너 기술 또는 클라우드 기술을 통해 제공하는데 발명의 주된 목적이 있다.
본 발명의 명시되지 않은 또 다른 목적들은 하기의 상세한 설명 및 그 효과로부터 용이하게 추론할 수 있는 범위 내에서 추가적으로 고려될 수 있다.
본 실시예의 일 측면에 의하면, 본 발명은 딥러닝 통합 서버가, 사용자의 단말기를 통해 전달되는 작업 요청에 의해 계층 전환 장치에 작업 배정을 요청하는 단계, 상기 계층 전환 장치가, 작업 스케줄러에 의해 작업 배정을 수행하여 유휴 장치 그룹을 찾아 계산 노드 에이전트에 배정하고, 상기 배정된 계산 노드 에이전트에 의해 다양한 형태의 물리 장치 계층을 추상화 계층으로 전환하는 단계 및 상기 딥러닝 통합 서버가, 상기 계층 전환 장치에서 전환된 활성 운영 컨테이너에 대한 정보를 상기 사용자의 단말기에 제공하는 단계를 포함하는 프라이빗 클라우드 서비스 시스템의 서비스 제공 방법을 제안한다.
본 발명의 또 다른 실시예에 따르면, 본 발명은 사용자의 단말기를 통해 전달되는 작업 요청에 의해 작업 스케줄러가 배정하는 다양한 형태의 물리 장치 계층을 추상화 계층으로 전환하는 계산 노드 에이전트에 작업 배정을 요청하고, 상기 계산 노드 에이전트에 의해 전환된 활성 운영 컨테이너에 대한 정보를 상기 사용자의 단말기에 제공하는 딥러닝 통합 서버를 제공한다.
이상에서 설명한 바와 같이 본 발명의 실시예들에 의하면, 본 발명은 제한된 자원을 상호 배타적으로 분배하여 다른 사용자로부터 방해 받지 않고 독립적인 개발 및 실행 환경을 구성할 수 있는 효과가 있다.
본 발명의 실시예들에 의하면, 본 발명은 AI 분야의 프로그래밍을 위한 환경으로 프로그래밍 노트북 인터페이스를 기본적으로 제공하며, 일정 규모 이상의 개발 프로젝트를 위해서 일반적인 개발 환경이 필요한 사용자를 위해서는 Microsoft 회사가 공개 소스로 공개한 개발 환경 IDE등을 온라인으로 사용할 수 있는 환경을 제공하는 효과가 있다.
여기에서 명시적으로 언급되지 않은 효과라 하더라도, 본 발명의 기술적 특징에 의해 기대되는 이하의 명세서에서 기재된 효과 및 그 잠정적인 효과는 본 발명의 명세서에 기재된 것과 같이 취급된다.
도 1은 본 발명의 일 실시예에 따른 프라이빗 클라우드 서비스 시스템의 서비스 제공 방법을 나타내는 흐름도이다.
도 2는 본 발명의 일 실시예에 따른 딥러닝 프라이빗 클라우드 서비스 시스템의 추상화 계층을 나타내는 도면이다.
도 3은 본 발명의 일 실시예에 따른 딥러닝 프라이빗 클라우드 서비스 시스템의 딥러닝 통합 서버의 구조를 나타내는 도면이다.
도 4는 본 발명의 일 실시예에 따른 딥러닝 프라이빗 클라우드 서비스 시스템의 개념 구조를 나타내는 도면이다.
도 5는 본 발명의 일 실시예에 따른 딥러닝 프라이빗 클라우드 서비스 시스템의 백그라운드 처리 서비스 이중화 및 부하 분산을 나타내는 도면이다.
도 6은 본 발명의 일 실시예에 따른 딥러닝 프라이빗 클라우드 서비스 시스템의 세션/캐쉬 이중화 및 부하 분산을 나타내는 도면이다.
도 7은 본 발명의 일 실시예에 따른 딥러닝 프라이빗 클라우드 서비스 시스템의 데이터 스토리지 서버의 적용 개념을 나타내는 도면이다.
도 8은 본 발명의 일 실시예에 따른 딥러닝 프라이빗 클라우드 서비스 시스템의 계산 노드 에이전트의 처리를 나타내는 흐름도이다.
도 9는 본 발명의 일 실시예에 따른 딥러닝 프라이빗 클라우드 서비스 시스템의 계산 노드 에이전트의 새로운 장치 그룹 등록을 나타내는 도면이다.
도 10은 본 발명의 일 실시예에 따른 딥러닝 프라이빗 클라우드 서비스 시스템의 계산 노드 에이전트에 따른 운영 컨테이너 동기화를 나타내는 도면이다.
도 11은 본 발명의 일 실시예에 따른 딥러닝 프라이빗 클라우드 서비스 시스템의 계산 노드 에이전트에 따른 에이전트 상태 제어를 나타내는 도면이다.
도 12는 본 발명의 일 실시예에 따른 딥러닝 프라이빗 클라우드 서비스 시스템의 계산 노드 에이전트에서 운영 컨테이너 제어 절차를 나타내는 흐름도이다.
도 13은 본 발명의 일 실시예에 따른 딥러닝 프라이빗 클라우드 서비스 시스템의 딥러닝 작업 스케줄러의 동작을 나타내는 도면이다.
도 14는 본 발명의 일 실시예에 따른 딥러닝 프라이빗 클라우드 서비스 시스템의 딥러닝 작업 스케줄러의 처리를 나타내는 흐름도이다.
도 15는 본 발명의 일 실시예에 따른 딥러닝 프라이빗 클라우드 서비스의 개념 구조를 나타내는 도면이다.
도 16은 실시예들에서 사용되기에 적합한 컴퓨팅 기기를 포함하는 컴퓨팅 환경을 예시하여 설명하기 위한 블록도이다.
이하, 첨부된 도면을 참조하여 본 발명의 실시 예를 상세히 설명한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 게시되는 실시 예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 본 발명의 게시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
본 출원에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다, 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
제2, 제1 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되지는 않는다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제2 구성요소는 제1 구성요소로 명명될 수 있고, 유사하게 제1 구성요소도 제2 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
도 1은 본 발명의 일 실시예에 따른 프라이빗 클라우드 서비스 시스템의 서비스 제공 방법을 나타내는 흐름도이다.
프라이빗 클라우드 서비스 시스템의 서비스 제공 방법은 딥러닝 통합 서버(300)가, 사용자의 단말기를 통해 전달되는 작업 요청에 의해 계층 전환 장치에 작업 배정을 요청하는 단계(S100), 계층 전환 장치(30)가, 작업 스케줄러에 의해 작업 배정을 수행하여 유휴 장치 그룹을 찾아 계산 노드 에이전트에 배정하고, 배정된 계산 노드 에이전트에 의해 다양한 형태의 물리 장치 계층을 추상화 계층으로 전환하는 단계(S200) 및 딥러닝 통합 서버(300)가, 계층 전환 장치에서 전환된 활성 운영 컨테이너에 대한 정보를 상기 사용자의 단말기에 제공하는 단계(S300)를 포함한다.
도 1을 참조하면, 딥러닝 통합 서버가, 사용자의 단말기를 통해 전달되는 작업 요청에 의해 계층 전환 장치에 작업 배정을 요청하는 단계(S100)는 작업 요청 단계(S110) 및 작업 배정 단계(S120)를 포함할 수 있다.
계층 전환 장치가, 작업 스케줄러에 의해 작업 배정을 수행하여 유휴 장치 그룹을 찾아 계산 노드 에이전트에 배정하고, 배정된 계산 노드 에이전트에 의해 다양한 형태의 물리 장치 계층을 추상화 계층으로 전환하는 단계(S200)는 작업 스케줄러를 통해 계산 노드 에이전트를 배정하는 단계(S210) 및 계산 노드 에이전트를 통해 물리 장치 계층을 추상화 계층으로 전환하여 활성 운영 컨테이너를 생성하는 단계(S220)를 포함한다.
딥러닝 통합 서버가, 계층 전환 장치에서 전환된 활성 운영 컨테이너에 대한 정보를 상기 사용자의 단말기에 제공하는 단계(S300)는 활성 운영 컨테이너 정보를 전달하는 단계(S310), 활성 운영 컨테이너 정보를 데이터 베이스에 기록하는 단계(S320) 및 가공된 활성 운영 컨테이너 정보를 제공하는 단계(S330)를 포함할 수 있다.
상술한 단계 S110, 단계 S120, 단계 S210, 단계 S220, 단계 S310, 단계 S320 및 단계 S330은 도 1을 참조하여 수행되는 주체 및 주체 간의 수행 과정을 알 수 있으며, 이에 대한 설명은 이하를 통해 자세히 설명한다.
딥러닝 통합 서버(300)는 단말기(20)에 의해 딥러닝 통합 서버에 물리 장치 계층 또는 추상화 계층에 대한 정보 조회, 정보 생성 또는 정보 변경 요청을 하는 API 서비스를 제공하는 단계, 작업 스케줄러와 계산 노드 에이전트 및 딥러닝 통합 서버와 단말기 간의 상태 변경 통지 및 정보 교환을 수행하는 웹 소켓 서비스를 제공하는 단계, 딥러닝 통합 서버의 성능을 측정하여 측정 정보를 기록하는 성능 측정 서비스를 제공하는 단계, 프라이빗 클라우드 서비스 시스템에서 발생하는 오류를 기록하고, 발생하는 오류를 해결하는 사건 보고 서비스를 제공하는 단계, 단말기를 통한 요청에 대응할 필요가 없거나 시간이 지연되는 처리를 수행하고, 프라이빗 클라우드 서비스 시스템의 장애에 대비하여 이중화를 할 수 있도록 설계되는 백그라운드 처리 서비스를 제공하는 단계, 프라이빗 클라우드 서비스 시스템의 서비스 제공 방법에서 형성되는 운영 정보를 기록하거나 조회하는 데이터베이스를 제공하는 단계 및 사용자의 접속 정보를 기록하는 세션을 저장하는 캐쉬 서비스를 제공하는 단계를 수행할 수 있다.
딥러닝 통합 서버(300)는 API 서비스 및 상기 웹 소켓 서비스를 통해 상기 계층 전환 장치 및 상기 단말기와 통신을 수행할 수 있다.
API 서비스를 제공하는 단계는 상태를 조작하거나, 새로운 정보를 생성하는 HTTP(S) 프로토콜을 기반으로 제공할 수 있다.
웹 소켓 서비스를 제공하는 단계는 딥러닝 통합 서버에서 발생하는 정보의 변경을 전파하기 위해서 사용할 수 있다.
웹 소켓 서비스를 제공하는 단계는 단말기와 딥러닝 통합 서버를 연결하며, 상기 단말기의 요청에 대한 상태 변화가 발생하는 경우, 단말기에 알림을 줄 수 있다.
웹 소켓 서비스를 제공하는 단계는 딥러닝 통합 서버와 계산 노드 에이전트를 연결하며, 계산 노드 에이전트에 작업이 배정되거나, 계산 노드 에이전트의 운영 컨테이너의 상태 변경에 대한 정보를 반영하여 단말기에 제공할 수 있다.
작업 배정을 요청하는 단계는 사용자가 단말기를 통해 작업 요청을 하는 경우 단말기를 통해 API 서비스를 사용하여 작업 요청을 전달받으며, 작업 스케줄러를 호출하여 상기 작업 배정을 요청할 수 있다.
작업 배정을 요청하는 단계는 작업 배정이 성공한 경우, 단말기와 배정된 연산 장치를 가진 계산 노드 에이전트에 상기 웹 소켓 서비스를 사용하여 통지하는 단계 및 작업 배정이 실패한 경우, 단말기에 상기 웹 소켓 서비스를 사용하여 통지하고, 단말기에 통지를 실패한 경우, 단말기의 새로 고침을 통해 상기 API 서비스를 사용하여 최신 정보를 얻는 단계를 수행할 수 있다.
물리 장치 계층을 추상화 계층으로 전환하는 단계는 통지 받은 계산 노드 에이전트가, 추상화 계층의 운영 컨테이너를 전개하여 웹 소켓 서비스와 API 서비스를 활용하여 활성 운영 컨테이너에 대한 정보를 딥러닝 통합 서버에 전파할 수 있다.
딥러닝 통합 서버는 전파된 정보를 데이터베이스에 기록하거나, 단말기에 변경된 상태 정보를 가공하여 웹 소켓 서비스를 사용하여 전파할 수 있다.
성능 측정 서비스를 제공하는 단계는 딥러닝 통합 서버의 상태를 알 수 있도록, 사용자가 사용자의 단말기를 통한 요청 빈도, 데이터베이스 접근 빈도 또는 데이터베이스 접근 시간을 적어도 하나 포함하는 측정 정보를 관리하며, 측정 정보를 기록하는 데이터베이스와 연동될 수 있다.
측정 정보는 인증 시도 횟수, 인증 성공 횟수, 인증 실패 횟수, 인증에 성공한 사용자수, HTTP 응답 상태 빈도, HTTP 요청 빈도, HTTP 응답에 걸린 시간, 세션 정보 접근 횟수, 캐쉬 적중 빈도, 캐쉬 실패 빈도, 데이터베이스 접근 빈도, 데이터베이스 접근 시간을 적어도 하나 포함할 수 있다.
백그라운드 처리 서비스를 제공하는 단계는 프라이빗 클라우드 서비스 시스템에서 지연된 상기 단말기를 통한 사용자 요청 처리 및 주기적인 서비스 루틴을 동작시키기 위해 사용하고, 작업 스케줄러의 루틴을 동작시킬 수 있다.
백그라운드 처리 서비스를 제공하는 단계는 지연된 요청 처리의 루틴 또는 작업 스케줄러를 독립적으로 운영하여 프라이빗 클라우드 서비스 시스템의 장애로 인해 프라이빗 클라우드 서비스 시스템의 서비스 제공 방법이 중단되는 상태를 막고, 프라이빗 클라우드 서비스 시스템에 부하가 집중되는 경우 지연된 요청 처리의 루틴 또는 작업 스케줄러를 증설하여 부하를 분산할 수 있다.
캐쉬 서비스를 제공하는 단계는 사용자가 단말기를 통한 요청으로 인한 부하를 분산하기 위해 사용자의 접속 정보를 기록하는 세션을 별도의 캐쉬 서버에 저장할 수 있다. 캐쉬 서버는 Memcached와 Redis를 지원할 수 있다.
프라이빗 클라우드 서비스 시스템의 서비스 제공 방법은 프라이빗 클라우드 서비스 시스템에 장애가 발생하면 다른 딥러닝 통합 서버에 접속하는 단계를 더 포함할 수 있다.
다른 딥러닝 통합 서버에 접속하는 단계는 기존의 상기 딥러닝 통합 서버에서 사용하던 캐쉬 기록이나 세션이 유지되어 프라이빗 클라우드 서비스 시스템에 발생된 장애를 인지하지 못할 수 있다.
딥러닝 프라이빗 클라우드 서비스 시스템은 개인/단체 등에서 보유하거나 접근할 수 있는 GPGPU 시스템을 효과적으로 공동으로 활용할 수 있다. 이 서비스는 GPGPU를 사용하길 원하는 데이터 과학자에서부터 고도로 숙련된 IT 개발자에게 GPGPU 및 중앙 처리 장치(CPU)와 같이 제한된 자원을 상호 배타적으로 분배하여, 다른 사용자로부터 방해 받지 않고 독립적인 개발 및 실행 환경을 언제든지 구성할 수 있는 기술을 컨테이너 기술과 클라우드 기술을 통해 제공한다. 여기서, 데이터 과학자는 데이터 과학과 관련된 분야를 전공하고 데이터 분석과 관련된 업무에 종사하는 사람을 의미한다.
GPGPU(General-Purpose computing on Graphics Processing Units)는 GPU 상의 범용 계산을 나타내며, 일반적으로 컴퓨터 그래픽스를 위한 계산만 맡았던 그래픽 처리 장치(GPU)를 중앙 처리 장치(CPU)가 맡았던 응용 프로그램들의 계산에 사용하는 기술이다.
딥러닝 프라이빗 클라우드 서비스 시스템(10)은 최근에 화제인 AI 분야의 프로그래밍을 위한 환경으로 프로그래밍 노트북 인터페이스를 기본적으로 제공하며, 일정 규모 이상의 개발 프로젝트를 위해서 일반적인 개발 환경이 필요한 사용자를 위해서는 Microsoft 회사가 공개 소스로 공개한 개발 환경 IDE등을 온라인으로 사용할 수 있는 환경을 제공한다.
딥러닝 프라이빗 클라우드 서비스 시스템의 계층 전환 장치(30)는 계산 노드 에이전트(120) 및 작업 스케줄러(110)를 포함한다.
도 1을 참조하여 딥러닝 프라이빗 클라우드 서비스 시스템의 계층 전환 장치(30)에 의한 계층 전환 방법을 설명한다.
프라이빗 클라우드 서비스의 계층 전환 방법은 작업 스케줄러에 의해 사용자가 설정하는 운영 환경을 딥러닝 통합 서버에 등록된 장치 그룹과 결합하도록 유휴 장치 그룹을 찾고, 유휴 장치 그룹을 사용자의 요청에 따라 계산 노드 에이전트로 배정하는 일을 수행하는 단계(S110) 및 딥러닝 통합 서버와 통신하고, 계산 노드 에이전트에 의해 다양한 형태의 물리 장치 계층을 추상화 계층으로 전환하는 단계(S120)를 포함한다.
도 1에서는 각각의 과정을 순차적으로 실행하는 것으로 개재하고 있으나 이는 예시적으로 설명한 것에 불과하고, 이 분야의 기술자라면 본 발명의 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 도 1에 기재된 순서를 변경하여 실행하거나 또는 하나 이상의 과정을 병렬적으로 실행하거나 다른 과정을 추가하는 것으로 다양하게 수정 및 변형하여 적용 가능할 것이다.
프라이빗 클라우드 서비스의 계층 전환 방법은 프라이빗 클라우드 서비스의 계층 전환 장치(30)에 의해 수행된다. 이하에서는 프라이빗 클라우드 서비스의 계층 전환 장치(30)가 수행하는 동작에 관하여 설명한다.
프라이빗 클라우드 서비스의 계층 전환 장치(30)는 계산 노드 에이전트(110) 및 작업 스케줄러(120)에 의해 계층 전환을 수행할 수 있다.
계산 노드 에이전트(110)는 딥러닝 통합 서버(300)와 통신하고, 다양한 형태의 물리 장치 계층(100)을 추상화 계층(200)으로 전환할 수 있다.
작업 스케줄러(120)는 사용자가 설정하는 운영 환경을 딥러닝 통합 서버(300)에 등록된 장치 그룹과 결합하도록 유휴 장치 그룹을 찾고, 유휴 장치 그룹을 사용자의 요청에 따라 계산 노드 에이전트(110)로 배정하는 일을 수행할 수 있다.
물리 장치 계층(100)은 다수의 서버들을 네트워크를 통해서 사용할 수 있다.
추상화 계층(200)은 물리 장치 계층을 단순화하여 복수의 장치 그룹(210), 복수의 저장 볼륨(230) 및 복수의 운영 컨테이너(240)로 구분된 개념 장치를 형성하고, 단순화된 개념 장치를 사용하여 사용자에게 서비스를 제공하는 기반을 형성할 수 있다.
복수의 장치 그룹(210) 각각은 연산 작업을 수행하는 복수의 연산 코어(220)를 포함할 수 있다.
복수의 장치 그룹(210)은 복수의 연산 코어(220) 각각을 분리하여 운영 컨테이너(240)와 결합하거나 일부 연산 코어(220)들을 조합하여 운영 컨테이너(240)와 결합할 수 있다.
연산 코어(220)는 제조사 정보, 코어 성능 표기 또는 코어가 제공하는 연산 기술 정보를 적어도 하나 포함하는 범용 연산 코어 및 제조사 정보, 복수의 서버의 모델 정보, 코어의 성능 표기 정보 또는 연산 기술 정보를 적어도 하나 포함하는 딥러닝 연산 코어를 포함할 수 있으며, 반드시 이에 한정되는 것은 아니다.
저장 볼륨(230)은 사용자가 사용하거나 생성하는 데이터를 보관하고, 운영 컨테이너(240)와 적어도 하나 결합하여 공유할 수 있다.
운영 컨테이너(240)는 사용자가 사용할 수 있는 운영 시스템 및 시스템 소프트웨어와 응용 소프트웨어가 미리 설정된 사용자 환경을 제공할 수 있다.
운영 컨테이너(240)는 적어도 하나의 연산 코어(220) 및 적어도 하나의 저장 볼륨(230)과 결합하고, 이미지 상태 및 활성 상태로 구분되어 사용자에 의해 이미지 상태의 운영 컨테이너를 선택하여 활성화할 수 있다.
프로세서는 사용자가 운영 컨테이너(240)를 비활성화하는 경우 비활성화된 운영 컨테이너는 제거하고, 사용자가 운영 컨테이너(240)를 재활성화하는 경우 이전에 사용했던 결합을 재조합하여 새로운 운영 컨테이너가 생성될 수 있다.
계산 노드 에이전트(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)의 정보를 갱신할 수 있다.
계산 노드 에이전트(110)는 추상화 계층(200)의 운영 컨테이너(240)를 활성화할 때, 운영 컨테이너(240)의 저장소로부터 최신의 운영 컨테이너를 탐색하여 운영 컨테이너(240)를 동기화하고, 기존의 운영 컨테이너와 최신의 운영 컨테이너가 같은 경우 기존의 운영 컨테이너를 재사용하고, 기존의 운영 컨테이너와 최신의 운영 컨테이너가 다른 경우 기존의 운영 컨테이너를 그대로 두고, 최신 운영 컨테이너를 형성할 수 있다. 구체적으로, 계산 노드 에이전트(110)는 장치 그룹(210)과 결합한 기존의 활성 운영 컨테이너(112)가 모두 비활성화되었을 때 장치 그룹(210)과 결합한 기존의 활성 운영 컨테이너(112)를 물리 장치 계층(100)에서 제거할 수 있다.
계산 노드 에이전트(110)는 딥러닝 통합 서버로부터 사용자 환경 정보의 요청을 전달받으며, 사용자 환경 정보의 요청에 의해 요청 정보를 수신하고, 요청 정보를 분석하여 추상화 계층(200)의 운영 컨테이너(240), 저장 볼륨(230) 및 장치 그룹(210)을 결합하여 활성화하여 활성 운영 컨테이너(112)를 생성할 수 있다. 구체적으로, 계산 노드 에이전트(110)는 활성화 중에 발생하는 모든 정보를 딥러닝 통합 서버에 전달하며, 문제가 발생할 경우 문제가 발생한 활성 운영 컨테이너(112)를 제거하고, 사용자 요청 작업에 유형에 따라서 운영 컨테이너의 활성 서비스를 초기화할 수 있다.
예를 들어, 계산 노드 에이전트(110)는 상호작용 작업의 경우, 운영 컨테이너(240)에 개인 노트북 인터페이스를 제공하는 서비스와 온라인 통합 개발 환경 인터페이스를 제공하는 서비스를 활성화할 수 있다. 계산 노드 에이전트(110)는 상호작용 작업 및 수업이나 팀 단위로 사용하려는 요청이 함께 있는 경우, 개인 노트북 인터페이스를 제공하는 서비스 대신, 노트북 허브 인터페이스를 제공하는 서비스를 편성 및 재구성하여 서비스를 하고, 온라인 통합 개발 환경 인터페이스는 비활성화한 상태로 시작할 수 있다. 계산 노드 에이전트(110)는 배치 작업으로 구성되는 경우, 딥러닝 통합 서버(300)와 직접 통신하는 배치 작업의 동작 상태를 점검하고 사용자가 접근하여 상태를 확인하는 시큐어 터미널 서비스를 제공할 수 있다.
계산 노드 에이전트(110)는 장치 그룹(210)의 연산 코어(220)와 결합한 활성 운영 컨테이너(112)를 추적하고, 활성 운영 컨테이너(112)가 사용하는 장치 그룹의 부하를 측정하고 상태 변화를 탐지하여 딥러닝 통합 서버(300)에 활성 운영 컨테이너(112)에 대한 정보를 갱신할 수 있다.
프로세서는 작업 스케줄러에 의해 사용자가 설정하는 운영 환경을 딥러닝 통합 서버(300)에 등록된 장치 그룹과 결합하도록 유휴 장치 그룹을 찾고, 유휴 장치 그룹을 사용자의 요청에 배정하는 일을 수행할 수 있다.
사용자의 요청은 연산 코어(220)를 배정한 후, 사용자의 조작에 의해 업무를 진행하는 상호 작용 작업 또는 사용자의 조작이 사전에 정의되어있거나, 자동화된 처리 프로세서를 가지고 있는 배치 작업을 포함할 수 있다.
작업 스케줄러(120)는 스케줄링 대상이 되는 사용자를 선택하고, 선택된 사용자의 우선 순위에 따라 가장 높은 우선 순위를 갖는 사용자의 우선 순위를 갖는 작업을 선택하며, 선택된 자원을 순서대로 읽어 유휴 자원 및 자원 그룹을 비교하여 작업에 자원을 할당하여 자원을 선택하며, 선택된 작업에 계산 노드 에이전트(110)를 할당할 수 있다.
작업 스케줄러(120)는 자원을 배정 받기를 대기하고 있는 사용자들을 선택하고, 선택된 사용자 중에서 독점적으로 자원을 사용하고 있는 사용자 이력을 기반으로 우선 순위를 변경하고, 사용자의 이력 점수가 동일한 경우 먼저 자원 배정을 요청한 사용자가 높은 우선 순위를 가질 수 있다.
작업 스케줄러(120)는 사용자 이력 기반의 점수를 위해 티켓과 티켓 부채를 적용할 수 있다.
티켓은 일정한 값으로 초기화되며, 자원 사용 기준에 따라 사용할 때 마다 감소할 수 있다.
티켓 부채는 티켓을 모두 소진한 상태에서 자원을 계속해서 사용하는 경우, 자원 사용 기준에 도달 할 때 마다 증가할 수 있다.
사용자의 우선 순위는 티켓을 가진 사용자가 높은 우선 순위를 갖고, 티켓이 없고 티켓 부채가 있는 경우, 티켓 부채의 수준의 경고가 기 설정된 경고 미만일 경우 차순위를 갖고, 티켓이 없고 티켓 부채의 수준의 경고가 기 설정된 경고 이상일 경우 최하위 순위를 가지며, 자원이 부족할 필요한 경우 해당 사용자의 자원은 강제로 해제될 수 있다.
프로세서는 딥러닝 통합 서버(300)에 통신하여 작업 스케줄러(120)에 의해 배정된 계산 노드 에이전트(110)를 통해 다양한 형태의 물리 장치 계층(100)을 추상화 계층(200)으로 전환할 수 있다.
딥러닝 프라이빗 클라우드 서비스 시스템을 구성하는 계층에 대해서는 도 2를 참조하여 자세히 설명한다.
도 2는 본 발명의 일 실시예에 따른 딥러닝 프라이빗 클라우드 서비스 시스템의 추상화 계층을 나타내는 도면이다.
딥러닝 프라이빗 클라우드 서비스 시스템(10)은 도 15와 같은 구조를 가지며, 크게 물리 장치 계층(100)과 물리 장치 계층(100)을 개념화하는 추상화 계층(200), 이들 추상 계층 개념을 이용하여 다양한 물리 장치를 통합 및 조합하여 사용자가 사용할 수 있도록 여러 가지 서비스를 제공하는 서비스 계층으로 구분한다. 다음은 각 계층에 대한 개념에 관해서 설명한다.
물리 장치 계층(100)은 물리 장치 처리부이며, 추상화 계층(200)은 추상화 처리부이고, 서비스 계층은 서비스 처리부이다. 여기서, 서비스 계층은 딥러닝 통합 서버(300)로 구현될 수 있으며, 반드시 이에 한정되는 것은 아니다.
물리 장치 계층(100)은 연산을 위한 서버, 데이터 저장을 위한 스토리지 서버, 다양한 컨테이너 구성 정보를 가지고 있는 스토리지 서버, 사용자가 웹 인터페이스로 접근할 수 있도록 하는 웹 서버 등으로 형성될 수 있다.
구체적으로, 물리 장치 계층(100)은 실질적인 물리 장치와 이 장치들을 네트워크를 통해서 사용할 수 있도록 하는 운영 시스템 및 소프트웨어를 말한다. 따라서, 물리 장치 계층(100)은 실제로 독립적으로 운영 시스템 및 소프트웨어를 가진다면 컴퓨터 가상화 기술로 생성한 가상 기계도 포함될 수 있다. 즉, 물리 장치 계층(100)은 가상화 기술 및 다양한 플랫폼 서비스를 제공하고 있는 퍼블릭 클라우드의 시스템도 포함될 수 있다.
추상화 계층(200)은 매우 다양한 형태의 물리 장치 계층(100)을 단순화하고, 단순화된 개념 장치를 사용하여, 다양한 조합이나 통합을 통해 사용자에게 서비스를 제공할 수 있는 기반을 제공한다. 추상화 계층(200)에서는 물리 장치 계층(100)을 장치 그룹(210)과 연산 코어(220), 저장 볼륨(230) 및 운영 컨테이너(240)로 구분한다.
추상화 계층(200)에 대한 설명은 도 2를 참조하여 자세히 설명한다.
장치 그룹(210)은 연산 코어(220)들의 집합이다. 장치 그룹(210)에 포함된 연산 코어(220)들은 각각을 분리하여 독립적으로 선택하여 운영 컨테이너(240)와 결합하거나, 일부 연산 코어(220)들을 조합하여 하나의 운영 컨테이너(240)와 결합할 수 있다. 즉, 서로 다른 장치 그룹(210)에 속한 연산 코어(220)들은 하나의 운영 컨테이너(240)에 포함될 수 없다. 추상화 방법에 따라서, 같은 장치 그룹(210)에 포함된 연산 코어들의 조합 방법이 제한될 수 있다. 예를 들어, 최대 4개의 범용 코어 혹은 최대 4개의 딥러닝 코어같이 한 번에 조합할 수 있는 수가 제한될 수 있다.
연산 코어(220)는 다른 사용자의 환경으로부터 격리할 수 있는 상태의 장치를 의미한다. 연산 코어(220)는 다양한 기술을 통해서 운영 컨테이너(240)와 결합할 수 있고, 운영 컨테이너(240)에서 동작할 사용자의 모든 소프트웨어는 결합한 연산 코어(220)만을 사용하고, 포함되지 않은 다른 연산 코어(220)에 영향을 주지 않아야만 한다.
딥러닝 프라이빗 클라우드 서비스 시스템(10)에서는 연산 코어(220)를 범용 연산 코어와 딥러닝 연산 코어로 구분할 수 있으며, 반드시 이에 한정되는 것은 아니다.
범용 연산 코어는 일반적인 CPU 칩세트의 코어 단위를 포함한다. 범용 연산 코어는 물리적인 제조사 정보, 코어 성능 표기 및 코어가 제공하는 연산 기술(명령어셋 표기 등) 정보를 포함할 수 있다.
딥러닝 연산 코어에는 GPGPU 장치들을 포함한다. 딥러닝 연산 코어도 범용 연산 코어와 마찬가지로 물리적인 제조사 정보 및 물리 장치 모델 정보, 코어 성능 표기, 연산 기술 정보를 포함할 수 있다.
저장 볼륨(230)은 사용자가 사용하는 소프트웨어가 사용하거나 생성하는 데이터를 보관할 수 있는 장치를 의미한다. 저장 볼륨(230)은 사용자가 사용할 운영 컨테이너(240)에 하나 이상이 결합할 수 있다. 저장 볼륨(230)은 장치 그룹(210)에 포함되지 않는다. 하나의 저장 볼륨(230)은 지정된 사용자와 지정된 운영 컨테이너(240)와 결합한다. 새로운 운영 컨테이너(240)를 생성할 때, 새로운 저장 볼륨(230)이 할당된다.
저장 볼륨(230)은 운영 컨테이너(240)들 사이에서 공유할 수 있으며, 만약 사용자가 기존의 저장 볼륨(230)을 참조하고자 할 경우, 저장 볼륨(230)의 공유를 통해서 사용자 접근을 허용할 수 있다.
운영 컨테이너(240)는 사용자가 사용할 수 있는 운영 시스템 및 시스템 소프트웨어와 응용 소프트웨어가 미리 설정된 사용자 환경을 말한다. 운영 컨테이너(240)는 이미지 상태와 활성 상태로 구분되며, 사용자는 이미지 상태의 운영 컨테이너(240)를 선택하여 활성화하여 사용할 수 있다.
도 2를 참조하면, 운영 컨테이너(240)를 활성화하기 위해서는 앞서 설명한 연산 코어(220)와 저장 볼륨(230)이 결합하여야 한다. 활성 운영 컨테이너(112)는 한 개 이상의 연산 코어(220)와 한 개 이상의 저장 볼륨(230)이 결합한 상태이며, 사용자가 운영 컨테이너(240)를 비활성화할 경우, 해당 운영 컨테이너(240)는 완전히 제거된다. 사용자가 운영 컨테이너(240)를 재활성화하고자 하는 경우, 이전에 사용했던 결합을 재현하여 새로운 운영 컨테이너(240)를 제공할 수 있다.
도 3은 본 발명의 일 실시예에 따른 딥러닝 프라이빗 클라우드 서비스 시스템의 딥러닝 통합 서버의 구조를 나타내는 도면이다.
딥러닝 통합 서버(300)는 도 3과 같이 다양한 데이터베이스 솔루션을 사용하여 서비스 제공한다. 딥러닝 통합 서버(300)는 (i) 시스템에 요청, 정보 조작 등을 위한 REST API 서비스, (ii) 신속한 상태 변경 통지 및 정보 교환을 위한 웹 소켓 서비스, (iii) 딥러닝 통합 서버의 성능을 측정 정보를 기록할 수 있는 성능 측정 기능, (iv) 시스템에서 발생할 수 있는 여러 가지 예외를 기록할 수 있는 사건 보고 기능, (v) 사용자의 요청에 즉각적으로 대응할 필요가 없거나, 시간이 지연될 수 있는 처리를 수행하는 백그라운드 처리 서비스, (vi) 운영 데이터 기록을 위한 데이터베이스 연동, (vii) 자주 접근하는 데이터나 세션을 저장하기 위한 캐쉬 기능을 갖는다.
REST API 서비스는 웹 브라우저 혹은 에이전트와 같은 클라이언트에서 서버에 정보 조회/생성/변경 요청을 할 수 있는 기능을 제공한다. 클라이언트에서 HTTP(S) 프로토콜을 다룰 수 있다면, 서버가 제공하는 API를 사용할 수 있다.
웹 소켓 서비스는 HTTP 프로토콜의 서브프로토콜인 웹 소켓 프로토콜은 HTTP 프로토콜과 달리 연결상태를 유지하며, 쌍방의 데이터를 주고 받을 수 있다. 따라서, 웹 소켓 서비스는 한쪽의 상태 변화나 알림 등의 목적에 활용이 가능하다. 딥러닝 통합 서버(300)는 사용자와 딥러닝 통합 서버 간에 웹 소켓 연결을 별도로 유지하며, 사용자 요청에 대한 상태 변화가 발생하는 경우, 사용자가 즉시 알 수 있도록 한다. 또한, 딥러닝 통합 서버(300)는 딥러닝 에이전트(110)와도 웹 소켓 연결을 유지하여 딥러닝 에이전트(110)에 작업이 배정되거나, 딥러닝 에이전트(110)의 운영 컨테이너(240)의 상태 변경에 대한 정보를 즉각적으로 반영할 수 있도록 하고 있다.
도 4는 본 발명의 일 실시예에 따른 딥러닝 프라이빗 클라우드 서비스 시스템의 개념 구조를 나타내는 도면이다.
도 4를 참조하면, 딥러닝 통합 서버(300)는 REST API와 웹 소켓을 이용하여 다른 컴포넌트와 통신한다. REST API는 어떤 상태를 조작하거나, 새로운 정보를 생성하고자 하는 등의 행위를 할 수 있도록 HTTP(S) 프로토콜을 기반으로 제공한다. 웹 소켓은 딥러닝 통합 서버(300)에서 발생하는 정보의 변경을 즉시 전파하기 위해서 사용할 수 있다.
예를 들어, 사용자가 작업 요청을 하는 경우, 사용자가 보고 있는 인터페이스에 내부적으로 REST API를 사용하여, 딥러닝 통합 서버(300)에 이 요청을 전달한다. 딥러닝 통합 서버(300)는 딥러닝 작업 스케줄러(120)를 호출하여 작업 배정을 의뢰하고, 작업 배정이 성공한 경우, 사용자와 배정된 장치 그룹을 가진 딥러닝 에이전트(110)에 웹 소켓을 사용하여 통지한다. 작업 배정이 실패한 경우는 사용자에게만 웹 소켓을 사용하여 통지한다. 만약 사용자에게 통지를 실패한 경우, 사용자는 새로 고침을 통해 REST API를 사용하여 호출하여 최신 정보를 얻을 수 있다.
새로운 작업을 통지 받은 딥러닝 에이전트(110)는 운영 컨테이너를 전개하며, 이에 대한 정보를 웹 소켓과 REST API 모두 활용하여 통합 서버에 전파한다. 딥러닝 통합 서버(300)는 전파된 사항에 따라, 중요 사항은 데이터베이스에 기록하고, 필요한 경우 사용자에게 변경된 상태 정보를 가공하여 웹 소켓을 사용하여 전파한다.
성능 측정 기능에서 딥러닝 프라이빗 클라우드의 통합 서버(300)는 서버의 상태를 알 수 있도록, 사용자의 요청 빈도, 데이터베이스 접근 빈도, 접근 시간 등의 측정 정보를 관리하며, Prometheus, StatsD(302)와 같은 성능 측정 정보를 기록하는 데이터베이스와 연동할 수 있도록 하고 있다. 성능 측정 정보는 인증 시도 횟수, 인증성공 횟수, 인증 실패 횟수, 인증에 성공한 사용자수, HTTP 응답 상태 빈도, HTTP 요청 빈도, HTTP 응답에 걸린 시간, 세션 정보 접근 횟수, 캐쉬 적중 빈도, 캐쉬 실패 빈도, 데이터베이스 접근 빈도, 데이터베이스 접근 시간 등을 외부에서 측정할 수 있도록 제공한다.
사건 보고 기능은 딥러닝 프라이빗 클라우드 서비스 시스템(10)의 각 요소 소프트웨어서 발생하는 예기치 못한 오류를 기록하고, 발생한 오류를 해결할 수 있도록 하는 기능이다. 이를 위해서 Sentry(302)라는 사건 기록 소프트웨어를 사용하며, 이 서비스를 통해서 에러가 발생할 경우, 운영진 등의 관계자에게 사건 발생 즉시 상황을 전파하고, 별도로 기록된 사건의 내용을 분석하여, 문제를 해결할 수 있도록 한다.
도 5는 본 발명의 일 실시예에 따른 딥러닝 프라이빗 클라우드 서비스 시스템의 백그라운드 처리 서비스 이중화 및 부하 분산을 나타내는 도면이다.
백그라운드 처리 서비스는 딥러닝 프라이빗 클라우드 서비스 시스템(10)에서 지연된 사용자 요청 처리 및 주기적인 서비스 루틴을 동작시키기 위해서 사용한다. 백그라운드 처리 서비스는 파이썬의 Celery를 이용하여 실현한다. 딥러닝 작업 스케줄러 서비스 루틴도 백그라운드 처리 서비스를 통해서 동작한다.
백그라운드 처리 서비스는 도 5와 같이 시스템 장애에 대비하여 이중화를 할 수 있도록 고려하여 설계하였다. 백그라운드 처리 요청을 전달하는 매개 소프트웨어인 RabbitMQ 혹은 Redis(304)는 각각 시스템 장애 극복을 위한 클러스터 구성을 할 수 있다. 또한, 전달 받아 처리하는 딥러닝 지연 처리 루틴이나 스케줄 기능 또한 각각 독립적으로 서로 다른 장치에서 운영할 수 있으며, 이를 통해 특정 시스템의 장애로 인해 서비스가 중단되는 상태를 막을 수 있고, 시스템의 부하가 집중되는 경우 이를 위한 시스템을 증설하여 부하를 분산할 수도 있다.
본 발명의 일 실시예에 따르면, 딥러닝 지연 처리 루틴 및 딥러닝 작업 스케줄(309)은 부하 분산을 위한 수평 확장 기능에 사용될 수 있으며, 반드시 이에 한정되는 것은 아니다.
본 발명의 일 실시예에 따르면, RabbitMQ는 오픈 소스 메시지 브로커 소프트웨어(메시지 지향 미들웨어)로서, 메시지를 생산하는 생산자(Producer)가 메시지를 큐에 저장해 두면, 메시지를 수신하는 소비자(Consumer)가 메시지를 가져와 처리하는 Publish/Subscribe 방식의 메시지 전달 브로커이다. Redis는 디스크에 상주하는 인메모리 데이터베이스로, Remote Dictionary Server의 약자로서, "키-값" 구조의 비정형 데이터를 저장하고 관리하기 위한 오픈 소스 기반의 비관계형 데이터베이스 관리 시스템(DBMS)이다.
딥러닝 프라이빗 클라우드 통합 서버는 정보 기록 및 조회를 위해서 관계형 데이터베이스를 사용한다. 관계형 데이터베이스는 PostgreSQL과 MySQL(306)를 사용할 수 있다. 관계형 데이터베이스는 공개소스로 사용할 수 있고, 매우 안정적으로 많이 사용하고 있는 PostgreSQL과 오라클에서 인수한 공개 소프트웨어인 MySQL, MySQL의 개발자가 MySQL의 기능을 개선한 MariaDB 최신버전에 대하여 테스트를 완료하였다. 데이터베이스에는 사용자의 접근 기록, 사용자가 연산코어를 사용한 기록 등, 운영에 필요한 정보가 보관된다.
본 발명의 일 실시예에 따르면, PostgreSQL은 확장 가능성 및 표준 준수를 강조하는 객체-관계형 데이터베이스 관리 시스템(ORDBMS)의 하나이다. MySQL은 오라클 사가 관리 및 배포하고 있는 오픈소스 관계형 데이터베이스 관리 시스템이다.
도 6은 본 발명의 일 실시예에 따른 딥러닝 프라이빗 클라우드 서비스 시스템의 세션/캐쉬 이중화 및 부하 분산을 나타내는 도면이다.
딥러닝 프라이빗 클라우드 통합 서버는 사용자 요청의 쏠림으로 인한 부하를 분산하기 위해서, 사용자 접속 정보를 기록하는 세션을 별도의 캐쉬 서버에 저장할 수 있도록 하고 있다. 캐쉬 서버로는 Memcached와 Redis를 지원한다
본 발명의 일 실시예에 따르면, Memcached는 범용 분산 캐시 시스템이다. 외부 데이터 소스(예를 들어, 데이터베이스나 API)의 읽기 횟수를 줄이기 위해 데이터와 객체들을 RAM에 캐시 처리함으로써 동적 데이터베이스 드리븐 웹사이트의 속도를 높이기 위해 사용될 수 있다.
도 6은 세션과 캐쉬를 이중화하거나 부하분산으로 사용할 경우를 나타내는 도면이다. 사용자는 시스템 장애가 발생하더라도, 다른 딥러닝 통합 서버의 인스턴스(301)에 접속할 수 있으며, 기존의 서버에서 사용하던 캐쉬 기록이나 세션이 유지되어, 시스템 장애를 인지하지 못하고, 계속해서 서비스를 사용할 수 있다.
웹 서버는 사용자 인터페이스를 담고 있는 자바스크립트 프로그램 코드와 웹 문서와 이미지 등을 서비스하고, REST API 서비스 혹은 웹 소켓 서비스로 들어오는 요청에 대한 부하 분산 기능을 일부 수행한다. 웹 서버는 NGinx와 Apache HTTP 서버를 지원한다.
본 발명의 일 실시예에 따르면, NGinx는 웹 서버 소프트웨어로, 가벼움과 높은 성능을 목표로 하며, 웹 서버, 리버스 프록시 및 메일 프록시 기능을 가질 수 있다. Apache HTTP 서버는 아파치 소프트웨어 재단에서 관리하는 HTTP 웹 서버이다.
도 7은 본 발명의 일 실시예에 따른 딥러닝 프라이빗 클라우드 서비스 시스템의 데이터 스토리지 서버의 적용 개념을 나타내는 도면이다.
데이터 스토리지 서버는 사용자의 활성 운영 컨테이너에 결합할 수 있는 사용자 볼륨을 제공하는 서버를 말한다. 이 서버는 기본적으로 NFS 서비스가 가능한 모든 제품이 적용 가능하며, 필요한 경우 IP-SAN과 같은 네트워크 기반의 스토리지 기술이 적용된 제품을 사용할 수 있다.
계산 노드 에이전트는 도 8 내지 도 12를 참조하여 자세히 설명한다.
도 8은 본 발명의 일 실시예에 따른 딥러닝 프라이빗 클라우드 서비스 시스템의 계산 노드 에이전트의 처리를 나타내는 흐름도이다.
계산 노드 에이전트(110)는 물리 장치 계층(100)에 있는 여러 가지 장치들을 추상화 계층(200)으로 전환하기 위한 서비스이다. 계산 노드 에이전트(110)는 딥러닝 프라이빗 클라우드(10)의 통합 서버에 주기적으로 통신하여, 다음과 같은 업무를 처리한다.
계산 노드 에이전트가 시작되면(S310), 장치 그룹 정보를 갱신하고(S320), 운영 컨테이너를 관리하고(S330), 통신을 수행할 수 있다(S340).
장치 그룹 정보를 갱신하기 전에 새로운 장치 그룹을 등록할 수 있으며, 이는 도 9를 참조하여 자세히 설명한다.
도 9는 본 발명의 일 실시예에 따른 딥러닝 프라이빗 클라우드 서비스 시스템의 계산 노드 에이전트의 새로운 장치 그룹 등록을 나타내는 도면이다.
계산 노드 에이전트(110)는 하나의 기계(서버)에 포함된 CPU 및 GPGPU 정보를 취합하여, 각각 연산 코어 정보로 전환한 후, 딥러닝 프라이빗 클라우드 통합 서버(300)에 하나의 장치 그룹으로 등록한다.
계산 노드 에이전트(110)는 등록 시 등록하고자 하는 딥러닝 프라이빗 클라우드 통합 서버(300)의 주소와 등록에 필요한 보안 토큰을 입력하여야 한다. 사용한 보안 토큰에 따라서, 이 장치 그룹에 접근할 수 있는 사용자가 제한될 수 있다.
장치 그룹 정보를 갱신(S320)은 CPU 및 GPGPU 장치 정보를 조회하며(S322), N초가 되면 정보 조회를 중지한다(S324). 여기서, N초는 사용자가 설정한 시간일 수 있으며, CPU 및 GPGPU 장치 정보를 조회(S322)와 N초 중지(S324)를 반복하여 수행할 수 있다.
장치 그룹 정보를 갱신(S320)은 CPU 및 GPGPU 장치 정보를 조회(S322)가 끝나면 통신(S340)을 위해 CPU 및 GPGPU 장치 정보를 전달할 수 있다.
계산 노드 에이전트(110)는 시스템 조회를 통해 주기적으로 물리 장치에 포함된 CPU 및 GPGPU 정보를 다시 조회하여 기존의 연산 코어 정보를 갱신한다. 갱신된 정보는 딥러닝 프라이빗 클라우드 통합 서버(300)에 보고하여, 항상 최신 상태가 유지될 수 있도록 한다.
만약, 장치 관리자에 의해서 새로운 CPU나 GPGPU가 추가된 경우, 이를 탐지하여, 관리하는 장치 그룹 정보에 추가한다. 반대로 기존의 CPU나 GPGPU가 제거된 경우도 추가와 같은 절차를 통해 장치 그룹의 정보가 갱신된다.
운영 컨테이너를 관리(S330)는 컨테이너를 제어하고(S332), 컨테이너 정보를 동기화할 수 있다(S334). 컨테이너 제어(S332) 및 컨테이너 정보 동기화(S334)를 반복적으로 수행하여 통신(S340)을 위해 정보를 전달할 수 있다.
통신(S340)은 CPU 및 GPGPU 장치 정보, 컨테이너 제어 및 컨테이너 정보 동기화 정보를 딥러닝 통합 서버(S350)에 등록할 수 있다.
운영 컨테이너 동기화(S334)는 도 10를 참조하여 자세히 설명한다. 도 10은 본 발명의 일 실시예에 따른 딥러닝 프라이빗 클라우드 서비스 시스템의 계산 노드 에이전트에 따른 운영 컨테이너 동기화를 나타내는 도면이다.
계산 노드 에이전트(110)는 운영 컨테이너(240)를 활성화할 때, 도 10과 같이 항상 비활성 운영 컨테이너(114)에 형성된 운영 컨테이너 저장소로부터 최신의 운영 컨테이너를 탐색한다. 만약 이전에 사용했던 운영 컨테이너와 최신 운영 컨테이너가 같은 경우, 운영 컨테이너 저장소에서 받지 않고, 기존의 운영 컨테이너를 재사용한다. 기존의 운영 컨테이너와 최신 운영 컨테이너가 다른 경우에는 기존의 운영 컨테이너를 그대로 두고, 새로운 운영 컨테이너를 받는다. 이때, 두 개 이상의 서로 다른 버전의 같은 운영 컨테이너가 존재할 수 있다. 두 개 이상의 서로 다른 버전의 같은 운영 컨테이너는 제1 운영 컨테이너(242) 및 제2 운영 컨테이너(244)이다.
계산 노드 에이전트(110)는 장치 그룹(210)과 결합한 기존의 활성 운영 컨테이너(112)가 모두 비활성화되었을 때 해당 운영 컨테이너를 물리 장치에서 제거한다.
컨테이너 제어(S332)는 도 11을 참조하여 자세히 설명한다. 도 11은 본 발명의 일 실시예에 따른 딥러닝 프라이빗 클라우드 서비스 시스템의 계산 노드 에이전트에 따른 에이전트 상태 제어를 나타내는 도면이다.
계산 노드 에이전트(110)는 도 11과 같이 딥러닝 프라이빗 클라우드 통합 스케줄러로부터 사용자 환경 정보(310)의 구성 요청을 전달받으며, 새로운 사용자 환경 정보(310)의 요청이 발생한 경우, 해당 사용자 환경 정보(310)의 요청 정보를 수신하고, 사용자 환경 정보(310)의 요청 정보를 분석하여 운영 컨테이너(240)와 저장 볼륨(230) 및 관리하는 장치 그룹(210)의 연산 코어(220)를 신속하게 결합하여 활성화한다. 활성화 중에 발생하는 모든 정보를 딥러닝 프라이빗 클라우드 통합 서버(300)에 전달하며, 만약 문제가 발생할 경우, 문제가 발생한 활성 운영 컨테이너(112)를 제거한다.
사용자가 활성 운영 컨테이너(112)를 비활성화하는 경우, 딥러닝 프라이빗 클라우드 통합 서버(300)는 해당 활성 운영 컨테이너(112)를 관리하는 계산 노드 에이전트(110)에 사건을 배당하고 계산 노드 에이전트(110)는 해당 활성 운영 컨테이너(112)를 제거한다.
컨테이너 제어(S332)의 절차는 도 12를 참조하여 자세히 설명한다. 도 12는 본 발명의 일 실시예에 따른 딥러닝 프라이빗 클라우드 서비스 시스템의 계산 노드 에이전트에서 운영 컨테이너 제어 절차를 나타내는 흐름도이다.
계산 노드 에이전트(110)는 사용자 요청 작업에 유형에 따라서 운영 컨테이너(240)의 활성 서비스를 다르게 초기화한다. 상호작용 작업의 경우, 운영 컨테이너(240)에 개인 노트북 인터페이스를 제공하는 서비스와 온라인 통합 개발 환경 인터페이스를 제공하는 서비스를 활성화한다. 만약 상호작용 작업이면서, 수업이나 팀 단위로 사용하려는 요청이 함께 있는 경우에는 개인 노트북 인터페이스를 제공하는 서비스 대신, 노트북 허브 인터페이스를 제공하는 서비스를 편성 및 재구성하여 서비스를 하고, 온라인 통합 개발 환경 인터페이스는 비활성화한 상태로 시작한다. 배치 작업으로 구성해야 하는 경우에는 딥러닝 통합 서버(300)와 직접 통신할 수 있는 시큐어 터미널 서비스만 제공한다. 이 터미널 서비스는 배치 작업의 동작 상태를 점검하는 등의 목적으로, 사용자가 접근하여 상태를 확인할 수 있게 할 때 사용된다.
컨테이너 제어(S332)의 절차는 컨테이너 제어 단계(S710)를 통해 활성화(S720)되거나 활성화를 실패(S730)할 수 있다. 여기서, 활성화 실패(S730)는 사용자 요청 작업에 유형에 따라서 운영 컨테이너의 활성 서비스를 다르게 초기화할 수 있다.
작업 처리 실패(S730)는 사용자 볼륨 확인 단계(S750), 다중 사용자용 확인 단계(S752), 노트북 프로그래밍 요구사항 확인 단계(S754), 개인 개발 환경 요구사항 확인 단계(S756) 또는 원격 접속 요구사항 확인 단계(S758)를 거쳐 상술한 과정에서 확인이 불가능 할 경우 작업 처리가 실패할 수 있다.
계산 노드 에이전트에서 운영 컨테이너 제어 절차는 사용자 볼륨 확인 단계(S750), 다중 사용자용 확인 단계(S752), 노트북 프로그래밍 요구사항 확인 단계(S754), 개인 개발 환경 요구사항 확인 단계(S756) 또는 원격 접속 요구사항 확인 단계(S758)를 거치며, 컨테이너 정보를 동기화 한다(S740).
사용자 볼륨 확인 단계(S750)는 컨테이너에 볼륨을 연결하여(S760), 운영 컨테이너 정보를 동기화하며(S770), 다중 사용자용 확인 단계(S752)는 Jupyter Hub 패키지 설치 및 활성화(S762)하고, 운영 컨테이너 정보를 동기화하며(S770), 노트북 프로그래밍 요구사항 확인 단계(S754)는 Jupyter Notebook 서비스를 활성화하여(S764), 운영 컨테이너 정보를 동기화하며(S770), 개인 개발 환경 요구사항 확인 단계(S756)는 추가 패키지 설치 및 서비스를 활성화하여(S766), 운영 컨테이너 정보를 동기화하며(S770), 원격 접속 요구사항 확인 단계(S758)는 SSH를 설정하여(S768), 운영 컨테이너 정보를 동기화한다(S770).
컨테이너 제어(S332)의 절차는 사용자 볼륨 확인 단계(S750), 다중 사용자용 확인 단계(S752), 노트북 프로그래밍 요구사항 확인 단계(S754), 개인 개발 환경 요구사항 확인 단계(S756), 원격 접속 요구사항 확인 단계(S758)에서의 운영 컨테이너 정보 동기화(S740) 및 컨테이너에 볼륨을 연결(S760), Jupyter Hub 패키지 설치 및 활성화(S762), Jupyter Notebook 서비스를 활성화하여(S764), 추가 패키지 설치 및 서비스를 활성화하여(S766) 및 SSH를 설정하여(S768)하여 운영 컨테이너 정보 동기화(770)가 끝나면 사용자 요청 작업에 유형에 따라서 운영 컨테이너의 활성 서비스가 다르게 초기될 수 있다.
계산 노드 에이전트(110)는 관리하는 장치 그룹(210)의 연산 코어(220)와 결합한 활성 운영 컨테이너(112)를 추적한다. 활성 운영 컨테이너(112)가 사용하는 장치 그룹의 부하를 측정하고, 활성 운영 컨테이너(112) 상태 변화를 탐지하여, 딥러닝 프라이빗 클라우드 통합 서버(300)에 활성 운영 컨테이너(112)에 대한 정보를 주기적 및 지속해서 갱신한다. 예를 들어, 활성 운영 컨테이너(112)가 외부 요인에 의해 중단되는 경우, 딥러닝 프라이빗 클라우드 통합 서버(300)에 문제가 발생을 보고하여 사용자와 관리자가 해당 상황에 대해 대응할 수 있게 한다.
작업 스케줄러는 도 13 및 도 14를 참조하여 자세히 설명한다.
도 13은 본 발명의 일 실시예에 따른 딥러닝 프라이빗 클라우드 서비스 시스템의 딥러닝 작업 스케줄러의 동작을 나타내는 도면이다.
딥러닝 작업 스케줄러(120)는 사용자가 필요로 하는 운영 환경을 딥러닝 프라이빗 클라우드 통합 서버(300)에 등록된 장치 그룹과 결합할 수 있도록 유휴 장치 그룹을 찾고, 해당 장치 그룹을 사용자 요청(410)에 배정하는 일을 수행한다.
도 13을 참조하면, 딥러닝 작업 스케줄러(120)는 사용자의 권한에 따라 사용할 수 있는 장치 그룹(210)의 범위를 선정한다. 선정된 그룹 범위에서 요청(410)한 연산 코어(220)의 종류와 개수를 유휴 상태로 가지고 있는 장치 그룹(210)을 임의로 선발하고, 해당 장치 그룹(210)에 포함된 연산 코어(220)들을 요청에 배정한다. 요청 처리 배정은 사용자 권한 조회(420) 및 장치 상태 조회(430)을 이용하여 요청 처리 배정할 수 있다.
요청에 배정된 자원은 해당 연산 코어(220)를 관리하는 딥러닝 에이전트(110)에 의해 운영 컨테이너(240)가 전개될 것이다. 만약 사용자가 요청한 연산 코어(220)의 요구사항을 만족하는 장치 그룹(210)이 존재하지 않는 경우, 요청 방법에 따라 처리 방식이 달라진다. 요청 방법은 상호작용 작업과 배치 처리 작업으로 구분한다. 이하에서는 상호작용 작업과 배치 처리 작업에 대해 설명한다. 여기서, 딥러닝 에이전트는 계산 노드 에이전트이다.
상호작용 작업은 연산 코어(220)를 배정한 후, 소프트웨어에 의해서 자동으로 처리되는 요소가 거의 없고, 사용자가 조작하여 어떤 업무를 진행시켜야 하는 작업을 의미한다. 대부분의 데이터 조작 행위나, 데이터 훈련 등의 단계, 사용자의 프로그램 개발 단계는 상호작용 작업으로 표현할 수 있다.
상호작용 작업을 위해서는 딥러닝 작업 스케줄러(120)는 자원을 최대한 빠르게 배정할 수 있도록 노력한다. 만약 배정할 수 없는 상황이 발생하는 경우, 짧은 시간 동안 다른 유휴 자원이 발생할 때까지 대기하였다가, 여전히 배정할 수 없을 때, 사용자가 현재 배정이 어려운 사정을 알 수 있도록 딥러닝 프라이빗 클라우드 통합 서버(300)에게 알릴 수 있다. 딥러닝 에이전트(110)는 상호작용 작업을 위한 운영 컨테이너를 전개할 때, 데이터 조작 등에서 많이 사용하는 프로그래밍 노트북 인터페이스 환경과 온라인에서 사용할 수 있는 프로그램 개발 환경을 제공할 수 있도록 노력하여 전개한다. 만약 전개하고 있는 운영 컨테이너에서 노트북 인터페이스 환경이나 프로그램 개발 환경을 제공할 수 없는 경우, 작업 처리 실패로 간주하고, 딥러닝 프라이빗 클라우드 통합 서버(300)에 작업을 수행할 수 없음을 알려야 한다. 그리고 딥러닝 에이전트(110)는 전개하던 운영 컨테이너를 비활성화 상태로 만든다.
배치 작업은 상호작용 작업과 달리 사용자의 조작이 사전에 정의되어있거나, 필요치 않은 자동화된 처리 프로세스를 가지고 있는 작업을 의미한다. 일반적으로 데이터 학습을 통해 미리 만들어진 어떤 처리자가 있고, 처리자를 통해서 다른 입력 데이터를 처리하여 그 결과를 얻고자 할 때 사용한다.
딥러닝 작업 스케줄러(120)는 배치 작업을 배정할 수 없을 때, 자원 배정 실패라고 판단하기까지 상호작용과 비교하여 상당히 긴 시간 동안 대기한다. 딥러닝 에이전트(110)는 배치 작업을 처리할 때, 운영 컨테이너를 생성하며, 별도의 사용자 환경을 전개하지 않고, 원격에서 사용자 프로세스가 정상적으로 처리되고 있는 확인할 수 있는 정보를 수집할 수 있는 환경만을 제공하려고 노력한다. 정보 수집 행위를 정상적으로 할 수 없을 때에 배치 작업은 실패로 처리하고, 운영 컨테이너(240)를 비활성화 상태로 만든다.
도 14는 본 발명의 일 실시예에 따른 딥러닝 프라이빗 클라우드 서비스 시스템의 딥러닝 작업 스케줄러의 처리를 나타내는 흐름도이다.
딥러닝 작업 스케줄러(120)는 상술한 바와 같이 작업의 형태에 따라, 작업 실패로 판단하는 기준이 달라진다. 뿐만 아니라, 연산 코어(220)의 수가 사용자의 요청에 비해 부족할 경우, 특정 사용자에게 쏠림 현상을 방지할 수 있도록 할 수 있다. 이 기능을 사용하는 경우, 딥러닝 작업 스케줄러(120)는 사용자의 과거 사용 이력 패턴, 최근에 사용한 시간, 최근 사용하지 않은 누적 시간, 최근 사용한 연산 코어의 수, 요청한 후 대기한 시간 등을 파악하여, 사용자 간의 우선순위를 조정한다.
딥러닝 작업 스케줄러(120)는 기본적으로 일찍 요청된 작업부터 처리하려고 하지만, 사용자 간 우선순위를 통해 작업의 순서를 재조정할 수 있는 기능을 갖는다.
도 14를 참조하면, 작업 스케줄러(120)가 시작되면, 요청 작업 대기열(S910), 자원 풀(S920) 및 사용자 풀(S930)을 불러올 수 있다. 여기서, 사용자 풀은 사용자 사용 이력을 포함할 수 있으며, 반드시 이에 한정되는 것은 아니다.
요청 작업 대기열(S910)은 작업 배치 요청(S940)에 의해 불러올 수 있으며, 사용자 후보 선택 단계(S912) 및 대상 태스크 선택 단계(S914)에서 이용할 수 있다.
자원 풀(S920)은 자원 선택 단계(S950)에서 이용할 수 있으며, 사용자 풀(S930)은 사용자 후보 선택 단계(S912)에서 이용할 수 있다.
도 14는 딥러닝 작업 스케줄러의 구성요소와 정보 전달 구조를 표현한 것이다. 딥러닝 작업 스케줄러(120)는 사용자 후보 선택(S912)과 대상 작업(태스크)를 선택(S914), 계산 노드의 자원을 선택(S950)하는 3개의 과정으로 구성될 수 있다.
자원 선택 과정(S950)에서 자원이 부족한 경우에 대기열 N분 대기 단계(S952)를 거쳐 요청 작업 대기열 단계(S910)를 다시 수행하며, 자원 선택 과정(S950)이 완료되면 에이전트 배정을 통해 계산 노드 에이전트 단계(S960)를 수행할 수 있다.
사용자 후보 선택 단계(S912)는 스케줄링 대상이 되는 사용자를 선택하는 과정으로, 단계 S930을 통해 자원을 배정 받기를 대기하고 있는 사용자들을 선택한다. 선택된 사용자 중에서 단계 S920에서 최근에 독점적으로 자원을 사용하고 있는 등의 사용자 이력에 기반한 점수 요인을 통해, 우선순위를 변경한다. 만약 사용자의 사용자 이력 점수가 동일한 경우, 먼저 자원 배정을 요청한 사용자가 높은 우선순위를 갖는다.
딥러닝 작업 스케줄러(120)는 사용자 이력 기반 점수를 위해 티켓과 티켓 부채를 적용하고 있다. 티켓은 일정한 값으로 초기화된다. 티켓은 자원 사용 기준(예를 들어, GPGPU 1개를 10분간 사용)에 맞게 사용할 때 마다 감소한다. 티켓 부채는 티켓을 모두 소진하여 0인 상태에서 자원을 계속해서 사용하는 경우, 자원 사용 기준에 도달 할 때 마다 증가한다. 사용자 우선 순위는 티켓을 가진 사용자가 높은 우선 순위를 갖는다. 이때, 티켓의 규모의 비교는 하지 않고, 티켓의 유무로만 판단한다. 티켓이 없고 티켓 부채가 있는 경우, 티켓 부채의 수준의 경고 미만일 경우 차순위를 갖는다. 마지막으로 티켓이 없고 티켓 부채의 수준의 경고를 넘어선 경우 최하위 순위를 가지며, 시스템에서 자원이 부족할 필요한 경우, 해당 사용자의 자원은 강제로 해제될 수 있다.
대상 태스크(작업) 선택 단계(S914)는 선정된 사용자 우선 순위에 따라, 가장 높은 우선 순위를 갖는 사용자의 가장 최우선 태스크를 선택한다. 만약 해당 사용자의 태스크(작업)와 비슷한 시기(예를 들면 1분 이내)에 제출된 태스크(작업)가 존재하는 경우, 동시에 선택한다.
본 발명의 일 실시예에 따르면, 태스크(작업)은 운영체계가 제어하는 프로그램의 기본 단위를 의미한다.
자원 선택 단계(S950)는 선택된 태스크를 제출 순으로 읽어, 자원 풀에 있는 유휴 자원 및 자원 그룹을 비교하여 태스크에 자원을 할당한다. 만약 이 단계에서 자원이 부족한 경우, 해당 태스크는 일정 시간 동안 스케줄링(예를 들면 5분)을 하지 않고 대기 상태에 둔다. 대기된 태스크는 다른 태스크가 종료되어 자원이 반환되는 경우, 반환된 자원이 태스크의 요구사항이 일치하는지 검사하며, 일치할 경우 즉시 대기 해제 된다. 대기 해제된 태스크는 다시 전체 스케줄링 절차를 거친다. 성공적으로 자원 선택이 완료된 경우, 해당 태스크에 계산 노드 에이전트를 할당한다.
본 발명의 일 실시에에 따르면, 자원은 컴퓨터로 실행되는 작업이나 태스크가 필요로 하는 컴퓨터 시스템, 운영 체제의 기구나 기능을 의미한다. 예를 들어 자원은 주기억 장치, 입출력 장치, 중앙 연산 처리 장치, 타이머, 데이터 세트, 제어 프로그램, 처리 프로그램 등을 의미하며 반드시 이에 한정되는 것은 아니다.
도 15는 본 발명의 일 실시예에 따른 딥러닝 프라이빗 클라우드 서비스 시스템의 개념 구조를 나타내는 도면이다.
도 15는 본 발명의 일 실시예에 따른 사용자에게 제공하는 딥러닝 프라이빗 클라우드 서비스 시스템을 예시한 예시도이다.
딥러닝 프라이빗 클라우드 서비스 시스템은 사용자 웹 통합 인터페이스 및 관리자 웹 통합 인터페이스를 구성할 수 있으며, 사용자 웹 통합 인터페이스는 사용자가 단말기와 상호 작용하는 시스템이고, 관리자 웹 통합 인터페이스는 관리자가 단말기와 상호 작용하는 시스템일 수 있다. 여기서, 단말기는 컴퓨터, 휴대폰 등과 같은 통신망으로 연결되어 데이터를 입력하거나 처리 결과를 출력하는 장치일 수 있다.
본 발명의 일 실시예에 따르면, 사용자 웹 통합 인터페이스는 사용자가 Git 기반 소스 형상 관리 서비스, 딥러닝 작업 스케줄러, 소스와 Learning DB 통합 툴, 딥러닝 수행 서비스, 실행 서비스(보고서 및 로그) 및 Learning DB 관리 서비스를 수행할 수 있다. 본 발명의 일 실시예에 따르면, 관리자 웹 통합 인터페이스는 관리자가 장치 상태/성능 모니터링, 스케줄러 튜너, 학생 지원 서비스, 연산 장치 모니터 및 Tensorflow 모니터를 수행할 수 있다. 사용자 웹 통합 인터페이스 및 관리자 웹 통합 인터페이스가 수행하는 수행 동작은 상술한 바에 한정하지 않는다. 여기서, 연산 장치는 장치 그룹으로 구현될 수 있으며, 반드시 이에 한정되는 것은 아니다.
도 15에서, 물리 장치 레이어는 물리 장치 계층(100)을 의미하며, 추상화 레이어는 추상화 계층(200)을 의미할 수 있다.
도 16은 실시예들에서 사용되기에 적합한 컴퓨팅 기기를 포함하는 컴퓨팅 환경을 예시하여 설명하기 위한 블록도이다.
도 16은 예시적인 실시예들에서 사용되기에 적합한 컴퓨팅 기기를 포함하는 컴퓨팅 환경을 예시하여 설명하기 위한 블록도이다. 도시된 실시예에서, 각 컴포넌트들은 이하에 기술된 것 이외에 상이한 기능 및 능력을 가질 수 있고, 이하에 기술되지 것 이외에도 추가적인 컴포넌트를 포함할 수 있다.
도시된 컴퓨팅 환경은 딥러닝 프라이빗 클라우드 서비스 시스템(10)을 포함한다. 일 실시예에서, 딥러닝 프라이빗 클라우드 서비스 시스템(10)은 타 단말기와 신호를 송수신하는 모든 형태의 컴퓨팅 기기일 수 있다.
딥러닝 프라이빗 클라우드 서비스 시스템(10)은 적어도 하나의 프로세서(1610), 컴퓨터 판독 가능한 저장매체(1620) 및 통신 버스(1660)를 포함한다. 프로세서(1610)는 딥러닝 프라이빗 클라우드 서비스 시스템(10)으로 하여금 앞서 언급된 예시적인 실시예에 따라 동작하도록 할 수 있다. 예컨대, 프로세서(1610)는 컴퓨터 판독 가능한 저장 매체(1620)에 저장된 하나 이상의 프로그램들을 실행할 수 있다. 상기 하나 이상의 프로그램들은 하나 이상의 컴퓨터 실행 가능 명령어를 포함할 수 있으며, 상기 컴퓨터 실행 가능 명령어는 프로세서(1610)에 의해 실행되는 경우 딥러닝 프라이빗 클라우드 서비스 시스템(10)으로 하여금 예시적인 실시예에 따른 동작들을 수행하도록 구성될 수 있다.
컴퓨터 판독 가능한 저장 매체(1620)는 컴퓨터 실행 가능 명령어 내지 프로그램 코드, 프로그램 데이터 및/또는 다른 적합한 형태의 정보를 저장하도록 구성된다. 컴퓨터 판독 가능한 저장 매체(1620)에 저장된 프로그램(1630)은 프로세서(1610)에 의해 실행 가능한 명령어의 집합을 포함한다. 일 실시예에서, 컴퓨터 판독한 가능 저장 매체(1620)는 메모리(랜덤 액세스 메모리와 같은 휘발성 메모리, 비휘발성 메모리, 또는 이들의 적절한 조합), 하나 이상의 자기 디스크 저장 기기들, 광학 디스크 저장 기기들, 플래시 메모리 기기들, 그 밖에 딥러닝 프라이빗 클라우드 서비스 시스템(10)에 의해 액세스되고 원하는 정보를 저장할 수 있는 다른 형태의 저장 매체, 또는 이들의 적합한 조합일 수 있다.
통신 버스(1660)는 프로세서(1610), 컴퓨터 판독 가능한 저장 매체(1620)를 포함하여 딥러닝 프라이빗 클라우드 서비스 시스템(10)의 다른 다양한 컴포넌트들을 상호 연결한다.
딥러닝 프라이빗 클라우드 서비스 시스템(10)은 또한 하나 이상의 입출력 장치(미도시)를 위한 인터페이스를 제공하는 하나 이상의 입출력 인터페이스(1640) 및 하나 이상의 통신 인터페이스(1650)를 포함할 수 있다. 입출력 인터페이스(1640) 및 통신 인터페이스(1650)는 통신 버스(1660)에 연결된다. 입출력 장치(미도시)는 입출력 인터페이스(1040)를 통해 딥러닝 프라이빗 클라우드 서비스 시스템(10)의 다른 컴포넌트들에 연결될 수 있다. 예시적인 입출력 장치는 포인팅 장치(마우스 또는 트랙패드 등), 키보드, 터치 입력 장치(터치패드 또는 터치스크린 등), 음성 또는 소리 입력 장치, 다양한 종류의 센서 장치 및/또는 촬영 장치와 같은 입력 장치, 및/또는 디스플레이 장치, 프린터, 스피커 및/또는 네트워크 카드와 같은 출력 장치를 포함할 수 있다. 예시적인 입출력 장치(미도시)는 딥러닝 프라이빗 클라우드 서비스 시스템(10)을 구성하는 일 컴포넌트로서 딥러닝 프라이빗 클라우드 서비스 시스템(10)의 내부에 포함될 수도 있고, 딥러닝 프라이빗 클라우드 서비스 시스템(10)과는 구별되는 별개의 장치로 컴퓨팅 기기와 연결될 수도 있다.
본 실시예들에 따른 동작은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능한 매체에 기록될 수 있다. 컴퓨터 판독 가능한 매체는 실행을 위해 프로세서에 명령어를 제공하는 데 참여한 임의의 매체를 나타낸다. 컴퓨터 판독 가능한 매체는 프로그램 명령, 데이터 파일, 데이터 구조 또는 이들의 조합을 포함할 수 있다. 예를 들면, 자기 매체, 광기록 매체, 메모리 등이 있을 수 있다. 컴퓨터 프로그램은 네트워크로 연결된 컴퓨터 시스템 상에 분산되어 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수도 있다. 본 실시예를 구현하기 위한 기능적인(Functional) 프로그램, 코드, 및 코드 세그먼트들은 본 실시예가 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있을 것이다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위 내에서 다양한 수정, 변경 및 치환이 가능할 것이다. 따라서, 본 발명에 개시된 실시 예 및 첨부된 도면들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시 예 및 첨부된 도면에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구 범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리 범위에 포함되는 것으로 해석되어야 할 것이다.
10: 딥러닝 프라이빗 클라우드 서비스 시스템
100: 물리 장치 계층
200: 추상화 계층

Claims (15)

  1. 프라이빗 클라우드 서비스 시스템의 서비스 제공 방법에 있어서,
    딥러닝 통합 서버가, 사용자의 단말기를 통해 전달되는 작업 요청에 의해 계층 전환 장치에 작업 배정을 요청하는 단계;
    상기 계층 전환 장치가, 작업 스케줄러에 의해 작업 배정을 수행하여 유휴 장치 그룹을 찾아 계산 노드 에이전트에 배정하고, 상기 배정된 계산 노드 에이전트에 의해 다양한 형태의 물리 장치 계층을 추상화 계층으로 전환하는 단계; 및
    상기 딥러닝 통합 서버가, 상기 계층 전환 장치에서 상기 계산 노드 에이전트에 의해 활성화된 상기 추상화 계층으로 전환 시 생성된 하나 이상의 연산 코어와 하나 이상의 저장볼륨을 포함하는 활성 운영 컨테이너를 상기 사용자의 단말기에 제공하는 단계를 포함하고,
    상기 딥러닝 통합 서버는, 상기 단말기에 의해 상기 딥러닝 통합 서버에 상기 물리 장치 계층 또는 상기 추상화 계층에 대한 정보 조회, 정보 생성 또는 정보 변경 요청을 하는 API 서비스를 제공하는 단계; 상기 작업 스케줄러와 상기 계산 노드 에이전트 및 상기 딥러닝 통합 서버와 상기 단말기 간의 상태 변경 통지 및 정보 교환을 수행하는 웹 소켓 서비스를 제공하는 단계; 상기 딥러닝 통합 서버의 성능을 측정하여 측정 정보를 기록하는 성능 측정 서비스를 제공하는 단계; 상기 프라이빗 클라우드 서비스 시스템에서 발생하는 오류를 기록하고, 상기 발생하는 오류를 해결하는 사건 보고 서비스를 제공하는 단계; 상기 단말기를 통한 요청에 대응할 필요가 없거나 시간이 지연되는 처리를 수행하고, 상기 프라이빗 클라우드 서비스 시스템의 장애에 대비하여 이중화를 할 수 있도록 설계되는 백그라운드 처리 서비스를 제공하는 단계; 상기 프라이빗 클라우드 서비스 시스템의 서비스 제공 방법에서 형성되는 운영 정보를 기록하거나 조회하는 데이터베이스를 제공하는 단계; 및 상기 사용자의 접속 정보를 기록하는 세션을 저장하는 캐쉬 서비스를 제공하는 단계를 더 수행하는 프라이빗 클라우드 서비스 시스템의 서비스 제공 방법.
  2. 삭제
  3. 제1항에 있어서,
    상기 딥러닝 통합 서버는,
    상기 API 서비스 및 상기 웹 소켓 서비스를 통해 상기 계층 전환 장치 및 상기 단말기와 통신을 수행하고,
    상기 API 서비스를 제공하는 단계는 상태를 조작하거나, 새로운 정보를 생성하는 HTTP(S) 프로토콜을 기반으로 제공하고,
    상기 웹 소켓 서비스를 제공하는 단계는 상기 딥러닝 통합 서버에서 발생하는 정보의 변경을 전파하기 위해서 사용하는 것을 특징으로 하는 프라이빗 클라우드 서비스 시스템의 서비스 제공 방법.
  4. 제1항에 있어서,
    상기 웹 소켓 서비스를 제공하는 단계는,
    상기 단말기와 상기 딥러닝 통합 서버를 연결하며, 상기 단말기의 요청에 대한 상태 변화가 발생하는 경우, 상기 단말기에 알림을 주고,
    상기 웹 소켓 서비스를 제공하는 단계는 상기 딥러닝 통합 서버와 상기 계산 노드 에이전트를 연결하며, 상기 계산 노드 에이전트에 작업이 배정되거나, 상기 계산 노드 에이전트의 운영 컨테이너의 상태 변경에 대한 정보를 반영하여 상기 단말기에 제공하는 것을 특징으로 하는 프라이빗 클라우드 서비스 시스템의 서비스 제공 방법.
  5. 제1항에 있어서,
    상기 작업 배정을 요청하는 단계는,
    상기 사용자가 상기 단말기를 통해 작업 요청을 하는 경우 상기 단말기를 통해 상기 API 서비스를 사용하여 상기 작업 요청을 전달받으며, 상기 작업 스케줄러를 호출하여 상기 작업 배정을 요청하고,
    상기 작업 배정을 요청하는 단계는,
    상기 작업 배정이 성공한 경우, 상기 단말기와 배정된 연산 장치를 가진 상기 계산 노드 에이전트에 상기 웹 소켓 서비스를 사용하여 통지하는 단계; 및
    상기 작업 배정이 실패한 경우, 상기 단말기에 상기 웹 소켓 서비스를 사용하여 통지하고, 상기 단말기에 통지를 실패한 경우, 상기 단말기의 새로 고침을 통해 상기 API 서비스를 사용하여 최신 정보를 얻는 단계를 수행하는 것을 특징으로 하는 프라이빗 클라우드 서비스 시스템의 서비스 제공 방법.
  6. 제5항에 있어서,
    상기 물리 장치 계층을 추상화 계층으로 전환하는 단계는,
    상기 통지 받은 계산 노드 에이전트가, 상기 추상화 계층의 운영 컨테이너를 전개하여 상기 웹 소켓 서비스와 상기 API 서비스를 활용하여 상기 활성 운영 컨테이너에 대한 정보를 상기 딥러닝 통합 서버에 전파하고,
    상기 딥러닝 통합 서버는 상기 전파된 정보를 데이터베이스에 기록하거나, 상기 단말기에 변경된 상태 정보를 가공하여 상기 웹 소켓 서비스를 사용하여 전파하는 것을 특징으로 하는 프라이빗 클라우드 서비스 시스템의 서비스 제공 방법.
  7. 제1항에 있어서,
    상기 성능 측정 서비스를 제공하는 단계는,
    상기 딥러닝 통합 서버의 상태를 알 수 있도록, 상기 사용자가 상기 사용자의 단말기를 통한 요청 빈도, 상기 데이터베이스의 접근 빈도 또는 상기 데이터베이스의 접근 시간을 적어도 하나 포함하는 측정 정보를 관리하며, 상기 측정 정보를 기록하는 데이터베이스와 연동되며,
    상기 측정 정보는 인증 시도 횟수, 인증 성공 횟수, 인증 실패 횟수, 인증에 성공한 사용자수, HTTP 응답 상태 빈도, HTTP 요청 빈도, HTTP 응답에 걸린 시간, 세션 정보 접근 횟수, 캐쉬 적중 빈도, 캐쉬 실패 빈도, 데이터베이스 접근 빈도, 데이터베이스 접근 시간을 적어도 하나 포함하는 것을 특징으로 하는 프라이빗 클라우드 서비스 시스템의 서비스 제공 방법.
  8. 제1항에 있어서,
    상기 백그라운드 처리 서비스를 제공하는 단계는,
    상기 프라이빗 클라우드 서비스 시스템에서 지연된 상기 단말기를 통한 사용자 요청 처리 및 주기적인 서비스 루틴을 동작시키기 위해 사용하고, 상기 작업 스케줄러의 루틴을 동작시키는 것을 특징으로 하는 프라이빗 클라우드 서비스 시스템의 서비스 제공 방법.
  9. 제1항에 있어서,
    상기 백그라운드 처리 서비스를 제공하는 단계는,
    상기 지연된 요청 처리의 루틴 또는 상기 작업 스케줄러를 독립적으로 운영하여 상기 프라이빗 클라우드 서비스 시스템의 장애로 인해 상기 프라이빗 클라우드 서비스 시스템의 서비스 제공 방법이 중단되는 상태를 막고,
    상기 프라이빗 클라우드 서비스 시스템에 부하가 집중되는 경우 상기 지연된 요청 처리의 루틴 또는 상기 작업 스케줄러를 증설하여 부하를 분산하는 것을 특징으로 하는 프라이빗 클라우드 서비스 시스템의 서비스 제공 방법.
  10. 제1항에 있어서,
    상기 캐쉬 서비스를 제공하는 단계는,
    상기 사용자가 상기 단말기를 통한 요청으로 인한 부하를 분산하기 위해 상기 사용자의 접속 정보를 기록하는 세션을 별도의 캐쉬 서버에 저장하고,
    상기 캐쉬 서버는 Memcached와 Redis를 지원하는 것을 특징으로 하는 프라이빗 클라우드 서비스 시스템의 서비스 제공 방법.
  11. 제10항에 있어서,
    상기 프라이빗 클라우드 서비스 시스템에 장애가 발생하면 다른 딥러닝 통합 서버에 접속하는 단계를 더 포함하고,
    상기 다른 딥러닝 통합 서버에 접속하는 단계는 기존의 상기 딥러닝 통합 서버에서 사용하던 캐쉬 기록이나 세션이 유지되어 상기 프라이빗 클라우드 서비스 시스템에 발생된 장애를 인지하지 못하는 것을 특징으로 하는 프라이빗 클라우드 서비스 시스템의 서비스 제공 방법.
  12. 딥러닝 통합 서버에 있어서,
    사용자의 단말기를 통해 전달되는 작업 요청에 의해 작업 스케줄러가 배정하는 다양한 형태의 물리 장치 계층을 추상화 계층으로 전환하는 계산 노드 에이전트에 작업 배정을 요청하고, 상기 계산 노드 에이전트에 의해 활성화된 상기 추상화 계층으로 전환 시 생성된 하나 이상의 연산 코어와 하나 이상의 저장볼륨을 포함하는 활성 운영 컨테이너에 대한 정보를 상기 사용자의 단말기에 제공하며,
    상기 딥러닝 통합 서버는, 상기 단말기에 의해 상기 딥러닝 통합 서버에 상기 물리 장치 계층 또는 상기 추상화 계층에 대한 정보 조회, 정보 생성 또는 정보 변경 요청을 하는 API 서비스를 제공하고, 상기 작업 스케줄러와 상기 계산 노드 에이전트 및 상기 딥러닝 통합 서버와 상기 단말기 간의 상태 변경 통지 및 정보 교환을 수행하는 웹 소켓 서비스를 제공하고, 상기 딥러닝 통합 서버의 성능을 측정하여 측정 정보를 기록하는 성능 측정 서비스를 제공하고, 프라이빗 클라우드 서비스 시스템의 서비스 제공 방법에서 발생하는 오류를 기록하고, 상기 발생하는 오류를 해결하는 사건 보고 서비스를 제공하고, 상기 단말기를 통한 요청에 대응할 필요가 없거나 시간이 지연되는 처리를 수행하는 백그라운드 처리 서비스를 제공하고, 상기 프라이빗 클라우드 서비스 시스템의 서비스 제공 방법에서 형성되는 운영 정보를 기록하거나 조회하는 데이터베이스를 제공하고, 상기 사용자의 접속 정보를 기록하는 세션을 저장하는 캐쉬 서비스를 제공하는 것을 특징으로 하는 딥러닝 통합 서버.
  13. 삭제
  14. 제12항에 있어서,
    상기 딥러닝 통합 서버는,
    상기 사용자가 상기 단말기를 통해 작업 요청을 하는 경우 상기 단말기를 통해 상기 API 서비스를 사용하여 상기 작업 요청을 전달받으며, 상기 작업 스케줄러를 호출하여 상기 작업 배정을 요청하고,
    상기 작업 배정이 성공한 경우, 상기 단말기와 배정된 연산 장치를 가진 상기 계산 노드 에이전트에 상기 웹 소켓 서비스를 사용하여 통지하고,
    상기 작업 배정이 실패한 경우, 상기 단말기에 상기 웹 소켓 서비스를 사용하여 통지하고, 상기 단말기에 통지를 실패한 경우, 상기 단말기의 새로 고침을 통해 상기 API 서비스를 사용하여 최신 정보를 얻는 것을 특징으로 하는 딥러닝 통합 서버.
  15. 제14항에 있어서,
    상기 통지 받은 계산 노드 에이전트는,
    상기 추상화 계층의 운영 컨테이너를 전개하여 상기 웹 소켓 서비스와 상기 API 서비스를 활용하여 상기 활성 운영 컨테이너에 대한 정보를 상기 딥러닝 통합 서버에 전파하고,
    상기 딥러닝 통합 서버는 상기 전파된 정보를 데이터베이스에 기록하거나, 상기 단말기에 변경된 상태 정보를 가공하여 상기 웹 소켓 서비스를 사용하여 전파하는 것을 특징으로 하는 딥러닝 통합 서버.
KR1020200037146A 2019-11-27 2020-03-26 딥러닝 프라이빗 클라우드 서비스 시스템의 서비스 제공 방법 KR102341377B1 (ko)

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
KR20210065818A KR20210065818A (ko) 2021-06-04
KR102341377B1 true KR102341377B1 (ko) 2021-12-20

Family

ID=76391889

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020200037145A KR102341376B1 (ko) 2019-11-27 2020-03-26 딥러닝 프라이빗 클라우드 서비스의 계층 전환 장치
KR1020200037146A KR102341377B1 (ko) 2019-11-27 2020-03-26 딥러닝 프라이빗 클라우드 서비스 시스템의 서비스 제공 방법

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020200037145A KR102341376B1 (ko) 2019-11-27 2020-03-26 딥러닝 프라이빗 클라우드 서비스의 계층 전환 장치

Country Status (1)

Country Link
KR (2) KR102341376B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023177019A1 (ko) * 2022-03-18 2023-09-21 엘지전자 주식회사 에지 및 클라우드 간 협업 시스템 및 방법

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116483482B (zh) * 2023-05-19 2024-03-01 北京百度网讯科技有限公司 深度学习任务处理方法、系统、装置、设备及介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013534019A (ja) 2010-07-09 2013-08-29 ステイト・ストリート・コーポレーション プライベート・クラウド・コンピューティングためのシステムおよび方法
US20160378782A1 (en) 2015-06-25 2016-12-29 Vmware, Inc. Virtual desktop infrastructure private cloud
US20180007027A1 (en) 2014-02-07 2018-01-04 Oracle International Corporation On-premises agent for mobile cloud service

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2705632B8 (en) 2011-05-06 2018-09-12 Citrix Systems, Inc. Systems and methods for cloud bridging between public and private clouds
JP5544522B2 (ja) * 2011-06-21 2014-07-09 日本電信電話株式会社 負荷調整方法、負荷調整サーバ、負荷調整用サーバ装置、および、負荷調整プログラム
KR101907660B1 (ko) * 2011-12-15 2018-12-06 한국전자통신연구원 웹 기반의 운영체제를 탑재한 단말 장치 및 이를 이용한 서비스 제공 방법
KR20140128188A (ko) * 2013-04-27 2014-11-05 (주)이공감 가상화 데스크탑 인프라 시스템
KR20170072552A (ko) * 2015-12-17 2017-06-27 에스케이텔레콤 주식회사 클라우드 개발 환경을 위한 컨테이너 서비스 방법 및 그 장치
KR20190091659A (ko) * 2018-01-29 2019-08-07 한국전자통신연구원 클라우드 서비스 네트워킹에서 신뢰 기반의 경로 설정 방법 및 장치
US11055417B2 (en) 2018-04-17 2021-07-06 Oracle International Corporation High granularity application and data security in cloud environments

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013534019A (ja) 2010-07-09 2013-08-29 ステイト・ストリート・コーポレーション プライベート・クラウド・コンピューティングためのシステムおよび方法
US20180007027A1 (en) 2014-02-07 2018-01-04 Oracle International Corporation On-premises agent for mobile cloud service
US20160378782A1 (en) 2015-06-25 2016-12-29 Vmware, Inc. Virtual desktop infrastructure private cloud

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023177019A1 (ko) * 2022-03-18 2023-09-21 엘지전자 주식회사 에지 및 클라우드 간 협업 시스템 및 방법
WO2023177018A1 (ko) * 2022-03-18 2023-09-21 엘지전자 주식회사 에지 및 클라우드 간 협업 시스템 및 방법

Also Published As

Publication number Publication date
KR20210065818A (ko) 2021-06-04
KR20210065817A (ko) 2021-06-04
KR102341376B1 (ko) 2021-12-21

Similar Documents

Publication Publication Date Title
US11907732B2 (en) Leveraging microservice containers to provide tenant isolation in a multi-tenant API gateway
US11740943B2 (en) Techniques for managing long-running tasks with a declarative provisioner
US11005733B2 (en) Methods, systems, and apparatus to scale in and/or scale out resources managed by a cloud automation system
US11481239B2 (en) Apparatus and methods to incorporate external system to approve deployment provisioning
US8706869B2 (en) Distributed cloud placement software
JP2019149192A (ja) コンテナの管理及びスケジューリングのためのシステム
US9641392B2 (en) Policy implementation in a networked computing environment
US10776385B2 (en) Methods and apparatus for transparent database switching using master-replica high availability setup in relational databases
US20200356415A1 (en) Apparatus and method for depoying a machine learning inference as a service at edge systems
US10628232B2 (en) Methods and apparatus for limiting data transferred over the network by interpreting part of the data as a metaproperty
US8949430B2 (en) Clustered computer environment partition resolution
US10620928B2 (en) Global cloud applications management
KR102341377B1 (ko) 딥러닝 프라이빗 클라우드 서비스 시스템의 서비스 제공 방법
KR20190028210A (ko) 컨테이너 기반 인공지능 어플리케이션을 배포하는 클라우드 서비스 방법과 시스템
EP4094208A1 (en) Techniques for detecting drift in a deployment orchestrator
US11487750B2 (en) Dynamically optimizing flows in a distributed transaction processing environment
US20240184559A1 (en) Product lifecycle management of data migration during a system update
US20230393881A1 (en) Autonomous clusters in a virtualization computing environment
US20230259407A1 (en) Exposing control to enable interactive schedulers for cloud cluster orchestration systems
WO2023235438A1 (en) Autonomous clusters in a virtualization computing environment

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