团队申请了一组服务器,用于机器学习训练。为了充分利用资源,需要实现一个任务调度算法。具体要求如下:
服务器与任务:
调度规则:
在一个机器学习训练集群中,存在若干台服务器。所有训练任务在时刻 0 一次性提交完毕,并进入等待队列。每台服务器同一时刻只能运行一个训练任务;任务一旦开始执行,就必须在该服务器上连续运行直到完成,不能暂停或迁移。
每个训练任务有两个属性:训练时间 T 和优先级 P。优先级数值越小,表示优先级越高。当服务器出现空闲并需要从等待队列中选择下一个任务时,系统会优先选择优先级最高的任务;如果优先级相同,则选择训练时间最长的任务。当有多台服务器同时空闲时,可以并行启动多个任务,即使这些任务的优先级不同,也可以同时执行。
给定空闲服务器的数量以及所有训练任务的信息,请计算从时刻 0 到全部训练任务执行完毕所需的总时间。
约束条件:
M 满足 1≤M≤103。N 满足 1≤N≤105。
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册