Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
88
Добавлен:
20.04.2015
Размер:
3.22 Mб
Скачать

Параллельные

компьютерные

архитектуры

Ч.2

Мультипроцессоры и мультикомпьютеры

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

Для обмена информацией предложено и реализовано две стратегии: мультипроцессоры и мультикомпьютеры.

Ключевое различие между стратегиями состоит в наличии или отсутствии общей памяти

Это различие сказывается как на конструкции, устройстве и программировании таких систем, так и на их стоимости и размерах

Мультипроцессоры

Параллельный компьютер, в котором все процессоры совместно используют общую физическую память, называется мультипроцессором, или системой с об- общей памятью

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

Все процессоры в мультипроцессоре используют единое адресное пространство функционирует только одна копия операционной системы

Организация, в основе которой лежит единая система, и отличает мультипроцессор от мультикомпьютера

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

Если все процессоры имеют равный доступ ко всем модулям памяти и всем устройствам ввода-вывода, и между процессорами возможна полная взаимозаменяемость, такой мультипроцессор называется симметричным (Symmetric Multiprocessor, SMP)

Мультикомпьютеры

Во втором варианте параллельной архитектуры каждый процессор имеет собственную память, доступную только этому процессору

Такая схема называется мультикомпьютером, или системой с распределенной памятью

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

Мультипроцессоры имеют одно физическое адресное пространство, разделяемое всеми процессорами, а мультикомпьютеры содержат отдельные физические адресные пространства для каждого процессора

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

Примеры мультикомпьютеров - IBM BlueGene/L, Red Storm, кластер Google

Обмен данными

При отсутствии общей памяти, реализованной аппаратно, предполагается определенная программная структура

Пример: Сначала процессору 0 нужно как-то выяснить, какой процессор содержит необходимые ему данные, и послать этому процессору сообщение с запросом копии данных затем процессор 0 блокируется до получения ответа когда процессор 1 получает сообщение, оно

программно анализируется, после чего затребованные данные передаются обратно когда процессор 0

получает ответное сообщение, блокировка программно снимается, и процессор продолжает работу

В мультикомпьютере для взаимодействия между процессорами часто используются примитивы send и receive.

ПО мультикомпьютера имеет более сложную структуру, чем ПО мультипроцессора

Вопрос?

Зачем вообще создавать мультикомпьютеры, если мультипроцессоры гораздо проще программировать?

Вопрос?

• Зачем вообще создавать мультикомпьютеры, если мультипроцессоры гораздо проще

программировать?

Ответ

Создать большой мультикомпьютер проще и дешевле, чем мультипроцессор с таким же количеством процессоров.

Реализация общей памяти, совместно используемой несколькими сотнями процессоров, — это сложная задача, а разработать мультикомпьютер,

содержащий 10 000 процессоров и более,

Дилемма

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

Соседние файлы в папке Архитектура компьютеров