Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Provede operaci příjmu a nevrátí se, dokud není přijata odpovídající zpráva.
Syntaxe
int MPIAPI MPI_Recv(
_In_opt_ void *buf,
int count,
MPI_Datatype datatype,
int source,
int tag,
MPI_Comm comm,
_Out_ MPI_Status *status
);
Parametry
buf [v, volitelné]
Ukazatel na vyrovnávací paměť obsahující data, která se mají odeslat.Počet
Počet prvků ve vyrovnávací paměti. Pokud je datová část zprávy prázdná, nastavte parametr count na hodnotu 0.Datatype
Datový typ prvků v poli vyrovnávací paměti.Zdroj
Pořadí procesu odesílání v rámci zadaného komunikátoru. Zadejte MPI_ANY_SOURCE konstantu, abyste určili, že jakýkoli zdroj je přijatelný.Značku
Značka zprávy, která se používá k rozlišení různých typů zpráv. Zadejte konstantu MPI_ANY_TAG , která označuje, že jakákoli značka je přijatelná.Komunikace
Popisovač komunikátoru.status [out]
Při vrácení obsahuje ukazatel na strukturu MPI_Status , kde jsou uloženy informace o přijaté zprávě.
Vrácená hodnota
Vrátí MPI_SUCCESS při úspěchu. V opačném případě je návratovou hodnotou kód chyby.
V nástroji Fortran je vrácená hodnota uložena v parametru IERROR .
Fortran
MPI_RECV(BUF, COUNT, DATATYPE, SOURCE, TAG, COMM, STATUS, IERROR)
<type> BUF(*)
INTEGER COUNT, DATATYPE, SOURCE, TAG, COMM, STATUS(MPI_STATUS_SIZE), IERROR
Poznámky
Délka přijaté zprávy musí být menší než nebo rovna délce vyrovnávací paměti pro příjem. Tato funkce vrátí chybu přetečení, pokud se všechna příchozí data nevejdou do vyrovnávací paměti příjmu.
Pokud je přijatá zpráva kratší než vyrovnávací paměť, upraví se pouze část vyrovnávací paměti, která odpovídá zprávě. Zbývající část vyrovnávací paměti se nezmění.
Procesy můžou posílat zprávy samy sobě. Je to ale nebezpečné u blokujících operací odesílání a přijímání , MPI_Send a MPI_Recv, protože tyto blokující operace odesílání a přijímání můžou způsobit vzájemné zablokování.
Poznámka
Mezi operacemi odesílání a příjmu je asymetrie. Operace příjmu může přijímat zprávy od libovolného odesílatele, ale operace odeslání musí určit jedinečného příjemce. To implementuje styl komunikace nabízených oznámení, kdy přenos dat provádí odesílatel, místo stylu vyžádání, kdy přenos dat provádí příjemce.
Požadavky
Produkt |
HPC Pack 2012 MS-MPI Redistributable Package, HPC Pack 2008 R2 MS-MPI Redistributable Package, HPC Pack 2008 MS-MPI Redistributable Package nebo HPC Pack 2008 Client Utilities |
Hlavička |
Mpi.h; Mpif.h |
Knihovna |
Msmpi.lib |
DLL |
Msmpi.dll |