MPI_Bcast

Посылает сообщение от процесса с рангом "root" (обычно, это процесс с рангом 0) всем другим процессам в группе.

Формат вызова: MPI_Bcast (&buffer, count, datatype, root, comm)

MPI_Gather

Собирает сообщения от каждого из процессов в группе в приемный буфер процесса с рангом 'root".

Формат вызова: MPI_Gather (&sendbuf, sendcount, sendtype, &recvbuf, recvcount, recvtype, root, comm)

Cледует заметить, что:

sendtype и recvtype, в общем случае, могут различаться, а потому будут задавать разную интерпретацию данных на приемной и передающей стороне;

•процесс root также отправляет данные, но в свой же приемный буфер.

MPI_Scatter

Эта функция является обратной к функции MPI_Gather: отдельные части передающего буфера процесса с рангом 'root' распределяются по приемным буферам всех других процессов в группе.

Формат вызова: MPI_Scatter (&sendbuf, sendcount, sendtype, &recvbuf, recvcount, recvtype, root, comm)

MPI_Allgather

Эта функция аналогична функции MPI_Gather, за исключением того, что прием данных осуществляет не один процесс, а все процессы: каждый процесс имеет специфическое содержимое в передающем буфере, но все процессы получают в итоге одинаковое содержимое в приемном буфере.

Формат вызова: MPI_Allgather (&sendbuf, sendcount, sendtype, &recvbuf, recvcount, recvtype, comm)

MPI_Alltoall

Каждый процесс отдельные части своего передающего буфера рассылает всем остальным процессам; каждый процесс получает эти части от всех остальных и размещает их по порядку рангов процессов, от которых они получены. Формат вызова: MPI_Alltoall (&sendbuf, sendcount, sendtype, &recvbuf, recvcount, recvtype, comm)

4. Перечислите и опишите коллективные операции.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: