動的な負荷分散戦略として、「ワーク スティーリング」に関する多くの情報が見つかり、「ワーク シュラギング」に関する情報が何もないのはなぜですか?
「仕事を肩代わりする」とは、アイドル状態のプロセッサが忙しい隣人から仕事を引き出すのではなく、余剰の仕事を忙しいプロセッサから負荷の低い隣人に押しやることを意味します (「仕事を奪う」)。
一般的なスケーラビリティは、両方の戦略で同じであるべきだと思います。ただし、待ち時間と消費電力の観点から、すべてのアイドル状態のプロセッサがすべてのネイバーに可能な作業を定期的にポーリングするよりも、実行すべき作業が確実にあるときにアイドル状態のプロセッサをウェイクアップする方がはるかに効率的であると私は信じています。
とにかく、簡単なグーグルは「肩をすくめる仕事」などの見出しの下に何も表示されなかったので、この戦略の先行技術と専門用語へのポインタは大歓迎です。
明確化
私は実際に、プロセッサ(ターゲット プロセッサである場合もそうでない場合もある) が、優先されるターゲット プロセッサのすぐ近くの場所を (データ/コードの場所に基づいて) 調べて、近くの隣人に新しい彼らはするべき仕事がそれほど多くないので、代わりに働きます。
ここで、決定ロジックが、直近の (通常は 2 から 4) 近隣の推定 q 長のアトミックな読み取り以上のものを必要とするとは思いません。これは、泥棒が隣人からポーリングして盗むことによって暗示される以上の結合ではないと思います. (両方の戦略で「ロックフリー、ウェイトフリー」キューを想定しています)。
解像度
「仕事を肩をすくめる」戦略として私が意味したこと (ただし、部分的にしか説明されていません!) は、たまたまプロセッサ、キャッシュとメモリの忠実性、およびスケーラビリティについてスマートな「通常の」事前スケジューリング戦略の領域にあるようです。
これらの用語で検索すると多くの参考文献が見つかり、そのうちのいくつかはかなりしっかりしているように見えます。「仕事を肩をすくめる」の定義で私が念頭に置いていたロジックに最も一致する (または取り壊す!) ものを特定したら、参考文献を投稿します。