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



Технологии параллельного программирования - часть 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 - параметры принятого сообщения

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


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