В рамках группы, связанной с данным коммуникатором, каждый процесс имеет свой уникальный номер, который присваивается процессу системой при инициализации, и
который называется рангом процесса. Ранг процесса часто используется для управления
исполнением программы, а также для указания отправителя и получателя сообщений,
пересылаемых между MPI-процессами. Данная функция определяет ранг вызывающего процесса внутри группы, связанной с заданным коммуникатором. В разных коммуникаторах, в общем случае, MPI-процесс имеет различные ранги.
Формат вызова: MPI_Comm-rank (comm., &rank)
2. Перечислите и опишите функции передачи данных «точка-точка».
Функции передачи данных типа "точка-точка":
Блокирующий Send: MPI_Send (buffer, count, type, dest, tag, comm)
Неблокирующий Send: MPI_Isend (buffer, count, type, dest, tag, comm, request)
Блокирующий Receive: MPI_Recv (buffer, count, type, source, tag, comm., status)
Неблокирующий Receive: MPI_Irecv(buffer,count, type, source, tag, comm.,request)
К наиболее часто используемым блокирующим функциям передачи сообщений относятся следующие функции:
|
|
MPI_Send
Базовая блокирующая операция посылки сообщения. Заканчивает свою работу только тогда, когда программный буфер, из которого берутся данные для посылки, готов для повторного использования.
Формат вызова: MPI_Send (&buf, count, datatype, dest, tag, comm.)
MPI_Recv
Принимает сообщения и блокирует вызывающий эту функцию процесс до тех пор, пока в программном буфере не станут доступными принятые данные.
Формат вызова: MPI_Recv (&buf, count, datatype, source, tag, comm, &status)
MPI_Ssend
Синхронная блокирующая операция посылки сообщения: посылает сообщение и блокирует вызвавший эту функцию процесс, пока программный буфер не будет готов к повторному использованию и пока процесс-получатель не начал принимать посылаемые сообщения.
Формат вызова: MPI_Ssend (&buf, count, datatype, dest, tag, comm)
MPI_Bsend, MPI_Buffer_attach
Перед вызовом MPI_BSend, программист должен вызвать функцию MPI_Buffer_attach для размещения буфера, используемого в MPI_Bsend. Буферированная блокирующая операция посылки сообщения заканчивает свою работу, когда данные из программного буфера скопированы в буфер посылки.
Форматы вызовов: MPI_Buffer_attach (&buffer, size)
MPI_Bsend (&buf, count, datatype, dest, tag, comm)
3. Перечислите и опишите радиовещательные функции передачи данных.