排队任务很多,不代表设备已经在计算;设备显示空闲,也不一定说明资源没有被占用。做人工智能研发团队算力资源利用率核算,关键是区分“设备在用”“资源已分配”和“任务在等”这几种状态,不能把空闲卡和排队任务并进同一个利用率分子。
先分清三种状态:忙碌、空闲、排队
忙碌设备是在统计时段内实际执行计算任务的设备。已分配但空闲,指设备已被任务或用户占住,却因数据准备、程序等待、任务间歇等原因没有持续计算。排队任务则尚未获得所需资源,只代表需求正在等待,不代表设备已经投入使用。
因此,队列长度或等待时长适合衡量供需压力,不应直接加到设备忙碌时长上。反过来,只看设备是否分配,也会把长时间闲置的独占资源算成满负荷运行。
把利用率口径拆开核算
团队可以同时报告两项指标,而不是用一个数字解释所有问题:
- 设备忙碌率=统计期内设备实际忙碌时长之和 ÷ 可用设备时长之和。分母应扣除事先定义的维护、故障等不可用时段。
- 分配率=已分配设备时长之和 ÷ 可用设备时长之和。它反映资源被预留或占用的比例,不等同于计算活动。
例如,某时段有10张设备卡可用8小时,可用容量是80卡时。若其中有设备合计忙碌48卡时,忙碌率为60%;若分配出去64卡时,分配率为80%。两者相差的16卡时,提示需要检查已分配资源中的空闲部分。这里的数值仅用于说明算法,不代表行业基准。
用同一时间窗对齐任务和设备记录
- 确定统计范围。写明设备清单、时区、起止时间和采样间隔。按自然日统计时,应统一跨日任务的切分规则。
- 记录设备状态。从设备监控或调度系统采集忙碌、空闲、故障、维护等状态。若只记录瞬时状态,应说明采样频率,避免短任务被漏记。
- 对齐任务状态。使用调度记录区分运行中、等待调度、已完成和失败任务。以Slurm为例,作业状态可帮助识别等待与运行;但作业处于运行状态,并不能单独证明分配给它的每张卡都在忙碌。
- 按设备时长汇总。先计算每张卡在各状态下的时长,再求和。多卡任务按卡分别计时;不要把一个作业的等待时长重复计入每张设备的忙碌时长。
- 抽查异常区间。对“分配率高、忙碌率低”的时段,核对任务日志、数据输入和程序运行情况;对“队列等待长、忙碌率也高”的时段,再分析资源供需或任务优先级。
数字之外,还要标注原因和口径
团队可把设备忙碌率、分配率、队列等待时间并列展示,并按项目或任务类型筛选。这样能区分资源闲置、预留过多、任务集中提交等不同原因。显存占用高也不必然等于计算繁忙,宜作为诊断信号单独记录,而不是直接替代忙碌率。
做人工智能研发团队算力资源利用率核算时,报告中应注明分母是否排除了维护设备、是否统计已分配但空闲、以及任务等待如何处理。口径固定后再比较不同周或不同团队,避免因统计规则变化造成表面上的利用率升降。
常见问题
排队任务能计入利用率吗?
不能计入设备忙碌时长。可单独统计排队数量、等待时间或所需资源量。
设备已分配但没有计算,算不算利用?
可计入分配率,但不应直接算作设备忙碌。两项指标并列,更能说明资源使用情况。
只报一个利用率数字可以吗?
如果必须简化,应明确它指忙碌率还是分配率,并说明可用设备和统计时段的口径。更稳妥的做法是同时呈现两者。
归根结底,人工智能研发团队算力资源利用率核算要把“正在计算”和“正在等待”分开:空闲卡按设备状态记录,排队任务按需求压力记录,才能让数字真正支持资源调度决策。