KR102224487B1 - 머신 러닝 플랫폼 관리 시스템 및 방법 - Google Patents

머신 러닝 플랫폼 관리 시스템 및 방법 Download PDF

Info

Publication number
KR102224487B1
KR102224487B1 KR1020190051638A KR20190051638A KR102224487B1 KR 102224487 B1 KR102224487 B1 KR 102224487B1 KR 1020190051638 A KR1020190051638 A KR 1020190051638A KR 20190051638 A KR20190051638 A KR 20190051638A KR 102224487 B1 KR102224487 B1 KR 102224487B1
Authority
KR
South Korea
Prior art keywords
node
machine learning
session
worker
information
Prior art date
Application number
KR1020190051638A
Other languages
English (en)
Other versions
KR20200127467A (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 숭실대학교산학협력단
Priority to KR1020190051638A priority Critical patent/KR102224487B1/ko
Priority to PCT/KR2020/002167 priority patent/WO2020222407A1/ko
Publication of KR20200127467A publication Critical patent/KR20200127467A/ko
Application granted granted Critical
Publication of KR102224487B1 publication Critical patent/KR102224487B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발명의 실시예에 따르면, 외부 프로그램을 통해 등록된 머신러닝 테스크(task) 및 명령어를 관리하는 마스터 노드; 상기 마스터 노드로부터 전달받은 상기 머신러닝 테스크 정보 및 상기 명령어를 분석하여 실행 가능한 하위 노드에 할당하는 세션 노드; 및 상기 세션 노드로부터 할당받은 상기 머신러닝 테스크 정보 및 상기 명령어에 따라 머신러닝을 수행하고, 학습 진행 상황 및 자원 상황을 상기 세션 노드로 보고하는 워커노드를 포함하는 머신 러닝 플랫폼 관리 시스템을 제공한다.

Description

머신 러닝 플랫폼 관리 시스템 및 방법{MANAGEMENT SYSTEM AND METHOD OF MACHINE LEARNING PLATFORM}
본 발명의 일실시예는 머신 러닝 플랫폼 관리 시스템 및 방법에 관한 것으로, 더욱 구체적으로는 다양한 프레임 워크가 적용된 머신 러닝 환경에 적용될 수 있는 머신 러닝 플랫폼 관리 시스템 및 방법에 관한 것이다.
최근 구글(Google), 마이크로소프트(Microsoft) 등의 글로벌 IT 기업들과 학계 연구그룹들은 머신러닝 기술관련 플랫폼(프레임워크, 라이브러리 등)을 무료로 공개하였다. 공개된 머신러닝 플랫폼은 사용자가 복잡한 머신러닝 내부 기술을 알지 못해도 손쉽게 이용 가능한 인터페이스를 제공‘하여 기술사용에 대한 사용자의 진입장벽을 획기적으로 낮추었다. 오픈 플랫폼을 공개한 기업 또는 연구그룹은 깃허브(Github), 자사의 웹을 통해 새로운 또는 개선된 학습 알고리즘과 향상된 하드웨어 활용 기술을 꾸준하게 업데이트 중에 있으며 대다수의 오픈 플랫폼들은 직관적인 사용자 인터페이스 제공을 통한 사용성, CPU 및 GPU를 활용한 학습 모델의 성능, 분산 플랫폼 기반 확장성 등의 향상을 목표로 개발되었다.
구글 브레인팀은 2015년 11월 기존 딥러닝 플랫폼 DistBelief를 개선한 텐서플로우(TensorFlow)를 공개하여 유연하고 확장성이 향상된 결과를 도출하고 학습 과정에서 결과를 직관적인 그래프로 표현하였으며 2017년 5월 구글 개발자 컨퍼런스에서 안드로이드 모바일 플랫폼에서 머신러닝을 활용을 위해 개발한 텐서플로우 라이트 (TensorFlow Lite)를 공개하였다.
아파치 소프트웨어 재단 루씬 프로젝트의 하위 프로젝트인 머하웃(Mahout)은 확장 가능한 머신러닝 라이브러리 구현을 목표로 개발되어, 2010년 아파치 공식 프로젝트 단계인 탑-레벨로 전환하였다. 대용량 데이터 처리 시스템인 하둡 파일 시스템을 사용하였고, 최근 성능과 사용자 편의성이 향상된 스파크 시스템 등을 활용한다.
아파치 소프트웨어 재단 스파크 프로젝트의 내부 프로젝트인 MLlib는 대용량 데이터를 활용하는 빠른 성능의 머신러닝 기술을 제공하고자 개발되어 2013년에 공개되었다. 메모리 기반으로 동작하여 디스크 기반의 머하웃 보다 빠르다고 알려져 있지만, 지원하는 딥러닝 기술이 제한적이다.
페이스북 인공지능 연구그룹이 2017년 7월 공개한 Caffe2는 딥러닝 플랫폼으로써 기존의 Caffe를 기반으로 엔비디아(NVDIA), 퀄컴(Qualcumm), 인텔(Intel), 마이크로소프트(Microsoft) 등 여러 기업들과 연구, 개발하였으며, 학습 모델의 성능, 이식성, 활용성 등을 향상시키는 데에 초점을 맞췄다.
최근 몇 년 사이 머신러닝의 필요성이 높아지고, 동시에 기업 및 학계에서 다양한 머신러닝 플랫폼을 공개하면서, 이를 적용가능한 환경이라면 구체적인 기술을 알지 못하는 사용자도 머신러닝 기반의 애플리케이션 개발이 가능해졌다.
하지만, 머신러닝 플랫폼을 사용하기 위해서는 머신러닝 환경을 구성해야 한다. 예를 들어, 텐서플로우를 사용하기 위해 일반적으로 파이썬 언어가 필요하다. 파이썬 언어를 설치하기 위해 아나콘다와 같은 가상환경을 구축하거나 텐서플로우를 설치하고 텐서플로우 작업을 하기 위해 파이참(PyCharm)과 같은 IDE를 설치하는 복잡한 과정을 거친다. 이런 환경 구성 과정에서 일반 사용자들은 의존성 문제, 버전 호환성 문제 등의 각종 문제에 부딪혀 머신러닝을 수행할 환경 구축에는 진입장벽이 높은 편이다.
본 발명이 이루고자 하는 기술적 과제는 다양한 머신러닝 관련 프레임 워크들을 하나의 플랫폼으로 관리할 수 있는 머신 러닝 플랫폼 관리 시스템 및 방법을 제공하는데 있다.
또한, 머신 러닝 작업을 최적의 노드에 분배하고 실행 결과를 실시간으로 모니터링할 수 있는 머신 러닝 플랫폼 관리 시스템 및 방법을 제공하는데 있다.
또한, 외부 프로그램을 통하여 원격으로 머신러닝을 수행할 수 있는 머신 러닝 플랫폼 관리 시스템 및 방법을 제공하는데 있다.
본 발명의 실시예에 따르면, 외부 프로그램을 통해 등록된 머신러닝 테스크(task) 및 명령어를 관리하는 마스터 노드; 상기 마스터 노드로부터 전달받은 상기 머신러닝 테스크 정보 및 상기 명령어를 분석하여 실행 가능한 하위 노드에 할당하는 세션 노드; 및 상기 세션 노드로부터 할당받은 상기 머신러닝 테스크 정보 및 상기 명령어에 따라 머신러닝을 수행하고, 학습 진행 상황 및 자원 상황을 상기 세션 노드로 보고하는 워커노드를 포함하는 머신 러닝 플랫폼 관리 시스템을 제공한다.
상기 세션 노드는 상기 워커 노드로부터 보고받은 자원 상황에 따라 연산 처리 능력을 분석하고, 분석된 연산 처리 능력을 기준으로 상기 머신러닝 테스크 정보 및 상기 명령어를 할당할 수 있다.
상기 세션 노드는 상기 연산 처리 능력에 따라 순차적으로 정렬된 워커 노드 리스트를 생성하여 상기 워커 노드 리스트에 따라 상기 머신러닝 테스크 정보 및 상기 명령어를 할당할 수 있다.
상기 자원 상황은 CPU자원정보, GPU 자원정보, 메모리 자원정보, 디스크 자원정보, 패키지 버전, 라이브러리 버전, 파이썬 언어 버전, 프레임워크 종류, 프레임워크 버전, 운영체제 종류 및 운영체제 버전 중 적어도 하나를 포함할 수 있다.
상기 세션 노드는 동일한 프레임 워크를 사용하는 적어도 하나의 워커 노드를 관리할 수 있다.
상기 워커 노드는 할당받은 상기 머신 러닝 테스크 정보 및 상기 명령어에 따라 외부 네트워크 저장소에 액세스하여 상기 머신 러닝 테스크 및 학습 데이터 파일을 다운로드 받을 수 있다.
상기 학습 진행 상황은 Loss 값, 학습의 정확도, Validation 값 및 진행율 중 적어도 하나를 포함할 수 있다.
상기 명령어는 상기 머신 러닝 테스크의 할당, 실행, 중지 및 학습 진행 상황 보고 중 적어도 하나를 포함할 수 있다.
본 발명의 실시예에 따르면, 워커 노드가 자원 정보를 세션 노드에 전송하여 연결을 요청하는 단계; 상기 세션 노드가 상기 자원 정보를 통하여 상기 워커 노드가 머신 러닝 수행이 가능한 노드인지 확인하는 단계; 상기 세션 노드가 머신 러닝 수행이 가능한 적어도 하나의 워커 노드를 이용하여 그룹을 형성하는 단계; 마스터 노드가 외부 프로그램을 통하여 머신러닝 테스크(task) 및 명령어를 등록받는 단계; 상기 마스터 노드가 상기 머신러닝 테스크 정보 및 상기 명령어를 상기 세션 노드에 전달하는 단계; 상기 세션 노드가 상기 머신러닝 테스크 정보 및 상기 명령어를 분석하여 실행 가능한 워커 노드에 할당하는 단계; 상기 워커 노드가 상기 세션 노드로부터 할당받은 상기 머신러닝 테스크 정보 및 상기 명령어에 따라 머신러닝을 수행하는 단계; 및 상기 워커 노드가 학습 진행 상황 및 상기 자원 상황을 상기 세션 노드로 보고하는 단계를 포함하는 머신 러닝 플랫폼 관리 방법을 제공한다.
상기 그룹을 형성하는 단계는, 동일한 프레임 워크를 사용하는 적어도 하나의 워커 노드를 이용하여 그룹을 형성할 수 있다.
본 발명인 머신 러닝 플랫폼 관리 시스템 및 방법은 다양한 머신러닝 관련 프레임 워크들을 하나의 플랫폼으로 관리할 수 있다.
또한, 머신 러닝 작업을 최적의 노드에 분배하고 실행 결과를 실시간으로 모니터링할 수 있다.
또한, 외부 프로그램을 통하여 원격으로 머신러닝을 수행할 수 있다.
도1은 실시예에 따른 머신 러닝 플랫폼 관리 시스템의 개념도이다.
도2는 실시예에 따른 마스터 노드의 구성 블록도이다
도3은 실시예에 따른 플랫폼 관리 데이터베이스의 동작을 설명하기 위한 도면이다.
도4는 실시예에 따른 세션 노드의 구성 블록도이다.
도5는 실시예에 따른 워커 노드의 구성 블록도이다.
도6은 실시예에 따른 머신 러닝 플랫폼 관리 방법의 순서도이다.
도7은 실시예에 따른 워커 노드 연결 과정을 설명하기 위한 도면이다.
도8은 실시예에 따른 머신 러닝 테스크 할당 과정을 설명하기 위한 도면이다.
도9은 실시예에 따른 머신 러닝 명령어 실행 과정을 설명하기 위한 도면이다.
도10은 실시예에 따른 자원 모니터링 매니저의 동작을 설명하기 위한 도면이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다.
다만, 본 발명의 기술 사상은 설명되는 일부 실시 예에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있고, 본 발명의 기술 사상 범위 내에서라면, 실시 예들간 그 구성 요소들 중 하나 이상을 선택적으로 결합, 치환하여 사용할 수 있다.
또한, 본 발명의 실시예에서 사용되는 용어(기술 및 과학적 용어를 포함)는, 명백하게 특별히 정의되어 기술되지 않는 한, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 일반적으로 이해될 수 있는 의미로 해석될 수 있으며, 사전에 정의된 용어와 같이 일반적으로 사용되는 용어들은 관련 기술의 문맥상의 의미를 고려하여 그 의미를 해석할 수 있을 것이다.
또한, 본 발명의 실시예에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다.
본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함할 수 있고, "A 및(와) B, C 중 적어도 하나(또는 한 개 이상)"로 기재되는 경우 A, B, C로 조합할 수 있는 모든 조합 중 하나 이상을 포함할 수 있다.
또한, 본 발명의 실시 예의 구성 요소를 설명하는 데 있어서, 제1, 제2, A, B, (a), (b) 등의 용어를 사용할 수 있다.
이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등으로 한정되지 않는다.
그리고, 어떤 구성 요소가 다른 구성요소에 '연결', '결합' 또는 '접속'된다고 기재된 경우, 그 구성 요소는 그 다른 구성 요소에 직접적으로 연결, 결합 또는 접속되는 경우뿐만 아니라, 그 구성 요소와 그 다른 구성 요소 사이에 있는 또 다른 구성 요소로 인해 '연결', '결합' 또는 '접속' 되는 경우도 포함할 수 있다.
또한, 각 구성 요소의 "상(위) 또는 하(아래)"에 형성 또는 배치되는 것으로 기재되는 경우, 상(위) 또는 하(아래)는 두 개의 구성 요소들이 서로 직접 접촉되는 경우뿐만 아니라 하나 이상의 또 다른 구성 요소가 두 개의 구성 요소들 사이에 형성 또는 배치되는 경우도 포함한다. 또한, "상(위) 또는 하(아래)"으로 표현되는 경우 하나의 구성 요소를 기준으로 위쪽 방향뿐만 아니라 아래쪽 방향의 의미도 포함할 수 있다.
이하, 첨부된 도면을 참조하여 실시예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 대응하는 구성 요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.
도1은 실시예에 따른 머신 러닝 플랫폼 관리 시스템의 개념도이다. 도1을 참조하면, 실시예에 따른 머신 러닝 플랫폼 관리 시스템(1)은 마스터 노드(10), 세션 노드(20) 및 워커 노드(30)를 포함하여 구성될 수 있다. 실시예에서 하나의 마스터 노드(10)는 복수개의 세션 노드(20)를 관리할 수 있으며, 하나의 세션 노드(20)는 복수개의 워커 노드(30)를 관리할 수 있다. 즉, 마스터 노드(10)의 하위 노드는 세션 노드(20)이고, 세션 노드(20)의 하위 노드는 워커 노드(30)로 정의될 수 있다.
마스터 노드(10)는 외부 프로그램(2)을 통해 등록된 머신러닝 테스크(task) 및 명령어를 관리할 수 있다. 실시예에서 외부 프로그램(2)은 웹 클라이언트일 수 있다.
도2는 실시예에 따른 마스터 노드의 구성 블록도이다. 도2를 참조하면, 마스터 노드(10)는 자원 모니터링 매니저(11), 테스크 매니저(12), 명령 처리기(13), 클라이언트 매니저(14) 및 플랫폼 관리 데이터베이스(15)를 포함하여 구성될 수 있다.
자원 모니터링 매니저(11)는 연결되어 있는 각 세션 노드(20)가 관리하는 워커 노드(30)들의 자원들을 모니터링할 수 있다. 또한, 자원 모니터링 매니저(11)는 플랫폼 내의 머신 러닝을 위해 사용할 수 있는 자원 상황을 확인할 수 있다.
자원 상황은 하드웨어 자원 상황 및 소프트웨어 자원 상황으로 분류할 수 있다. 하드웨어 자원 상황은 CPU자원정보, GPU 자원정보, 메모리 자원정보, 디스크 자원정보 등을 포함할 수 있다. 구체적으로 하드웨어 자원 상황은 각 CPU 및 GPU의 연산처리 능력 단위인 GFLOPS, 메모리의 사용량 및 전체 크기, 디스크의 사용량 및 전체 크기 정보로 나타낼 수 있다. 소프트웨어 자원 상황은 패키지 버전, 라이브러리 버전, 파이썬 언어 버전, 프레임워크 종류, 프레임워크 버전, 운영체제 종류 및 운영체제 버전 등을 포함할 수 있다.
자원 모니터링 매니저(11)는 플랫폼 내의 전체 가용자원을 파악함으로써 각 세션 노드(20) 및 워커 노드(30)의 가용자원을 파악할 수 있다. 자원 모니터링 매니저(11)는 자원 상황을 외부 프로그램(2)에 전송하여 사용자가 실시간으로 플랫폼 자원상황을 파악하도록 제공할 수 있다.
또한, 자원 모니터링 매니저는 세션 노드의 자원상황에 따라 머신러닝 테스크를 분배하며 프레임워크 별 머신러닝 테스크의 수행 요청량에 따라 세션 노드 당 워커 노드의 할당을 재구성할 수 있다.
테스크 매니저(12)는 외부 프로그램(2)을 통해 학습 파일 및 데이터 세트(Dataset)을 플랫폼에 등록하는 기능을 제공할 수 있다. 테스크 매니저(12)는 세션 노드(20)에 머신 러닝 테스크 정보를 전송할 수 있다. 외부 프로그램(2)을 통하여 등록된 학습 파일 및 데이터 세트는 외부 네트워크 저장소(3)에서 각 테스크별 고유 폴더에 저장될 수 있다. 테스크 매니저(12)는 해당 고유 폴더의 정보 및 사용자 정보를 플랫폼 관리 데이터베이스(15)에 갱신하여 저장할 수 있다. 워커 노드(30)는 머신 러닝 수행시 플랫폼 관리 데이터베이스(15)에 저장된 테스크 정보를 바탕으로 외부 네트워크 저장소(3)에 액세스근하여 해당 테스크를 다운받아 학습을 진행할 수 있다.
명령 처리기(13)는 외부 프로그램(2)을 통해 사용자가 등록한 테스크에 대해 머신 러닝과 관련한 명령어를 처리할 수 있다. 사용자가 머신 러닝 실행과 관련한 명령어를 외부 프로그램을 통해 입력하면, 명령 처리기(13)는 해당 테스크 정보를 플랫폼 관리 데이터베이스(15)에서 확인하고 세션 노드(20)에 머신 러닝 테스크 정보 및 명령어를 전달할 수 있다.
클라이언트 매니저(14)는 외부 프로그램(2)으로부터 등록된 사용자 정보를 관리할 수 있다. 사용자 정보는 ID, Passwd, 권한과 관련한 정보를 포함할 수 있다. 등록된 사용자 정보는 플랫폼 관리 데이터베이스(15)에 갱신되어 저장될 수 있다.
플랫폼 관리 데이터베이스(15)는 플랫폼의 머신러닝 테스크, 사용자 정보, 데이터, 학습실행결과 Log 정보를 저장할 수 있다.
도3은 실시예에 따른 플랫폼 관리 데이터베이스의 동작을 설명하기 위한 도면이다. 도3을 참조하면, 사용자와 관련된 정보는 User Table로 관리되며 Idx 항목은 Task Table의 user_idx와 연결되어 사용자가 등록한 Task를 구분하는 데에 사용될 수 있다. User Table은 사용자의 id, 비밀번호, 권한을 관리한다.
테스크와 관련된 정보는 Task Table로 관리되며 Idx는 Log Table의 Task_idx와 연결되어 테스크와 머신러닝 수행으로 인한 결과값인 로그가 연결되어 학습을 실행한 테스크의 결과 정보 로그를 구분하는 데에 사용된다. Task Table은 테스크의 사용자id, 학습 상태, 명칭, 할당된 세션 노드의 Ip 및 연결 포트, 할당된 워커 노드의 Ip 및 연결 포트, 워커 노드에서 실행될 때의 프로세스 ID, 진행률, 학습의 정확도, Task의 등록된 시간으로 구성된 정보를 관리한다.
테스크의 수행 결과값은 Log Table로 관리되며 테스크의 idx와 Log Table의 Task_idx와 연결되어 각 테스크의 결과값들을 구분하는 데에 사용될 수 있다. Log Table은 결과값의 순서, 머신 러닝 수행으로 인한 결과의 출력물들을 관리한다.
Data Table은 테스크의 User_idx와 연결되어 관리되어 각 테스크의 데이터세트를 구분하는 데에 사용될 수 있다. Data Table은 머신러닝을 수행할 데이터에 대한 내용으로 데이터세트의 이름, 사용자의 메모, 등록된 시각, 외부 네트워크 저장소에 저장된 경로로 구성된 정보를 관리한다.
세션 노드(20)는 마스터 노드(10)로부터 전달받은 머신러닝 테스크 정보 및 명령어를 분석하여 실행 가능한 하위 노드에 할당할 수 있다.
세션 노드(20)는 워커 노드(30)로부터 보고받은 자원 상황에 따라 연산 처리 능력을 분석하고, 분석된 연산 처리 능력을 기준으로 머신러닝 테스크 정보 및 명령어를 할당할 수 있다.
또한, 세션 노드(20)는 연산 처리 능력에 따라 순차적으로 정렬된 워커 노드 리스트를 생성하여 워커 노드 리스트에 따라 머신러닝 테스크 정보 및 명령어를 할당할 수 있다.
세션 노드(20)는 동일한 프레임 워크를 사용하는 적어도 하나의 워커 노드를 관리할 수 있다.
도4는 실시예에 따른 세션 노드의 구성 블록도이다. 도4를 참조하면, 세션 노드(20)는 명령 분석기(21) 및 워커 노드 매니저(22)를 포함하여 구성될 수 있다.
명령 분석기(21)는 마스터 노드(10)로부터 전달받은 머신 러닝 테스크에 대한 명령어를 해석하여 적합한 워커 노드(30)에 전달할 수 있다. 명령어는 머신 러닝 테스크의 할당, 실행, 중지 및 학습 진행 상황 보고 중 적어도 하나를 포함할 수 있다. 마스터 노드(10)로부터 전달받은 명령어는 분석 과정을 거쳐 적합한 테스크를 수행할 수 있는 워커 노드(30)에 전달된다.
워커 노드 매니저(22)는 실시간으로 관리하는 워커 노드의 자원을 모니터링할 수있다. 워커 노드 매니저(22)는 실시간으로 각 워커 노드로부터 하드웨어 자원 상황은 CPU자원정보, GPU 자원정보, 메모리 자원정보, 디스크 자원정보, 패키지 버전, 라이브러리 버전, 파이썬 언어 버전, 프레임워크 종류, 프레임워크 버전, 운영체제 종류 및 운영체제 버전 중 적어도 하나를 포함하는 자원 상황을 보고받을 수 있다. 워커 노드 매니저(22)는 각 워커 노드로부터 보고받은 자원 상황을 바탕으로 관리하는 워커 노드(30)의 자원 상황에 따라 높은 연산처리 능력(GFLOPS) 순으로 워커 노드 리스트를 생성할 수 있다.
워커 노드 리스트는 워커 노드 매니저(22)가 모니터링 된 자원 상황을 바탕으로 연산처리 능력이 높은 순으로 워커 노드를 정렬시킨 리스트를 의미할 수 있다. 워커 노드 매니저(22)는 자원 상황을 모니터링 하는 주기에 따라 자원 상황이 변결될 때마다 워커 노드의 상황을 반영하여 워커 노드 리스트를 갱신할 수 있다. 이를 통하여 플랫폼 내에 부여되는 머신 러닝 테스크가 최적의 처리 능력을 보유한 워커 노드(30)에 의하여 실시간으로 빠르게 처리될 수 있도록 한다.
워커 노드 매니저(22)는 마스터 노드로부터 워커 노드 재구성 명령을 전송받게 되면 세션 노드를 변경할 워커 노드에 할당되는 세션 노드의 연결 정보를 전송한다.
워커 노드(30)는 세션 노드(20)로부터 할당받은 머신러닝 테스크 정보 및 명령어에 따라 머신러닝을 수행하고, 학습 진행 상황 및 자원 상황을 세션 노드로 보고할 수 있다.
워커 노드(30)는 할당받은 머신 러닝 테스크 정보 및 명령어에 따라 외부 네트워크 저장소에 액세스하여 머신 러닝 테스크 및 학습 데이터 파일을 다운로드 받을 수 있다.
학습 진행 상황은 Loss 값, 학습의 정확도, Validation 값 및 진행율 중 적어도 하나를 포함할 수 있다.
도5는 실시예에 따른 워커 노드의 구성 블록도이다. 도5를 참조하면, 실시예에 따른 워커 노드(30)는 테스크 실행기(31) 및 자원 관리 모듈(32)을 포함하여 구성될 수 있다.
테스크 실행기(31)는 세션 노드(20)로부터 주어진 머신 러닝 테스크 정보에 따라 머신 러닝을 수행할 환경을 세팅할 수 있다. 테스크 실행기(31)는 머신 러닝 테스크 정보에 따라 관련된 파이썬 버전 확인, 머신러닝 프레임워크 버전 확인, 외부 네트워크 저장소로부터 학습 데이터 세트 및 테스크 파일 다운로드를 수행하여 환경 세팅을 수행할 수 있다.
테스크 실행기(31)는 세션 노드(20)로부터 전달받은 머신러닝 수행 명령어에 따라 해당 테스크의 학습 실행, 학습 중지, 학습 진행 상황 보고를 수행할 수 있다. 테스크의 학습 실행은 세팅된 테스크의 환경에서 머신 러닝 수행을 요청하는 명령어이다. 테스크의 학습 중지는 진행 중인 학습 중단을 요청하는 명령어이다. 테스크의 학습 진행 상황 보고는 머신 러닝을 수행하면서 나오는 학습실행결과 Log의 보고를 요청하는 명령어이다. 테스크 실행기(31)는 학습 진행의 결과 모델 파일을 관리하며 플랫폼 관리 데이터베이스(15)에 해당 테스크와 학습 진행 결과 Log를 갱신할 수 있다.
자원 관리 모듈(32)은 주기적으로 워커 노드(30)의 하드웨어 및 소프트웨어 자원상황을 세션 노드(20)에 보고할 수 있다. 하드웨어 자원은 워커 노드(30)의 CPU/GPU의 연산처리 능력 및 실시간 연산처리 능력 사용률, 전체 메모리 및 실시간 메모리의 사용률, 전체 디스크 및 디스크의 사용률이다. 실시간 하드웨어 자원상황은 세션 노드가 워커 노드에 머신 러닝 테스크를 할당하는 주요 지표로 사용될 수 있다. 소프트웨어웨어 자원상황은 워커 노드가 세션 노드에 등록할 때의 설치된 패키지, 라이브러리, 가상환경 목록이다. 소프트웨어 자원이 새로 설치되거나 제거되는 경우, 워커 노드의 변경된 소프트웨어 자원 상황은 세션 노드에 전송되어 갱신될 수 있다.
도6은 실시예에 따른 머신 러닝 플랫폼 관리 방법의 순서도이다.
먼저, 워커 노드는 자원 정보를 세션 노드에 전송하여 연결을 플랫폼에 등록및 연결을 요청한다(S610).
다음으로, 세션 노드는 자원 정보를 통하여 워커 노드가 머신 러닝 수행이 가능한 노드인지 확인한다(S620).
다음으로, 세션 노드는 머신 러닝 수행이 가능한 적어도 하나의 워커 노드를 이용하여 그룹을 형성한다. 이 때, 세션 노드는 동일한 프레임 워크를 사용하는 적어도 하나의 워커 노드를 이용하여 그룹을 형성한다(S630).
다음으로, 마스터 노드는 외부 프로그램을 통하여 머신러닝 테스크(task) 및 명령어를 등록받는다(S640).
다음으로, 마스터 노드는 머신러닝 테스크 정보 및 명령어를 세션 노드에 전달한다(S650).
다음으로, 세션 노드는 머신러닝 테스크 정보 및 명령어를 분석하여 실행 가능한 워커 노드에 할당한다(S660).
다음으로, 워커 노드는 세션 노드로부터 할당받은 머신러닝 테스크 정보 및 명령어에 따라 머신러닝을 수행한다(S670).
다음으로, 워커 노드는 학습 진행 상황 및 자원 상황을 세션 노드로 보고한다(S680).
도7은 실시예에 따른 워커 노드 연결 과정을 설명하기 위한 도면이다. 도7을 참조하면, 워커 노드는 실행시 세션 노드에 자동으로 연결요청을 한다. 이 때 워커 노드는 자신의 하드웨어 자원 상황 및 소프트웨어 자원 상황을 연결 요청과 함께 전송한다(S701).
세션 노드의 워커 노드 매니저는 워커 노드의 연결요청을 수신한다. 세션 노드의 워커 노드 매니저는 마스터 노드에 등록된 머신 러닝 테스크를 실행할 수 있는 프레임워크가 설치된 워커 노드인지 확인한다. 워커 노드 매니저는 학습 수행이 가능한 워커 노드임을 확인하면 해당 워터 노드를 워커 노드 리스트에 추가한다(S702).
동시에 마스터 노드의 자원 모니터링 매니저는 세션 노드가 관리하는 워커 노드에 대한 정보를 갱신하여 새로운 워커 노드의 자원 상황을 반영한다(S703).
자원 모니터링 매니저는 외부 프로그램에 각 세션 노드 및 워커 노드의 연결을 반영한 자원 상황을 제공한다(S704).
도8은 실시예에 따른 머신 러닝 테스크 할당 과정을 설명하기 위한 도면이다. 도8을 참조하면, 외부 프로그램을 통해 사용자가 플랫폼에 등록되면 클라이언트 매니저로 사용자의 정보가 전달된다(S801).
사용자 정보는 플랫폼 관리 데이터베이스에 등록된다(S802).
등록된 사용자는 외부 프로그램을 통하여 머신 러닝 테스크를 등록할 수 있다(S803).
사용자가 머신 러닝 테스크를 등록하면 머신 러닝 테스크의 데이터 세트 및 학습 파일이 외부 네트워크 저장소에 업로드된다(S804).
또한 외부 네트워크 저장소에 해당 머신 러닝 테스크 파일의 위치가 포함된 머신 러닝 테스크 정보를 테스크 매니저로 전송하면, 테스크 매니저는 플랫폼 관리 데이터 베이스에 머신 러닝 테스크 정보를 등록한다(S805).
테스크 매니저는 등록된 테스크의 머신 러닝 실행환경을 확인하여 머신 러닝이 실행 가능한 워커 노드를 관리하는 세션 노드에 테스크 정보를 전달한다(S806).
워커 노드 매니저는 워커 노드 리스트를 통하여 테스크를 할당할 워커 노드를 선정한다(S807).
워커 노드 매니저는 선정된 워커 노드에 테스크 정보를 전달한다(S808).
워커 노드는 테스크 정보를 바탕으로 외부 네트워크 저장소에 액세스하여 테스크의 데이터 세트 및 학습 데이터 파일을 다운로드 받는다(S809).
도9은 실시예에 따른 머신 러닝 명령어 실행 과정을 설명하기 위한 도면이다. 도9를 참조하면, 외부 프로그램으로부터 마스터 노드에 등록된 테스크의 원격 수행 명령이 전송된다(S901).
명령 처리기는 플랫폼 관리 데이터베이스에 테스크 정보를 요청하고 테스크 정보를 로드하여, 테스크를 전달받은 세션 노드에 테스크 정보 및 명령어를 전송한다(S902~904).
명령 분석기는 명령어를 분석하여 테스크가 할당된 워커 노드에 명령을 전송한다(S905).
워커 노드는 등록된 테스크와 수신된 명령어를 수행한다. 테스크를 수행하면서 출력되는 학습 모델과 같은 학습 수행 결과 파일들은 외부 네트워크 저장소의 해당 테스크 폴더에 저장된다(S906).
학습 수행을 진행하면서 출력되는 중간 결과값과 같은 Log들은 플랫폼 관리 데이터베이스에 갱신된다(S907).
워커 노드는 명령 수행 결과를 명령 분석기에 전송하여 명령이 올바르게 수행되었는지 여부를 세션 노드에 보고한다(S908).
명령 분석기는 명령 처리기에 명령 수행 결과를 전송하여 마스터 노드에 전달한다(S909).
학습 수행 결과가 외부 프로그램에 전송되면 플랫폼 관리 데이터베이스에 접근하여 해당 학습 수행 Log를 전송받는다(S910~911).
사용자는 학습 수행 Log를 통해 현재 머신 러닝의 진행상황 및 중간 결과값 등을 확인할 수 있다. 또한 사용자는 외부 프로그램을 통하여 외부 네트워크 저장소에 저장된 학습 수행 결과 파일을 실시간으로 다운로드 받을 수 있다(S912).
도10은 본 발명의 실시예에 따른 자원 모니터링 매니저의 동작을 설명하기 위한 도면이다.
도10을 참조하면, 마스터 노드의 자원 모니터링 매니저는 자원상황을 바탕으로 특정 프레임워크에 머신러닝 테스크의 부하가 집중될 경우, 머신러닝 테스크의 부하 분산을 위한 필요성을 판단한다. 자원 모니터링 매니저는 GFLOPS의 사용률, 메모리 사용률 및 디스크 사용률 중 적어도 하나에 따라 머신 러닝 테스크에 대한 부하 분산의 필요성을 판단할 수 있다(S1001).
마스터 노드의 자원 모니터링 매니저는 부하 분산을 위하여 세션 노드 B를 추가하는 명령을 세션 노드 A 및 B에 전송하여 워커 노드 재구성 명령을 내린다. 이는 실시간으로 모니터링되는 자원상황과 플랫폼 내 부여된 머신 러닝 테스크에 따라 효율적으로 부하분산을 하기 위함이다. 마스터 노드는 세션 노드 B에 할당이 가능한 워커 노드를 선정한다. 마스터 노드는 재구성 명령을 위해 변경될 세션 노드 및 워커 노드의 정보를 각각의 세션 노드 A 및 B에게 전송한다(S1002).
세션 노드 A는 새로 할당되는 세션 노드 B의 연결 정보를 워커노드에 전송한다(S1003).
워커 노드는 새로 할당되는 세션 노드 B에 연결을 수행하고, 세션 노드 B에게 자원 상황을 보고한다(S1004).
세션 노드 B는 워커 노드 매니저를 통하여 워커 노드 리스트에 새로 할당된 워커 노드를 추가하고 자원을 관리한다(S1005).
본 실시예에서 사용되는 '~부'라는 용어는 소프트웨어 또는 FPGA(field-programmable gate array) 또는 ASIC과 같은 하드웨어 구성요소를 의미하며, '~부'는 어떤 역할들을 수행한다. 그렇지만 '~부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '~부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '~부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함한다. 구성요소들과 '~부'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '~부'들로 결합되거나 추가적인 구성요소들과 '~부'들로 더 분리될 수 있다. 뿐만 아니라, 구성요소들 및 '~부'들은 디바이스 또는 보안 멀티미디어카드 내의 하나 또는 그 이상의 CPU들을 재생시키도록 구현될 수도 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
1: 머신 러닝 플랫폼 관리 시스템
2: 외부 프로그램
3: 외부 네트워크 저장소
10: 마스터 노드
20: 세션 노드
30: 워커 노드

Claims (10)

  1. 외부 프로그램을 통해 등록된 머신 러닝 테스크(task) 및 명령어를 관리하는 마스터 노드;
    상기 마스터 노드로부터 전달받은 상기 머신 러닝 테스크 정보 및 상기 명령어를 분석하여 실행 가능한 하위 노드에 할당하는 세션 노드; 및
    상기 세션 노드로부터 할당받은 상기 머신러닝 테스크 정보 및 상기 명령어에 따라 머신러닝을 수행하고, 학습 진행 상황 및 자원 상황을 상기 세션 노드로 보고하는 워커 노드를 포함하며,
    상기 마스터 노드는 상기 자원 상황에 포함되는 GFLOPS의 사용률, 메모리 사용률 및 디스크 사용률에 따라 상기 머신 러닝 테스크에 대한 부하 분산의 필요성을 판단하고, 부하 분산의 필요성이 있다고 판단되는 제1세션 노드에 연결된 제1워커 노드 중 제2세션 노드에 할당이 가능한 제2워커 노드를 선정하여 변경 대상 노드에 대한 정보를 상기 제1세션 노드 및 상기 제2세션 노드에 전송하고,
    상기 제1세션 노드는 상기 제2세션 노드의 연결 정보를 상기 제1워커 노드에 전송하며,
    상기 제2워커 노드는 상기 제2세션 노드로의 연결을 수행한 후, 상기 제2세션 노드로부터 할당받은 상기 머신러닝 테스크 정보 및 상기 명령어에 따라 머신러닝을 수행하고, 학습 진행 상황 및 자원 상황을 상기 제2세션 노드로 보고하는 머신 러닝 플랫폼 관리 시스템.
  2. 제1항에 있어서,
    상기 세션 노드는 상기 워커 노드로부터 보고받은 자원 상황에 따라 연산 처리 능력을 분석하고, 분석된 연산 처리 능력을 기준으로 상기 머신러닝 테스크 정보 및 상기 명령어를 할당하는 머신 러닝 플랫폼 관리 시스템.
  3. 제2항에 있어서,
    상기 세션 노드는 상기 연산 처리 능력에 따라 순차적으로 정렬된 워커 노드 리스트를 생성하여 상기 워커 노드 리스트에 따라 상기 머신러닝 테스크 정보 및 상기 명령어를 할당하는 머신 러닝 플랫폼 관리 시스템.
  4. 제1항 또는 제2항에 있어서,
    상기 자원 상황은 CPU자원정보, GPU 자원정보, 메모리 자원정보, 디스크 자원정보, 패키지 버전, 라이브러리 버전, 파이썬 언어 버전, 프레임워크 종류, 프레임워크 버전, 운영체제 종류 및 운영체제 버전 중 적어도 하나를 포함하는 머신 러닝 플랫폼 관리 시스템.
  5. 제1항에 있어서,
    상기 세션 노드는 동일한 프레임 워크를 사용하는 적어도 하나의 워커 노드를 관리하는 머신 러닝 플랫폼 관리 시스템.
  6. 제1항에 있어서,
    상기 워커 노드는 할당받은 상기 머신 러닝 테스크 정보 및 상기 명령어에 따라 외부 네트워크 저장소에 액세스하여 상기 머신 러닝 테스크 및 학습 데이터 파일을 다운로드 받는 머신 러닝 플랫폼 관리 시스템.
  7. 제1항에 있어서,
    상기 학습 진행 상황은 Loss 값, 학습의 정확도, Validation 값 및 진행율 중 적어도 하나를 포함하는 머신 러닝 플랫폼 관리 시스템.
  8. 제1항에 있어서,
    상기 명령어는 상기 머신 러닝 테스크의 할당, 실행, 중지 및 학습 진행 상황 보고 중 적어도 하나를 포함하는 머신 러닝 플랫폼 관리 시스템.
  9. 워커 노드가 자원 정보를 세션 노드에 전송하여 연결을 요청하는 단계;
    상기 세션 노드가 상기 자원 정보를 통하여 상기 워커 노드가 머신 러닝 수행이 가능한 노드인지 확인하는 단계;
    상기 세션 노드가 머신 러닝 수행이 가능한 적어도 하나의 워커 노드를 이용하여 그룹을 형성하는 단계;
    마스터 노드가 외부 프로그램을 통하여 머신러닝 테스크(task) 및 명령어를 등록받는 단계;
    상기 마스터 노드가 상기 머신러닝 테스크 정보 및 상기 명령어를 상기 세션 노드에 전달하는 단계;
    상기 세션 노드가 상기 머신러닝 테스크 정보 및 상기 명령어를 분석하여 실행 가능한 워커 노드에 할당하는 단계;
    상기 워커 노드가 상기 세션 노드로부터 할당받은 상기 머신러닝 테스크 정보 및 상기 명령어에 따라 머신러닝을 수행하는 단계;
    상기 워커 노드가 학습 진행 상황 및 자원 상황을 상기 세션 노드로 보고하는 단계;
    상기 마스터 노드가 상기 자원 상황에 포함되는 GFLOPS의 사용률, 메모리 사용률 및 디스크 사용률에 따라 상기 머신 러닝 테스크에 대한 부하 분산의 필요성을 판단하는 단계;
    상기 마스터 노드가 부하 분산의 필요성이 있다고 판단되는 제1세션 노드에 연결된 제1워커 노드 중 제2세션 노드에 할당이 가능한 제2워커 노드를 선정하는 단계;
    상기 마스터 노드가 변경 대상 노드에 대한 정보를 상기 제1세션 노드 및 상기 제2세션 노드에 전송하는 단계;
    상기 제1세션 노드가 상기 제2세션 노드의 연결 정보를 상기 제1워커 노드에 전송하는 단계;
    상기 제2워커 노드가 상기 제2세션 노드로의 연결을 수행하는 단계; 및
    상기 제2워커 노드가 상기 제2세션 노드로부터 할당받은 상기 머신러닝 테스크 정보 및 상기 명령어에 따라 머신러닝을 수행하고, 학습 진행 상황 및 자원 상황을 상기 제2세션 노드로 보고하는 단계를 포함하는 머신 러닝 플랫폼 관리 방법.
  10. 제9항에 있어서,
    상기 그룹을 형성하는 단계는,
    동일한 프레임 워크를 사용하는 적어도 하나의 워커 노드를 이용하여 그룹을 형성하는 머신 러닝 플랫폼 관리 방법.
KR1020190051638A 2019-05-02 2019-05-02 머신 러닝 플랫폼 관리 시스템 및 방법 KR102224487B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020190051638A KR102224487B1 (ko) 2019-05-02 2019-05-02 머신 러닝 플랫폼 관리 시스템 및 방법
PCT/KR2020/002167 WO2020222407A1 (ko) 2019-05-02 2020-02-14 머신 러닝 플랫폼 관리 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190051638A KR102224487B1 (ko) 2019-05-02 2019-05-02 머신 러닝 플랫폼 관리 시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20200127467A KR20200127467A (ko) 2020-11-11
KR102224487B1 true KR102224487B1 (ko) 2021-03-08

Family

ID=73028855

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190051638A KR102224487B1 (ko) 2019-05-02 2019-05-02 머신 러닝 플랫폼 관리 시스템 및 방법

Country Status (2)

Country Link
KR (1) KR102224487B1 (ko)
WO (1) WO2020222407A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102538389B1 (ko) * 2020-11-12 2023-05-31 숭실대학교 산학협력단 이기종 분산 기계학습 플랫폼 환경을 위한 로드 밸런싱 방법, 이를 수행하기 위한 기록 매체 및 장치
EP4036806A1 (en) * 2021-02-02 2022-08-03 Samsung Electronics Co., Ltd. Method, system and apparatus for federated learning

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013073301A (ja) 2011-09-27 2013-04-22 Hitachi Ltd 分散計算機システム及び分散計算機システムの制御方法
US20180331897A1 (en) 2016-01-30 2018-11-15 Huawei Technologies Co.,Ltd. Method and device for training model in distributed system
US20180341525A1 (en) * 2017-05-23 2018-11-29 Kla-Tencor Corporation Scalable and Flexible Job Distribution Architecture for a Hybrid Processor System to Serve High Bandwidth Real Time Computational Systems Used in Semiconductor Inspection and Metrology Systems

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101013073B1 (ko) * 2007-12-17 2011-02-14 한국전자통신연구원 태스크 분배 및 병렬 처리 시스템과 그 방법
KR102145795B1 (ko) * 2016-09-07 2020-08-19 한국전자통신연구원 복수의 워커 노드가 분산된 환경에서 데이터 스트림을 분석하고 처리하는 방법 및 장치, 그리고 태스크를 관리하는 방법 및 장치

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013073301A (ja) 2011-09-27 2013-04-22 Hitachi Ltd 分散計算機システム及び分散計算機システムの制御方法
US20180331897A1 (en) 2016-01-30 2018-11-15 Huawei Technologies Co.,Ltd. Method and device for training model in distributed system
US20180341525A1 (en) * 2017-05-23 2018-11-29 Kla-Tencor Corporation Scalable and Flexible Job Distribution Architecture for a Hybrid Processor System to Serve High Bandwidth Real Time Computational Systems Used in Semiconductor Inspection and Metrology Systems

Also Published As

Publication number Publication date
WO2020222407A1 (ko) 2020-11-05
KR20200127467A (ko) 2020-11-11

Similar Documents

Publication Publication Date Title
US10740208B2 (en) Cloud infrastructure optimization
Bhimani et al. Accelerating big data applications using lightweight virtualization framework on enterprise cloud
US20200401437A1 (en) Methods and apparatus to manage virtual machines
US11537809B2 (en) Dynamic container grouping
US7496893B2 (en) Method for no-demand composition and teardown of service infrastructure
US9910888B2 (en) Map-reduce job virtualization
Vögler et al. LEONORE--large-scale provisioning of resource-constrained IoT deployments
US10007584B2 (en) Automated container migration in a platform-as-a-service system
JP2008527513A (ja) グリッド環境にサブミットされたグリッド・ジョブによる使用の前のリソース機能の検査
Flores et al. Large-scale offloading in the Internet of Things
KR20220006490A (ko) 워크로드 동적 자원 배치 및 최적화 수행관리를 위한 하이브리드 클라우드 자원 배분 방법
US11924117B2 (en) Automated local scaling of compute instances
KR102224487B1 (ko) 머신 러닝 플랫폼 관리 시스템 및 방법
Diallo et al. AutoMigrate: a framework for developing intelligent, self-managing cloud services with maximum availability
US10509688B1 (en) System and method for migrating virtual machines between servers
Shyam et al. Modelling resource virtualisation concept in cloud computing environment using finite state machines
Calcaterra et al. MaxHadoop: An efficient scalable emulation tool to test SDN protocols in emulated Hadoop environments
Serbanescu et al. A design pattern for optimizations in data intensive applications using ABS and JAVA 8
Van Hensbergen et al. A unified execution model for cloud computing
Herlicq et al. Nextgenemo: an efficient provisioning of edge-native applications
Lebre et al. Vmplaces: A generic tool to investigate and compare vm placement algorithms
Maenhaut et al. Efficient resource management in the cloud: From simulation to experimental validation using a low‐cost Raspberry Pi testbed
Yu et al. Research and implementation of online judgment system based on micro service
US11500568B2 (en) LPM management using contingent and conditional inputs
Nirmala et al. Research Challenges in Pre‐Copy Virtual Machine Migration in Cloud Environment

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant