Параллельное программирование



              

Средства синхронизации параллельных процессов - часть 6


Синхронизация параллельных вычислений с помощью семафоров

Рис. 11.4.  Синхронизация параллельных вычислений с помощью семафоров

3. Передача сообщений, "почтовый ящик". Метод "почтовых ящиков" является распространенной формой метода передачи сообщений.

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

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

С помощью "почтовых ящиков" реализуется схема управления потоком данных (data flow), когда явное задание исходной информации для процесса является необходимым условием его запуска.

4. Механизм закрытия адресов. Осуществляется командой вида "закрыть адрес (по считыванию)". Адрес запоминается в специальном ЗУ, и при попытке считывания по нему производится ожидание — по аналогии с процедурой ЖУЖ. Открывается адрес по записи по нему. Для избежания тупиковых ситуаций, например,

ЗАКР a СЧИТАТЬ a

указывается номер того процессора, который закрыл адрес. Тогда есть возможность принять какое-то решение. Например, разрешить процессору, закрывшему адрес, открыть его.

Вернемся к примеру счета способом "пирамиды". Наметилось решение проблемы синхронизации: пусть счет очередного элемента предваряется командой, закрывающей адрес результата — считаемого элемента. Засылка найденного элемента откроет адрес. Тогда, пока этот элемент не будет получен, его адрес не сможет использоваться для счета других элементов.

Такой способ синхронизации был приведен при рассмотрении архитектуры SPMD.




Содержание  Назад  Вперед