разделяемая память против распределенной памяти и многопоточность против многопроцессорности - PullRequest
4 голосов
/ 25 октября 2009

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

1 Ответ

5 голосов
/ 25 октября 2009

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

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

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

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

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

...