断点续训特性支持通过Volcano调度器感知并处理因业务面故障导致的任务失败。业务面故障是因容器内的训练进程均异常退出后引起容器异常退出,导致Pod的Status变为Failed状态。在使用Ascend Operator的场景下,业务面故障仅支持任务的部分Pod发生故障的场景,若任务所有Pod在几秒内Status都转变为Failed,任务不会发生重调度,认定任务为失败状态Ascend Operator在使用。
业务面故障发现原理如图1所示。
调度器不断轮询地查询每个任务的Pod状态,从而感知到业务面故障并上报该故障。用户可根据具体业务需求对业务面故障做处理。断点续训获取到业务面故障后,Volcano会检测是否开启无条件重试功能,开启后会将任务重新调度到未导致本次训练任务重调度的新节点,并重新执行训练任务,重试次数减1;当重试次数为0或者没有开启无条件重试功能时,不会对业务容器故障进行处理。