funzione MPI_Improbe
Probe per un messaggio in modo non bloccato. Fornisce un meccanismo per ricevere il messaggio specifico corrispondente indipendentemente dall'intervento delle operazioni probe/ricezione. Il messaggio corrispondente viene de-accodato dalla coda di ricezione, dando all'applicazione un'opportunità di decidere come ricevere il messaggio in base alle informazioni restituite dall'operazione probe corrispondente non bloccante. Il messaggio corrispondente viene quindi ricevuto usando la funzione MPI_Mrecv o MPI_Imrecv .
Sintassi
int MPIAPI MPI_Improbe(
_In_ int source,
_In_ int tag,
_In_ MPI_Comm comm,
_Out_ Int *flag,
_Out_ MPI_Message *message,
_Out_ MPI_Status *status
);
Parametri
origine [in]
Classificazione di origine o MPI_ANY_SOURCE.tag [in]
Tag di messaggio o MPI_ANY_TAG.comm [in]
Handle di comunicatore MPI.flag [out]
In caso di restituzione, contiene un puntatore a un intero che indica se l'origine, il tag e il comm specificati sono corrispondenti. Un valore diverso da zero indica che i parametri sono corrispondenti.messaggio [out]
Al ritorno, contiene un puntatore al messaggio corrispondente.stato [out]
In caso di restituzione, contiene un puntatore a una struttura MPI_Status in cui vengono archiviate le informazioni sul messaggio.
Valore restituito
Restituisce MPI_SUCCESS sull'esito positivo. In caso contrario, il valore restituito è un codice di errore.
In Fortran il valore restituito viene archiviato nel parametro IERROR .
Fortran
MPI_IMPROBE(SOURCE, TAG, COMM, FLAG, MESSAGE, STATUS, IERROR)
INTEGER SOURCE, TAG, COMM, FLAG, MESSAGE, STATUS(MPI_STATUS_SIZE), IERROR
Commenti
Questa funzione restituisceilflag = true se è possibile ricevere un messaggio che corrisponde al modello specificato dall'origine, dal tag e dal comm. La chiamata corrisponde allo stesso messaggio che sarebbe stato ricevuto da una chiamata a MPI_Recv eseguita nello stesso punto del programma e restituisce lo stesso valore restituito da MPI_Recv. Inoltre, restituisce nel messaggio un handle al messaggio corrispondente. In caso contrario, la chiamata restituisce il flag = false e lascia lo stato e il messaggio non definito.
Requisiti
Prodotto |
Microsoft MPI v6 |
Intestazione |
Mpi.h; Mpif.h |
Libreria |
Msmpi.lib |
DLL |
Msmpi.dll |