Мультикомпьютеры с передачей сообщений
Общие сведения
Особенности мультикомпьютеров. Рассмотренные выше мультипроцессоры обладают по крайней мере двумя трудно преодолимыми недостатками, которые обусловлены общей памятью, заложенной в принцип их работы. При расширении мультипроцессоров увеличение количества процессорных элементов (блоков):
=> создает (помимо введения дополнительных аппаратных средств) проблему удаленного доступа, решение которой требует больших затрат. Например, в Sequent NUMA-Q увеличение до 256 процессоров достигнуто ценой неодинакового времени доступа к памяти;
=> может привести к конфликтным ситуациям для различных модулей памяти, шин и каталогов и, как следствие, к снижению производительности компьютерной системы.
В мультикомпьютерах каждый процессорный блок (ПБ), или узел, имеет свою собственную память, прямой доступ к которой осуществляется с помощью команд read и store. Благодаря этому мультикомпьютеры содержат гораздо большее количество ПБ. Каждый изображенный на рис. 19.1,а процессорный блок в мультикомпьютере состоит из одного или нескольких процессорных элементов ПЭ, модуля памяти МП (ОЗУ), диска и/или других устройств ввода-выво-

Рис. 19.1. Структура процессорного блока (а) и мультикомпьютера (б)
да, а также процессора передачи данных. Все ПБ связаны между собой высокоскоростной коммуникационной сетью (рис. 19.1,6).
Принцип взаимодействия. В мультикомпьютерах доступ к памяти других ПБ с помощью команд read и store запрещен. Программы разных ПБ взаимодействуют друг с другом с помощью примитивов send и receive, которые используются для передачи сообщений. Когда программа выполняет примитив send, процессор передачи данных должен получить уведомление (receive) и только затем приступить к передаче блока данных в целевую машину, возможно, после предварительного запроса и получения разрешения.
Передача данных из одного локального адресного пространства в другое произойдет, если посылаемое сообщение будет востребовано получателем. Для этого команда send добавляет к сообщению специальный признак (tag — тег), а команда receive проверяет совпадение признаков. Сочетание посылки и согласованного приема сообщения синхронизирует события при копировании данных из памяти в память. Используются д в а подхода к синхронизации событий, которые отличаются интерпретацией и требованиями к реализации: => один из них зависит от того, завершится или нет команда send к моменту, когда будет выполнена команда receive. Если команда send завершится, то буфер может быть использован для посылки, в противном случае — является недоступным;
=> второй подход определяется командой receive, которая может ждать до момента согласованной посылки (send) или должна использовать буферный регистр для получения сообщения.
Рассмотрим два типа мультикомпьютеров: процессоры с массовым параллелизмом (Massively Parallel Processor — МРР) и кластеры рабочих станций (Clusters of Workstations — COW).