Кража работы на самом деле действительно нуждается в deque. В оригинальной работе они доказали максимальную используемую память в системе с процессорами P. Предел задается максимальным размером любого стека, умноженным на количество процессоров. Это на самом деле возможно только после использования теоремы занятых листов. Кроме того, еще одной важной особенностью кражи работы является то, что: Когда работник делает икру, он немедленно спасает создателя на deque и начинает работать над ребенком. Для получения дополнительной информации об их доказательствах, пожалуйста, прочитайте их оригинальную статью, в которой они объясняют все, что я говорю. http://supertech.csail.mit.edu/papers/steal.pdf
Контроль параллелизма при работе с краткими образами доступа не связан с планировщиком работы, и на самом деле было сделано много исследований по устранению блокировок из deque (с использованием незакрепленных конструкций), а также для сведения к минимуму насколько возможно, барьеры памяти. Например, в этой статье (я сожалею, если не могу получить доступ, но вы можете прочитать резюме в любом случае, чтобы получить эту идею): http://dl.acm.org/citation.cfm?id=1073974 авторы создают новый инструмент для улучшения вышеупомянутых аспектов.
Кражи сделаны со стороны, над которой рабочий не работает, по нескольким причинам: Поскольку deque действует как стек для каждого работника (владельца deque), «большие» задания должны быть сверху (как вы можете понять, прочитав статью). Когда я говорю больше, я хочу сказать, что это, вероятно, те, которые будут иметь больше вычислений. Кроме того, еще один важный аспект заключается в том, что, делая это (краду с противоположной стороны работы владельца deque), уменьшается конкуренция, так как в некоторых новых деках жертва и вор могут одновременно работать на одном и том же уровне.
Спасибо за ваш ответ. Я согласен с большинством из них.Только часть «Поскольку воровцы, как ожидается, будут относительно редкими событиями»: это неверно в модели с привязкой к вилке. Вся модель основана на воровстве. Мастер-работник создает задания, а другие воруют почти все время. правильно? –
@TOWI_Parallelism, да есть приложения, где воры будут более частыми. Но во многих приложениях после кражи рабочий, выполняющий задачу, также порождает новые задачи. Эти задачи добавляются в локальную очередь. Таким образом, работнику не нужно воровать из мастер-потока так часто. – shams