Bagikan melalui


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

Lihat juga

Fungsi Titik ke Titik MPI

MPI_Send

MPI_Irecv

MPI_Datatype

MPI_Comm

MPI_Status