Condividi tramite


MPI_Grequest_query_function funzione di callback

MPI_Grequest_query_function è un segnaposto per il nome della funzione definita dall'applicazione.

Sintassi

int MPI_Grequest_query_function(
  _In_opt_ void       *extra_state,
  _Out_    MPI_Status *status
);

Parametri

  • extra_state [in, facoltativo]
    Stato aggiuntivo.

  • stato [out]
    Oggetto stato MPI.

Valore restituito

Tutte le funzioni di callback restituiscono un codice di errore. Il codice viene passato indietro e gestito come appropriato per il codice di errore dalla funzione MPI che ha richiamato la funzione di callback. Ad esempio, se vengono restituiti codici di errore, il codice di errore restituito dalla funzione di callback verrà restituito dalla funzione MPI che ha richiamato la funzione di callback. Nel caso di un MPI_{Wait|Test}qualsiasi chiamata che richiama sia query_fn che free_fn, la chiamata MPI restituirà il codice di errore restituito dall'ultimo callback, ovvero free_fn. Se una o più richieste in una chiamata a MPI_{Wait|Test}{some|all} non riuscito, quindi la chiamata MPI restituirà MPI_ERR_IN_STATUS. In tal caso, se la chiamata MPI è stata passata una matrice di stati, MPI restituirà in ognuno degli stati che corrispondono a una richiesta generalizzata completata il codice di errore restituito dalla chiamata corrispondente della relativa funzione di callback free_fn. Tuttavia, se la funzione MPI è stata passata MPI_STATUSES_IGNORE, i singoli codici di errore restituiti da ogni funzione di callback verranno persi.

Fortran

    SUBROUTINE GREQUEST_QUERY_FUNCTION(EXTRA_STATE, STATUS, IERROR)
        INTEGER STATUS(MPI_STATUS_SIZE), IERROR
        INTEGER(KIND=MPI_ADDRESS_KIND) EXTRA_STATE

Commenti

La funzione query_fn calcola lo stato che deve essere restituito per la richiesta generalizzata. Lo stato include anche informazioni sull'annullamento riuscito/non riuscito della richiesta (risultato da restituire da MPI_Test_cancelled).

Il callback query_fn viene richiamato dal MPI_{Wait|Test}{any|some|all} chiamata che ha completato la richiesta generalizzata associata a questo callback. La funzione di callback viene richiamata anche dalle chiamate a MPI_Request_get_status, se la richiesta viene completata quando si verifica la chiamata. In entrambi i casi, il callback viene passato un riferimento alla variabile di stato corrispondente passata dall'utente alla chiamata MPI; lo stato impostato dalla funzione callback viene restituito dalla chiamata MPI. Se l'utente ha fornito MPI_STATUS_IGNORE o MPI_STATUSES_IGNORE alla funzione MPI che causa la chiamata di query_fn, MPI passerà un oggetto stato valido a query_fn e questo stato verrà ignorato al ritorno della funzione di callback. Si noti che query_fn viene richiamato solo dopo che MPI_Grequest_complete viene chiamato sulla richiesta; può essere richiamato più volte per la stessa richiesta generalizzata, ad esempio se l'utente chiama MPI_Request_get_status più volte per questa richiesta. Si noti anche che una chiamata a MPI_{Wait|Test}{some|all} può causare più chiamate di funzioni di callback query_fn , una per ogni richiesta generalizzata completata dalla chiamata MPI. L'ordine di queste chiamate non è specificato da MPI.

Requisiti

Prodotto

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

Intestazione

Mpi.h; Mpif.h

Vedi anche

Funzioni esterne MPI

MPI_Grequest_start

MPI_Waitall

MPI_Waitsome

MPI_Waitany

MPI_Testall

MPI_Testsome

MPI_Testany