🗊 Презентация Обмен сообщениями в MPI

Нажмите для полного просмотра!
Обмен сообщениями в MPI, слайд №1 Обмен сообщениями в MPI, слайд №2 Обмен сообщениями в MPI, слайд №3 Обмен сообщениями в MPI, слайд №4 Обмен сообщениями в MPI, слайд №5 Обмен сообщениями в MPI, слайд №6 Обмен сообщениями в MPI, слайд №7 Обмен сообщениями в MPI, слайд №8 Обмен сообщениями в MPI, слайд №9 Обмен сообщениями в MPI, слайд №10 Обмен сообщениями в MPI, слайд №11 Обмен сообщениями в MPI, слайд №12 Обмен сообщениями в MPI, слайд №13 Обмен сообщениями в MPI, слайд №14 Обмен сообщениями в MPI, слайд №15 Обмен сообщениями в MPI, слайд №16 Обмен сообщениями в MPI, слайд №17 Обмен сообщениями в MPI, слайд №18 Обмен сообщениями в MPI, слайд №19 Обмен сообщениями в MPI, слайд №20 Обмен сообщениями в MPI, слайд №21 Обмен сообщениями в MPI, слайд №22 Обмен сообщениями в MPI, слайд №23 Обмен сообщениями в MPI, слайд №24

Содержание

Вы можете ознакомиться и скачать презентацию на тему Обмен сообщениями в MPI. Доклад-сообщение содержит 24 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1


Обмен сообщениями в MPI Двухточечный блокирующий обмен сообщениями
Описание слайда:
Обмен сообщениями в MPI Двухточечный блокирующий обмен сообщениями

Слайд 2


Варианты обмена 1) Двухточечный обмен (point – to - point): участвуют два процесса процесс-отправитель (источник) и процесс-получатель (адресат). 2)...
Описание слайда:
Варианты обмена 1) Двухточечный обмен (point – to - point): участвуют два процесса процесс-отправитель (источник) и процесс-получатель (адресат). 2) Коллективный обмен: участвуют все процессы коммуникатора.

Слайд 3


Виды функций обмена функции с блокировкой (с синхронизацией): вызывающий процесс блокируется, пока операция не будет завершена. Для функции посылки...
Описание слайда:
Виды функций обмена функции с блокировкой (с синхронизацией): вызывающий процесс блокируется, пока операция не будет завершена. Для функции посылки сообщения блокируется, пока все посылаемые данные не будут помещены в буфер (какой – то промежуточный буфер или непосредственно буфер приема). Для функции приема сообщения блокируется выполнение других операций, пока все данные не будут помещены в буфер приема. функции без блокировки (асинхронные):

Слайд 4


подразумевают совмещение операций об- мена с другими операциями, т.е. только инициируют выполнение соответ- ствующих операций обмена. Для опроса...
Описание слайда:
подразумевают совмещение операций об- мена с другими операциями, т.е. только инициируют выполнение соответ- ствующих операций обмена. Для опроса завершенности операции (и за- вершения) вводятся дополнительные операции.

Слайд 5


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

Слайд 6


Синхронная передача считается выполненной и завершается только тогда, когда будет завершен прием сообщения. Процесс – получатель после приема...
Описание слайда:
Синхронная передача считается выполненной и завершается только тогда, когда будет завершен прием сообщения. Процесс – получатель после приема посылает уведомление процессу – отправителю (адресату), что сообщение получено. Синхронная передача считается выполненной и завершается только тогда, когда будет завершен прием сообщения. Процесс – получатель после приема посылает уведомление процессу – отправителю (адресату), что сообщение получено. MPI_Issend неблокирующая синхронная, MPI_Ssend блокирующая синхронная. Буферизованная передача завершается сразу же, сообщение копируется в системный буфер, где и ожидает своей очереди на пересылку. Завершается буферизованная передача независимо от того, выполнен прием сообщения или нет. MPI_Bsend блокирующая буферизованная, MPI_Ibsend неблокирующая буферизованная.

Слайд 7


Передача «по готовности» начинается только в том случае, когда адресат инициировал прием сообщения, а завершается сразу, независимо от того, принято...
Описание слайда:
Передача «по готовности» начинается только в том случае, когда адресат инициировал прием сообщения, а завершается сразу, независимо от того, принято сообщение или нет. Если прием не зарегистрирован, ре-зультат этой операции не определен. Передача «по готовности» начинается только в том случае, когда адресат инициировал прием сообщения, а завершается сразу, независимо от того, принято сообщение или нет. Если прием не зарегистрирован, ре-зультат этой операции не определен. MPI_Rsend блокирующая «по готовности», MPI_Irsend неблокирующая «по готовности». Прием сообщения от всех перечисленных выше функций передачи можно осуществить с помощью двух функций: MPI_Recv блокирующий стандартный; MPI_Irecv неблокирующий стандартный. (буква I в имени от immediately – немедленно)

Слайд 8


Блокирующая стандартная передача сообщения int MPI_Send(void *buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm) Входные...
Описание слайда:
Блокирующая стандартная передача сообщения int MPI_Send(void *buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm) Входные параметры: buf – начальный адрес буфера передачи count – количество элементов в буфере передачи datatype – тип элементов в буфере передачи (тип MPI) dest – номер (ранг) процесса – получателя tag – номер (тег) передаваемого сообщения comm – идентификатор коммуникатора Выходной параметр: error – код ошибки

Слайд 9


Блокирующие функции обмена Блокирующая синхронная передача сообщения: int MPI_Ssend(void *buf, int count, MPI_Datatype datatype, int dest, int tag,...
Описание слайда:
Блокирующие функции обмена Блокирующая синхронная передача сообщения: int MPI_Ssend(void *buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm) Блокирующая передача сообщения «по готовности»: int MPI_Rsend(void *buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm) Передача «по готовности» должна начинаться, если уже зарегистрирован соответствующий прием. Если прием не зарегистрирован, результат выполнения операции не определен.

Слайд 10


«Безопасная» структура программы с использованием обмена «по готовности»
Описание слайда:
«Безопасная» структура программы с использованием обмена «по готовности»

Слайд 11


Буфферизованная блокирующая передача сообщения int MPI_Bsend(void *buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm) Для...
Описание слайда:
Буфферизованная блокирующая передача сообщения int MPI_Bsend(void *buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm) Для выполнения буферизованного обмена необходимо заранее создать буфер достаточного размера с помощью вызова функции MPI_Buffer_attach: int MPI_Buffer_attach(void *buf, int bufsize) Входной параметр: bufsize – размер создаваемого буфера Выходные параметры: buf – создаваемый буфер error – код ошибки

Слайд 12


Размер буфера должен превосходить размер сообщения на величину MPI_BSEND_OVERHEAD-дополнительное пространство, которое используется функцией...
Описание слайда:
Размер буфера должен превосходить размер сообщения на величину MPI_BSEND_OVERHEAD-дополнительное пространство, которое используется функцией MPI_Bsend. Размер буфера должен превосходить размер сообщения на величину MPI_BSEND_OVERHEAD-дополнительное пространство, которое используется функцией MPI_Bsend. После завершения работы с буфером его необходимо отключить с помощью вызова функции MPI_Buffer_detach: int MPI_Buffer_detach(void* buf, int bufsize) В результате выполнения вызова возвращается адрес buf и размер отключаемого буфера bufsize. Функции MPI_Send, MPI_Ssend, MPI_Bsend и MPI_Rsend имеют одинаковые параметры.

Слайд 13


Блокирующий прием сообщения int MPI_Recv(void *buf, int count, MPI_Datatype datatype, int source, int tag, MPI_Comm comm, MPI_Status *status) Входные...
Описание слайда:
Блокирующий прием сообщения int MPI_Recv(void *buf, int count, MPI_Datatype datatype, int source, int tag, MPI_Comm comm, MPI_Status *status) Входные параметры: count – количество элементов в буфере приема datatype – тип элементов в буфере приема source – номер (ранг) процесса - отправителя tag – номер (тег) принимаемого сообщения comm – идентификатор коммуникатора status – статус (информация о полученном сообщении) Выходные параметры: buf – начальный адрес буфера приема error – код ошибки

Слайд 14


Замечание Прием может выполняться от произвольного процесса (MPI_ANY_SOURCE), а в операции передачи должен быть указан определенный процесс –...
Описание слайда:
Замечание Прием может выполняться от произвольного процесса (MPI_ANY_SOURCE), а в операции передачи должен быть указан определенный процесс – получатель. Приемник может принимать сообщение с любым идентификатором (тегом) - MPI_ANY_TAG. При одновременном использовании этих двух констант будет принят о любое сообщение от любого процесса.

Слайд 15


Обмен сообщениями в MPI, слайд №15
Описание слайда:

Слайд 16


Функция определения размера сообщения: Int MPI_Get_count(MPI_Status *status, MPI_Datatype datatype, int *count) Входные параметры: status – статус...
Описание слайда:
Функция определения размера сообщения: Int MPI_Get_count(MPI_Status *status, MPI_Datatype datatype, int *count) Входные параметры: status – статус (информация о полученном сообщении) datatype – тип данных, в единицах которого требуется получить размер сообщения Выходные параметры: count – количество полученных элементов error – код ошибки

Слайд 17


Блокирующая проверка доставки сообщения int MPI_Probe(int source, int tag, MPI_Comm comm, MPI_Status *status) Входные параметры: source – номер...
Описание слайда:
Блокирующая проверка доставки сообщения int MPI_Probe(int source, int tag, MPI_Comm comm, MPI_Status *status) Входные параметры: source – номер (ранг) процесса - отправителя tag – номер (тег) принимаемого сообщения comm – идентификатор коммуникатора Выходные параметры: status – статус, который содержит необходимую информацию error – код ошибки.

Слайд 18


Неблокирующая проверка доставки сообщения int MPI_Iprobe(int source, int tag, MPI_Comm comm, int *flag, MPI_Status *status) Входные параметры: source...
Описание слайда:
Неблокирующая проверка доставки сообщения int MPI_Iprobe(int source, int tag, MPI_Comm comm, int *flag, MPI_Status *status) Входные параметры: source – номер (ранг) процесса – отправителя tag – номер (тег) принимаемого сообщения comm – идентификатор коммуникатора Выходные параметры: flag = true, если сообщение уже поступило и может быть принято status – статус, который содержит необходимую информацию error – код ошибки.

Слайд 19


Функция совмещенного приема – передачи сообщения с блокировкой: Данная функция объединяет посылку и прием сообщений. Буферы передачи и приема должны...
Описание слайда:
Функция совмещенного приема – передачи сообщения с блокировкой: Данная функция объединяет посылку и прием сообщений. Буферы передачи и приема должны быть различны, типы пересылаемых и принимаемых данных могут быть различны. Прием и передача используют один и тот же коммуникатор. int MPI_Sendrecv(void *sendbuf, int sendcount, MPI_Datatype sendtype, int dest, int sendtag, void *recvbuf, int recvcount, MPI_Datatype recvtype, int source, int recvtag, MPI_Comm comm,MPI_Status *status)

Слайд 20


Входные параметры: Входные параметры: sendbuf – начальный адрес буфера передачи sendcount – количество элементов в буфере передачи sendtype – тип...
Описание слайда:
Входные параметры: Входные параметры: sendbuf – начальный адрес буфера передачи sendcount – количество элементов в буфере передачи sendtype – тип элементов в буфере передачи dest – номер (ранг) процесса – получателя sendtag – номер (тег) передаваемого сообщения recvcount – количество элементов в буфере приема recvtype – тип элементов в буфере приема source – номер (ранг) процесса - отправителя recvtag – номер (тег) принимаемого сообщения comm – идентификатор коммуникатора Выходные параметры: recvbuf – начальный адрес буфера приема status – статус (информация о полученном сообщении) error – код ошибки.

Слайд 21


Функция замещающего приема – передачи сообщения: int MPI_Sendrecv_replace(void *buf, int count, MPI_Datatype datatype, int dest, int sendtag, int...
Описание слайда:
Функция замещающего приема – передачи сообщения: int MPI_Sendrecv_replace(void *buf, int count, MPI_Datatype datatype, int dest, int sendtag, int source, int recvtag, MPI_Comm comm, MPI_Status *status)

Слайд 22


Входные параметры: Входные параметры: count – количество передаваемых и принимаемых элементов datatype – тип данных dest – номер (ранг) процесса -...
Описание слайда:
Входные параметры: Входные параметры: count – количество передаваемых и принимаемых элементов datatype – тип данных dest – номер (ранг) процесса - получателя sendtag – номер (тег) передаваемого сообщения source – номер (ранг) процесса - отправителя recvtag – номер (тег) принимаемого сообщения comm – идентификатор коммуникатора Выходные параметры: status – статус (информация о полученном сообщении) error – код ошибки buf – (входной и выходной) начальный адрес буфера приема и передачи

Слайд 23


Вопросы для обсуждения Какие группы функций обмена сообщениями существуют в MPI? Какими атрибутами обладает в MPI каждое посылаемое сообщение? Как,...
Описание слайда:
Вопросы для обсуждения Какие группы функций обмена сообщениями существуют в MPI? Какими атрибутами обладает в MPI каждое посылаемое сообщение? Как, не принимая сообщение, определить атрибуты сообщения? Что означает блокирующий обмен сообщениями? Что означает асинхронный обмен сообщениями? Можно ли сообщение, отправленное с помощью блокирующей операции посылки, принять неблокирующей операцией приема? Что гарантирует блокировка при передаче/приеме сообщений?

Слайд 24


Что означает завершение операции для различных режимах передачи сообщения? Что означает завершение операции для различных режимах передачи сообщения?...
Описание слайда:
Что означает завершение операции для различных режимах передачи сообщения? Что означает завершение операции для различных режимах передачи сообщения? Можно ли в качестве тегов при посылке различных сообщений в программе использовать одно и тоже число? Как можно принять любое сообщение от любого процесса? Как принимающий процесс может определить длину полученного сообщения? Можно ли при посылке сообщения использовать константы MPI_ANY_TAG, MPI_ANY_SOURCE? Может ли размер буфера приема быть меньше буфера посылки? Как избежать тупиковые ситуации при использовании функций обмена?



Похожие презентации
Mypresentation.ru
Загрузить презентацию