Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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 |