Список моделей параллелизма - PullRequest
23 голосов
/ 11 ноября 2010

-edit- я хотел бы большой список, чтобы я мог ссылаться на это для идей. Некоторые ответы уже были просветляющими

Какие существуют модели параллелизма? Я слышал о передаче сообщений, когда нет общей памяти. futures, который сразу же возвращает объект (так что он не блокируется) и позволяет разыменовать исходную функцию, возвращающую значение позже, когда вам нужно заблокировать его, если результат еще не готов. Я слышал о сопрограммах, программной транзакционной памяти и случайных других.

Я искал список или вики и не смог найти ни одного хорошего (многие не перечислили 3, о котором я упоминал выше), и многие результаты дали мне сложное описание, объясняющее, как оно работает, а не то, что оно делает или как оно должно быть б.

Что такое модели параллелизма и каково простое описание того, что они делают? Один за ответ.

Ответы [ 11 ]

1 голос
/ 12 ноября 2010

Существует также неблокирующий параллелизм, такой как инструкции сравнения и замены и загрузки-ссылки / сохранения-условия.Например, сравнение и замена (cas) может быть определено так:

bool cas (int new_value, int current_value, int * location);

Эта операция затем попытается установитьзначение в местоположении к значению, переданному в new_value, но только если значение в местоположении такое же, как current_value.Это требует только одной инструкции и, как правило, реализует блокирование параллелизма (мьютексы / семафоры и т. Д.).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...