KR20230063247A - 결함 복구 시스템 - Google Patents

결함 복구 시스템 Download PDF

Info

Publication number
KR20230063247A
KR20230063247A KR1020210148296A KR20210148296A KR20230063247A KR 20230063247 A KR20230063247 A KR 20230063247A KR 1020210148296 A KR1020210148296 A KR 1020210148296A KR 20210148296 A KR20210148296 A KR 20210148296A KR 20230063247 A KR20230063247 A KR 20230063247A
Authority
KR
South Korea
Prior art keywords
worker
participant list
node
fault
defect
Prior art date
Application number
KR1020210148296A
Other languages
English (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 삼성전자주식회사
Priority to KR1020210148296A priority Critical patent/KR20230063247A/ko
Priority to US17/954,508 priority patent/US20230139091A1/en
Priority to CN202211301006.3A priority patent/CN116070110A/zh
Priority to EP22204763.1A priority patent/EP4174728A1/en
Publication of KR20230063247A publication Critical patent/KR20230063247A/ko

Links

Images

Classifications

    • 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
    • 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
    • G06N3/098Distributed learning, e.g. federated learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0709Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0721Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/142Reconfiguring to eliminate the error
    • G06F11/1425Reconfiguring to eliminate the error by reconfiguration of node membership
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1438Restarting or rejuvenating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/20Ensemble learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Molecular Biology (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Hardware Redundancy (AREA)
  • Retry When Errors Occur (AREA)

Abstract

결함 복구 시스템이 개시된다. 일 실시예에 결함 복구 시스템은 분산 학습을 수행하는 복수의 워커 노드들; 및 복수의 워커 노드들을 제어하는 마스터 노드를 포함하고, 마스터 노드는 미리 정해진 주기에 따라 복수의 워커 노드들의 결함을 검출하고, 결함이 발생할 경우 집단 커뮤니케이션(collective communication)의 참여자 목록(participants list)을 조정하고, 조정된 참여자 목록을 조정된 참여자 목록에 포함된 하나 이상의 워커 노드로 전달한다.

Description

결함 복구 시스템{FAULT RECOVERY SYSTEM}
아래 실시예들은 결함 복구 시스템에 관한 것으로, 보다 구체적으로 딥 뉴럴 네트워크의 분산 학습 중 발생할 수 있는 결함을 탐지하고, 복구하는 방법에 관한 것이다.
종래에는 딥 뉴럴 네트워크(Deep Neural Network, DNN)의 분산 학습 작업 도중 결함(fault)이 발생하였을 때, 작업을 복구(recovery)하기 위하여 1)워커 프로세스(worker process)의 수동 복구 및 2)디스크 체크포인트를 통한 상태 복원(state restoration)에 의존하였다.
일 실시예에 따른 결함 복구 시스템은 분산 학습을 수행하는 복수의 워커 노드들; 및 상기 복수의 워커 노드들을 제어하는 마스터 노드를 포함하고, 상기 마스터 노드는 미리 정해진 주기에 따라 상기 복수의 워커 노드들의 결함을 검출하고, 상기 결함이 발생할 경우 집단 커뮤니케이션(collective communication)의 참여자 목록(participants list)을 조정하고, 상기 조정된 참여자 목록을 상기 조정된 참여자 목록에 포함된 하나 이상의 워커 노드로 전달한다.
상기 마스터 노드는 상기 복수의 워커 노드들 각각으로부터 해당 워커 노드에서 수행되는 워커 프로세스의 결함 발생 확인을 위한 상태 신호를 수신할 수 있다.
상기 마스터 노드는 상기 상태 신호에 기초하여, 상기 워커 프로세스의 결함 여부를 판단할 수 있다.
상기 마스터 노드는 상기 결함이 발생할 경우, 상기 결함이 발생한 워커 노드를 제외하여 상기 참여자 목록을 조정할 수 있다.
상기 복수의 워커 노드들 각각은 해당 주기에서 상기 결함이 발생하지 않을 경우, 상기 해당 주기에서 수행한 작업 상태의 복사본을 제1 메모리에 저장할 수 있다.
상기 조정된 참여자 목록에 포함된 하나 이상의 워커 노드 각각은 제1 메모리에 저장된 복사본을 로드하고, 상기 복사본에 기초하여 상기 분산 학습을 수행할 수 있다.
일 실시예에 따른 결함 복구 시스템은 상기 결함이 발생한 워커 노드가 복구된 경우, 복구된 워커 노드의 워커 프로세스를 재실행하는 원격 프로세스 실행 모듈을 더 포함할 수 있다.
상기 마스터 노드는 상기 워커 프로세스가 재실행되는 경우, 상기 복구된 워커 노드를 추가하여 상기 참여자 목록을 조정할 수 있다.
일 실시예에 따른 결함 복구 장치는 집단 커뮤니케이션(collective communication)의 참여자 목록(participants list)에 포함된 복수의 워커 노드들 각각으로부터 해당 워커 노드에서 수행되는 워커 프로세스의 결함 발생 확인을 위한 상태 신호를 수신하고, 상기 상태 신호에 기초하여, 상기 워커 프로세스의 결함 여부를 판단하고, 상기 결함이 발생했다는 판단에 기초하여, 상기 참여자 목록에서 상기 결함이 발생한 워커 노드를 제외하여 새로운 참여자 목록을 조정하고, 상기 새로운 참여자 목록에 포함된 하나 이상의 워커 노드로 상기 새로운 참여자 목록을 전달하는 프로세서를 포함한다.
일 실시예에 따른 결함 복구 방법은 마스터 노드에서, 미리 정해진 주기에 따라 복수의 워커 노드들의 결함을 검출하는 단계; 상기 마스터 노드에서, 상기 결함이 발생할 경우 집단 커뮤니케이션(collective communication)의 참여자 목록(participants list)을 조정하는 단계; 상기 마스터 노드에서, 상기 조정된 참여자 목록을 상기 조정된 참여자 목록에 포함된 하나 이상의 워커 노드로 전달하는 단계; 및 상기 조정된 참여자 목록에 포함된 하나 이상의 워커 노드 각각에서, 미리 정해진 개수의 미니 배치를 학습하는 단계를 포함한다.
일 실시예에 따른 결함 복구 방법은 상기 참여자 목록을 조정하는 단계는 상기 마스터 노드에서, 상기 복수의 워커 노드들 각각으로부터 해당 워커 노드에서 수행되는 워커 프로세스의 결함 발생 확인을 위한 상태 신호를 수신하는 단계를 더 포함할 수 있다.
상기 참여자 목록을 조정하는 단계는 상기 마스터 노드에서, 상기 상태 신호에 기초하여 상기 워커 프로세스의 결함 여부를 판단할 수 있다.
상기 참여자 목록을 조정하는 단계는 상기 마스터 노드에서, 상기 결함이 발생할 경우 상기 결함이 발생한 워커 노드를 제외하여 상기 참여자 목록을 조정하는 단계를 포함할 수 있다.
일 실시예에 따른 결함 복구 방법은 상기 복수의 워커 노드들 각각에서, 해당 주기에서 상기 결함이 발생하지 않을 경우 상기 해당 주기에서 수행한 작업 상태의 복사본을 제1 메모리에 저장하는 단계를 더 포함할 수 있다.
상기 미니 배치를 학습하는 단계는 상기 복수의 워커 노드들 각각에서, 제1 메모리에 저장된 복사본을 로드하고, 상기 복사본에 기초하여 상기 분산 학습을 수행하는 단계를 더 포함할 수 있다.
일 실시예에 따른 결함 복구 방법은 원격 프로세스 실행 모듈에서, 상기 결함이 발생한 워커 노드가 복구된 경우 복구된 워커 노드의 워커 프로세스를 재실행하는 단계를 더 포함할 수 있다.
일 실시예에 따른 결함 복구 방법은 상기 마스터 노드에서, 상기 워커 프로세스가 재실행되는 경우 상기 복구된 워커 노드를 추가하여 상기 참여자 목록을 조정하는 단계를 더 포함할 수 있다.
일 실시예에 따른 결함 복구 방법은 집단 커뮤니케이션(collective communication)의 참여자 목록(participants list)에 포함된 복수의 워커 노드들 각각으로부터 해당 워커 노드에서 수행되는 워커 프로세스의 결함 발생 확인을 위한 상태 신호를 수신하는 단계; 상기 상태 신호에 기초하여, 상기 워커 프로세스의 결함 여부를 판단하는 단계; 상기 결함이 발생했다는 판단에 기초하여, 상기 참여자 목록에서 상기 결함이 발생한 워커 노드를 제외하여 새로운 참여자 목록을 조정하는 단계; 및 상기 새로운 참여자 목록에 포함된 하나 이상의 워커 노드로 상기 새로운 참여자 목록을 전달하는 단계를 포함한다.
도 1은 일 실시예에 따른 결함 복구 시스템을 설명하기 위한 도면이다.
도 2는 일 실시예에 따른 동적 랑데부를 통한 워커 프로세스 복구 방법을 설명하기 위한 순서도이다.
도 3은 일 실시예에 따른 결함 복구 방법을 설명하기 위한 순서도이다.
도 4a 내지 도 4b는 일 실시예에 따른 동적 랑데부 및 인메모리 체크포인트를 활용하여 분산 학습 작업을 결함으로부터 자동 복구하는 과정을 시각화한 도면이다.
도 5는 일 실시예에 따른 원격 워커 프로세스 재실행 방법을 설명하기 위한 도면이다.
도 6은 일 실시예에 따른 결함 복구 장치의 블록도이다.
본 명세서에서 개시되어 있는 특정한 구조적 또는 기능적 설명들은 단지 기술적 개념에 따른 실시예들을 설명하기 위한 목적으로 예시된 것으로서, 실제로 구현된 형태는 다양한 다른 모습을 가질 수 있으며 본 명세서에 설명된 실시예로만 한정되지 않는다.
제1 또는 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 이런 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 이해되어야 한다. 예를 들어 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 표현들, 예를 들어 "~간의"와 "바로~간의" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 실시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 해당 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
실시예들은 퍼스널 컴퓨터, 랩톱 컴퓨터, 태블릿 컴퓨터, 스마트 폰, 텔레비전, 스마트 가전 기기, 지능형 자동차, 키오스크, 웨어러블 장치 등 다양한 형태의 제품으로 구현될 수 있다. 이하, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
도 1은 일 실시예에 따른 결함 복구 시스템을 설명하기 위한 도면이다.
복수의 연산 장치(예를 들어, CPU, GPU, NPU)를 동시에 사용하여 분산 처리를 수행하는 분산 작업(예를 들어, 딥 뉴럴 네트워크의 분산 학습(Distributed Training) 작업)은 복수의 연산 장치를 장시간 사용하는 특성 상 예상치 못한 결함(fault)이 발생할 가능성이 높기 때문에, 연산 수행 내용을 보존하기 위한 결함 대비책이 필수적이다.
종래에는 딥 뉴럴 네트워크(Deep Neural Network, DNN)의 분산 학습 작업 도중 결함(fault)이 발생하였을 때, 작업을 복구(recovery)하기 위하여 1)워커 프로세스(worker process)의 수동 복구 및 2)디스크 체크포인트를 통한 상태 복원(state restoration)에 의존하였다.
여기서, 1)워커 프로세스의 수동 복구란 결함으로 인해 갑작스럽게 종료된 워커 프로세스들을 사람이 수동으로 재실행하는 방식을 뜻하며, 2)디스크 체크포인트를 통한 상태 복원이란 재실행된 워커 프로세스들의 상태(예를 들어, 모델 파라미터 등)를 결함 발생 이전에 디스크에 저장해 둔 체크포인트 상태로 복원시키는 것을 의미할 수 있다.
그러나, 종래의 워커 프로세스 수동 복구 및 디스크 체크포인트를 통한 상태 복원 방법은 다음과 같은 문제점을 가지고 있다. 1) 결함 발생 시 이를 사람이 확인하고 수동으로 복구해야 하므로, 결함이 복구되기까지 작업의 고장시간(down time)이 길며, 이에 신속히 대처하기 위해서는 사람에 의한 지속적인 모니터링을 요하고, 2)메모리에 비해 읽기/쓰기가 상대적으로 느린 디스크의 특성 상, 디스크에 작업의 상태를 체크포인트하는 빈도가 높으면 학습 속도에 지장을 줄 수 있다. 한편, 학습 속도에 지장을 줄 것을 우려하여 디스크 체크포인트 빈도를 너무 낮게 설정하면, 결함으로 인한 상태 복원 시 오래 전 상태로 복원될 가능성이 높아 재연산 비용(recomputation cost)이 클 수 있다.
아울러 최근 수 년간 모델과 데이터셋의 규모가 급격히 성장함에 따라 결함 발생율(fault rate) 또한 증가하고 있기 때문에, 위와 같은 문제점을 가지는 기존의 방법으로는 결함 발생에 효과적으로 대응하기가 더욱 어려워지고 있다.
이에, 일 실시예에 따른 결함 복구 시스템은 1)동적 랑데부(dynamic rendezvous)를 통한 워커 프로세스 복구 방법 및 2)인메모리 체크포인트(In-memory checkpoint) 방법을 사용하여, 상술한 문제를 해결할 수 있다.
도 1을 참조하면, 일 실시예에 따른 결함 복구 시스템은 마스터 노드(110) 및 복수의 워커 노드들(150)을 주체로 포함할 수 있다.
일 실시예에 따른 마스터 노드(110)는 랑데부 서버를 포함할 수 있다. 마스터 노드(110)는 랑데부 서버를 통해 중앙에서 복수의 워커 노드들(150)을 모니터링하고, 제어할 수 있다.
일 실시예에 따른 워커 노드들(150)은 분산 학습을 수행하는 주체일 수 있고, 각각의 워커 노드에서 수행되는 작업을 워커 프로세스로 정의할 수 있다. 예를 들어, 워커 노드들(150)은 데이터 병렬 처리를 통한 분산 학습을 수행할 수 있다.
일 실시예에 따른 마스터 노드(110)는 중앙에서 복수의 워커 노드들 각각으로부터 해당 워커 노드에서 수행되는 워커 프로세스의 건강 상태를 감시할 수 있다. 여기서 워커 프로세스의 건강 상태는 워커 프로세스의 결함 발생 여부를 의미할 수 있고, 결함이 발생하지 않은 상태를 워커 프로세스가 건강한 상태로 지칭할 수 있고, 반대로 결함이 발생한 상태를 워커 프로세스가 건강하지 않은 상태로 지칭할 수 있다. 만약 마스터 노드(110)가 일부 워커 프로세스에서 결함이 발생하였음을 감지할 경우, 마스터 노드(110)는 결함 복구를 위한 작업을 수행할 수 있다.
보다 구체적으로, 학습 도중 하나 이상의 워커 프로세스에서 결함이 발생하여 비정상 종료되었을 때, 나머지 워커들까지도 모두 비정상 종료되는 주된 이유는, 결함으로 인해 비정상 종료된 워커 프로세스들이 집단 커뮤니케이션(collective communication)의 참여자 목록(participants list)에서 적절한 절차를 거치지 못한 채 제거되기 때문이다.
즉, 일부 워커 프로세스에서 결함이 발생하였을 때, 이를 자동으로 감지하고 나머지 워커 프로세스에게 집단 커뮤니케이션 참여자 목록을 적절하게 재조정해 줄 수 있다면, 나머지 워커 프로세스들은 비정상 종료되지 않고 정상적으로 학습을 재개할 수 있다. 이를 위해 일 실시예에 따른 결함 복구 시스템은 전술한 1)동적 랑데부(dynamic rendezvous)를 통한 워커 프로세스 복구 방법을 사용할 수 있다.
나아가, 학습 도중 일부 워커 프로세스에서 결함이 발생하더라도, 나머지 워커 프로세스의 CPU 메모리에 모델 파라미터 등의 상태를 복사하여 저장해 둔다면, 반드시 디스크에 체크포인트를 하지 않아도 결함으로 인한 학습 결과물 유실을 방지할 수 있다. 이를 위해 일 실시예에 따른 결함 복구 시스템은 전술한 2)인메모리 체크포인트(In-memory checkpoint) 방법을 사용할 수 있다.
DRAM은 디스크와 같은 영구 저장장치에 비해 읽기/쓰기 속도가 현저히 빠르기 때문에, 디스크에 비해 더 높은 빈도로 체크포인트를 생성할 수 있어 결함 발생 시 따르는 재연산 비용을 크게 줄일 수 있다. 또한, 결함 발생으로 인한 상태 복원 시, 디스크 대비 메모리의 빠른 읽기 속도를 활용해 상태 복원을 빠르게 진행할 수 있으므로 결함 발생 시의 고장시간을 줄이는 데에 기여한다.
도 2는 일 실시예에 따른 동적 랑데부를 통한 워커 프로세스 복구 방법을 설명하기 위한 순서도이다.
도 2의 동작은 도시된 순서 및 방식으로 수행될 수 있지만, 도시된 실시예의 사상 및 범위를 벗어나지 않으면서 일부 동작의 순서가 변경되거나 일부 동작이 생략될 수 있다. 도 2에 도시된 다수의 동작은 병렬로 또는 동시에 수행될 수 있다. 도 2의 하나 이상의 블록들 및 블록들의 조합은 특정 기능을 수행하는 특수 목적 하드웨어 기반 컴퓨터, 또는 특수 목적 하드웨어 및 컴퓨터 명령들의 조합에 의해 구현될 수 있다. 도 1의 설명은 도 2에도 동일하게 적용가능한 바, 중복되는 내용의 설명은 생략한다.
일 실시예에 따른 마스터 노드는 일부 워커 프로세스에서 결함이 발생하였을 때, 이를 자동으로 감지하고 나머지 워커 프로세스에게 집단 커뮤니케이션 참여자 목록을 적절하게 재조정해 줄 수 있다.
보다 구체적으로, 단계(210)에서, 일 실시예에 따른 마스터 노드는 미리 정해진 주기에 따라 복수의 워커 노드들의 결함을 검출한다. 마스터 노드는 복수의 워커 노드들 각각으로부터 해당 워커 노드에서 수행되는 워커 프로세스의 결함 발생 확인을 위한 상태 신호를 수신하고, 상태 신호에 기초하여 워커 프로세스의 결함 여부를 판단할 수 있다.
예를 들어, 마스터 노드는 미리 정해진 주기에 따라 각각의 워커 노드로부터 건강 상태 체크를 위한 메시지를 수신할 수 있는데, 특정 워커 노드로부터 해당 주기에 건강 상태 체크를 위한 메시지를 수신하지 못할 경우 해당 워커 노드에 결함이 생겼다고 판단할 수 있다.
단계(220)에서, 일 실시예에 따른 마스터 노드는 결함이 발생할 경우 집단 커뮤니케이션의 참여자 목록을 조정한다. 마스터 노드는 결함이 발생할 경우 결함이 발생한 워커 노드를 제외하여 참여자 목록을 조정한다.
단계(230)에서, 일 실시예에 따른 마스터 노드는 조정된 참여자 목록을 상기 조정된 참여자 목록에 포함된 하나 이상의 워커 노드로 전달한다. 즉, 마스터 노드는 만약 일부 워커 프로세스에서 결함이 발생하였음을 감지하면, 결함이 발생한 워커 프로세스를 제외하고 새로운 집단 커뮤니케이션 참여자 목록을 생성하여 나머지 정상적인 워커 프로세스들에게 전파해 줄 수 있다.
단계(240)에서, 일 실시예에 따른 워커 노드는 조정된 참여자 목록에 포함된 하나 이상의 워커 노드 각각에서, 미리 정해진 개수의 미니 배치를 학습한다. 새로운 집단 커뮤니케이션 참여자 목록을 전달받은 정상적인 워커 노드들은 새로운 집단 커뮤니케이션 참여자 목록을 기준으로 학습을 재개하며, 이 때 새로운 참여자 목록에는 결함이 발생한 워커 프로세스가 포함되어 있지 않으므로 정상적인 학습 재개가 가능할 수 있다.
도 3은 일 실시예에 따른 결함 복구 방법을 설명하기 위한 순서도이다.
도 3의 동작은 도시된 순서 및 방식으로 수행될 수 있지만, 도시된 실시예의 사상 및 범위를 벗어나지 않으면서 일부 동작의 순서가 변경되거나 일부 동작이 생략될 수 있다. 도 3에 도시된 다수의 동작은 병렬로 또는 동시에 수행될 수 있다. 도 3의 하나 이상의 블록들 및 블록들의 조합은 특정 기능을 수행하는 특수 목적 하드웨어 기반 컴퓨터, 또는 특수 목적 하드웨어 및 컴퓨터 명령들의 조합에 의해 구현될 수 있다. 도 1 내지 도 2의 설명은 도 3에도 동일하게 적용가능한 바, 중복되는 내용의 설명은 생략한다.
단계(310)에서, 일 실시예에 따른 워커 노도는 초기 워커 프로세스를 실행할 수 있다.
단계(320)에서, 일 실시예에 따른 마스터 노드는 집단 커뮤니케이션 참여자 목록을 갱신할 수 있다. 집단 커뮤니케이션 참여자 목록은 현재 주기에서 분산 학습에 참여하는 워커 노드들의 목록을 의미할 수 있다.
단계(330)에서, 일 실시예에 따른 워커 노드는 인메모리 체크포인트를 읽을 수 있다. 학습 개시 직후에는 CPU 메모리에 체크포인트가 존재하지 않으므로, 체크포인트 읽기는 생략될 수 있다.
단계(340)에서, 일 실시예에 따른 워커 노드는 N개의 미니배치를 학습할 수 있다. 여기서, N은 체크포인트 주기를 의미할 수 있다.
단계(350)에서, 일 실시예에 따른 마스터 노드는 학습 도중 결함이 발생했는지 여부를 판단할 수 있다.
결함이 발생하지 않았다는 판단에 기초하여, 단계(360)에서 워커 노드는 학습이 완료되었는지 판단할 수 있다.
학습이 완료되지 않았다는 판단에 기초하여, 단계(370)에서, 워커 노드는 해당 주기에서 수행한 작업 상태의 복사본(예를 들어, 모델 파라미터)을 제1 프로세서 메모리에 저장할 수 있다. 여기서 제1 메모리는 CPU 안에 포함된 메모리를 포함할 수 있으나, 이에 제한되지는 않는다. 예를 들어, 제1 메모리는 GPU 메모리를 제외한 일반 메모리(예를 들어, 메인 메모리, 하드 디스크, 캐시 메모리)를 포함할 수 있다.
만약 다음 N개 미니배치를 학습하는 도중 결함이 발생하면, 단계(350)에서 일 실시예에 따른 마스터 노드가 결함을 감지할 수 있고, 결함이 발생했다는 판단에 기초하여, 단계(320)에서, 결함을 감지한 마스터 노드가 정상적인 나머지 워커 노드들에게 커뮤니케이션 참여자 목록을 새로 갱신하여 전파할 수 있다.
이후, 단계(330)에서, 학습 도중 결함이 발생했으므로 워커 노드는 작업을 마지막 체크포인트 상태로 복원할 수 있다.
도 4a 내지 도 4b는 일 실시예에 따른 동적 랑데부 및 인메모리 체크포인트를 활용하여 분산 학습 작업을 결함으로부터 자동 복구하는 과정을 시각화한 도면이다. 도 1 내지 도 3의 설명은 도 4a 및 도 4b에도 동일하게 적용가능한 바, 중복되는 내용의 설명은 생략한다.
보다 구체적으로, 도 4a는 결함이 발생하지 않았을 경우 마스터 노드와 워커 노드들의 상태를 도시한 도면이다.
도 4a를 참조하면, 도면(410)은 결함이 발생하지 않았을 때의 단계(310)에 대응하는 마스터 노드 및 워커 노드들의 상태를 도시한 것으로, 워커 노드들 각각은 워커 프로세스를 수행하기 위해 제2 메모리에 해당 주기에 대응하는 모델 파라미터를 로드할 수 있다. 도 4a 내지 도 4b에는 제2 메모리가 GPU 메모리인 것으로 도시되었으나 이에 제한되지는 않고, 제2 메모리는 인공 신경망 구동을 위한 전용 모듈(예를 들어, NPU(neural processing unit), TPU(Tensor Processing Unit), Neural Engine, GPU(graphics processing unit), DSP(digital signal processor))에 포함된 메모리를 의미할 수 있다.
도면(420)은 결함이 발생하지 않았을 때의 단계(320)에 대응하는 마스터 노드 및 워커 노드들의 상태를 도시한 것으로, 마스터 노드는 커뮤니케이션 참여자 목록을 갱신할 수 있다.
도면(430)은 결함이 발생하지 않았을 때의 단계(340)에 대응하는 마스터 노드 및 워커 노드들의 상태를 도시한 것으로, 워커 노드들 각각은 N개의 미니배치를 학습할 수 있다.
도면(440)은 단계(370)에 대응하는 마스터 노드 및 워커 노드들의 상태를 도시한 것으로, N개의 미니배치를 학습하는 동안 결함이 발생하지 않았을 경우, 워커 노드들 각각은 모델 파라미터를 비롯한 작업 상태의 복사본을 제1 메모리에 체크포인트할 수 있다.
도 4b는 결함이 발생한 경우 마스터 노드와 워커 노드들의 상태를 도시한 도면이다.
도 4b를 참조하면, 도면(450)은 단계(350)에 대응하는 마스터 노드 및 워커 노드들의 상태를 도시한 것으로, 마스터 노드는 N개 미니배치를 학습하는 도중 결함이 발생하면, 어떤 워커 노드에서 결함이 발생했는지 감지할 수 있다.
도면(460)은 결함이 발생했을 때의 단계(320) 및 단계(330)에 대응하는 마스터 노드 및 워커 노드들의 상태를 도시한 것으로, 결함을 감지한 마스터 노드가 정상적인 나머지 워커 노드들에게 커뮤니케이션 참여자 목록을 새로 갱신하여 전파할 수 있다. 나아가, 학습 도중 결함이 발생했으므로 워커 노드는 작업을 마지막 체크포인트 상태로 복원할 수 있다.
도 5는 일 실시예에 따른 원격 워커 프로세스 재실행 방법을 설명하기 위한 도면이다. 도 1 내지 도 4b의 설명은 도 5에도 동일하게 적용가능한 바, 중복되는 내용의 설명은 생략한다.
도 5를 참조하면, 일 실시예에 따른 결함 복구 시스템은 원격 프로세스 실행 모듈을 더 포함할 수 있다.
일 실시예에 따른 결함 복구 시스템은 원격 프로세스 실행 모듈을 통해 결함으로 인해 일시적으로 사용 불가능해진 워커 노드가 추후 다시 사용 가능해졌을 때, 원격으로 워커 프로세스 재실행하여 워커 프로세스 수를 결함 이전 상태로 복구할 수 있다.
도면(510)을 참조하면, 분산 학습 작업 도중 결함이 발생하는 경우, 워커 노드의 결손이 발생할 수 있다.
도면(520)을 참조하면, 결함이 발생한 워커 노드가 복구되었거나, 다른 노드를 대신 사용할 수 있는 경우, 원격 프로세스 실행 모듈을 통해 결손된 워커 프로세스를 재실행할 수 있다. 보다 구체적으로, 복구된 워커 노드는 마스터 노드로 건강 상태 체크를 위한 메시지를 전송할 수 있고, 마스터 노드는 해당 메시지에 기초하여 워커 노드의 복구 여부를 판단할 수 있다. 이후, 마스터 노드는 원격 프로세서 실행 모듈로 결손된 워커 프로세스 재실행을 위한 신호를 전송할 수 있다.
도면(530)을 참조하면, 새로운 워커 프로세스가 추가되면, 마스터 노드는 복구된 워커 노드를 추가하여 참여자 목록을 조정할 수 있다.
도 6은 일 실시예에 따른 결함 복구 장치의 블록도이다.
도 6을 참조하면 일 실시예에 따른 결함 복구 장치(600)는 도 1 내지 도 5를 참조하여 전술한 마스터 노드를 포함할 수 있다. 일 실시예에 따른 결함 복구 장치(600)는 프로세서(610)를 포함한다. 결함 복구 장치(600)는 메모리(630) 및 통신 인터페이스(650)를 더 포함할 수 있다. 프로세서(610), 메모리(630) 및 통신 인터페이스(650)는 통신 버스(606)를 통해 서로 통신할 수 있다.
프로세서(610)는 목적하는 동작들(desired operations)을 실행시키기 위한 물리적인 구조를 갖는 회로를 가지는 하드웨어로 구현된 처리 장치일 수 있다. 예를 들어, 목적하는 동작들은 프로그램에 포함된 코드(code) 또는 인스트럭션들(instructions)을 포함할 수 있다. 예를 들어, 하드웨어로 구현된 처리 장치는 마이크로프로세서(microprocessor), 중앙 처리 장치(Central Processing Unit; CPU), 그래픽 처리 장치(Graphic Processing Unit; GPU), 프로세서 코어(processor core), 멀티-코어 프로세서(multi-core processor), 멀티프로세서(multiprocessor), ASIC(Application-Specific Integrated Circuit), FPGA(Field Programmable Gate Array), NPU(Neural Processing Unit), MCU(microcontroller) 등을 포함할 수 있다.
프로세서(610)는 프로그램을 실행하고, 결함 복구 장치(600)를 제어할 수 있다. 프로세서(610)에 의하여 실행되는 프로그램 코드는 메모리(630)에 저장될 수 있다.
프로세서(610)는 집단 커뮤니케이션(collective communication)의 참여자 목록(participants list)에 포함된 복수의 워커 노드들 각각으로부터 해당 워커 노드에서 수행되는 워커 프로세스의 결함 발생 확인을 위한 상태 신호를 수신하고, 상기 상태 신호에 기초하여, 상기 워커 프로세스의 결함 여부를 판단하고, 상기 결함이 발생했다는 판단에 기초하여, 상기 참여자 목록에서 상기 결함이 발생한 워커 노드를 제외하여 새로운 참여자 목록을 조정하고, 상기 새로운 참여자 목록에 포함된 하나 이상의 워커 노드로 상기 새로운 참여자 목록을 전달한다.
메모리(630)는 ROM(631) 및 SRAM(633)을 포함할 수 있다. ROM(631)은 다이나믹 컨볼루션 연산을 위한 신경망 모델 및 코드를 저장할 수 있다.
SRAM(633)은 프로세서(610)에 의해 수행되는 동작들을 위한 워킹 메모리로 사용될 수 있으며, 다양한 어플리케이션 프로그램들을 저장한다. 메모리(630)는 상술한 프로세서(610)의 처리 과정에서 생성되는 다양한 정보를 저장할 수 있다. 이 밖에도, 메모리(630)는 각종 데이터와 프로그램 등을 저장할 수 있다. 메모리(630)는 하드 디스크 등과 같은 대용량 저장 매체를 구비하여 각종 데이터를 저장할 수 있다.
또한, 도면에 도시되지는 않았으나, 결함 복구 장치(600)는 디스플레이(미도시) 및 통신 인터페이스(미도시)를 더 포함할 수 있다. 디스플레이는 예를 들어, 터치 디스플레이, 또는 플렉서블 디스플레이일 수 있으며, 반드시 이에 한정되지는 않는다.
이상에서 설명된 실시예들은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치, 방법 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (19)

  1. 분산 학습을 수행하는 복수의 워커 노드들; 및
    상기 복수의 워커 노드들을 제어하는 마스터 노드
    를 포함하고,
    상기 마스터 노드는
    미리 정해진 주기에 따라 상기 복수의 워커 노드들의 결함을 검출하고, 상기 결함이 발생할 경우 집단 커뮤니케이션(collective communication)의 참여자 목록(participants list)을 조정하고, 상기 조정된 참여자 목록을 상기 조정된 참여자 목록에 포함된 하나 이상의 워커 노드로 전달하는, 결함 복구 시스템.
  2. 제1항에 있어서,
    상기 마스터 노드는
    상기 복수의 워커 노드들 각각으로부터 해당 워커 노드에서 수행되는 워커 프로세스의 결함 발생 확인을 위한 상태 신호를 수신하는, 결함 복구 시스템.
  3. 제2항에 있어서,
    상기 마스터 노드는
    상기 상태 신호에 기초하여, 상기 워커 프로세스의 결함 여부를 판단하는, 결함 복구 시스템.
  4. 제1항에 있어서,
    상기 마스터 노드는
    상기 결함이 발생할 경우, 상기 결함이 발생한 워커 노드를 제외하여 상기 참여자 목록을 조정하는, 결함 복구 시스템.
  5. 제1항에 있어서,
    상기 복수의 워커 노드들 각각은
    해당 주기에서 상기 결함이 발생하지 않을 경우, 상기 해당 주기에서 수행한 작업 상태의 복사본을 제1 메모리에 저장하는, 결함 복구 시스템.
  6. 제1항에 있어서,
    상기 조정된 참여자 목록에 포함된 하나 이상의 워커 노드 각각은
    제1 메모리에 저장된 복사본을 로드하고, 상기 복사본에 기초하여 상기 분산 학습을 수행하는, 결함 복구 시스템.
  7. 제1항에 있어서,
    상기 결함이 발생한 워커 노드가 복구된 경우, 복구된 워커 노드의 워커 프로세스를 재실행하는 원격 프로세스 실행 모듈
    을 더 포함하는, 결함 복구 시스템.
  8. 제7항에 있어서,
    상기 마스터 노드는
    상기 워커 프로세스가 재실행되는 경우, 상기 복구된 워커 노드를 추가하여 상기 참여자 목록을 조정하는, 결함 복구 시스템.
  9. 집단 커뮤니케이션(collective communication)의 참여자 목록(participants list)에 포함된 복수의 워커 노드들 각각으로부터 해당 워커 노드에서 수행되는 워커 프로세스의 결함 발생 확인을 위한 상태 신호를 수신하고,
    상기 상태 신호에 기초하여, 상기 워커 프로세스의 결함 여부를 판단하고,
    상기 결함이 발생했다는 판단에 기초하여, 상기 참여자 목록에서 상기 결함이 발생한 워커 노드를 제외하여 새로운 참여자 목록을 조정하고,
    상기 새로운 참여자 목록에 포함된 하나 이상의 워커 노드로 상기 새로운 참여자 목록을 전달하는 프로세서
    를 포함하는 결함 복구 장치.
  10. 마스터 노드에서, 미리 정해진 주기에 따라 복수의 워커 노드들의 결함을 검출하는 단계;
    상기 마스터 노드에서, 상기 결함이 발생할 경우 집단 커뮤니케이션(collective communication)의 참여자 목록(participants list)을 조정하는 단계;
    상기 마스터 노드에서, 상기 조정된 참여자 목록을 상기 조정된 참여자 목록에 포함된 하나 이상의 워커 노드로 전달하는 단계; 및
    상기 조정된 참여자 목록에 포함된 하나 이상의 워커 노드 각각에서, 미리 정해진 개수의 미니 배치를 학습하는 단계
    를 포함하는, 결함 복구 방법.
  11. 제10항에 있어서,
    상기 참여자 목록을 조정하는 단계는
    상기 마스터 노드에서, 상기 복수의 워커 노드들 각각으로부터 해당 워커 노드에서 수행되는 워커 프로세스의 결함 발생 확인을 위한 상태 신호를 수신하는 단계
    를 더 포함하는, 결함 복구 방법.
  12. 제11항에 있어서,
    상기 참여자 목록을 조정하는 단계는
    상기 마스터 노드에서, 상기 상태 신호에 기초하여 상기 워커 프로세스의 결함 여부를 판단하는 단계
    를 더 포함하는, 결함 복구 방법.
  13. 제10항에 있어서,
    상기 참여자 목록을 조정하는 단계는
    상기 마스터 노드에서, 상기 결함이 발생할 경우 상기 결함이 발생한 워커 노드를 제외하여 상기 참여자 목록을 조정하는 단계
    를 포함하는, 결함 복구 방법.
  14. 제10항에 있어서,
    상기 복수의 워커 노드들 각각에서, 해당 주기에서 상기 결함이 발생하지 않을 경우 상기 해당 주기에서 수행한 작업 상태의 복사본을 제1 메모리에 저장하는 단계
    를 더 포함하는, 결함 복구 방법.
  15. 제10항에 있어서,
    상기 미니 배치를 학습하는 단계는
    상기 복수의 워커 노드들 각각에서, 제1 메모리에 저장된 복사본을 로드하고, 상기 복사본에 기초하여 분산 학습을 수행하는 단계
    를 포함하는, 결함 복구 방법.
  16. 제10항에 있어서,
    원격 프로세스 실행 모듈에서, 상기 결함이 발생한 워커 노드가 복구된 경우 복구된 워커 노드의 워커 프로세스를 재실행하는 단계
    를 더 포함하는, 결함 복구 방법.
  17. 제16항에 있어서,
    상기 마스터 노드에서, 상기 워커 프로세스가 재실행되는 경우 상기 복구된 워커 노드를 추가하여 상기 참여자 목록을 조정하는 단계
    를 더 포함하는, 결함 복구 방법.
  18. 집단 커뮤니케이션(collective communication)의 참여자 목록(participants list)에 포함된 복수의 워커 노드들 각각으로부터 해당 워커 노드에서 수행되는 워커 프로세스의 결함 발생 확인을 위한 상태 신호를 수신하는 단계;
    상기 상태 신호에 기초하여, 상기 워커 프로세스의 결함 여부를 판단하는 단계;
    상기 결함이 발생했다는 판단에 기초하여, 상기 참여자 목록에서 상기 결함이 발생한 워커 노드를 제외하여 새로운 참여자 목록을 조정하는 단계; 및
    상기 새로운 참여자 목록에 포함된 하나 이상의 워커 노드로 상기 새로운 참여자 목록을 전달하는 단계
    를 포함하는 마스터 노드의 동작 방법.
  19. 하드웨어와 결합되어 제11항 내지 제18항 중 어느 하나의 항의 방법을 실행시키기 위하여 매체에 저장된 컴퓨터 프로그램.
KR1020210148296A 2021-11-01 2021-11-01 결함 복구 시스템 KR20230063247A (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020210148296A KR20230063247A (ko) 2021-11-01 2021-11-01 결함 복구 시스템
US17/954,508 US20230139091A1 (en) 2021-11-01 2022-09-28 System, apparatus and method with fault recovery
CN202211301006.3A CN116070110A (zh) 2021-11-01 2022-10-24 用于故障恢复的系统、设备和方法
EP22204763.1A EP4174728A1 (en) 2021-11-01 2022-10-31 System, apparatus and method with fault recovery

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210148296A KR20230063247A (ko) 2021-11-01 2021-11-01 결함 복구 시스템

Publications (1)

Publication Number Publication Date
KR20230063247A true KR20230063247A (ko) 2023-05-09

Family

ID=84045013

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210148296A KR20230063247A (ko) 2021-11-01 2021-11-01 결함 복구 시스템

Country Status (4)

Country Link
US (1) US20230139091A1 (ko)
EP (1) EP4174728A1 (ko)
KR (1) KR20230063247A (ko)
CN (1) CN116070110A (ko)

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7562138B2 (en) * 2004-12-28 2009-07-14 Sap Shared memory based monitoring for application servers
US8438571B2 (en) * 2010-02-24 2013-05-07 International Business Machines Corporation Thread speculative execution and asynchronous conflict
US8595234B2 (en) * 2010-05-17 2013-11-26 Wal-Mart Stores, Inc. Processing data feeds
CN105119794B (zh) * 2011-10-05 2019-04-30 美国亚德诺半导体公司 用于高速数据和电力分配的双线通信系统
US9747183B2 (en) * 2013-12-31 2017-08-29 Ciena Corporation Method and system for intelligent distributed health monitoring in switching system equipment
US11989194B2 (en) * 2017-07-31 2024-05-21 Splunk Inc. Addressing memory limits for partition tracking among worker nodes
US20210182660A1 (en) * 2019-12-16 2021-06-17 Soundhound, Inc. Distributed training of neural network models
US11467879B2 (en) * 2020-01-20 2022-10-11 Oracle International Corporation Techniques for implementing rollback of infrastructure changes in a cloud infrastructure orchestration service
US20220101178A1 (en) * 2020-09-25 2022-03-31 EMC IP Holding Company LLC Adaptive distributed learning model optimization for performance prediction under data privacy constraints
US20220108209A1 (en) * 2020-10-05 2022-04-07 Microsoft Technology Licensing, Llc Shared memory spaces in data and model parallelism

Also Published As

Publication number Publication date
EP4174728A1 (en) 2023-05-03
CN116070110A (zh) 2023-05-05
US20230139091A1 (en) 2023-05-04

Similar Documents

Publication Publication Date Title
US7516361B2 (en) Method for automatic checkpoint of system and application software
US7496786B2 (en) Systems and methods for maintaining lock step operation
US9164854B2 (en) Thread sparing between cores in a multi-threaded processor
US7516358B2 (en) Tuning core voltages of processors
JP4691105B2 (ja) 冗長マルチスレッド環境でのチェッカ命令の実行
JP4886826B2 (ja) フォールト・トレラント・コンピュータ・システム、方法及びプログラム
CN102016808A (zh) 将检查点数据存储于非易失性存储器中
US8145944B2 (en) Business process error handling through process instance backup and recovery
CN109086425B (zh) 用于数据库的数据处理方法和装置
JP4712102B2 (ja) 記憶装置、データ処理方法およびデータ処理プログラム
US20180143774A1 (en) Multi-mode data replication for data loss risk reduction
US20170199760A1 (en) Multi-transactional system using transactional memory logs
JP2017189094A (ja) 冗長電源のスマート電力クランプに用いるシステムと方法
US10360115B2 (en) Monitoring device, fault-tolerant system, and control method
US10860411B2 (en) Automatically detecting time-of-fault bugs in cloud systems
JP2018538628A (ja) ブロックアトミック実行モデルを利用するプロセッサベースシステムにおける部分的に実行された命令ブロックのリプレイ
CN114035905A (zh) 基于虚拟机的故障迁移方法及装置、电子设备和存储介质
CN112395050B (zh) 一种虚拟机备份方法、装置、电子设备及可读存储介质
KR20230063247A (ko) 결함 복구 시스템
CN116069468A (zh) 检查点调整的方法和装置
JP2000298594A (ja) フォールトトレラント制御方法および冗長コンピュータシステム
WO2016075800A1 (ja) プログラマブル回路
JP2015106226A (ja) 二重化システム
JP2005050084A (ja) 障害時動作検証装置及び障害時動作検証方法
KR20230131017A (ko) 가속기에 대해 온-디멘드 체크포인트를 수행하는 전자 장치 및 그 동작 방법