Принцип взаимодействия

В мультикомпьютерах доступ к памяти других ПБ с помощью команд read и store запрещен. Программы разных ПБ взаимодействуют друг с другом с помощью примитивов send и receive, которые используются для передачи сообщений. Когда программа выполняет примитив send, процессор передачи данных должен получить уведомление (receive) и только затем приступить к передаче блока данных в целевую машину, возможно, после предварительного запроса и получения разрешения.

Передача данных из одного локального адресного пространства в другое произойдет, если посылаемое сообщение будет востребовано получателем. Для этого команда send добавляет к сообщению специальный признак (tag – тег), а команда receive проверяет совпадение признаков. Сочетание посылки и согласованного приема сообщения синхронизирует события при копировании данных из памяти в память. Используются два подхода к синхронизации событий, которые отличаются интерпретацией и требованиями к реализации:

  • • один из них зависит от того, завершится или нет команда send к моменту, когда будет выполнена команда receive. Если команда send завершится, то буфер может быть использован для посылки, в противном случае – является недоступным;
  • • второй подход определяется командой receive, которая может ждать до момента согласованной посылки (send) или должна использовать буферный регистр для получения сообщения.

Рассмотрим два типа мультикомпьютеров: процессоры с массовым параллелизмом (Massively Parallel Processor – МРР) и кластеры рабочих станций (Clusters of Workstations – COW).

 
< Пред   СОДЕРЖАНИЕ     След >