【发布时间】:2012-12-22 16:58:10
【问题描述】:
我们有不同长度的任务列表、多个cpu核心和上下文切换时间。 我们希望在内核之间找到最佳的任务调度,以最大限度地提高处理器利用率。 我们怎么能找到这个? 如果我们从列表中选择最大的可用任务并将它们一一分配给当前准备好的核心,这不是最好的,还是您认为我们必须尝试所有命令才能找出哪个是最好的?
我必须补充一点,所有核心都在时间单元 0 准备就绪,并且任务应该同时工作。
【问题讨论】:
-
这听起来很像an NP-complete problem。
-
您是在暗示所有任务都需要同时处理吗?因为如果不是,我看不出优化会如何影响结果(只要处理器可用,只需将任何任务分配给任何空闲处理器)。
-
@svick +1 解释
-
@rambocoder 假设您有 2 个 CPU,1 个任务需要 10 秒,2 个任务,每个任务需要 5 秒。如果您正确安排它们,您将在 10 秒内完成。但是,如果您不正确地安排它们,则可能需要 15 秒。我认为这足以找出比“将任何任务分配给任何空闲处理器”更好的算法。
标签: algorithm scheduling