Bagikan melalui


fungsi MPI_Igatherv

Mengumpulkan data variabel dari semua anggota grup ke satu anggota dengan cara yang tidak memblokir.

Sintaks

int MPIAPI MPI_Igatherv(
  _In_opt_  const void         *sendbuf,
  _In_            int          sendcount,
  _In_            MPI_Datatype sendtype,
  _Out_opt_       void         *recvbuf,
  _In_opt_  const int          recvcounts[],
  _In_opt_  const int          displs[],
  _In_            MPI_Datatype recvtype,
  _In_            int          root,
  _In_            MPI_Comm     comm,
  _Out_           MPI_Request  *request
);

Parameter

  • sendbuf [in, opsional]
    Handel ke buffer yang berisi data yang akan dikirim ke proses root.

    Jika parameter comm mereferensikan intracommunicator, Anda dapat menentukan opsi di tempat dengan menentukan MPI_IN_PLACE di semua proses. Parameter sendcount dan sendtype diabaikan. Setiap proses memasukkan data dalam elemen buffer penerima yang sesuai. Proses nth mengirim data ke elemen nth dari buffer penerima. Data yang dikirim oleh proses akar diasumsikan berada di tempat yang benar di buffer penerima.

  • sendcount [in]
    Jumlah elemen dalam buffer kirim. Jika sendcount adalah nol, bagian data dari pesan kosong.

  • sendtype [in]
    Jenis data dari setiap elemen dalam buffer.

  • recvbuf [keluar, opsional]
    Handel ke buffer pada proses root yang berisi data yang diterima dari setiap proses, termasuk data yang dikirim oleh proses root. Parameter ini hanya signifikan pada proses root. Parameter recvbuf diabaikan untuk semua proses non-root.

  • recvcounts[] [in, opsional]
    Jumlah elemen yang diterima dari setiap proses. Setiap elemen dalam array sesuai dengan peringkat proses pengiriman. Jika jumlahnya nol, bagian data pesan kosong. Parameter ini hanya signifikan pada proses root.

  • displs[] [in, opsional]
    Lokasi, relatif terhadap parameter recvbuf , data dari setiap proses komunikator. Data yang diterima dari proses j ditempatkan ke dalam buffer penerima elemen displs[j] offset proses akar dari penunjuk sendbuf .

    Dalam recvbuf, recvcounts, dan displs parameter array, elemen nth dari setiap array mengacu pada data yang diterima dari proses komunikator nth.

    Parameter ini hanya signifikan pada proses root.

  • recvtype [in]
    Jenis data setiap elemen dalam buffer. Parameter ini hanya signifikan pada proses root.

  • root [in]
    Peringkat proses penerimaan dalam komunikator yang ditentukan.

  • comm [in]
    Pegangan komunikator MPI_Comm.

  • request [out]
    Handel MPI_Request mewakili operasi komunikasi.

Menampilkan nilai

Mengembalikan MPI_SUCCESS pada keberhasilan. Jika tidak, nilai yang dikembalikan adalah kode kesalahan.

Di Fortran, nilai pengembalian disimpan dalam parameter IERROR .

Fortran

    MPI_IGATHERV(SENDBUF, SENDCOUNT, SENDTYPE, RECVBUF, RECVCOUNTS, DISPLS, RECVTYPE,
    ROOT, COMM, REQUEST, IERROR)
        <type> SENDBUF(*), RECVBUF(*)
        INTEGER SENDCOUNT, SENDTYPE, RECVCOUNTS(*), DISPLS(*), RECVTYPE, ROOT, COMM, REQUEST, IERROR

Keterangan

Panggilan non-pemblokiran memulai operasi pengurangan kolektif yang harus diselesaikan dalam panggilan penyelesaian terpisah. Setelah dimulai, operasi dapat maju secara independen dari komputasi atau komunikasi lainnya dalam proses yang berpartisipasi. Dengan cara ini, operasi pengurangan non-pemblokiran dapat mengurangi kemungkinan sinkronisasi efek operasi pengurangan dengan menjalankannya di "latar belakang."

Semua panggilan penyelesaian (misalnya, MPI_Wait) didukung untuk operasi pengurangan non-pemblokiran.

Persyaratan

Produk

Microsoft MPI v7

Header

Mpi.h; Mpif.h

Pustaka

Msmpi.lib

DLL

Msmpi.dll

Lihat juga

Fungsi Kolektif MPI

MPI_Datatype

MPI_Gatherv

MPI_Test

MPI_Testall

MPI_Testany

MPI_Testsome

MPI_Wait

MPI_Waitall

MPI_Waitany

MPI_Waitsome