MPI_Igather函式
以非封鎖方式,從群組的所有成員收集數據到一個成員。
語法
int WINAPI MPI_Igather(
_In_ void *sendbuf,
int sendcount,
MPI_Datatype sendtype,
_Out_opt_ void *recvbuf,
_In_ int recvcount,
_In_ MPI_Datatype recvtype,
_In_ int root,
_In_ MPI_Comm comm,
_Out_ MPI_Request *request
);
參數
sendbuf [in]
緩衝區的指標,其中包含要傳送至根目錄的數據。 緩衝區是由 sendtype 句柄所指示之MPI_Datatype的 sendcount 後續元素所組成。 訊息長度是以元素數目來指定,而不是位元元數目。sendcount
sendbuf 中的 sendtype 元素數目。 如果值為零,則訊息的數據部分是空的。sendtype
MPI_Datatype句柄,代表 sendbuf 中每個專案的數據類型。recvbuf [out, optional]
緩衝區的指標,其中包含從根目錄上每個進程接收的數據,包括根進程所傳送的數據 (只在根) 。 所有非根進程都會忽略接收緩衝區 重新建構 。 在根進程上,recvbuf 是由 recvtype 句柄所指示之MPI_Datatype的 recvcount 連續元素所組成。 訊息長度是以元素數目來指定,而不是位元元數目。recvcount [in]
recvbuf 中的 recvtype 元素數目。 如果值為零,則訊息的數據部分是空的 (只有在根) 才會有顯著性。recvtype [in]
MPI_Datatype句柄,代表 recvbuf 中每個元素的數據類型 (只在根) 顯著。root [in]
接收進程在 MPI_Commcomm 內的排名。comm [in]
MPI_Comm communicator 句柄。要求 [out]
表示通訊作業 的MPI_Request 句柄。
傳回值
傳回成功時 MPI_SUCCESS 。 否則,傳回值是錯誤碼。
在 Fortran 中,傳回值會儲存在 IERROR 參數中。
Fortran
MPI_IGATHER(SENDBUF, SENDCOUNT, SENDTYPE, RECVBUF, RECVCOUNT, RECVTYPE,
ROOT, COMM, REQUEST, IERROR)
<type> SENDBUF(*), RECVBUF(*)
INTEGER SENDCOUNT, SENDTYPE, RECVCOUNT, RECVTYPE, ROOT, COMM, REQUEST, IERROR
備註
非封鎖呼叫會起始必須在個別完成呼叫中完成的統一收集作業。 一旦起始,作業可能會獨立於參與進程的任何計算或其他通訊之外進行。 如此一來,非封鎖的收集作業可以在「背景」中執行收集作業,以減輕收集作業的可能同步處理效果。
所有完成呼叫 (例如, MPI_Wait) 都支援非封鎖收集作業。
規格需求
產品 |
Microsoft MPI v6 |
標頭 |
Mpi.h;Mpif.h |
媒體櫃 |
Msmpi.lib |
DLL |
Msmpi.dll |