funktionen MPI_Ibcast
Sänder ett meddelande från processen med rangordningen "root" till alla andra processer i kommunikatören på ett icke-blockerande sätt.
Syntax
int MPIAPI MPI_Ibcast(
_Inout_ void *buffer,
_In_ int count,
_In_ MPI_Datatype datatype,
_In_ int root,
_In_ MPI_Comm comm,
_Out_ MPI_Request *request
);
Parametrar
buffert [in, ut]
Pekaren till databufferten. På den process som anges av parametern root innehåller bufferten de data som ska sändas. På alla andra processer i kommunikatören som anges av parametern comm tar bufferten emot data som skickas av rotprocessen. buffert består av antal efterföljande element i MPI_Datatype som anges av handtag för datatypen. Meddelandelängden anges i termer av antal element, inte antal byte.antal [in]
Antalet dataelement i bufferten. Om antal parametern är noll är datadelen av meddelandet tom.datatyp [in]
Den MPI_Datatype hanterar som representerar datatypen för varje element i buffert.rot [in]
Processens rangordning inom MPI_Commkomma skicka buffert.komma [in]
Handtag för MPI_Comm kommunikatör.begäran [ut]
MPI_Request referens som representerar kommunikationsåtgärden..
Returvärde
Returnerar MPI_SUCCESS vid lyckat resultat. Annars är returvärdet en felkod.
I Fortran lagras returvärdet i parametern IERROR.
Fortran
MPI_IBCAST(BUFFER, COUNT, DATATYPE, ROOT, COMM, REQUEST, IERROR)
<type> BUFFER(*)
INTEGER COUNT, DATATYPE, ROOT, COMM, REQUEST, IERROR
Anmärkningar
Ett icke-blockerande anrop initierar en kollektiv sändningsåtgärd som måste slutföras i ett separat slutförandeanrop. När åtgärden väl har initierats kan den fortsätta oberoende av beräkningen eller annan kommunikation i deltagande processer. På så sätt kan icke-blockerande sändningsåtgärder minimera möjliga synkroniseringseffekter av sändningsåtgärder genom att köra dem i "bakgrunden".
Alla slutförandeanrop (t.ex. MPI_Wait) stöds för icke-blockerande sändningsåtgärder.
Krav
Produkt |
Microsoft MPI v6 |
Rubrik |
Mpi.h; Mpif.h |
Bibliotek |
Msmpi.lib |
DLL |
Msmpi.dll |