为什么我可以找到很多关于“工作窃取”的信息,而没有找到关于“工作耸耸肩”作为动态负载平衡策略的信息?
“工作耸肩”是指将多余的工作从繁忙的处理器推到负载较轻的邻居身上,而不是让空闲的处理器从繁忙的邻居那里拉出工作(“工作窃取”)。
我认为这两种策略的一般可扩展性应该是相同的。但是,我相信,就延迟和功耗而言,在肯定有工作要做时唤醒空闲处理器会更有效,而不是让所有空闲处理器定期轮询所有邻居以寻找可能的工作。
无论如何,一个快速的谷歌没有在“工作耸肩”或类似的标题下显示任何内容,因此任何指向现有技术和该策略的行话的指针都会受到欢迎。
澄清
我实际上设想工作提交处理器(可能是也可能不是目标处理器)负责查看首选目标处理器的直接位置(基于数据/代码位置),以决定是否应该为近邻提供新的而是工作,因为他们没有那么多工作要做。
我认为决策逻辑需要的不仅仅是原子读取此处的直接(通常为 2 到 4 个)邻居的估计 q 长度。我不认为这比盗贼从他们的邻居那里轮询和偷窃所暗示的耦合更多。(我在这两种策略中都假设“无锁、无等待”队列)。
解析度
似乎我的意思(但只是部分描述!)作为“工作耸耸肩”策略是在“正常”前期调度策略的领域,这些策略恰好对处理器、缓存和内存忠诚度以及可扩展性很聪明。
我发现很多关于这些术语的参考文献搜索,其中一些看起来很可靠。当我确定一个最符合(或破坏!)我对“工作耸肩”定义的逻辑时,我将发布一个参考。