Bagikan melalui


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

Lihat juga

Fungsi Kolektif MPI

MPI_Datatype

MPI_Op

MPI_Allreduce

MPI_Test

MPI_Testall

MPI_Testany

MPI_Testsome

MPI_Wait

MPI_Waitall

MPI_Waitany

MPI_Waitsome