Операционные системы распределенных вычислительных систем


MPI - Message-Passing Interface - часть 4


В буферизуемом режиме  последовательность  выдачи операций send и receive произвольна,  операция send завершается тогда, когда сообщение изъято  из  памяти и помещено в буфер. Если места в буфере нет - ошибка программы (но есть возможность определить свой буфер).  Операция локальная.

В синхронном    режиме    последовательность    выдачи   операций произвольна, но операция send завершается только после выдачи и начала выполнения операции receive. Операция нелокальная.

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

Во всех   четырех  режимах  операция  receive  завершается  после получения сообщения в заданный пользователем буфер приема.

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

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

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

Имеется составная  операция  send-receive,  позволяющая  избежать трудностей с порядком выдачи отдельных операций в обменивающихся между собой процессах.  Для частного случая обмена  данными  одного  типа  и длины  предлагается специальная операция (send-receive-replace),  в которой для посылки и приема сообщения используется один буфер.




Начало  Назад  Вперед



Книжный магазин