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


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


  • source - номер процесса-отправителя или MPI_ANY_SOURCE
  • msgtag - идентификатор ожидаемого сообщения или MPI_ANY_TAG
  • comm - идентификатор группы

  • OUT status - параметры обнаруженного сообщения

  • Получение информации о структуре ожидаемого сообщения с блокировкой. Возврата из подпрограммы не произойдет до тех пор, пока сообщение с подходящим идентификатором и номером процесса-отправителя не будет доступно для получения. Атрибуты доступного сообщения можно определить обычным образом с помощью параметра status. Следует обратить внимание, что подпрограмма определяет только факт прихода сообщения, но реально его не принимает. Прием/передача сообщений без блокировки

    int MPI_Isend(void *buf, int count, MPI_Datatype datatype, int dest, int msgtag, MPI_Comm comm, MPI_Request *request)

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

    Передача сообщения, аналогичная MPI_Send, однако возврат из подпрограммы происходит сразу после инициализации процесса передачи без ожидания обработки всего сообщения, находящегося в буфере buf. Это означает, что нельзя повторно использовать данный буфер для других целей без получения дополнительной информации о завершении данной посылки. Окончание процесса передачи (т.е. того момента, когда можно переиспользовать буфер buf без опасения испортить передаваемое сообщение) можно определить с помощью параметра request и процедур MPI_Wait и MPI_Test.

    Сообщение, отправленное любой из процедур MPI_Send и MPI_Isend, может быть принято любой из процедур MPI_Recv и MPI_Irecv.

    int MPI_Irecv(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 - идентификатор асинхронного приема сообщения




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



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