Condividi tramite


funzione MSMPI_Waitsome_interruptible

Attende il completamento di almeno una delle operazioni associate agli handle attivi nell'elenco oppure la chiamata viene interrotta da un altro thread che chiama MSMPI_Queuelock_acquire.

Sintassi

int MPIAPI MSMPI_Waitsome_interruptible(
        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) int array_of_statuses[]
);

Parametri

  • conteggio
    Numero di richieste nella matrice array_of_requests.

  • array_of_requests
    Matrice di handle di richiesta delle operazioni su cui attendere il completamento. Se un handle di richiesta è stato allocato da una funzione di comunicazione non bloccante, viene deallocata e l'handle associato viene impostato su MPI_REQUEST_NULL.

  • outcount [out]
    Numero di richieste specificate nel parametro array_of_requests che vengono completate e il numero di elementi nelle matrici array_of_indices e array_of_statuses .

    Se il array_of_requests non contiene handle attivi, la funzione restituisce immediatamente con il parametro outcount impostato su MPI_UNDEFINED.

    Se questa funzione viene interrotta prima del completamento di qualsiasi richiesta, la chiamata restituisce con il parametro outcount impostato su zero.

  • array_of_indices
    Restituisce gli indici all'interno del parametro array_of_requests delle operazioni completate. Gli indici di matrice sono in base zero in C e in Fortran in base uno.

  • array_of_statuses
    Restituisce lo stato delle operazioni completate. Gli elementi di questa matrice corrispondono agli elementi della matrice array_of_indices .

Valore restituito

Restituisce MPI_SUCCESS in caso di esito positivo. In caso contrario, il valore restituito è un codice di errore.

In Fortran il valore restituito viene archiviato nel parametro IERROR .

Se la funzione restituisce un errore diverso da MPI_ERR_IN_STATUS, non aggiorna i campi di errore degli stati nel parametro array_of_statuses .

Commenti

In un ambiente multithread, gli utenti devono ottenere il blocco MPI Microsoft globale usando la funzione MSMPI_Queuelock_acquire prima di chiamare MSMPI_Waitsome_interruptible. Questa funzione viene interrotta quando un altro thread chiama la funzione MSMPI_Queuelock_acquire per accedere alla libreria MPI.

Questa funzione è un'estensione dello standard.

Requisiti

Prodotto

Pacchetto ridistribuibile DI HPC Pack 2012 MS-MPI, HPC Pack 2008 R2 MS-MPI Redistributable Package, HPC Pack 2008 MS-MPI Redistributable Package o utilità client HPC Pack 2008

Intestazione

Mpi.h

Libreria

Msmpi.lib

DLL

Msmpi.dll

Vedi anche

Funzioni da punto a punto MPI

MSMPI_Lock_queue

MSMPI_Queuelock_acquire

MSMPI_Queuelock_release

MPI_Waitsome