断点续训相关接口

taskd.python.toolkit.recover_module.recover_manager. DLRecoverManager(内部接口,严禁调用)

功能说明

DLRecoverManager类提供进程级恢复和进程级在线恢复相关接口。客户端以Python包形式import到客户端代码中。

Note

DLRecoverManager类提供的接口可能抛出Exception异常,调用方自行捕获异常、处理异常。

__init__(self, info: pb.ClientInfo, server_addr: str)

构造DLRecoverManager,用于后续的通信。

表 1 参数说明

参数 类型 说明
info pb.ClientInfo

info.jobId:str类型,任务ID。

info.role:str类型,客户端角色。

server_addr str 服务端地址

register(self, request: pb.ClientInfo) -> pb.Status

注册客户端,服务端为request指定的任务做恢复前的初始化操作。

表 2 参数说明

参数 类型 说明
request pb.ClientInfo

request.jobId:str类型,任务ID。

request.role:str类型,客户端角色。

表 3 返回值说明

返回值类型 说明
Status

Status.info:str类型,返回信息描述

Status.code:int类型,0表示成功,其他值表示失败。关于返回码的详细说明请参见返回码说明

def start_subscribe(self, frame: str = "pytorch")

客户端和服务端建立gRPC长链接,服务端将通过该长链接与客户端单向通信。比如发生故障时,服务端给客户端发送停止训练、全局故障rank信息等。

表 4 参数说明

参数 类型 说明
frame str 表示任务所使用的AI框架。

init_clusterd(self)

客户端初始化ClusterD服务端状态,保证后续任务正常注册、建立链接。

report_stop_complete(code: int, msg: str, fault_ranks: dict) -> int

功能说明

客户端给服务端上报任务的进程停止完成。一般是在客户端收到服务端的停止训练信号后,客户端停止训练任务的进程,然后给服务端上报任务的进程停止完成。

输入参数说明

表 1 参数说明

参数 类型 说明
code int 状态码
msg str 返回信息
fault_ranks dict 故障进程Rank

返回值说明

表 2 返回值说明

返回值类型 说明
int 0表示成功,其他返回值表示失败。关于返回码的详细说明请参见返回码说明

report_recover_strategy(fault_ranks: dict, strategy_list: list) -> int

功能说明

客户端给服务端上报客户端支持的恢复策略,供服务端选择最佳恢复策略,服务端再通过start_subscribe构建的长链接下发给客户端。

输入参数说明

表 1 参数说明

参数 类型 说明
fault_ranks dict 故障进程Rank
strategy_list list 恢复策略列表

返回值说明

表 2 返回值说明

返回值类型 说明
int 0表示成功,其他返回值表示失败。关于返回码的详细说明请参见返回码说明

report_recover_status(code: int, msg: str, fault_ranks: dict, strategy: str) -> int

功能说明

客户端给服务端上报任务恢复状态。

输入参数说明

表 1 参数说明

参数 类型 说明
code int类型 状态码
msg str 返回信息
fault_ranks dict 故障进程Rank
strategy str 修复策略

返回值说明

表 2 返回值说明

返回值类型 说明
int 0表示成功,其他返回值表示失败。关于返回码的详细说明请参见返回码说明

report_process_fault(fault_ranks: dict) -> int

功能说明

客户端上报任务进程业务面故障。客户端先发现故障时,给服务端上报业务面故障所在的rank的信息。

输入参数说明

表 1 参数说明

参数 类型 说明
fault_ranks dict 故障进程Rank

返回值说明

表 2 返回值说明

返回值类型 说明
int 0表示成功,其他返回值表示失败。关于返回码的详细说明请参见返回码说明

taskd.python.framework.agent.ms_mgr.msrun_plugin. MSRunPlugin

MSRunPlugin类提供MindSpore进程管理功能,由MindSpore调用,集成到MindSpore包内部。

register_callbacks(self, operator, func)

功能说明

向TaskD注册进程管理函数,用于后续在管理进程生命周期过程中使用。

输入参数说明

表 1 输入参数说明

参数 类型 说明
operator string 当前注入的回调类型。
  • KILL_WORKER:注册MindSpore进程的停止方法,停止特定训练进程。
  • START_ALL_WORKER:注册MindSpore进程的启动方法,启动当前节点所有的进程。
  • MONITOR:注册MindSpore进程的监测方法,返回当前本节点各rank进程信息。
  • START_WORKER_LIST:注册MindSpore进程的启动方法,启动当前节点的部分进程。
func 函数 当前注册的功能的函数回调

start(self)

调用MSRunPlugin start方法使TaskD接管MindSpore训练进程管理。

__init__(self)

构造MSRunPlugin类,用户后续实例化调用。