共用方式為


MPI_Waitsome 函式

完成數個未完成作業的一些作業。

語法

int MPIAPI MPI_Waitsome(
        int                                         incount,
        _Inout_count_(incount) MPI_Request          array_of_requests,
  _Out_ int                                         *outcount,
        _Out_cap_post_count_(incount,*outcount) int *array_of_indices,
        _Out_cap_post_count_(incount,*outcount)     *array_of_statuses
);

參數

  • incount
    array_of_requests 參數中的項目數目。

  • array_of_requests
    未完成作業 之MPI_Request 句柄的陣列。

  • outcount [out]
    已完成的要求數目。

  • array_of_indices
    完成之作業 array_of_requests 中的索引數位。 array_of_requests是從 C 中的零編製索引,以及從 Fortran 中的一個編製索引。

  • array_of_statuses
    已完成或 MPI_STATUSES_IGNORE之作業的狀態物件陣列。

傳回值

傳回成功 時MPI_SUCCESS 。 否則,傳回值是錯誤碼。

在 Fortran 中,傳回值會儲存在 IERROR 參數中。

Fortran

    MPI_WAITSOME(INCOUNT, ARRAY_OF_REQUESTS, OUTCOUNT, ARRAY_OF_INDICES, ARRAY_OF_STATUSES, IERROR)
        INTEGER INCOUNT, ARRAY_OF_REQUESTS(*), OUTCOUNT, ARRAY_OF_INDICES(*),
        ARRAY_OF_STATUSES(MPI_STATUS_SIZE,*), IERROR

備註

索引的陣列位於 範圍0incount - 1 代表 C,而範圍 1 到 Fortran 的 incount 中。

忽略 NULL 要求;如果所有要求都是 NULL,則例程會傳回 outcount 設為 MPI_UNDEFINED

雖然可以在 array_of_requests中列出要求句柄多次,但這類動作會被視為錯誤,而且可能會導致程式意外終止或產生不正確的結果。

MPI_Waitsome 提供類似 Unix 'select' 或 'poll' 呼叫的介面,而且在高限定實作中,表示呼叫 MPI_Waitsome 時已完成的所有要求。 不過, MPI_Waitsome 只保證至少有一個要求已完成;不保證會傳回 所有 已完成的要求,或 array_of_indices 中的專案會依遞增順序遞增。 此外, 執行MPI_Waitsome 時完成的要求可能會傳回或可能不會傳回,視訊息完成的時間而定。

規格需求

產品

HPC Pack 2012 MS-MPI 可轉散發套件、HPC Pack 2008 R2 MS-MPI 可轉散發套件、HPC Pack 2008 MS-MPI 可轉散發套件或 HPC Pack 2008 用戶端公用程式

標頭

Mpi.h;Mpif.h

媒體櫃

Msmpi.lib

DLL

Msmpi.dll

另請參閱

MPI 點對點函式