разделяемая память против распределенной памяти и многопоточность против многопроцессорности

StackOverflow https://stackoverflow.com/questions/1619648

Вопрос

Я изучаю параллельное программирование самостоятельно. Интересно, распределенная память всегда многопроцессная, а многопоточность всегда разделяемая память? если многопроцессорность может быть как для распределенной памяти, так и для разделяемой памяти? Спасибо и всего наилучшего!

Это было полезно?

Решение

Да, да, и "да, в некотором смысле"

В распределенной системе памяти разные процессорные модули имеют свои собственные системы памяти. Доступ из другого процессора, скорее всего, будет медленнее или с более ограниченной моделью когерентности, если это вообще возможно. Это будет более типично для мультипроцессора с передачей сообщений.

Использование нескольких потоков для параллельного программирования - это скорее программная парадигма, чем аппаратная проблема, но вы правы, использование термина thread по существу указывает, что используется одна общая память, и это может включать или не включать фактические несколько процессоров. Он может даже не включать несколько потоков ядра, и в этом случае потоки не будут выполняться параллельно.

Мне не совсем понятно значение последнего вопроса. Конечно, говоря «распределенная память»; или «разделяемая память»; это подразумевает «распределено по процессорам»; и «разделяемый процессорами», поэтому я полагаю, что термины применимы только к многопроцессорным или потенциально многопроцессорным системам. Если мы говорим о нескольких процессах в программном смысле, я думаю, что это в значительной степени требование для систем с распределенной памятью и, по сути, требование (они могут быть называемыми потоками) для системы с общей памятью.

Я должен добавить, что когерентные системы с распределенной памятью, но с кешем существуют, и являются типом многопроцессорной конструкции с общей памятью, называемой NUMA. Всего несколько лет назад эти машины были сумасшедшей границей параллельных вычислений, но теперь процессоры Intel Core i7 имеют принес NUMA в мейнстрим.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top