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 |