stringtranslate.com

Распределенная память

Иллюстрация системы распределенной памяти из трех компьютеров.

В информатике распределенная память относится к многопроцессорной компьютерной системе , в которой каждый процессор имеет свою собственную память . [1] Вычислительные задачи могут работать только с локальными данными, а если требуются удаленные данные, вычислительная задача должна взаимодействовать с одним или несколькими удаленными процессорами. Напротив, мультипроцессор с общей памятью предлагает единое пространство памяти, используемое всеми процессорами. Процессорам не обязательно знать, где находятся данные, за исключением того, что могут возникнуть потери производительности и следует избегать состояний гонки.

В системе с распределенной памятью обычно имеется процессор, память и некоторая форма взаимосвязи, которая позволяет программам на каждом процессоре взаимодействовать друг с другом. Межсоединение может быть организовано с помощью каналов «точка-точка» или отдельное оборудование может обеспечивать коммутационную сеть. Топология сети является ключевым фактором, определяющим масштабирование многопроцессорной машины . Связи между узлами могут быть реализованы с использованием какого-либо стандартного сетевого протокола (например, Ethernet ), с использованием специальных сетевых каналов (используемых, например, в транспьютере ) или с использованием двухпортовой памяти .

Программирование машин с распределенной памятью

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

Например, если проблему можно описать как конвейер, в котором данные x впоследствии обрабатываются с помощью функций f , g , h и т. д. (результат — h ( g ( f ( x ))), то это можно выразить как проблема с распределенной памятью, когда данные передаются сначала на узел, выполняющий f , который передает результат на второй узел, который вычисляет g , и, наконец, на третий узел, который вычисляет h . Это также известно как систолическое вычисление .

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

Распределенная общая память

Аналогично, в распределенной общей памяти каждый узел кластера имеет доступ к большой общей памяти в дополнение к ограниченной неразделяемой частной памяти каждого узла.

Общая память против распределенной памяти против распределенной общей памяти

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

Смотрите также

Рекомендации

  1. ^ Пардо, Дэвид; Матушик, Павел Ю.; Пузырев Владимир; Торрес-Вердин, Карлос; Нам, Мён Джин; Кало, Виктор М. (2021). «Параллельная реализация». Моделирование измерений удельного сопротивления и акустического каротажа скважин методами конечных элементов . Эльзевир. дои : 10.1016/C2019-0-02722-7. ISBN 978-0-12-821454-1– через ScienceDirect. Распределенная память относится к вычислительной системе, в которой каждый процессор имеет свою память. Вычислительные задачи эффективно работают с локальными данными, но когда требуются удаленные данные, задача должна взаимодействовать (используя явные сообщения) с удаленными процессорами для передачи данных. Этот тип параллельных вычислений является стандартным для суперкомпьютеров, оснащенных многими тысячами вычислительных узлов.