Каковы различия между вычислительными моделями параллелизма и моделями параллелизма? - PullRequest
0 голосов
/ 26 июня 2019

Параллельные вычислительные модели включают модель актора, CSP, сети Петри и т. Д.

Модели параллелизма включают активные объекты, барьер, реактор, монитор, планировщик и т. Д.

  1. Каковы различия (а также, возможно, отношения) между вычислительными моделями параллелизма и моделями параллелизма?Интересно отметить, что в шаблоне шаблонов проектирования Википедии перечислены "модели акторов" в соответствии с шаблонами параллелизма.Это делает меня еще более неуверенным в вопросе, который я задал выше.

  2. Я не слишком разбираюсь в них, но модели параллелизма, похоже, упоминаются чаще, чем шаблоны параллелизма.Разве модели параллелизма не пользуются популярностью?

  3. Могут ли разные шаблоны параллелизма и разные модели параллелизма использоваться в режиме смешивания и сопоставления, или некоторые шаблоны параллелизма используются только с некоторыми моделями параллелизма?

Если возможно, не могли бы вы дать некоторые ссылки, подтверждающие ваш ответ или комментарий?

1 Ответ

2 голосов
/ 27 июня 2019

Итак, параллельные вычислительные модели - это способ математического моделирования и мышления параллельных систем. Например, модель актера в очень теоретической исследовательской работе на самом деле ничего не скажет о том, как актер может быть реализован, а лишь о требованиях актера, это просто способ математически рассуждать о параллельных системах. Шаблоны - это просто способы структурирования вашего кода, которые аналогичны шаблонам проектирования только для параллелизма. Различие (imo) немного размыто с чем-то вроде актеров, где, если вы используете что-то вроде akka, шаблон вашего кода просто «делает все актером».

Шаблон параллелизма - это просто шаблон проектирования, который использует определенные системные примитивы / функции языка для создания правильной параллельной реализации.

Вычислительная модель - это способ математически обосновать некоторые вычисления.

Все шаблоны параллелизма основаны на базовой вычислительной модели. В области компьютерных наук вы должны иметь возможность математически / логически доказать правильность своей программы, чтобы вы могли сказать, что все шаблоны параллелизма могут быть доказаны или основаны на некоторой абстрактной математической модели до того, как они были реализованы.

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

Редактировать

Вы можете смешивать вычислительные модели совпадений и шаблоны в своем коде столько раз, сколько вы хотите, и вполне вероятно, что вы это сделаете. Тем не менее, некоторые модели, такие как актерский рисунок, в значительной степени являются серебряной пулей, если вы их используете. Например, актеры делают блокировку избыточной. Если бы вы писали исследовательскую работу, вы, вероятно, не смешали бы вычислительные модели, хотя я не академик, поэтому я не знаю :)

...