Bagikan melalui


MPI_Allgatherv (Fungsi MPI_Allgatherv)

Mengumpulkan jumlah variabel data dari setiap anggota grup dan mengirim data ke semua anggota grup. Fungsi MPI_Allgatherv seperti MPI_Gatherv, kecuali bahwa semua proses menerima hasilnya, bukan hanya akar. Blok data yang dikirim dari proses jth diterima oleh setiap proses dan ditempatkan di blok jth dari buffer recvbuf. Blok-blok ini tidak semua harus berukuran sama.

Sintaks

int MPIAPI MPI_Allgatherv(
  _In_  void         *sendbuf,
        int          sendcount,
        MPI_Datatype sendtype,
  _Out_ void         *recvbuf,
  _In_  int          *recvcounts,
  _In_  int          *displs,
        MPI_Datatype recvtype,
        MPI_Comm     comm
);

Parameter

  • sendbuf [in]
    Penunjuk ke data yang akan dikirim ke semua proses dalam grup. Jumlah dan jenis data elemen dalam buffer ditentukan dalam parameter sendcount dan sendtype . Setiap elemen dalam buffer sesuai dengan proses dalam grup.

    Jika parameter comm mereferensikan intrakomunikator, 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 ke-nmengirim data ke elemen ke-ndari buffer penerima.

  • sendcount
    Jumlah elemen data yang dikirim proses ini dalam buffer yang ditentukan dalam parameter sendbuf . Jika elemen dalam sendcount adalah nol, bagian data dari pesan dari proses tersebut kosong.

  • sendtype
    Jenis data MPI dari elemen dalam buffer kirim.

  • recvbuf [out]
    Penunjuk ke buffer yang berisi data yang diterima dari setiap proses. Jumlah dan jenis data elemen dalam buffer ditentukan dalam parameter recvcount dan recvtype .

  • recvcounts [in]
    Jumlah elemen data dari setiap proses komunikator dalam buffer penerima.

  • displs [in]
    Lokasi, relatif terhadap parameter recvbuf , data dari setiap proses komunikator.

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

  • recvtype
    Jenis data MPI dari setiap elemen dalam buffer.

  • Comm
    Pegangan MPI_Comm komunikator.

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_ALLGATHERV(SENDBUF, SENDCOUNT, SENDTYPE, RECVBUF, RECVCOUNTS,DISPLS, RECVTYPE,COMM, IERROR)
        <type> SENDBUF(*), R.ECVBUF(*)
        INTEGER SENDCOUNT, SENDTYPE, RECVCOUNTS(*), DISPLS(*), RECVTYPE, COMM, IERROR

Keterangan

Aturan penggunaan untuk MPI_Allgatherv sesuai dengan aturan untuk MPI_Gatherv.

Tanda tangan jenis yang terkait dengan parameter sendtype pada proses harus sama dengan tanda tangan jenis yang terkait dengan parameter recvtype pada proses lain.

Jika parameter komunikasi mereferensikan intrakomunikator, hasil panggilan ke MPI_Allgatherv(...)adalah seolah-olah semua proses menjalankan panggilan ke MPI_GatherV(sendbuf,sendcount,sendtype,recvbuf,recvcounts,displs,recvtype,root,comm), untuk root = 0 , ..., n-1.

Jika parameter comm mereferensikan interkomunikator, maka setiap proses dari satu grup, misalnya, grup A, berkontribusi jumlah item data yang ditentukan dalam parameter sendcount . Data ini digabungkan, dan hasilnya disimpan di setiap proses di grup lain, grup B. Sebaliknya, perangkaian data proses dalam grup B disimpan di setiap proses di grup A. Parameter buffer kirim dalam grup A harus konsisten dengan parameter buffer penerima di grup B, dan sebaliknya.

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 Kolektif MPI

MPI_Gatherv

MPI_Datatype