Sdílet prostřednictvím


MPI_Igather funkce

Shromažďuje data ze všech členů skupiny do jednoho člena neblokujícím způsobem.

Syntaxe

int WINAPI MPI_Igather(
  _In_      void         *sendbuf,
            int          sendcount,
            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
);

Parametry

  • sendbuf [in]
    Ukazatel na vyrovnávací paměť obsahující data, která se mají odeslat do kořenového adresáře. Vyrovnávací paměť se skládá z po sobě jdoucích prvků sendcount MPI_Datatype označených popisovačem sendtype . Délka zprávy je určena počtem prvků, nikoli počtem bajtů.

  • sendcount
    Počet elementů typu sendtype v sendbuf. Pokud je hodnota nula, datová část zprávy je prázdná.

  • sendtype
    Popisovač MPI_Datatype představující datový typ každého prvku v sendbuf.

  • recvbuf [out, volitelné]
    Ukazatel na vyrovnávací paměť obsahující data přijatá z jednotlivých procesů v kořenovém adresáři, včetně dat odeslaných kořenovým procesem (významná pouze v kořenovém adresáři). Recvbuf vyrovnávací paměti pro příjem se ignoruje pro všechny procesy, které nejsou kořeny. V kořenovém procesu se recvbuf skládá z po sobě jdoucích prvků recvcountMPI_Datatype označených úchytem recvtype . Délka zprávy je určena počtem prvků, nikoli počtem bajtů.

  • recvcount [in]
    Počet prvků recvtype v recvbuf. Pokud je hodnota nula, datová část zprávy je prázdná (důležitá je pouze v kořenovém adresáři).

  • recvtype [in]
    Popisovač MPI_Datatype představující datový typ každého prvku v recvbuf (významný pouze v kořenovém adresáři).

  • root [v]
    Pořadí procesu příjmu v MPI_Commcomm.

  • comm [in]
    Popisovač MPI_Comm communicatoru.

  • request [out]
    Popisovač MPI_Request představující komunikační operaci.

Vrácená hodnota

Vrátí MPI_SUCCESS při úspěchu. V opačném případě je návratovou hodnotou kód chyby.

V nástroji Fortran je vrácená hodnota uložena v parametru IERROR .

Fortran

    MPI_IGATHER(SENDBUF, SENDCOUNT, SENDTYPE, RECVBUF, RECVCOUNT, RECVTYPE,
    ROOT, COMM, REQUEST, IERROR)
        <type> SENDBUF(*), RECVBUF(*)
        INTEGER SENDCOUNT, SENDTYPE, RECVCOUNT, RECVTYPE, ROOT, COMM, REQUEST, IERROR

Poznámky

Neblokující volání inicializuje operaci hromadného shromažďování, která musí být dokončena v samostatném volání dokončení. Po zahájení může operace probíhat nezávisle na výpočtu nebo jiné komunikaci v zúčastněných procesech. Neblokující operace shromažďování tak můžou zmírnit možné synchronizační účinky operací shromažďování tím, že je spustí na "pozadí".

Pro neblokující operace shromažďování se podporují všechna volání dokončení (např. MPI_Wait).

Požadavky

Produkt

Microsoft MPI v6

Hlavička

Mpi.h; Mpif.h

Knihovna

Msmpi.lib

DLL

Msmpi.dll

Viz také

Kolektivní funkce MPI

MPI_Datatype

MPI_Gather

MPI_Test

MPI_Testall

MPI_Testany

MPI_Testsome

MPI_Wait

MPI_Waitall

MPI_Waitany

MPI_Waitsome