Bagikan melalui


MPI_Iscatterv fungsi

Sintaks

int MPIAPI MPI_Iscatterv(
  _In_opt_  const void         *sendbuf,
  _In_opt_  const int          sendcounts[],
  _In_opt_  const int          displs[],
  _In_            MPI_Datatype sendtype,
  _Out_opt_        void        *recvbuf,
  _In_            int          recvcount,
  _In_            MPI_Datatype recvtype,
  _In_            int          root,
  _In_            MPI_Comm     comm,
  _Out_           MPI_Request  *request
);

Parameter

  • sendbuf [in, opsional]
    Penunjuk ke buffer yang berisi data yang akan dikirim oleh proses root.

    Parameter ini diabaikan untuk semua proses non-root.

    Jika parameter comm mereferensikan intracommunicator, Anda dapat menentukan opsi di tempat dengan menentukan MPI_IN_PLACE dalam proses root. Parameter recvcount dan recvtype diabaikan. Vektor yang tersebar masih dianggap berisi segmen n , di mana n adalah ukuran grup; segmen yang sesuai dengan proses akar tidak dipindahkan.

  • sendcounts[] [in, opsional]
    Jumlah elemen yang akan dikirim ke setiap proses. Jika sendcounts[i] adalah nol, bagian data dari pesan untuk proses tersebut kosong.

    Parameter ini diabaikan untuk semua proses non-root.

  • displs[] [in, opsional]
    Lokasi data yang akan dikirim ke setiap proses komunikator. Setiap lokasi dalam array relatif terhadap elemen array sendbuf yang sesuai.

    Dalam sendbuf, sendcounts, dan displs parameter array, elemen nth dari setiap array mengacu pada data yang akan dikirim ke proses komunikator ke n.

    Parameter ini hanya signifikan pada proses akar.

  • sendtype [in]
    Jenis data setiap elemen dalam buffer.

    Parameter ini diabaikan untuk semua proses non-root.

  • recvbuf [keluar, opsional]
    Penunjuk ke buffer yang berisi data yang diterima pada setiap proses. Jumlah dan jenis data elemen dalam buffer ditentukan dalam parameter recvcount dan recvtype .

  • recvcount [in]
    Jumlah elemen dalam penyangga penerima. Jika jumlahnya nol, bagian data dari pesan kosong.

  • recvtype [in]
    Jenis data elemen dalam buffer penerima.

  • root [in]
    Peringkat dalam proses pengiriman dalam komunikator yang ditentukan.

  • comm [in]
    Pegangan MPI_Comm komunikator.

  • 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 yang dikembalikan disimpan dalam parameter IERROR .

Fortran

    MPI_ISCATTERV(SENDBUF, SENDCOUNTS, DISPLS, SENDTYPE, RECVBUF, RECVCOUNT, RECVTYPE, ROOT, COMM, REQUEST, IERROR)
        <type> SENDBUF(*), RECVBUF(*)
        INTEGER SENDCOUNTS(*), DISPLS(*), SENDTYPE, RECVCOUNT, RECVTYPE, ROOT, COMM, REQUEST, IERROR

Keterangan

Panggilan non-pemblokiran memulai operasi pengurangan kolektif yang harus diselesaikan dalam panggilan penyelesaian terpisah. Setelah dimulai, operasi dapat berkembang secara independen dari komputasi atau komunikasi lainnya pada 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_Scatterv

MPI_Test

MPI_Testall

MPI_Testany

MPI_Testsome

MPI_Wait

MPI_Waitall

MPI_Waitany

MPI_Waitsome