CN116070110A - 用于故障恢复的系统、设备和方法 - Google Patents

用于故障恢复的系统、设备和方法 Download PDF

Info

Publication number
CN116070110A
CN116070110A CN202211301006.3A CN202211301006A CN116070110A CN 116070110 A CN116070110 A CN 116070110A CN 202211301006 A CN202211301006 A CN 202211301006A CN 116070110 A CN116070110 A CN 116070110A
Authority
CN
China
Prior art keywords
worker
participant list
failure
node
collective communication
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
CN202211301006.3A
Other languages
English (en)
Inventor
金容德
李炅根
鱼丁允
田炳坤
慎眼宰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
SNU R&DB Foundation
Original Assignee
Samsung Electronics Co Ltd
SNU R&DB Foundation
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 Samsung Electronics Co Ltd, SNU R&DB Foundation filed Critical Samsung Electronics Co Ltd
Publication of CN116070110A publication Critical patent/CN116070110A/zh
Pending legal-status Critical Current

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)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computational Linguistics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Computer Hardware Design (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Retry When Errors Occur (AREA)
  • Hardware Redundancy (AREA)

Abstract

提供用于故障恢复的系统、设备和方法。所述系统包括:多个工作者节点,被配置为执行分布式训练;以及主节点,被配置为控制所述多个工作者节点,其中,主节点被配置为:基于预定时段检测所述多个工作者节点的故障;响应于检测到故障,调整集体通信参与者列表;和将调整后的参与者列表发送到调整后的参与者列表中的一个或多个工作者节点。

Description

用于故障恢复的系统、设备和方法
本申请要求于2021年11月1日在韩国知识产权局提交的第10-2021-0148296号韩国专利申请的权益,该韩国专利申请的全部公开通过引用合并于此。
技术领域
以下描述涉及用于故障恢复的系统、设备和方法。
背景技术
当在深度神经网络(DNN)的分布式训练操作处理中发生故障时,1)工作者处理的手动恢复以及2)通过磁盘检查点的状态修复可恢复操作。
发明内容
提供本发明内容来以简化的形式介绍在下面的具体实施方式中进一步描述的构思的选择。本发明内容不意在确认要求权利的主题的关键特征或必要特征,也不意在用于帮助确定要求权利的主题的范围。
在一个总体方面,一种具有故障恢复的系统包括:多个工作者节点,被配置为执行分布式训练;以及主节点,被配置为控制所述多个工作者节点,其中,主节点被配置为:基于预定时段检测所述多个工作者节点的故障;响应于检测到故障,调整集体通信参与者列表;和将调整后的参与者列表发送到调整后的参与者列表中的一个或多个工作者节点。
针对检测故障的处理,主节点可被配置为:从所述多个工作者节点中的每个接收用于验证在由对应的工作者节点执行的工作者处理中是否发生故障的状态信号。
针对检测故障的处理,主节点可被配置为:基于所述状态信号来确定在所述工作者处理中是否发生故障。
针对调整集体通信参与者列表的处理,主节点可被配置为:响应于检测到故障,通过排除在其中发生故障的工作者节点来调整集体通信参与者列表。
所述多个工作者节点中的每个可被配置为:响应于在对应时段中未发生故障,将在对应时段中执行的工作状态的副本存储在第一存储器中。
调整后的参与者列表中的所述一个或多个工作者节点中的每个可被配置为:加载存储在第一存储器中的副本并且基于副本执行分布式训练。
所述系统可包括:远程处理执行模块,被配置为:响应于在其中发生故障的工作者节点被恢复,重新执行恢复的工作者节点的工作者处理。
主节点可被配置为:响应于所述工作者处理被重新执行,通过添加恢复的工作者节点来调整集体通信参与者列表。
在另一总体方面,一种具有故障恢复的设备包括:一个或多个处理器,被配置为:从集体通信参与者列表中的多个工作者节点中的每个接收用于验证在由对应的工作者节点执行的工作者处理中是否发生故障的状态信号;基于所述状态信号来确定所述工作者处理中是否发生故障;基于确定发生故障,通过从参与者列表排除在其中发生故障的工作者节点来调整参与者列表;以及将调整后的参与者列表发送到调整后的参与者列表中的一个或多个工作者节点。
在另一总体方面,一种具有故障恢复的处理器实现的方法包括:由主节点基于预定时段检测多个工作者节点的故障;响应于检测到故障,由主节点调整集体通信参与者列表;由主节点将调整后的参与者列表发送到调整后的参与者列表中的一个或多个工作者节点;以及在调整后的参与者列表中的所述一个或多个工作者节点中的每个中训练预定数量的小批量。
检测故障的步骤还可包括:由主节点从所述多个工作者节点中的每个接收用于验证在由对应的节点执行的工作者处理中是否发生故障的状态信号。
检测故障的步骤还可包括:由主节点基于所述状态信号来确定在所述工作者处理中是否发生故障。
调整集体通信参与者列表的步骤可包括:响应于检测到故障,由主节点通过排除在其中发生故障的工作者节点来调整集体通信参与者列表。
所述方法可包括:响应于在所述多个工作者节点中的每个中在对应时段中未发生故障,将在对应时段中执行的工作状态的副本存储在第一存储器中。
训练小批量的步骤可包括:加载存储在第一存储器中的副本并且基于副本在所述多个工作者节点中的每个中执行分布式训练。
所述方法可包括:响应于在其中发生故障的工作者节点被恢复,在远程处理执行模块中重新执行恢复的工作者节点的工作者处理。
所述方法可包括:响应于所述工作者处理被重新执行,由主节点通过添加恢复的工作者节点来调整集体通信参与者列表。
在另一总体方面,一个或多个实施例包括存储指令的非暂时性计算机可读存储介质,所述指令在由一个或多个处理器执行时将所述一个或多个处理器配置为执行在此描述的任何一个、任何组合或所有操作和方法。
在另一总体方面,一种具有故障恢复的处理器实现的方法包括:从集体通信参与者列表中的多个工作者节点中的每个接收用于验证在由对应的工作者节点执行的工作者处理中是否发生故障的状态信号;基于所述状态信号来确定所述工作者处理中是否发生故障;基于确定发生故障,通过从参与者列表排除在其中发生故障的工作者节点来调整参与者列表;以及将调整后的参与者列表发送到调整后的参与者列表中的一个或多个工作者节点。
在另一总体方面,一种具有故障恢复的处理器实现的方法包括:由集体通信参与者列表中的工作者节点发送用于验证在由所述工作者节点执行的工作者处理中是否发生故障的状态信号;由所述工作者节点接收排除执行在其中发生故障的工作者处理的另一工作者节点的调整后的参与者列表;以及响应于接收到调整后的参与者列表,由所述工作者节点训练预定数量的小批量。
所述方法可包括:响应于接收到调整后的参与者列表,由所述工作者节点读取所述工作者节点的第一存储器的存储器内检查点,其中,训练的步骤可包括:响应于读取存储器内检查点,训练预定数量的小批量。
所述方法可包括:响应于确定训练未完成,将由训练生成的模型参数作为另一存储器内检查点写入第一存储器。
第一存储器可以是所述工作者节点的通用存储器,并且所述工作者节点的第二存储器可以是用于驱动人工神经网络以执行训练的专用模块。
根据下面的具体实施方式、附图和权利要求,其他特征和方面将是清楚的。
附图说明
图1示出故障恢复系统的示例。
图2示出通过动态汇聚的工作者处理故障恢复方法的示例。
图3示出故障恢复方法的示例。
图4A和图4B示出使用动态汇聚和存储器内检查点从故障自动恢复分布式训练操作的处理的示例。
图5示出远程工作者处理重新执行方法的示例。
图6示出故障恢复设备的示例。
贯穿附图和具体实施方式,除非另有描述或提供,否则相同的附图参考标号将被理解为指代相同的元件、特征和结构。附图可不按比例,并且为了清楚、示出和方便,附图中的元件的相对大小、比例和描绘可被夸大。
具体实施方式
提供以下具体实施方式以帮助读者获得对在此描述的方法、设备和/或系统的全面理解。然而,在理解本申请的公开之后,在此描述的方法、设备和/或系统的各种改变、修改和等同物将是清楚的。例如,在此描述的操作的顺序仅是示例,并不限于在此阐述的那些顺序,而是除了必须以特定次序发生的操作之外,可如在理解本申请的公开之后将是清楚的那样被改变。此外,为了更加清楚和简明,可省略在理解本申请的公开之后已知的特征的描述。
尽管可使用术语“第一”、“第二”和“第三”来解释各种构件、组件、区域、层或部分,但这些构件、组件、区域、层或部分不受这些术语限制。相反,这些术语仅用于将一个构件、组件、区域、层或部分与另一构件、组件、区域、层或部分区分开。例如,在不脱离示例的教导的情况下,在此描述的示例中所称的“第一”构件、“第一”组件、“第一”区域、“第一”层或“第一”部分可被称为“第二”构件、“第二”组件、“第二”区域、“第二”层或“第二”部分。
贯穿说明书,当组件被描述为“连接到”或“结合到”另一组件时,所述组件可直接“连接到”或“结合到”所述另一组件,或者可存在介于其间的一个或多个其他组件。相反,当元件被描述为“直接连接到”或“直接结合到”另一元件时,可不存在介于其间的其他元件。同样地,类似的表达(例如,“在……之间”与“紧接在……之间”以及“相邻”和“紧邻”)也应以相同的方式被解释。如在此使用的,术语“和/或”包括相关所列项中的任何一个和任何两个或更多个的任意组合。
在此使用的术语仅用于描述各种示例,而不用于限制公开。除非上下文另外清楚地指示,否则单数也旨在包括复数形式。还应理解,术语“包含”和“包括”在本说明书中使用时,表明存在陈述的特征、整数、步骤、操作、元件、组件和/或它们的组合,但不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组合。在此关于示例或实施例的术语“可”的使用(例如,关于示例或实施例可包括或实现什么)表示存在包括或实现这样的特征的至少一个示例或实施例,而所有示例不限于此。
除非另外定义,否则在此使用的所有术语(包括技术术语和科学术语)具有与本公开所属领域的普通技术人员通常理解的含义和在理解本公开之后的含义相同的含义。除非在此明确地如此定义,否则术语(诸如,在通用词典中定义的术语)应被解释为具有与它们在相关领域的上下文和本公开中的含义一致的含义,并且不应以理想化或过于形式化的含义进行解释。
以下示例可以是各种类型的产品(例如,个人计算机(PC)、膝上型计算机、平板计算机、智能电话、电视(TV)、智能家用电器、智能车辆、自助服务终端(kiosk)和/或可穿戴装置)或者体现在各种类型的产品中。在下文中,将参照附图详细描述示例。当参照附图描述示例时,相同的附图标号指代相同的组件,并且与其有关的重复描述将被省略。
图1示出故障恢复系统的示例。
当同时执行分布式处理的分布式训练操作(例如,深度神经网络(DNN)的分布式训练操作)长时间使用多个计算模块(例如,中央处理器(CPU)、图形处理器(GPU)和/或神经处理器(NPU))时,可存在发生意外故障的高概率,因此故障可被解决以保留操作执行内容。
当在DNN的分布式训练操作中发生故障时,1)工作者处理(worker process,又称为工作进程)的手动恢复以及2)通过磁盘检查点的状态修复,可恢复操作。
这里,1)工作者处理的手动恢复可以是在其中人手动重新执行由于故障而突然终止的工作者处理的方法,2)通过磁盘检查点的状态修复可以是重新执行的工作者处理的状态(例如,模型参数)等)通过在发生故障之前保存在磁盘上的检查点状态被恢复。
然而,手动恢复工作者处理和通过磁盘检查点恢复状态的典型方法可具有以下问题。1)当发生故障时,人可需要手动验证和恢复故障,这延长了作业的停机时间,直到故障被恢复。持续监测可需要由人执行以相应地管理故障。2)当磁盘具有比存储器相对慢的读取/写入速度时,对磁盘上的操作状态进行检查点设置(checkpointing)的高频率可影响训练速度,然而,当磁盘检查点频率被设置为极低以避免影响训练速度时,因为当状态由于故障而被恢复时存在将状态恢复到先前的旧状态的高概率,所以重新计算成本可能很大。
此外,模型和数据集的大小可以很大,从而增加了故障率。因此,具有上述问题,恢复工作者处理和恢复状态的典型方法可无法有效地对故障进行响应。
相比之下,在此描述的一个或多个实施例的故障恢复系统可使用1)通过动态汇聚(dynamic rendezvous)的工作者处理恢复方法和2)存储器内检查点(in-memorycheckpoint)方法来解决上述典型方法的问题。
参照图1,故障恢复系统100可包括主节点110和多个工作者节点(worker node,又称为工作节点)150作为主体。
主节点110可以是或包括汇聚服务器。中心中的主节点110可通过汇聚服务器监测和控制多个工作者节点150。
工作者节点150可以是执行分布式训练的对象,并且由每个工作者节点执行的操作可被定义为工作者处理。例如,工作者节点150可通过数据并行处理来执行分布式训练。每个工作者节点150可以是或包括一个或多个计算模块(例如,中央处理器(CPU)、图形处理器(GPU)和/或神经处理器(NPU)),以执行分布式训练的对应部分。
中心中的主节点110可从多个工作者节点中的每个监视由对应的工作者节点执行的工作者处理的健康状态。这里,工作者处理的健康状态可指示在工作者处理中是否已经发生故障(例如,在工作者处理中是已经发生故障还是尚未发生故障)。在其中未发生故障的状态可以是在其中工作者处理健康的状态(作为非限制性示例,当主节点110检测到工作者处理中尚未发生故障时,主节点110可确定由工作者节点执行的工作者处理处于健康状态)。当主节点110检测到在一个或多个工作者处理(例如,由工作者节点150中的一个或多个执行的一个或多个工作者处理)中已经发生故障时,主节点110可执行用于恢复故障的操作。
例如,在典型的故障恢复系统中,当一个或多个工作者处理由于训练处理中的故障而异常地被终止时,因为由于故障而异常地被终止的工作者处理会在不经历适当的处理的情况下从集体通信参与者列表(在下文中称为参与者列表)中被移除,所以所有剩余的工作者处理可异常地被终止。
相比之下,当在一个或多个工作者处理中发生故障时,剩余的工作者处理可在一个或多个实施例的故障恢复系统100自动检测到故障时正常地继续训练而不会异常地被终止,并且一个或多个实施例的故障恢复系统100可针对剩余的工作者处理适当地重新调整集体通信参与者列表。因此,如上所述,一个或多个实施例的故障恢复系统100可使用1)通过动态汇聚的工作者处理恢复方法。
此外,即使当在训练处理中的一个或多个工作者处理中发生故障时,一个或多个实施例的故障恢复系统100也可通过将模型参数的状态复制和存储在剩余的工作者处理的CPU存储器中而即便在没有对磁盘的检查点设置的情况下也防止由故障引起的训练结果的丢失。因此,如上所述,一个或多个实施例的故障恢复系统100可使用2)存储器内检查点方法。
当动态随机存取存储器(DRAM)与持久性存储装置(例如,磁盘)相比具有显著更快的读取/写入速度时,检查点可以以比磁盘高的频率被生成,这在发生故障时大大降低了重新计算成本。此外,当状态响应于发生故障而恢复到其原始状态时,因为状态可使用比磁盘快的存储器读取速度被快速恢复,所以存储器的快速读取速度可减少发生故障时的停机时间。
图2示出通过动态汇聚的工作者处理故障恢复方法的示例。
图2中示出的操作可以以示出的顺序和方法被执行。然而,在不脱离示出示例的精神和范围的情况下,可改变一个或多个操作的顺序,或者可省略一个或多个操作。图2中示出的操作可并行或同时执行。在图2中,一个或多个块以及它们的组合可由执行预定功能的基于专用硬件的计算机和/或实施计算机指令的专用硬件来实现。参照图1提供的描述也可被应用于图2。因此,为了简洁,省略其更详细的描述。
当在一个或多个工作者处理中发生故障时,主节点(作为非限制性示例,图1的主节点110)可自动检测故障并且针对剩余的工作者处理适当地重新调整集体通信参与者列表。
例如,在操作210中,主节点可基于预定时段检测多个工作者节点(作为非限制性示例,图1的多个工作者节点150)的故障。主节点可从多个工作者节点中的每个接收用于验证在由对应的工作者节点执行的工作者处理中是否发生故障的状态信号,并且基于状态信号确定工作者处理是否故障。
例如,主节点可基于预定时段从每个工作者节点接收健康状态验证消息。当主节点在预定时段内(例如,从对应的工作者节点)未接收到健康状态验证消息时,主节点可确定在对应的工作者节点中发生故障。
在操作220中,当发生故障时(例如,当主节点确定发生故障时),主节点可调整集体通信参与者列表。当发生故障时,主节点可通过排除在其中发生故障的工作者节点(例如,对应的工作者节点)来调整参与者列表。
在操作230中,主节点可将调整后的参与者列表发送到调整后的参与者列表中的一个或多个工作者节点。例如,当主节点检测到已经在一个或多个工作者处理中发生故障时,主节点可创建排除了故障工作者处理的新的集体通信参与者列表(在下文中简称为新参与者列表),并将新参与者列表发送到剩余的正常工作者处理。
在操作240中,工作者节点可从调整后的参与者列表中的一个或多个工作者节点中的每个学习预定数量的小批量(mini batch)。已经接收到新参与者列表的正常的(例如,未排除的)工作者节点可基于新参与者列表继续训练。这里,新参与者列表可不包括在其中已经发生故障的工作者处理,因此正常的训练过程可被继续。
图3示出故障恢复方法的示例。
可以以图3中示出的次序和方式执行操作。然而,在不脱离描述的说明性示例的精神和范围的情况下,可改变一个或多个操作的顺序,或者可省略一个或多个操作。图3中的操作可被并行或同时执行。在图3中,一个或多个块以及它们的组合可由执行预定功能的基于专用硬件的计算机和/或实施计算机指令的专用硬件来实现。图1和图2的描述也可应用于图3。因此,为了简洁,省略其更详细的描述。
在操作310中,工作者节点(作为非限制性实例,图1的多个工作者节点150中的工作者节点)可执行初始工作者处理。
在操作320中,主节点(作为非限制性示例,图1的主节点110)可更新集体通信参与者列表。集体通信参与者列表可以是在当前时段中参与分布式训练的工作者节点的列表。
在操作330中,工作者节点可读取存储器内检查点。在一个示例中,响应于接收到调整后的集体通信参与者列表,工作者节点可读取工作者节点的第一存储器的存储器内检查点。当在训练开始之后紧接着在CPU存储器中不存在检查点时,检查点读取可被省略。
在操作340中,可用N个小批量训练工作者节点。这里,N可以是检查点设置时段的数量。
在操作350中,主节点可确定在训练处理中是否已经发生故障。
当主节点在操作350中确定尚未发生故障时,在操作360中,工作者节点可基于确定未发生故障来确定训练是否完成。
当工作者节点在操作360中确定训练未被完成(例如,未完成)时,在操作370中,工作者节点可基于训练未完成的确定而将在对应时段中执行的操作状态的副本(例如,模型参数)存储在处理器的(例如,工作者节点的)第一存储器中。在一个示例中,工作者节点可加载存储在第一存储器中的副本并且基于副本执行分布式训练(例如,用小批量执行训练)。在一个示例中,第一存储器可以是被包括在CPU中的存储器,但不限于此。例如,第一存储器可包括除GPU存储器之外的通用存储器(例如,主存储器、硬盘和/或高速缓冲存储器)。
当在接下来的N个小批量正在被学习时发生故障时,主节点可在操作350中检测到故障,并且作为响应,检测到故障的主节点可基于在操作350中确定发生故障而将新参与者列表更新并发送到剩余的正常工作者节点。
此后,在操作330中,因为在训练处理中已经发生故障,所以工作者节点可将工作恢复到最终检查点状态。
图4A至图4B示出使用动态汇聚和存储器内检查点从故障自动恢复分布式训练操作的处理。图1至图3的描述可应用于图4A和图4B。因此,为了简洁,省略其更详细的描述。
图4A示出当未发生故障时主节点(作为非限制性示例,图1的主节点110)和工作者节点(作为非限制性示例,图1的多个工作者节点150)的状态。
参照图4A,示图410示出当未发生故障时与操作310对应的主节点和工作者节点的状态,并且每个工作者节点可将与预定时段对应的模型参数(例如,模型参数0或模型参数N)加载到第二存储器中以执行工作者处理。在图4A和图4B中,第二存储器可以是GPU存储器,但不限于此。第二存储器可以是用于驱动人工神经网络(ANN)的专用模块(例如,NPU、张量处理器(TPU)、神经引擎、GPU和/或包括在数字信号处理器(DSP)中的存储器)。
示图420示出当未发生故障时与操作320对应的主节点和工作者节点的状态,并且主节点可更新集体通信参与者列表。
示图430示出当未发生故障时与操作340对应的主节点和工作者节点的状态,并且每个工作者节点可使用N个小批量进行训练。
示图440示出与操作370对应的主节点和工作者节点的状态。当在N个小批量正在被学习时未发生故障时,每个工作者节点可对包括模型参数的操作状态的副本进行检查点设置。
图4B示出当发生故障时主节点和工作者节点的状态。
参照图4B,示图450示出与操作350对应的主节点和工作者节点的状态。当在使用N个小批量正在训练主节点时发生故障时,可检测到在其中已经发生故障的工作者节点。
示图460示出当发生故障时与操作320和操作330对应的主节点和工作者节点的状态,并且检测到故障的主节点可将新参与者列表更新并发送到剩余的正常工作者节点。此外,因为在训练中发生故障,所以工作者节点可将操作恢复到其最终检查点状态。
图5示出远程工作处理重新执行方法的示例。图1至图4B的描述也可应用于图5。因此,为了简洁,省略其更详细的描述。
参照图5,故障恢复系统还可包括远程处理执行模块。
当由于故障而暂时不可用的工作者节点稍后通过远程处理执行模块变得可用时,故障恢复系统可远程地重新执行工作者处理并恢复在其中发生故障的状态之前的多个工作者处理。
参照示图510,当在分布式训练操作中发生故障时,可在工作者节点中发生故障。
参照示图520,当在其中发生故障的工作者节点被恢复时或者替代地当另一节点可用时,故障工作者处理可通过远程处理执行模块被重新执行。例如,恢复的工作者节点可将用于检查健康状态的消息发送到主节点,并且主节点可基于该消息来确定是否恢复工作者节点。此后,主节点可将用于重新执行故障工作者处理的信号发送到远程处理器执行模块。
参照示图530,当新的工作者处理被添加时,主节点可通过添加恢复的工作者节点来调整集体通信参与者列表。
图6示出故障恢复设备的示例。
参照图6,故障恢复设备600可以是或包括上面参照图1至图5描述的主节点(作为非限制性示例,图1的主节点110)。故障恢复设备600可包括处理器610(例如,一个或多个处理器)。故障恢复设备600还可包括存储器630和通信接口650。处理器610、存储器630和通信接口650可通过通信总线605彼此通信。
处理器610可以是具有物理结构化的电路以执行期望的操作的硬件实现的处理装置。例如,期望的操作可包括程序中的指令或代码。硬件实现的处理装置可以是或包括例如微处理器、CPU、GPU、处理器核、多核处理器、多处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、NPU、微控制器(MCU)等。
处理器610可执行程序并控制故障恢复设备600。由处理器610执行的程序的代码可被存储在存储器630中。
处理器610可从集体通信参与者列表中的多个工作者节点中的每个接收用于验证在由对应的工作者节点执行的工作者处理中是否发生故障的状态信号,基于状态信号确定在工作者处理中是否发生故障,基于确定发生故障通过从新参与者列表中排除在其中发生故障的工作者节点来调整新参与者列表,并且将新调整后的参与者列表发送到包括在新调整后的参与者列表中的一个或多个工作者节点。
存储器630可包括只读存储器(ROM)和静态随机存取存储器(SRAM)。ROM可存储用于动态卷积运算的神经网络模型和代码。
SRAM可被用作用于由处理器610执行的操作的工作存储器,并且存储各种应用程序。存储器630可存储由上述处理器610的处理过程生成的各种信息。此外,存储器630可存储各种数据和各种程序。存储器630可包括大容量存储介质(诸如,硬盘)以存储各种数据。
此外,用于执行动态卷积运算的故障恢复设备600还可包括显示器和通信接口。显示器可以是例如触摸显示器和/或柔性显示器,但不限于此。
在此针对图1至图6描述的故障恢复系统、主节点、工作者节点、故障恢复设备、处理器、存储器、通信接口、通信总线、故障恢复系统100、主节点110、工作者节点150、故障恢复设备600、处理器610、存储器630、通信接口650、通信总线605以及其他设备、单元、模块、装置和组件由硬件组件实现或表示硬件组件。可用于执行在本申请中描述的操作的硬件组件的示例在适当的情况下包括:控制器、传感器、生成器、驱动器、存储器、比较器、算术逻辑单元、加法器、减法器、乘法器、除法器、积分器以及被配置为执行本申请中描述的操作的任何其他电子组件。在其他示例中,执行在本申请中描述的操作的硬件组件中的一个或多个由计算硬件(例如,由一个或多个处理器或计算机)来实现。处理器或计算机可由一个或多个处理元件(诸如,逻辑门阵列、控制器和算术逻辑单元、数字信号处理器、微型计算机、可编程逻辑控制器、现场可编程门阵列、可编程逻辑阵列、微处理器或被配置为以限定的方式响应并执行指令以实现期望的结果的任何其他装置或装置的组合)来实现。在一个示例中,处理器或计算机包括或连接到存储由处理器或计算机执行的指令或软件的一个或多个存储器。由处理器或计算机实现的硬件组件可执行指令或软件(诸如,操作系统(OS)和在OS上运行的一个或多个软件应用)以执行在本申请中描述的操作。硬件组件还可响应于指令或软件的执行来访问、操控、处理、创建和存储数据。为了简明,单数术语“处理器”或“计算机”可用于在本申请中描述的示例的描述中,但是在其他示例中,多个处理器或计算机可被使用,或者处理器或计算机可包括多个处理元件、或多种类型的处理元件、或两者。例如,单个硬件组件、或者两个或更多个硬件组件可由单个处理器、或者两个或更多个处理器、或者处理器和控制器来实现。一个或多个硬件组件可由一个或多个处理器、或者处理器和控制器来实现,并且一个或多个其他硬件组件可由一个或多个其他处理器、或者另外的处理器和另外的控制器来实现。一个或多个处理器、或者处理器和控制器可实现单个硬件组件、或者两个或更多个硬件组件。硬件组件可具有不同的处理配置中的任何一个或多个,不同的处理配置的示例包括:单个处理器、独立处理器、并行处理器、单指令单数据(SISD)多处理、单指令多数据(SIMD)多处理、多指令单数据(MISD)多处理和多指令多数据(MIMD)多处理。
图1至图6中示出的执行在本申请中描述的操作的方法由计算硬件(例如,由一个或多个处理器或计算机)执行,计算硬件被实现为如上所述执行指令或软件以执行在本申请中描述的由所述方法执行的操作。例如,单个操作、或者两个或更多个操作可由单个处理器、或者两个或更多个处理器、或者处理器和控制器来执行。一个或多个操作可由一个或多个处理器、或者处理器和控制器来执行,并且一个或多个其他操作可由一个或多个其他处理器、或者另外的处理器和另外的控制器来执行。一个或多个处理器、或者处理器和控制器可执行单个操作、或者两个或更多个操作。
用于控制计算硬件(例如,一个或多个处理器或计算机)以实现硬件组件并执行如上所述的方法的指令或软件被编写为计算机程序、代码段、指令或它们的任何组合,以单独地或共同地指示或配置一个或多个处理器或计算机作为机器或专用计算机进行操作,以执行由如上所述的硬件组件和方法执行的操作。在一个示例中,指令或软件包括由一个或多个处理器或计算机直接执行的机器代码(诸如,由编译器产生的机器代码)。在另一示例中,指令或软件包括由一个或多个处理器或计算机使用解释器执行的高级代码。可基于附图中示出的框图和流程图以及在说明书中的相应描述使用任何编程语言来编写指令或软件,附图中示出的框图和流程图以及说明书中的相应描述公开了用于执行由如上所述的硬件组件和方法执行的操作的算法。
用于控制计算硬件(例如,一个或多个处理器或计算机)以实现硬件组件并执行如上所述的方法的指令或软件以及任何相关联的数据、数据文件和数据结构可被记录、存储或固定在一个或多个非暂时性计算机可读存储介质中,或者被记录、存储或固定在一个或多个非暂时性计算机可读存储介质上。非暂时性计算机可读存储介质的示例包括:只读存储器(ROM)、随机存取可编程只读存储器(PROM)、电可擦除可编程只读存储器(EEPROM)、随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、闪存、非易失性存储器、CD-ROM、CD-R、CD+R、CD-RW、CD+RW、DVD-ROM、DVD-R、DVD+R、DVD-RW、DVD+RW、DVD-RAM、BD-ROM、BD-R、BD-R LTH、bD-Re、蓝光或光盘存储装置、硬盘驱动器(HDD)、固态驱动器(SSD)、闪存、卡式存储器(诸如,多媒体卡或微型卡(例如,安全数字(SD)或极限数字(XD)))、磁带、软盘、磁光数据存储装置、光学数据存储装置、硬盘、固态盘以及任何其他装置,该任何其他装置被配置为以非暂时性方式存储指令或软件以及任何相关联的数据、数据文件和数据结构并将指令或软件以及任何相关联的数据、数据文件和数据结构提供给一个或多个处理器或计算机,使得一个或多个处理器或计算机能够执行指令。在一个示例中,指令或软件以及任何相关联的数据、数据文件和数据结构被分布在联网的计算机系统上,使得指令和软件以及任何相关联的数据、数据文件和数据结构以分布式方式被一个或多个处理器或计算机存储、访问和执行。
虽然本公开包括特定示例,但是在理解本申请的公开之后将清楚的是,在不脱离权利要求书和它们的等同物的精神和范围的情况下,可在这些示例中做出形式和细节上的各种改变。在此描述的示例应仅被认为是描述性的,而不是为了限制的目的。在每个示例中的特征或方面的描述应被认为可适用于其他示例中的相似的特征或方面。如果描述的技术以不同的次序被执行、和/或如果描述的系统、架构、装置或电路中的组件以不同的方式被组合、和/或被其他组件或它们的等同物取代或补充,则可实现合适的结果。

Claims (23)

1.一种用于故障恢复的系统,所述系统包括:
多个工作者节点,被配置为执行分布式训练;以及
主节点,被配置为控制所述多个工作者节点,其中,主节点被配置为:
基于预定时段检测所述多个工作者节点的故障;
响应于检测到故障,调整集体通信参与者列表;和
将调整后的集体通信参与者列表发送到调整后的集体通信参与者列表中的一个或多个工作者节点。
2.根据权利要求1所述的系统,其中,针对检测故障的处理,主节点被配置为:从所述多个工作者节点中的每个接收用于验证在由对应的工作者节点执行的工作者处理中是否发生故障的状态信号。
3.根据权利要求2所述的系统,其中,针对检测故障的处理,主节点被配置为:基于所述状态信号来确定在所述工作者处理中是否发生故障。
4.根据权利要求1所述的系统,其中,针对调整集体通信参与者列表的处理,主节点被配置为:响应于检测到故障,通过排除在其中发生故障的工作者节点来调整集体通信参与者列表。
5.根据权利要求1所述的系统,其中,所述多个工作者节点中的每个被配置为:响应于在对应时段中未发生故障,将在对应时段中执行的工作状态的副本存储在第一存储器中。
6.根据权利要求1所述的系统,其中,调整后的集体通信参与者列表中的所述一个或多个工作者节点中的每个被配置为:加载存储在第一存储器中的副本并且基于副本执行分布式训练。
7.根据权利要求1至6中的任意一项所述的系统,还包括:远程处理执行模块,被配置为:响应于在其中发生故障的工作者节点被恢复,重新执行恢复的工作者节点的工作者处理。
8.根据权利要求7所述的系统,其中,主节点被配置为:响应于所述工作者处理被重新执行,通过添加恢复的工作者节点来调整集体通信参与者列表。
9.一种用于故障恢复的设备,所述设备包括:
一个或多个处理器,被配置为:
从集体通信参与者列表中的多个工作者节点中的每个接收用于验证在由对应的工作者节点执行的工作者处理中是否发生故障的状态信号;
基于所述状态信号来确定所述工作者处理中是否发生故障;
基于确定发生故障,通过从集体通信参与者列表排除在其中发生故障的工作者节点来调整集体通信参与者列表;以及
将调整后的集体通信参与者列表发送到调整后的集体通信参与者列表中的一个或多个工作者节点。
10.一种用于故障恢复的方法,所述方法包括:
由主节点基于预定时段检测多个工作者节点的故障;
响应于检测到故障,由主节点调整集体通信参与者列表;
由主节点将调整后的集体通信参与者列表发送到调整后的集体通信参与者列表中的一个或多个工作者节点;以及
在调整后的集体通信参与者列表中的所述一个或多个工作者节点中的每个中训练预定数量的小批量。
11.根据权利要求10所述的方法,其中,检测故障的步骤还包括:由主节点从所述多个工作者节点中的每个接收用于验证在由对应的工作者节点执行的工作者处理中是否发生故障的状态信号。
12.根据权利要求11所述的方法,其中,检测故障的步骤还包括:由主节点基于所述状态信号来确定在所述工作者处理中是否发生故障。
13.根据权利要求10所述的方法,其中,调整集体通信参与者列表的步骤包括:响应于检测到故障,由主节点通过排除在其中发生故障的工作者节点来调整集体通信参与者列表。
14.根据权利要求10所述的方法,还包括:响应于在所述多个工作者节点中的每个中在对应时段中未发生故障,将在对应时段中执行的工作状态的副本存储在第一存储器中。
15.根据权利要求10所述的方法,其中,训练小批量的步骤包括:加载存储在第一存储器中的副本并且基于副本在所述多个工作者节点中的每个中执行分布式训练。
16.根据权利要求10至15中的任意一项所述的方法,还包括:响应于在其中发生故障的工作者节点被恢复,在远程处理执行模块中重新执行恢复的工作者节点的工作者处理。
17.根据权利要求16所述的方法,还包括:响应于所述工作者处理被重新执行,由主节点通过添加恢复的工作者节点来调整集体通信参与者列表。
18.一种存储指令的非暂时性计算机可读存储介质,所述指令在由一个或多个处理器执行时将所述一个或多个处理器配置为执行根据权利要求10至17中的任意一项所述的方法。
19.一种用于故障恢复的方法,所述方法包括:
从集体通信参与者列表中的多个工作者节点中的每个接收用于验证在由对应的工作者节点执行的工作者处理中是否发生故障的状态信号;
基于所述状态信号来确定所述工作者处理中是否发生故障;
基于确定发生故障,通过从集体通信参与者列表排除在其中发生故障的工作者节点来调整集体通信参与者列表;以及
将调整后的集体通信参与者列表发送到调整后的集体通信参与者列表中的一个或多个工作者节点。
20.一种用于故障恢复的方法,所述方法包括:
由集体通信参与者列表中的工作者节点发送用于验证在由所述工作者节点执行的工作者处理中是否发生故障的状态信号;
由所述工作者节点接收排除执行在其中发生故障的工作者处理的另一工作者节点的调整后的集体通信参与者列表;以及
响应于接收到调整后的集体通信参与者列表,由所述工作者节点训练预定数量的小批量。
21.根据权利要求20所述的方法,还包括:
响应于接收到调整后的集体通信参与者列表,由所述工作者节点读取所述工作者节点的第一存储器的存储器内检查点,
其中,训练的步骤包括:响应于读取存储器内检查点,训练预定数量的小批量。
22.根据权利要求21所述的方法,还包括:响应于确定训练未完成,将由训练生成的模型参数作为另一存储器内检查点写入第一存储器。
23.根据权利要求20至22中的任意一项所述的方法,其中,
第一存储器是所述工作者节点的通用存储器,并且
所述工作者节点的第二存储器是用于驱动人工神经网络以执行训练的专用模块。
CN202211301006.3A 2021-11-01 2022-10-24 用于故障恢复的系统、设备和方法 Pending CN116070110A (zh)

Applications Claiming Priority (2)

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

Publications (1)

Publication Number Publication Date
CN116070110A true CN116070110A (zh) 2023-05-05

Family

ID=84045013

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211301006.3A Pending CN116070110A (zh) 2021-11-01 2022-10-24 用于故障恢复的系统、设备和方法

Country Status (4)

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

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
CN103946829B (zh) * 2011-10-05 2016-09-21 美国亚德诺半导体公司 用于高速数据和电力分配的双线通信系统
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
US20230139091A1 (en) 2023-05-04
KR20230063247A (ko) 2023-05-09

Similar Documents

Publication Publication Date Title
US9286052B1 (en) Upgrading software on a pair of nodes in a clustered environment
CN105718570B (zh) 用于数据库的数据迁移方法和装置
CN114981771B (zh) 可从网络攻击和故障恢复的存储器设备
CN102016808A (zh) 将检查点数据存储于非易失性存储器中
TW201235840A (en) Error management across hardware and software layers
CN111506454A (zh) 基本输入/输出系统的恢复及更新的方法及系统
CN109086425B (zh) 用于数据库的数据处理方法和装置
CN105653345A (zh) 用于支持对数据的非易失性随机访问的方法和设备
US20210124655A1 (en) Dynamic Configurable Microcontroller Recovery
US9471256B2 (en) Systems and methods for restoring data in a degraded computer system
JP2019133633A (ja) 電子コンピュータ装置及び方法
US9195528B1 (en) Systems and methods for managing failover clusters
TWI483105B (zh) 主機板及其備份基板管理控制系統的方法
US20140195852A1 (en) Memory testing of three dimensional (3d) stacked memory
US20160124816A1 (en) Computing device and method for recovering bios of computing device
US9280431B2 (en) Prioritizing backups on a disk level within enterprise storage
US8504869B2 (en) Kernel swapping systems and methods for recovering a network device
EP2912555A1 (en) Hard drive backup
CN116701102A (zh) 用于对加速器执行按需检查点的电子装置和方法
US10855535B1 (en) Method and system for managing virtual datacenters
CN116070110A (zh) 用于故障恢复的系统、设备和方法
US8949560B1 (en) Validating an ability to roll back data to an earlier point in time for data associated with a virtual store
CN104572350B (zh) 一种元数据处理方法及装置
CN111090491B (zh) 虚拟机任务状态的恢复方法、装置及电子设备
US9971659B1 (en) Memory programming providing corruption protection

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication