fungsi MPI_Recv
Melakukan operasi terima dan tidak kembali sampai pesan yang cocok diterima.
Sintaks
int MPIAPI MPI_Recv(
_In_opt_ void *buf,
int count,
MPI_Datatype datatype,
int source,
int tag,
MPI_Comm comm,
_Out_ MPI_Status *status
);
Parameter
buf [in, opsional]
Penunjuk ke buffer yang berisi data yang akan dikirim.hitung
Jumlah elemen dalam buffer. Jika bagian data pesan kosong, atur parameter hitungan ke 0.Datatype
Jenis data elemen dalam array buffer.sumber
Peringkat proses pengiriman dalam komunikator yang ditentukan. Tentukan konstanta MPI_ANY_SOURCE untuk menentukan bahwa sumber apa pun dapat diterima.tag
Tag pesan yang digunakan untuk membedakan berbagai jenis pesan. Tentukan konstanta MPI_ANY_TAG untuk menunjukkan bahwa tag apa pun dapat diterima.Comm
Pegangan ke komunikator.status [out]
Saat dikembalikan, berisi penunjuk ke struktur MPI_Status tempat informasi tentang pesan yang diterima disimpan.
Nilai kembali
Mengembalikan MPI_SUCCESS pada keberhasilan. Jika tidak, nilai yang dikembalikan adalah kode kesalahan.
Di Fortran, nilai yang dikembalikan disimpan dalam parameter 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
Keterangan
Panjang pesan yang diterima harus kurang dari atau sama dengan panjang buffer penerima. Fungsi ini mengembalikan kesalahan luapan jika semua data masuk tidak sesuai dengan buffer penerima.
Jika pesan yang diterima lebih pendek dari buffer, hanya bagian dari buffer yang sesuai dengan pesan yang dimodifikasi. Sisa buffer tidak dimodifikasi.
Proses dapat mengirim pesan ke diri mereka sendiri. Namun, tidak aman untuk melakukannya dengan operasi kirim dan terima pemblokiran, MPI_Send dan MPI_Recv, karena operasi kirim dan terima pemblokiran ini dapat menyebabkan kebuntuan.
Catatan
Ada asimetri antara operasi kirim dan terima. Operasi penerima dapat menerima pesan dari pengirim arbitrer, tetapi operasi pengiriman harus menentukan penerima unik. Ini mengimplementasikan gaya komunikasi push, di mana transfer data diberlakukan oleh pengirim, bukan gaya penarikan di mana transfer data terpengaruh oleh penerima.
Persyaratan
Produk |
Paket HPC Pack 2012 MS-MPI Redistributable, HpC Pack 2008 R2 MS-MPI Redistributable Package, HPC Pack 2008 MS-MPI Redistributable Package atau HPC Pack 2008 Client Utilities |
Header |
Mpi.h; Mpif.h |
Pustaka |
Msmpi.lib |
DLL |
Msmpi.dll |