0

我们有一个任务处理系统,它使用 4 个 CPU 处理许多任务,在任何给定的批次中介于 12 到 16 个之间。

每个任务在单个 CPU 上花费的时间是已知的。

目前,选择要运行的任务的顺序是任意的。这些任务不是相互依赖的。

我们最终让一个 CPU 独立运行以完成最后一项任务。

只有在完成最后一项任务后,整个批次才会移交给下一步。

我希望找到一种方法来优化任务的顺序,以在最后只有一个 CPU 运行时最小化这个时间。

我希望这是一个常见问题,问题是我真的不知道如何正确制定它以在 Google 中找到有用的结果。

所以我要求stackoverflow社区像往常一样出色。

此致,

科尔姆

举个例子

Task    Time (seconds)
Oxygen  78
Air Conditioning    78
Air Contamination   79
Pneumatic   80
Electrical Power    80
Ice Rain Protection     80
Brake Temperature   82
Fuel    84
Tyre    86
SMA TMA Degradation     93
Landing Gear    110
Engine Oil  113
Bleed Leak  127

在上面的例子中,如果我采用最大优先的方法(即上面列出的倒序),那么所有 13 个任务都在 337 秒内完成。

但是我看到我们的系统按照 1,4,9,2,5,11,12,3,13,10,8,6,7 的顺序执行上述任务(其中 1 是上面列表中的第一个等.) 总时间为 322 秒。

按照第一个回复者的链接(非常感谢),我发现我的问题被称为https://en.wikipedia.org/wiki/Multiprocessor_scheduling并且显然有算法,所以我会继续寻找。

顺便说一句,在圣诞节和年底之间工作的人有很多话要说,那时事情很平静,你可以真正思考一下事情。

4

0 回答 0