KR20190119487A - Node management system for small data machine learning - Google Patents

Node management system for small data machine learning Download PDF

Info

Publication number
KR20190119487A
KR20190119487A KR1020180060497A KR20180060497A KR20190119487A KR 20190119487 A KR20190119487 A KR 20190119487A KR 1020180060497 A KR1020180060497 A KR 1020180060497A KR 20180060497 A KR20180060497 A KR 20180060497A KR 20190119487 A KR20190119487 A KR 20190119487A
Authority
KR
South Korea
Prior art keywords
node
worker
command
worker node
master
Prior art date
Application number
KR1020180060497A
Other languages
Korean (ko)
Other versions
KR102182493B1 (en
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 KR20190119487A publication Critical patent/KR20190119487A/en
Application granted granted Critical
Publication of KR102182493B1 publication Critical patent/KR102182493B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Computer Hardware Design (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

According to an embodiment of the present invention, in a node management system for small data machine learning including a master node and worker nodes, the master node manages a connection relationship of the worker nodes with a node map, checks a status of the worker nodes, assigns a command received from an external program to the worker nodes according to the worker node information, and analyzes and stores a result of executing a job received from the worker nodes and the worker nodes execute the command received from the master node using previously stored learning data and an executable file to return the result of executing the job.

Description

스몰 데이터 기계 학습을 위한 노드 관리 시스템{NODE MANAGEMENT SYSTEM FOR SMALL DATA MACHINE LEARNING}Node management system for small data machine learning {NODE MANAGEMENT SYSTEM FOR SMALL DATA MACHINE LEARNING}

본 발명의 일실시예는 스몰 데이터 기계 학습을 위한 노드 관리 시스템에 관한 것이다.One embodiment of the present invention relates to a node management system for small data machine learning.

기계학습을 위한 플랫폼에는 분산컴퓨팅 플랫폼인 하둡(Hadoop)이 이용되어 왔다. 하둡은 아파치 루씬을 기반으로 만든 검색 엔진인 너치 프로젝트에서 분산처리를 지원하기 위해 개발 되었다. 하둡의 핵심 기술은 HDFS(Hadoop Distributed File System)와 맵 리듀스(Map reduce)가 있으며, 하나의 마스터 노드와 여러 워커 노드들로 이루어진 클러스터를 관리한다. 하둡에서는 빅 데이터를 처리하기 위해 먼저 대용량 파일을 HDFS를 통해 여러 워커 노드에 분산시켜 저장한 후, 맵 리듀스 연산을 통해 병렬적으로 데이터를 처리한다. Hadoop, a distributed computing platform, has been used as a platform for machine learning. Hadoop was developed to support distributed processing in the Nutch project, a search engine based on Apache Lucene. Hadoop's core technologies include the Hadoop Distributed File System (HDFS) and Map Reduce, which manage a cluster of one master node and multiple worker nodes. In order to process big data, Hadoop first stores large files distributed over multiple worker nodes via HDFS, and then processes the data in parallel through map reduce operations.

하지만 아파치 하둡에는 단점이 있다. 연산 수행시마다 HDFS로부터 읽어와서 결과를 HDFS에 쓰는 작업을 수행하기 때문에 디스크 I/O로 인한 속도 저하가 발생할 수 있다. 이를 해결하기 위해 램(RAM) 기반 데이터 프로세싱에 대한 연구가 이루어졌는데, Piccolo 프로젝트는 그중 하나로써 key-value 테이블을 이용하여 공유 메모리를 구현하였다. 하지만 대신 Fault-tolerance를 높이기 위해 디스크 I/O를 수행해야 하며, 이는 성능저하의 원인이 된다. But Apache Hadoop has its drawbacks. Each operation performs a read operation from HDFS and writes the result to HDFS, which can slow down disk I / O. To solve this problem, research on RAM-based data processing was carried out. Piccolo project has implemented shared memory using key-value table as one of them. However, instead of performing disk I / O to improve fault-tolerance, this can cause performance degradation.

이후에 등장한 아파치 스파크는 메모리를 이용하여 연산을 수행하면서 Fault-tolerance로 인한 성능저하를 없애는데 성공했다. 아파치 스파크는 RDD(Resilient Distributed Datasets)를 연산 단위로 사용하며, 생성된 RDD에 대한 수정연산을 금지하여 시스템 실패시 다른 노드에서 재생성하여 연산을 완료할 수 있게 하였다. Apache Spark, which appeared later, succeeded in eliminating the performance penalty of fault-tolerance while performing computations using memory. Apache Spark uses RDD (Resilient Distributed Datasets) as a unit of operation and prohibits modification to the generated RDD so that it can be regenerated on another node to complete the operation in case of system failure.

이러한 기계학습 플랫폼들은 빅데이터 처리가 목적이기 때문에, 하나의 큰 작업을 병렬 수행하는 것에 초점이 맞춰져 있다. 때문에, 이들 플랫폼은 병렬처리 성능이 뛰어나 빅데이터 처리에 적합하지만, 병렬 처리를 위해 각 태스크의 소스코드에 API(Application Programming Interface) 사용이 강제되어 기존 소스코드 활용이 불가능하고, 여러 태스크를 수행하는 경우 오히려 비효율적일 수 있다.Because these machine learning platforms are for big data processing, they are focused on doing one big task in parallel. Therefore, these platforms have excellent parallelism performance and are suitable for big data processing. However, the use of API (Application Programming Interface) in the source code of each task is enforced for parallel processing, making it impossible to utilize existing source code and performing multiple tasks. The case may be rather inefficient.

본 발명이 이루고자 하는 기술적 과제는 다중 호스트에서 동작하는 워커 노드에 기계학습 작업을 분배하고 실행 결과를 마스터 노드에서 실시간으로 모니터링하여 효율적인 노드 관리를 할 수 있는 스몰 데이터 기계 학습을 위한 노드 관리 시스템을 제공하는데 있다.The technical problem to be achieved by the present invention is to provide a node management system for small data machine learning that can distribute the machine learning tasks to worker nodes operating in multiple hosts and monitor the execution results in real time from the master node for efficient node management. It is.

본 발명의 실시예에 따르면, 마스터 노드 및 워커 노드를 포함하는 스몰 데이터 기계 학습을 위한 노드 관리 시스템에 있어서, 상기 마스터 노드는 상기 워커 노드들의 연결 관계를 노드맵으로 관리하고, 상기 워커 노드들의 상태를 점검하고, 워커 노드 정보에 따라 외부 프로그램으로부터 받은 명령을 상기 워커 노드에 할당하며 상기 워커 노드로부터 수신한 작업 실행 결과를 분석하여 저장하며, 상기 워커 노드는 상기 마스터 노드로부터 받은 명령을 기 저장된 학습 데이터 및 실행 파일을 이용하여 실행하여 작업 실행 결과를 회신하는 스몰 데이터 기계 학습을 위한 노드 관리 시스템을 제공한다.According to an embodiment of the present invention, in a node management system for small data machine learning including a master node and a worker node, the master node manages a connection relationship of the worker nodes with a node map, and states of the worker nodes. Check, assign a command received from an external program according to worker node information to the worker node, analyze and store a job execution result received from the worker node, and the worker node stores previously received commands from the master node. Provided is a node management system for small data machine learning that executes using data and executable files to return job execution results.

상기 마스터 노드는, 상기 워커 노드에 대한 정보를 저장하는 CRR(Computing Resources Repository); 상기 외부 프로그램으로부터 받은 명령을 처리하는 명령 처리기; 및 상기 워커 노드를 관리하는 노드매니저를 포함할 수 있다.The master node may include a Computing Resources Repository (CRR) for storing information about the worker node; A command processor for processing a command received from the external program; And a node manager managing the worker node.

상기 명령 처리기는 상기 워커 노드로부터 받은 작업 실행 결과를 분석하는 결과분석기; 및 상기 외부 프로그램으로터 받은 명령을 전송하기 위한 워커 노드를 선정하고, 상기 명령의 종류에 따라 선정된 워커 노드에 명령을 전달하는 명령분배기를 포함할 수 있다.The command processor includes a result analyzer for analyzing a job execution result received from the worker node; And a command distributor for selecting a worker node for transmitting a command received from the external program and transferring the command to a selected worker node according to the type of the command.

상기 노드매니저는 가용 CPU코어의 개수를 기준으로 상기 워커 노드를 정렬한 노드 맵을 생성하여 관리할 수 있다.The node manager may generate and manage a node map in which the worker nodes are arranged based on the number of available CPU cores.

상기 노드매니저는 상기 워커 노드가 상기 마스터 노드에 연결을 시도할 때 상기 노드 맵에 해당 워커 노드를 할당하고 인덱스를 통보할 수 있다.When the worker node attempts to connect to the master node, the node manager may allocate a corresponding worker node to the node map and notify the index.

상기 마스터 노드는 명령을 전송할 워커 노드의 인덱스 값을 통해 워커 노드 클래스에 접근하고 명령을 전달할 수 있다.The master node may access a worker node class and transmit a command through an index value of a worker node to transmit a command.

상기 인덱스는 특정 명령의 실행부터 종료시까지 유지될 수 있다.The index may be maintained from execution to termination of a specific command.

상기 워커 노드는, 상기 마스터 노드로부터 받은 명령을 수행하는 작업실행기; 및 상기 마스터 노드와 주고받은 패킷을 처리하는 패킷처리기를 포함할 수 있다.The worker node may include a task executor for executing a command received from the master node; And a packet processor configured to process packets exchanged with the master node.

상기 마스터 노드는 상기 외부 프로그램에서 워커 노드 정보를 요청한 경우, 해당하는 워커 노드 정보를 상기 CRR로부터 로드하여 상기 외부 프로그램으로 전송하거나 또는 해당 워커 노드에 워커 노드 정보를 요청하여 상기 외부 프로그램으로 포워딩할 수 있다.When the master node requests worker node information from the external program, the master node may load corresponding worker node information from the CRR and transmit the worker node information to the external program, or request the worker node information from the corresponding worker node and forward it to the external program. have.

상기 노드매니저는 명령 수행에 따라 워커 노드의 가용 자원을 확인하고, 가용 자원에 따라 노드 맵을 재구성할 수 있다.The node manager may check available resources of the worker node according to command execution and reconfigure the node map according to the available resources.

본 발명인 스몰 데이터 기계 학습을 위한 노드 관리 시스템은 기계학습 작업을 워커 노드에서 실행시키고, 이를 원격으로 마스터 노드에서 통합 관리할 수 있다. The node management system for small data machine learning of the present invention executes a machine learning task in a worker node, and remotely manages it in a master node.

또한, 실행 할 수 있는 태스크에 제한이 없기 때문에, 기존 소스코드를 모두 재활용할 수 있다.In addition, since there are no restrictions on the tasks that can be executed, all existing source code can be recycled.

또한, 스몰데이터를 다양한 방법으로 분석하기에 적합하며 필요한 경우 다른 분산컴퓨팅 플랫폼과 융합하여 빅데이터를 처리할 수 있다. It is also suitable for analyzing small data in various ways and can be integrated with other distributed computing platforms to process big data if necessary.

또한, 기계학습에 활용시 빅데이터 뿐만 아니라 다양한 스몰 데이터를 다각도로 분석하여 기계학습을 통한 인공지능 고도화에 기여할 수 있다.In addition, it can contribute to the advancement of artificial intelligence through machine learning by analyzing various small data as well as big data when used in machine learning.

도1은 본 발명의 실시예에 따른 스몰 데이터 기계 학습을 위한 노드 관리 시스템의 개념도이다.
도2 및 도3은 본 발명의 실시예에 따른 스몰 데이터 기계 학습을 위한 노드 관리 시스템의 동작을 설명하기 위한 도면이다.
도4는 본 발명의 실시예에 따른 노드 맵의 개념도이다.
도5는 본 발명의 실시예에 따른 노드매니저의 동작을 설명하기 위한 도면이다.
1 is a conceptual diagram of a node management system for small data machine learning according to an embodiment of the present invention.
2 and 3 are diagrams for describing an operation of a node management system for small data machine learning according to an embodiment of the present invention.
4 is a conceptual diagram of a node map according to an embodiment of the present invention.
5 is a view for explaining the operation of the node manager according to an embodiment of the present invention.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. As the invention allows for various changes and numerous embodiments, particular embodiments will be illustrated and described in the drawings. However, this is not intended to limit the present invention to specific embodiments, it should be understood to include all modifications, equivalents, and substitutes included in the spirit and scope of the present invention.

제2, 제1 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되지는 않는다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제2 구성요소는 제1 구성요소로 명명될 수 있고, 유사하게 제1 구성요소도 제2 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다. Terms including ordinal numbers, such as second and first, may be used to describe various components, but the components are not limited by the terms. The 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. The term and / or includes a combination of a plurality of related items or any item of a plurality of related items.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. When a component is referred to as being "connected" or "connected" to another component, it may be directly connected to or connected to that other component, but it may be understood that other components may be present in between. Should be. On the other hand, when a component is said to be "directly connected" or "directly connected" to another component, it should be understood that there is no other component in between.

본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used herein is for the purpose of describing particular example embodiments only and is not intended to be limiting of the present invention. Singular expressions include plural expressions unless the context clearly indicates otherwise. In this application, the terms "comprise" or "have" are intended to indicate that there is a feature, number, step, operation, component, part, or combination thereof described in the specification, and one or more other features. It is to be understood that the present invention does not exclude the possibility of the presence or the addition of numbers, steps, operations, components, components, or a combination thereof.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art. Terms such as those defined in the commonly used dictionaries should be construed as having meanings consistent with the meanings in the context of the related art and shall not be construed in ideal or excessively formal meanings unless expressly defined in this application. Do not.

이하, 첨부된 도면을 참조하여 실시예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 대응하는 구성 요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.DETAILED DESCRIPTION Hereinafter, exemplary embodiments will be described in detail with reference to the accompanying drawings, and the same or corresponding components will be given the same reference numerals regardless of the reference numerals, and redundant description thereof will be omitted.

도1은 본 발명의 실시예에 따른 스몰 데이터 기계 학습을 위한 노드 관리 시스템의 개념도이다. 1 is a conceptual diagram of a node management system for small data machine learning according to an embodiment of the present invention.

도1을 참조하면, 본 발명의 실시예에 따른 스몰 데이터 기계 학습을 위한 노드 관리 시스템은 마스터 노드(100) 및 워커 노드(200)를 포함하여 구성될 수 있다. 하나의 마스터 노드(100)는 복수개의 워커 노드(200)와 연계되어 있으며, 마스터 노드(100)는 연계되어 있는 워커 노드(200)를 관리하고, 명령을 전달할 수 있다.Referring to FIG. 1, a node management system for small data machine learning according to an embodiment of the present invention may include a master node 100 and a worker node 200. One master node 100 is associated with a plurality of worker nodes 200, and the master node 100 may manage the worker nodes 200 to which the master node 100 is linked and transmit commands.

본 발명의 실시예에서 외부 프로그램(300)은 본 발명의 실시예에 따른 스몰 데이터 기계 학습을 위한 노드 관리 시스템 이외의 모든 프로그램을 의미할 수 있다. 즉 다른 호스트에서 동작하는 프로그램과 본 발명의 실시예에 따른 시스템을 기반으로 작성된 사용자 프로그램을 의미할 수 있다. 사용자 프로그램의 경우 시스템에서 제공하는 API를 통해 마스터 노드(100)를 동작시킬 수 있고, 외부 호스트의 경우 http 명령어를 통해 마스터 노드(100)를 동작할시킬 수 있다.In the embodiment of the present invention, the external program 300 may mean all programs other than the node management system for small data machine learning according to the embodiment of the present invention. That is, it may mean a user program created based on a program running on another host and a system according to an embodiment of the present invention. In the case of a user program, the master node 100 may be operated through an API provided by the system, and in the case of an external host, the master node 100 may be operated through an http command.

마스터 노드(100)는 워커 노드(200)들의 연결 관계를 노드 맵으로 관리하고, 워커 노드(200)들의 상태를 점검하고, 워커 노드 정보에 따라 외부 프로그램(300)으로부터 받은 명령 또는 작업을 워커 노드(200)에 할당하며 워커 노드(200)로부터 수신한 작업 실행 결과를 분석하여 저장할 수 있다.The master node 100 manages the connection relationship of the worker nodes 200 with a node map, checks the state of the worker nodes 200, and receives a command or a task received from the external program 300 according to the worker node information. The job execution result received from the worker node 200 may be analyzed and stored.

마스터 노드(100)는 CRR(Computing Resources Repository) (110), 명령처리기(120), 노드매니저(130)를 포함하여 구성될 수 있다.The master node 100 may include a Computing Resources Repository (CRR) 110, a command processor 120, and a node manager 130.

CRR(110)는 클러스터의 컴퓨팅 자원인 워커 노드(200)에 대한 정보를 저장하는 저장소이다. 워커 노드(200)에 대한 정보는 워커 노드(200)의 사양과 구동가능한 기계학습 프레임워크, 그리고 각 워커 노드(200)에 기 전송한 학습데이터 및 실행파일 정보를 포함할 수 있다. 또한 CRR(110)은 각 워커 노드(200)의 최근 실행 결과를 저장할 수 있다. The CRR 110 is a store that stores information about the worker node 200, which is a computing resource of the cluster. The information about the worker node 200 may include a specification of the worker node 200, a machine learning framework that can be driven, and learning data and execution file information previously transmitted to each worker node 200. In addition, the CRR 110 may store a recent execution result of each worker node 200.

명령처리기(120)는 외부 프로그램(300)으로부터 받은 명령을 처리하는 모듈로 구성될 수 있다. 명령처리기(120)는 워커 노드(200)의 작업 실행 결과를 분석하는 결과분석기(121) 및 명령분배기(122)를 포함하여 구성될 수 있다. The command processor 120 may be configured as a module for processing a command received from the external program 300. The command processor 120 may be configured to include a result analyzer 121 and a command distributor 122 for analyzing a job execution result of the worker node 200.

결과분석기(121)는 워커 노드(200)로부터 받은 작업 실행 결과를 분석하는 기능을 수행할 수 있다. 결과분석기(121)는 워커 노드(200)로부터 작업 실행 결과를 받으면, 이를 파싱하고 결과를 CRR에 저장할 수 있다. 작업 실행 결과는 작업 실행 중 실시간으로 업데이트 될 수 있으며, 외부 프로그램(300)에서 요청한 경우 중간 실행 결과가 전달 될 수 있다.The result analyzer 121 may perform a function of analyzing a job execution result received from the worker node 200. When the result analyzer 121 receives the task execution result from the worker node 200, the result analyzer 121 may parse the result and store the result in the CRR. The task execution result may be updated in real time during task execution, and an intermediate execution result may be delivered when requested by the external program 300.

명령분배기(122)는 외부 프로그램(300)으로부터 받은 명령을 전송하기 위한 워커 노드(200)를 선정하고, 명령의 종류에 따라 선정된 워커 노드(200)에 명령을 전달할 수 있다. 명령분배기(122)는 워커 노드(200) 선택을 위하여 CRR(121)로부터 워커 노드 정보를 수신할 수 있다. 명령분배기(122)는 워커 노드 정보에 포함된 워커 노드(200)의 사양, 구동가능한 기계학습 프레임 워크, 각 워커 노드에 기 전송한 학습데이터 및 실행 파일 정보 중 적어도 하나를 이용하여 외부 프로그램으로부터 받은 명령을 수행하기 적합한 복수개의 워커 노드를 선정할 수 있다.The command distributor 122 may select a worker node 200 for transmitting a command received from the external program 300 and transmit the command to the selected worker node 200 according to the type of the command. The command distributor 122 may receive worker node information from the CRR 121 to select the worker node 200. The instruction divider 122 is received from an external program using at least one of a specification of the worker node 200 included in the worker node information, a driveable machine learning framework, learning data previously transmitted to each worker node, and executable file information. It is possible to select a plurality of worker nodes suitable for executing the command.

노드매니저(130)는 워커 노드(200)를 관리하는 기능을 수행할 수 있다. 모든 워커 노드(200)는 실행시 자동으로 노드매니저(130)에 연결을 시도할 수 있다. 워커 노드(200)와 마스터 노드(100)간 연결이 성립되면 노드매니저(130)는 CRR(110)에 연결된 워커 노드(200)를 등록하고 노드 맵에 추가할 수 있다. 노드매니저(130)는 주기적으로 노드 맵에 등록된 워커 노드(200)들로부터 핑 메시지를 받아 상태를 확인하고, 명령처리기(120)에 노드 맵 정보를 제공할 수 있다.The node manager 130 may perform a function of managing the worker node 200. All worker nodes 200 may automatically attempt to connect to node manager 130 when executed. When the connection between the worker node 200 and the master node 100 is established, the node manager 130 may register the worker node 200 connected to the CRR 110 and add it to the node map. The node manager 130 may periodically receive the ping message from the worker nodes 200 registered in the node map, check the state, and provide the node map information to the command processor 120.

노드매니저(130)는 패킷처리기(131)를 포함하여 구성될 수 있으며, 노드 맵을 관리할 수 있다. 본 발명의 실시예에서 노드 맵은 워커 노드(200)들을 추상화한 것이다. 마스터 노드(100)는 명령 수행 시 일정 크기를 가지는 워커 노드 배열을 노드 맵으로 선언하여 사용한다. 그리고 워커 노드(200)가 마스터 노드(100)에 연결을 시도할 때 노드 맵에 워커 노드(200)를 할당하고 그 인덱스를 워커 노드(200)에게 통보한다. 이 방법은 노드 맵에 따른 워커 노드(200)의 인덱스 번호가 명령 실행시부터 종료시까지 불변함을 보장하여, 각 노드 접근에 필요한 오버헤드를 O(1)로 만들어준다. The node manager 130 may include a packet processor 131 and manage a node map. In an embodiment of the invention, the node map is an abstraction of worker nodes 200. The master node 100 declares and uses a worker node array having a predetermined size as a node map when executing a command. When the worker node 200 attempts to connect to the master node 100, the worker node 200 allocates the worker node 200 to the node map and notifies the worker node 200 of the index. This method ensures that the index number of the worker node 200 according to the node map is unchanged from the execution of the command to the end of the instruction, thereby making O (1) the overhead required for accessing each node.

노드매니저(130)는 명령 수행에 따라 워커 노드(200)의 가용 자원을 확인하고, 가용 자원에 따라 노드 맵을 재구성할 수 있다. 예를 들면, 노드매니저(130)는 명령 수행에 따라 가용 자원이 줄어든 워커 노드의 가용 자원을 확인하여 가용 자원에 매칭되는 노드 맵의 인덱스를 할당할 수 있다.The node manager 130 may check the available resources of the worker node 200 according to the execution of the command, and reconstruct the node map according to the available resources. For example, the node manager 130 may check an available resource of a worker node in which available resources are reduced as the command is executed, and allocate an index of the node map matching the available resources.

패킷처리기(131)는 마스터 노드(100)와 워커 노드(200)간 주고받는 패킷을 처리하는 모듈이다. 패킷처리기(131)는 SparkJava의 송수신 패킷을 모두 처리할 수 있으며, 마스터 노드와 각각의 워커 노드는 패킷 처리기를 포함하여 구성될 수 있다. The packet processor 131 is a module that processes packets exchanged between the master node 100 and the worker node 200. The packet processor 131 may process both transmission and reception packets of SparkJava, and the master node and each worker node may be configured to include a packet processor.

본 발명의 실시예에서 SparkJava는http 서버 작성을 위한 소형 프레임워크로, http 쿼리 처리를 도와줄 수 있다.In the embodiment of the present invention, SparkJava is a small framework for creating an http server, and may help with http query processing.

워커 노드(200)는 마스터 노드(100)로부터 받은 명령을 기 저장된 학습 데이터 및 실행 파일을 이용하여 실행하여 작업 실행 결과를 회신할 수 있다.The worker node 200 may execute a command received from the master node 100 using pre-stored learning data and an executable file to return a result of the job execution.

클러스터 내의 워커 노드(200)는 각각 하나의 호스트 컴퓨터를 의미할 수 있다. 각 워커 노드(200)는 마스터 노드(100)에 연결되어 작업을 받고, 작업 실행 결과를 실시간으로 마스터 노드(100)에 전송할 수 있다.Each worker node 200 in a cluster may refer to one host computer. Each worker node 200 may be connected to the master node 100 to receive a job and transmit a job execution result to the master node 100 in real time.

워커 노드(200)는 작업 실행기(210) 및 패킷 처리기(220)를 포함하여 구성될 수 있다.The worker node 200 may include a task executor 210 and a packet processor 220.

작업실행기(210)는 마스터 노드(100)로부터 명령을 받고 이를 실행할 수 있다. 각각의 워커 노드(200)에는 작업 실행 이전에 학습데이터와 실행파일이 미리 전송되어 있어야 한다. 작업 실행기(210)는 별도의 프로세스를 생성하여 작업 실행을 진행하고, 그 프로세스가 생성하는 표준 출력을 작업 실행 결과로 받아 마스터 노드(100)에 전달할 수 있다.The job executor 210 may receive a command from the master node 100 and execute it. Each worker node 200 should be transmitted to the learning data and the execution file before the job execution. The job executor 210 may generate a separate process to proceed with job execution, receive the standard output generated by the process as a job execution result, and deliver it to the master node 100.

패킷처리기(220)는 마스터 노드(100)와 워커 노드(200)간 주고받는 패킷을 처리하는 모듈이다. 패킷처리기(220)는 SparkJava의 송수신 패킷을 모두 처리할 수 있으며, The packet processor 220 is a module that processes packets exchanged between the master node 100 and the worker node 200. The packet processor 220 may process both transmitted and received packets of SparkJava,

본 발명의 실시예에서 SparkJava는http 서버 작성을 위한 소형 프레임워크로, http 쿼리 처리를 도와줄 수 있다.In the embodiment of the present invention, SparkJava is a small framework for creating an http server, and may help with http query processing.

도2 및 도3은 본 발명의 실시예에 따른 스몰 데이터 기계 학습을 위한 노드 관리 시스템의 동작을 설명하기 위한 도면이다. 2 and 3 are diagrams for describing an operation of a node management system for small data machine learning according to an embodiment of the present invention.

도2를 참조하면, 먼저 워커 노드(200)가 실행되면 워커 노드(200)는 마스터 노드(100)에 자동으로 연결 요청을 한다. 이 때 워커 노드(200)는 자신의 워커 노드 정보를 패킷에 담아 함께 전송한다. 이 연결 요청을 마스터 노드(100)에 있는 패킷 처리기(131)가 받으면, 먼저 이전에 CRR(110)에 등록된 적이 있는 워커 노드인지 확인한다. 이전에 등록된 적이 있는 경우 정보를 업데이트하고, 아닌 경우 새로 등록한다. Referring to FIG. 2, when the worker node 200 is executed, the worker node 200 automatically requests a connection to the master node 100. At this time, the worker node 200 transmits its worker node information together in a packet. When the packet processor 131 in the master node 100 receives the connection request, it first checks whether the worker node has been previously registered with the CRR 110. If you have been registered before, update your information. If not, register a new one.

마스터 노드(100)는 CRR(110)로부터 중복 등록 여부와 워커 노드 정보를 받으면, 노드를 노드 맵에 등록한다. 노드 맵은 마스터 노드(100)가 실행될 때 선언되는 워커 노드 클래스 배열이다. 마스터 노드(100)는 새로운 워커 노드를 등록하는 경우, 현재 배열에서 사용중이지 않은 인덱스 중 가장 값이 작은 인덱스에 새로운 워커 노드(200)를 등록한다. When the master node 100 receives duplicate registration information and worker node information from the CRR 110, the master node 100 registers the node in the node map. The node map is a worker node class array that is declared when the master node 100 is executed. When the master node 100 registers a new worker node, the master node 100 registers the new worker node 200 in the index having the smallest value among the indices that are not currently used in the array.

노드 등록이 완료되면 노드 정보를 배열 내의 해당하는 인덱스에 저장하며, 인덱스 넘버를 워커 노드(200)에 통보한다. 이후 워커 노드(200)에서 마스터 노드로 메시지를 보낼 경우, 저장된 인덱스번호를 함께 보내어 다른 워커 노드와 구분한다.When the node registration is completed, the node information is stored in the corresponding index in the array, and the worker node 200 is notified of the index number. Then, when sending a message from the worker node 200 to the master node, the stored index number is sent together to distinguish it from other worker nodes.

도3을 참조하면, 마스터 노드는 외부 프로그램(300)의 명령을 통해 동작한다. 마스터 노드(100)는 동작시 시스템에서 제공하는 API를 사용할 수 있다. 또는 http 쿼리를 통해 동작하는 경우 시스템에서 자동으로 상응하는 API를 호출할 수 있다. 마스터 노드(100)는 외부 프로그램(300)의 명령 요청시 먼저 CRR에 워커 노드 정보를 요청한다. 마스터 노드(100)가 요청하는 워커 노드 정보는 명령의 종류에 따라 상이할 수 있다. 예를 들어, 외부 프로그램(300)에서 워커 노드 정보를 요청한 경우에는 해당하는 워커 노드 정보를 CRR(110)로부터 로드하여 외부 프로그램(300)으로 전송하거나 또는 워커 노드(200)에 직접 워커 노드 정보를 요청하여 외부 프로그램(300)으로 포워딩한 후 작업이 종료된다. 외부 프로그램(300)에서 작업 수행을 요청한 경우 마스터 노드(100)는 워커 노드(200) 선택을 위한 정보들을 로드한 뒤 워커 노드(200)로 명령을 보낼 준비를 한다. Referring to FIG. 3, the master node operates through a command of an external program 300. The master node 100 may use an API provided by the system during operation. Alternatively, when running through an http query, the system can automatically call the corresponding API. The master node 100 first requests worker node information to the CRR when a command of the external program 300 is requested. The worker node information requested by the master node 100 may be different according to the type of command. For example, when the worker node information is requested by the external program 300, the corresponding worker node information is loaded from the CRR 110 and transmitted to the external program 300, or the worker node information is directly transmitted to the worker node 200. After the request is forwarded to the external program 300, the operation is terminated. When the external program 300 requests to perform a task, the master node 100 loads information for selecting the worker node 200 and prepares to send a command to the worker node 200.

마스터 노드(100)는 명령을 전송할 워커 노드(200)의 인덱스값을 통해 워커 노드 클래스에 접근하고 명령을 전달한다. 명령이 파일 전송인 경우, 명령 대신 파일 내용이 전송된다.The master node 100 accesses a worker node class and transmits a command through the index value of the worker node 200 to which the command is to be sent. If the command is a file transfer, the file contents are transferred instead of the command.

명령이 파일 실행인 경우, 워커 노드(200)는 새로운 프로세스를 생성한 뒤 표준 출력을 받아 실행 결과를 마스터 노드(100)에 전송한다. 이 때, 전송은 http를 통해 이루어지며 새로운 명령(작업 취소 혹은 노드 킬)이 들어오면 우선적으로 수행되며, 기존 명령이 취소될 수 있다.When the command is file execution, the worker node 200 generates a new process and receives standard output and transmits the execution result to the master node 100. At this time, the transmission is made through http, and when a new command (Cancel Job or Node Kill) comes in, it is executed first, and the existing command can be canceled.

http를 통해 마스터 노드(100)에 전송된 실행 결과는 가공을 거쳐 CRR(110)에 저장된다. 먼저 필요한 정보를 파싱하고, 그 정보들을 필요시 연산, 분석하여 CRR로 전송한다. 작업 실행 결과는 실시간으로 처리되어 저장되며, 외부프로그램(300)에서 요청 메시지를 보내어 정보를 얻은 뒤, 이를 시각화하는 작업을 통하여 작업 실행 결과를 시각화 할 수 있다.The execution result transmitted to the master node 100 through http is stored in the CRR 110 after being processed. First, the required information is parsed, and the information is computed, analyzed as necessary, and transmitted to the CRR. The job execution result is processed and stored in real time, and after receiving the information by sending a request message from the external program 300, the job execution result can be visualized by visualizing it.

도4는 본 발명의 실시예에 따른 노드 맵의 개념도이고, 도5는 본 발명의 실시예에 따른 노드매니저의 동작을 설명하기 위한 도면이다.4 is a conceptual diagram of a node map according to an embodiment of the present invention, and FIG. 5 is a view for explaining the operation of the node manager according to the embodiment of the present invention.

마스터 노드는 부하 분산을 위하여 워커 노드를 노드 맵으로 관리할 수 있다. 노드 맵은 워커 노드의 가용 자원 중 CPU코어의 개수를 기준으로 워커 노드를 정렬한 구조로 구성될 수 있다. 외부 프로그램으로부터 전달받은 명령 수행시 마스터 노드는 명령 수행에 필요한 컴퓨팅 자원에 따라 명령을 적절하게 분배하기 위한 워커 노드를 신속하게 탐색할 수 있어야 한다.The master node can manage worker nodes with a node map for load balancing. The node map may have a structure in which worker nodes are arranged based on the number of CPU cores among available resources of the worker node. When executing a command received from an external program, the master node should be able to quickly search for a worker node for appropriately distributing the command according to the computing resources required to execute the command.

도4를 참조하면, 본 발명의 실시예에 따른 노드 맵은 큐 삽입을 위하여 워커 노드의 가용 CPU코어 개수를 이진수로 표현한 뒤, 표현된 이진수 값을 각 큐에 대한 플래그로 활용할 수 있다. 노드 매니저는 이진수의 n번째 자리값이 true(1)인 경우, List[n]에 해당 워커 노드를 삽입하고, false(0)인 경우에는 해당 워커 노드를 삭제한다. List[n]에서 2n은 가용 CPU코어의 개수를 의미할 수 있다. 즉, List[0]는 가용 CPU코어가 1개이고, List[1]은 가용 CPU코어가 2개이고, List[2]은 가용 CPU코어가 4개를 의미한다. 예를 들면, 워커 노드 3(Nose 3)의 가용 CPU코어가 6개인 경우, 노드 매니저는 List[1]과 List[2]의 큐에 워커 노드 3을 삽입할 수 있다. 이를 통하여, 마스터 노드는 워커 노드 3이 명령 수행시 필요한 CPU코어 개수가 4개인 작업 하나와 2개인 작업 하나를 각각 수행할 수 있음을 노드 맵을 통하여 확인할 수 있다.Referring to FIG. 4, the node map according to an embodiment of the present invention may express the number of available CPU cores of a worker node in binary for inserting a queue, and then use the expressed binary value as a flag for each queue. If the nth digit of the binary number is true (1), the node manager inserts the worker node into List [n], and if false (0), the node manager deletes the worker node. 2 n in List [n] may mean the number of available CPU cores. That is, List [0] means one available CPU core, List [1] means two available CPU cores, and List [2] means four available CPU cores. For example, if there are six available CPU cores of worker node 3 (Nose 3), the node manager may insert worker node 3 into the queues of List [1] and List [2]. Through this, the master node can confirm through the node map that worker node 3 can perform one task having four CPU cores and one task having two CPU cores when executing instructions.

도5를 참조하면, 마스터 노드는 외부 프로그램으로부터 명령을 전달 받으면 해당 명령을 수행하기 위한 CPU코어 개수를 판단한다(S501).Referring to FIG. 5, when a master node receives a command from an external program, the master node determines the number of CPU cores for executing the command (S501).

다음으로, 마스터 노드는 해당 명령을 수행하기 위하여 필요한 CPU코어 개수를 만족하는 List를 선택한다(S502). Next, the master node selects a list that satisfies the number of CPU cores required to execute the corresponding command (S502).

예를 들어, 해당 명령을 수행하기 위한 CPU코어 개수가 3인 경우 마스터 노드는 List[2]를 선택할 수 있다. 즉, 마스터 노드는 명령을 수행하기 위해 필요한 CPU코어 개수보다 큰 가용 CPU코어를 보유한 List[2]를 선택할 수 있다. For example, when the number of CPU cores for executing the corresponding command is 3, the master node may select List [2]. That is, the master node may select a List [2] that has available CPU cores larger than the number of CPU cores required to execute the command.

또는 마스터 노드는 해당 명령을 수행하기 위한 CPU코어 개수가 3인 경우 마스터 노드는 List[0]과 List[1]를 선택할 수 있다. 즉, 마스터 노드는 명령을 수행하기 위해 필요한 CPU코어 개수에 맞추어 List[0]과 List[1]를 선택할 수 있다.Alternatively, when the master node has 3 CPU cores for executing the command, the master node may select List [0] and List [1]. That is, the master node may select List [0] and List [1] according to the number of CPU cores required to execute the command.

다음으로, 마스터 노드는 선택된 List의 맨 앞에 위치한 워커 노드를 선택하여 선택된 워커 노드로 명령을 할당한다(S503). Next, the master node selects a worker node located in front of the selected list and assigns a command to the selected worker node (S503).

예를 들어, 마스터 노드가 List[2]를 선택한 경우, List[2]의 맨 앞에 위치한 워커 노드에게 명령을 할당한다.For example, if the master node selects List [2], it assigns a command to the worker node at the front of List [2].

또는, 마스터 노드가 List[0]과 List[1]을 선택한 경우, List[0] 및 List[1]의 맨 앞에 위치한 각각의 워커 노드에게 명령을 할당한다.Or, if the master node selects List [0] and List [1], it assigns a command to each worker node located in front of List [0] and List [1].

이때, 마스터 노드는 명령을 전송할 워커 노드의 인덱스값을 통해 워커 노드 클래스에 접근하고 명령을 전달한다. 명령이 파일 전송인 경우, 명령 대신 파일 내용이 전송된다. 명령이 파일 실행인 경우, 새로운 프로세스를 생성한 뒤 표준 출력을 받아 실행 결과를 마스터 노드에 전송한다. 이 때, 전송은 http를 통해 이루어지며 새로운 명령(작업 취소 혹은 노드 킬)이 들어오면 우선적으로 수행되며, 기존 명령이 취소될 수 있다. http를 통해 마스터에 전송된 실행 결과는 가공을 거쳐 CRR에 저장된다. 먼저 필요한 정보를 파싱하고, 그 정보들을 필요시 연산, 분석하여 CRR로 전송한다.At this time, the master node accesses the worker node class through the index value of the worker node to send the command and delivers the command. If the command is a file transfer, the file contents are transferred instead of the command. If the command is a file execution, it creates a new process, receives standard output, and sends the execution result to the master node. At this time, the transmission is made through http, and when a new command (Cancel Job or Node Kill) comes in, it is executed first, and the existing command can be canceled. Execution results sent to the master via http are processed and stored in the CRR. First, the required information is parsed, and the information is computed, analyzed as necessary, and transmitted to the CRR.

다음으로, 마스터 노드는 명령이 할당된 워커 노드를 노드 맵 상에서 삭제하거나 등록한다(S504). Next, the master node deletes or registers a worker node to which a command is assigned on the node map (S504).

예를 들어, 마스터 노드가 List[2]의 맨 앞에 위치한 워커 노드에게 명령을 할당한 경우, 해당 워커 노드의 가용 CPU코어 개수는 1개로 변경되었기 때문에 마스터 노드는 해당 워커 노드를 List[2]에서 삭제하고, List[0]의 맨 뒤에 추가하게 된다.For example, if a master node assigns a command to a worker node at the beginning of List [2], the master node changes the worker node from List [2] because the number of available CPU cores for that worker node has changed to one. Delete it and add it to the end of List [0].

또는, 마스터 노드가 List[0] 및 List[1]의 맨 앞에 위치한 워커 노드에게 명령을 할당한 경우, 해당 워커 노드의 가용 CPU코어 개수는 0개로 변경되었기 때문에 마스터 노드는 해당 워커 노드들을 List[0] 및 List[1]에서 각각 삭제하게 된다.Or, if the master node assigns commands to the worker nodes that are in front of List [0] and List [1], the master node changes the worker nodes to List [since the number of available CPU cores has changed to zero. 0] and List [1] respectively.

본 실시예에서 사용되는 '~부'라는 용어는 소프트웨어 또는 FPGA(field-programmable gate array) 또는 ASIC과 같은 하드웨어 구성요소를 의미하며, '~부'는 어떤 역할들을 수행한다. 그렇지만 '~부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '~부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '~부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함한다. 구성요소들과 '~부'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '~부'들로 결합되거나 추가적인 구성요소들과 '~부'들로 더 분리될 수 있다. 뿐만 아니라, 구성요소들 및 '~부'들은 디바이스 또는 보안 멀티미디어카드 내의 하나 또는 그 이상의 CPU들을 재생시키도록 구현될 수도 있다.The term '~ part' used in the present embodiment refers to software or a hardware component such as a field-programmable gate array (FPGA) or an ASIC, and '~ part' performs certain roles. However, '~' is not meant to be limited to software or hardware. '~ Portion' may be configured to be in an addressable storage medium or may be configured to play one or more processors. Thus, as an example, '~' means components such as software components, object-oriented software components, class components, and task components, and processes, functions, properties, procedures, and the like. Subroutines, segments of program code, drivers, firmware, microcode, circuits, data, databases, data structures, tables, arrays, and variables. The functionality provided within the components and the 'parts' may be combined into a smaller number of components and the 'parts' or further separated into additional components and the 'parts'. In addition, the components and '~' may be implemented to play one or more CPUs in the device or secure multimedia card.

상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다. Although described above with reference to a preferred embodiment of the present invention, those skilled in the art will be variously modified and changed within the scope of the invention without departing from the spirit and scope of the invention described in the claims below I can understand that you can.

Claims (10)

마스터 노드 및 워커 노드를 포함하는 스몰 데이터 기계 학습을 위한 노드 관리 시스템에 있어서,
상기 마스터 노드는 상기 워커 노드들의 연결 관계를 노드맵으로 관리하고, 상기 워커 노드들의 상태를 점검하고, 워커 노드 정보에 따라 외부 프로그램으로부터 받은 명령을 상기 워커 노드에 할당하며 상기 워커 노드로부터 수신한 작업 실행 결과를 분석하여 저장하며,
상기 워커 노드는 상기 마스터 노드로부터 받은 명령을 기 저장된 학습 데이터 및 실행 파일을 이용하여 실행하여 작업 실행 결과를 회신하는 스몰 데이터 기계 학습을 위한 노드 관리 시스템.
A node management system for small data machine learning comprising a master node and a worker node,
The master node manages the connection relationship of the worker nodes with a node map, checks the state of the worker nodes, assigns commands received from an external program to the worker node according to worker node information, and receives the work from the worker node. Analyze and save execution results,
And the worker node executes a command received from the master node using pre-stored learning data and an execution file to return a job execution result.
제1항에 있어서, 상기 마스터 노드는,
상기 워커 노드에 대한 정보를 저장하는 CRR(Computing Resources Repository);
상기 외부 프로그램으로부터 받은 명령을 처리하는 명령 처리기; 및
상기 워커 노드를 관리하는 노드매니저를 포함하는 스몰 데이터 기계 학습을 위한 노드 관리 시스템.
The method of claim 1, wherein the master node,
Computing Resources Repository (CRR) for storing information about the worker node;
A command processor for processing a command received from the external program; And
And a node manager for managing the worker nodes.
제2항에 있어서, 상기 명령 처리기는
상기 워커 노드로부터 받은 작업 실행 결과를 분석하는 결과분석기; 및
상기 외부 프로그램으로터 받은 명령을 전송하기 위한 워커 노드를 선정하고, 상기 명령의 종류에 따라 선정된 워커 노드에 명령을 전달하는 명령분배기를 포함하는 스몰 데이터 기계 학습을 위한 노드 관리 시스템.
The method of claim 2, wherein the command processor is
A result analyzer for analyzing a job execution result received from the worker node; And
And a command divider for selecting a worker node for transmitting a command received from the external program and transferring the command to a selected worker node according to the type of the command.
제2항에 있어서,
상기 노드매니저는 가용 CPU코어의 개수를 기준으로 상기 워커 노드를 정렬한 노드 맵을 생성하여 관리하는 스몰 데이터 기계 학습을 위한 노드 관리 시스템.
The method of claim 2,
And the node manager generates and manages a node map in which the worker nodes are arranged based on the number of available CPU cores.
제4항에 있어서,
상기 노드매니저는 상기 워커 노드가 상기 마스터 노드에 연결을 시도할 때 상기 노드 맵에 해당 워커 노드를 할당하고 인덱스를 통보하는 스몰 데이터 기계 학습을 위한 노드 관리 시스템.
The method of claim 4, wherein
And the node manager allocates a corresponding worker node to the node map and notifies an index when the worker node attempts to connect to the master node.
제5항에 있어서,
상기 마스터 노드는 명령을 전송할 워커 노드의 인덱스 값을 통해 워커 노드 클래스에 접근하고 명령을 전달하는 스몰 데이터 기계 학습을 위한 노드 관리 시스템.
The method of claim 5,
And the master node accesses a worker node class through an index value of a worker node to send a command and delivers the command.
제6항에 있어서,
상기 인덱스는 특정 명령의 실행부터 종료시까지 유지되는 스몰 데이터 기계 학습을 위한 노드 관리 시스템.
The method of claim 6,
And the index is maintained from execution to termination of a specific command.
제1항에 있어서,
상기 워커 노드는,
상기 마스터 노드로부터 받은 명령을 수행하는 작업실행기; 및
상기 마스터 노드와 주고받은 패킷을 처리하는 패킷처리기를 포함하는 스몰 데이터 기계학습을 위한 노드 관리 시스템.
The method of claim 1,
The worker node,
A job executor for executing a command received from the master node; And
And a packet processor configured to process packets exchanged with the master node.
제1항에 있어서,
상기 마스터 노드는 상기 외부 프로그램에서 워커 노드 정보를 요청한 경우, 해당하는 워커 노드 정보를 상기 CRR로부터 로드하여 상기 외부 프로그램으로 전송하거나 또는 해당 워커 노드에 워커 노드 정보를 요청하여 상기 외부 프로그램으로 포워딩하는 스몰 데이터 기계학습을 위한 노드 관리 시스템.
The method of claim 1,
When the master node requests worker node information from the external program, the master node loads corresponding worker node information from the CRR and transmits the received worker node information to the external program, or requests the worker node information from the worker node and forwards the worker node information to the external program. Node Management System for Data Machine Learning.
제4항에 있어서,
상기 노드매니저는 명령 수행에 따라 워커 노드의 가용 자원을 확인하고, 가용 자원에 따라 노드 맵을 재구성하는 스몰 데이터 기계학습을 위한 노드 관리 시스템.
The method of claim 4, wherein
The node manager checks the available resources of the worker node according to the command execution, and reconfigures the node map according to the available resources.
KR1020180060497A 2018-04-12 2018-05-28 Node management system for small data machine learning KR102182493B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20180042770 2018-04-12
KR1020180042770 2018-04-12

Publications (2)

Publication Number Publication Date
KR20190119487A true KR20190119487A (en) 2019-10-22
KR102182493B1 KR102182493B1 (en) 2020-11-24

Family

ID=68420234

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180060497A KR102182493B1 (en) 2018-04-12 2018-05-28 Node management system for small data machine learning

Country Status (1)

Country Link
KR (1) KR102182493B1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210063762A (en) * 2019-11-25 2021-06-02 숭실대학교산학협력단 Method for abstraction architecture design to support heterogeneous neuromorphic architectures, recording medium and host device for performing the method
KR102266324B1 (en) * 2020-02-28 2021-06-17 숭실대학교산학협력단 Worker node management method of managing execution platform and platform system for the same
KR20210109407A (en) * 2020-02-27 2021-09-06 숭실대학교산학협력단 Platform system and method for managing execution of machine learning based on learning
KR20220084790A (en) * 2020-12-14 2022-06-21 건국대학교 산학협력단 Parallel processing apparatus and method for generating 3d spatial information

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090065133A (en) * 2007-12-17 2009-06-22 한국전자통신연구원 Apparatus for task distribution method and method of transaction at a task thread group unit on the distributed parallel processing system
JP2013073301A (en) * 2011-09-27 2013-04-22 Hitachi Ltd Distributed computer system and control method of the same

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090065133A (en) * 2007-12-17 2009-06-22 한국전자통신연구원 Apparatus for task distribution method and method of transaction at a task thread group unit on the distributed parallel processing system
JP2013073301A (en) * 2011-09-27 2013-04-22 Hitachi Ltd Distributed computer system and control method of the same

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210063762A (en) * 2019-11-25 2021-06-02 숭실대학교산학협력단 Method for abstraction architecture design to support heterogeneous neuromorphic architectures, recording medium and host device for performing the method
KR20210109407A (en) * 2020-02-27 2021-09-06 숭실대학교산학협력단 Platform system and method for managing execution of machine learning based on learning
KR102266324B1 (en) * 2020-02-28 2021-06-17 숭실대학교산학협력단 Worker node management method of managing execution platform and platform system for the same
KR20220084790A (en) * 2020-12-14 2022-06-21 건국대학교 산학협력단 Parallel processing apparatus and method for generating 3d spatial information

Also Published As

Publication number Publication date
KR102182493B1 (en) 2020-11-24

Similar Documents

Publication Publication Date Title
US10977245B2 (en) Batch data ingestion
US12001681B2 (en) Distributed storage system and data processing method
US10768982B2 (en) Engine for reactive execution of massively concurrent heterogeneous accelerated scripted streaming analyses
US20190377604A1 (en) Scalable function as a service platform
US10108654B2 (en) Workload balancing in a distributed database
US9996401B2 (en) Task processing method and virtual machine
KR102182493B1 (en) Node management system for small data machine learning
US20160283282A1 (en) Optimization of map-reduce shuffle performance through shuffler i/o pipeline actions and planning
US20160275123A1 (en) Pipeline execution of multiple map-reduce jobs
US9576000B2 (en) Adaptive fragment assignment for processing file data in a database
US10095508B2 (en) System and method for supporting dynamic deployment of executable code in a distributed computing environment
US20060107087A1 (en) System for optimizing server use in a data center
US10691712B2 (en) System and method for merging a mainframe data file to a database table for use by a mainframe rehosting platform
US10802766B2 (en) Database with NVDIMM as persistent storage
US11169846B2 (en) System and method for managing tasks and task workload items between address spaces and logical partitions
US9542122B2 (en) Logical block addresses used for executing host commands
CN113821311A (en) Task execution method and storage device
US20170228422A1 (en) Flexible task scheduler for multiple parallel processing of database data
KR20150117258A (en) Distributed computing architecture
Diab et al. Dynamic sharing of GPUs in cloud systems
KR100738004B1 (en) Hybrid Peer To Peer Network Intelligent Distributed Compiler System and Method thereof, and Computer Readable Recording Medium on which a Program therefor is recorded
US10509688B1 (en) System and method for migrating virtual machines between servers
CN114564298A (en) Serverless service scheduling system based on combination optimization in mixed container cloud environment
US20150212859A1 (en) Graphics processing unit controller, host system, and methods
RU2721235C2 (en) Method and system for routing and execution of transactions

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
X091 Application refused [patent]
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant