4.2蚂蚁ai coding题目

# 集群调度策略模块设计和模拟

## 题目目标

设计并实现一个集群调度器(Scheduler)+ 模拟器,用于在动态负载和故障条件下平衡:
- 高优作业低延迟
- 集群利用率
- 普通作业公平性

## 场景设定

- 集群包含 `M` 台同质机器(Machine `0 ~ M-1`)
- 作业属性:`job_id`、`priority`、`resource_num`、`estimated_time`
- `estimated_time` 与真实时长存在误差(约 ±20%)

作业类型:
- 普通作业(normal):每天 08:00 批量提交
- 高优作业(high):全天随机提交,要求快速响应

## 运行规则(必做)

1. 调度与资源占用
- 作业需绑定到足够空闲机器后才能运行
- 运行期间机器被独占

2. 作业完成与失败
- 作业可能成功或失败
- 若失败原因是硬件故障:相关机器下线维修 24 小时

3. 抢占机制
- 允许抢占运行中的作业
- 被抢占作业回队列等待重试,额外增加约 10 分钟执行成本

## 输出与指标要求(必做)

调度器应输出可复盘日志,并至少统计:
- 高优作业平均等待时长 / P95 等待时长
- 集群利用率(时间窗内)
- 普通作业公平性指标(如最长等待、等待方差、饥饿作业数)

## 测试与验收要求(必做)

至少完成以下测试:

1. 基线对比(与至少 1 个基线策略对比(如 FIFO / 纯优先级))
2. 波峰场景(批量普通作业 + 高频高优插队)
3. 故障场景
4. 抢占场景
5. 结果可复现

## 交付物

- 调度器源码
- 模拟器源码与输入样例
- 策略说明(为何这样设计)
- 指标报告与对比图表
- 已知问题与下一步优化

## 加分项

- 自适应策略(根据实时拥塞/故障率动态调参)
- 抢占成本建模更精细
- 多目标优化或可插拔策略框架
全部评论

相关推荐

评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务