Как MPI_IN_PLACE работает с MPI_Scatter?
Что именно делаетMPI_IN_PLACE
делать, когда в качестве аргументаMPI_Scatter
и как это следует использовать? Я не могу понятьman MPI_Scatter
:
Когда коммуникатор является внутрикоммуникатором, вы можете выполнить операцию сбора на месте (выходной буфер используется в качестве входного буфера). Используйте переменную MPI_IN_PLACE в качестве значения корневого процесса recvbuf. В этом случае recvcount и recvtype игнорируются, и корневой процесс не отправляет данные самому себе. Поскольку опция на месте преобразует буфер приема в буфер отправки и получения, привязка Fortran, включающая INTENT, должна пометить их как INOUT, а не OUT.
То, что я хочу сделать, это использовать тот же буфер, который содержит данные в корне, в качестве буфера приема в каждом другом процессе (как вMPI_Bcast
). БудетMPI_Scatter
сMPI_IN_PLACE
позволь мне сделать это?