Как мы уже отмечали выше, вычисления в мультикомпьютере обычно базируются на модели обмена данными между процессами посредством передачи сообщений. Альтернативой является модель обмена данными через общую память – DSM-модель обмена данными (Distributed Shared Memory – распределенная совместно используемая память).
В программе, использующей для обмена данными модель передачи сообщений, программист обеспечивает доступ к данным посредством явных операций посылки и приема сообщений. Это обстоятельство сильно усложняет программирование и отладку программы. DSM-модель обмена данными скрывает от программиста пересылку данных и обеспечивает ему абстракцию разделяемой памяти (привычной для него по опыту работы на традиционных ЭВМ и мультипроцессорах). В результате программирование и отладка с использованием DSM-модели обмена данными становится гораздо проще.
Кроме того, в модели передачи сообщений данные перемещаются между двумя различными адресными пространствами. Как отмечалось, это делает очень трудным передачу между процессорами сложных структур данных, содержащих, например, указатели. В DSM-модели возможна передача данные по ссылке, что упрощает разработку распределенных приложений.
|
|
Основной целью управления распределенной оперативной памятью мультикомпьютера является создание виртуального адресного пространства, разделяемое всеми процессорами распределенной системы. Процессы, выполняемые на разных процессорах, должны получать доступ к данным в распределенной памяти системы примерно так же, как это происходит с данными в виртуальной памяти традиционных ЭВМ.
При реализации системы управления распределенной оперативной памятью центральными являются следующие вопросы:
· как организовать хранение информации о расположении удаленных данных;
· как снизить при доступе к удаленным данным накладные расходы, обусловленные коммуникационными задержками (включая затраты на выполнение коммуникационных протоколов);
· как сделать данные доступными одновременно на нескольких процессорах – проблема консистентности памяти (memory consistency).
Обычно системы управления распределенной оперативной памятью используют страничную организацию распределенной памяти. Суммарная оперативная память системы разбивается на порции одинаковой длины - страницы. Длина этих страниц принимается равной (или кратной) длине страницы оперативной памяти процессоров(если их память страничная).