断点续训相关接口
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框架。 |
客户端初始化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 | 当前注入的回调类型。
|
| func | 函数 | 当前注册的功能的函数回调 |
start(self)
调用MSRunPlugin start方法使TaskD接管MindSpore训练进程管理。
__init__(self)
构造MSRunPlugin类,用户后续实例化调用。