fungsi MPI_Iallreduce
Menggabungkan nilai dari semua proses dan mendistribusikan hasilnya kembali ke semua proses dengan cara yang tidak memblokir.
Sintaks
int MPIAPI MPI_Iallreduce(
_In_opt_ const void *sendbuf,
_Out_opt_ void *recvbuf,
_In_ int count,
_In_ MPI_Datatype datatype,
_In_ MPI_Op op,
_In_ MPI_Comm comm,
_Out_ MPI_Request *request
);
Parameter
sendbuf [in, opsional]
Penunjuk ke data yang akan dikirim ke semua proses dalam grup. Jumlah dan jenis data elemen dalam buffer ditentukan dalam parameter hitungan dan jenis data .Jika parameter comm mereferensikan intracommunicator, Anda dapat menentukan opsi di tempat dengan menentukan MPI_IN_PLACE di semua proses. Dalam hal ini, data input diambil pada setiap proses dari buffer penerima, di mana data tersebut akan digantikan oleh data output.
recvbuf [keluar, opsional]
Penunjuk ke buffer untuk menerima hasil operasi pengurangan.count [in]
Jumlah elemen yang akan dikirim dari proses ini.datatype [in]
Jenis data dari setiap elemen dalam buffer. Parameter ini harus kompatibel dengan operasi seperti yang ditentukan dalam parameter op .op [in]
Operasi pengurangan global untuk dilakukan. Handel dapat menunjukkan operasi bawaan atau yang ditentukan aplikasi. Untuk daftar operasi yang telah ditentukan sebelumnya, lihat MPI_Op.comm [in]
Pegangan komunikator MPI_Comm.request [out]
Handel MPI_Request mewakili operasi komunikasi.
Nilai kembali
Mengembalikan MPI_SUCCESS pada keberhasilan. Jika tidak, nilai yang dikembalikan adalah kode kesalahan.
Di Fortran, nilai pengembalian disimpan dalam parameter IERROR .
Fortran
MPI_IALLREDUCE(SENDBUF, RECVBUF, COUNT, DATATYPE, OP, COMM, REQUEST, IERROR)
<type> SENDBUF(*), RECVBUF(*)
INTEGER COUNT, DATATYPE, OP, 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 |