Параллельная обработка данных


Технологии параллельного программирования - часть 8


Формирование запроса на выполнение пересылки данных. Все параметры точно такие же, как и у подпрограммы MPI_Isend, однако в отличие от нее пересылка не начинается до вызова подпрограммы MPI_Startall.

int MPI_Recv_init( void *buf, int count, MPI_Datatype datatype, int source, int msgtag, MPI_Comm comm, MPI_Request *request)

  • OUT buf - адрес начала буфера приема сообщения
  • count - число принимаемых элементов в сообщении
  • datatype - тип принимаемых элементов
  • source - номер процесса-отправителя
  • msgtag - идентификатор сообщения
  • comm - идентификатор группы
  • OUT request - идентификатор асинхронного приема

Формирование запроса на выполнение приема данных. Все параметры точно такие же, как и у подпрограммы MPI_Irecv, однако в отличие от нее реальный прием не начинается до вызова подпрограммы MPI_Startall.

MPI_Startall( int count, MPI_Request *requests)

  • count - число запросов на взаимодействие
  • OUT requests - массив идентификаторов приема/передачи

Запуск всех отложенных взаимодействий, ассоциированных вызовами подпрограмм MPI_Send_init и MPI_Recv_init с элементами массива запросов requests. Все взаимодействия запускаются в режиме без блокировки, а их завершение можно определить обычным образом с помощью процедур MPI_Wait и MPI_Test.

Совмещенные прием/передача сообщений

int MPI_Sendrecv( void *sbuf, int scount, MPI_Datatype stype, int dest, int stag, void *rbuf, int rcount, MPI_Datatype rtype, int source, MPI_Datatype rtag, MPI_Comm comm, MPI_Status *status)

  • sbuf - адрес начала буфера посылки сообщения
  • scount - число передаваемых элементов в сообщении
  • stype - тип передаваемых элементов
  • dest - номер процесса-получателя
  • stag - идентификатор посылаемого сообщения
  • OUT rbuf - адрес начала буфера приема сообщения
  • rcount - число принимаемых элементов сообщения
  • rtype - тип принимаемых элементов
  • source - номер процесса-отправителя
  • rtag - идентификатор принимаемого сообщения
  • comm - идентификатор группы
  • OUT status - параметры принятого сообщения

Данная операция объединяет в едином запросе посылку и прием сообщений.


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



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