dcos文件中指出“决定在何处运行进程以最好地利用群集资源是很难的,实际上是np难的。”我不否认这听起来是对的,但有证据吗?
bttbmeg01#
资源的最佳利用是箱 Package 问题的变化:在 装箱问题,不同体积的物体必须装入有限数量的箱子或容器中,每个箱子或容器的体积都是有限的 v 以尽量减少使用的垃圾箱数量的方式。在里面 计算复杂性理论,它是 组合的 NP难 问题。 这个 决策问题 (决定对象是否适合指定数量的箱子)是 np完全。我们有n维空间,其中每个维对应一种资源类型。要调度的每个任务都有由所需资源定义的特定卷。另外,任务可以具有稍微改变原始任务的约束,但我们可以将此约束视为额外的离散维度。任务是以最小化空闲资源的方式安排任务,从而防止碎片化。例如,marathon使用的first fit算法是一种近似算法,但并不是很差:这是一个非常简单的贪婪近似算法。该算法以任意顺序处理项目。对于每个项目,它尝试将项目放置在第一个可以容纳该项目的箱子中。如果找不到箱子,它将打开一个新箱子并将项目放入新箱子中。结果表明,该算法的逼近因子为2,即所使用的箱子数不超过最优箱子数的两倍。
1条答案
按热度按时间bttbmeg01#
资源的最佳利用是箱 Package 问题的变化:
在 装箱问题,不同体积的物体必须装入有限数量的箱子或容器中,每个箱子或容器的体积都是有限的 v 以尽量减少使用的垃圾箱数量的方式。在里面 计算复杂性理论,它是 组合的 NP难 问题。 这个 决策问题 (决定对象是否适合指定数量的箱子)是 np完全。
我们有n维空间,其中每个维对应一种资源类型。要调度的每个任务都有由所需资源定义的特定卷。另外,任务可以具有稍微改变原始任务的约束,但我们可以将此约束视为额外的离散维度。任务是以最小化空闲资源的方式安排任务,从而防止碎片化。
例如,marathon使用的first fit算法是一种近似算法,但并不是很差:
这是一个非常简单的贪婪近似算法。该算法以任意顺序处理项目。对于每个项目,它尝试将项目放置在第一个可以容纳该项目的箱子中。如果找不到箱子,它将打开一个新箱子并将项目放入新箱子中。
结果表明,该算法的逼近因子为2,即所使用的箱子数不超过最优箱子数的两倍。