Sdílet prostřednictvím


MPI_Iscatterv funkce

Syntaxe

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
);

Parametry

  • sendbuf [in, optional]
    Ukazatel na vyrovnávací paměť obsahující data, která mají být odeslána kořenovým procesem.

    Tento parametr je ignorován pro všechny procesy, které nejsou kořenem.

    Pokud parametr comm odkazuje na intracommunicator, můžete zadat místní možnost zadáním MPI_IN_PLACE v kořenovém procesu. Parametry recvcount a recvtype se ignorují. Bodový vektor je stále považován za obsahující n segmentů, kde n je velikost skupiny; segment, který odpovídá kořenovému procesu, se nepřesune.

  • sendcounts[] [in, optional]
    Počet prvků, které se mají odeslat do každého procesu. Pokud je hodnota sendcounts[i] nulová, datová část zprávy pro daný proces je prázdná.

    Tento parametr je ignorován pro všechny procesy, které nejsou kořenem.

  • displs[] [in, optional]
    Umístění dat, která se mají odeslat do jednotlivých procesů komunikátoru. Každé umístění v poli je relativní vzhledem k odpovídajícímu prvku pole sendbuf .

    V polích parametrů sendbuf, sendcounts a displs odkazuje ntý prvek každého pole na data, která mají být odeslána n-tohoprocesu komunikátoru.

    Tento parametr je významný pouze v kořenovém procesu.

  • sendtype [in]
    Datový typ každého prvku ve vyrovnávací paměti.

    Tento parametr je ignorován pro všechny procesy, které nejsou kořenem.

  • recvbuf [out, optional]
    Ukazatel na vyrovnávací paměť, která obsahuje data přijatá v jednotlivých procesech. Počet a datový typ prvků ve vyrovnávací paměti jsou uvedeny v parametrech recvcount a recvtype .

  • recvcount [in]
    Počet prvků ve vyrovnávací paměti pro příjem. Pokud je počet nula, datová část zprávy je prázdná.

  • recvtype [in]
    Datový typ prvků v vyrovnávací paměti pro příjem.

  • root [v]
    Pořadí v procesu odesílání v rámci zadaného komunikátoru.

  • comm [in]
    Popisovač MPI_Comm komunikátoru.

  • žádost [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.

Ve Fortranu je vrácená hodnota uložena v parametru 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

Poznámky

Neblokující volání inicializuje operaci kolektivní redukce, 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. Tímto způsobem mohou neblokující operace redukce zmírnit případné synchronizační účinky operací redukce jejich spouštěním na "pozadí".

Všechna volání dokončení (např. MPI_Wait) jsou podporována pro neblokující operace redukce.

Požadavky

Produkt

Microsoft MPI v7

Hlavička

Mpi.h; Soubor Mpif.h

Knihovna

Msmpi.lib

DLL

Msmpi.dll

Viz také

Kolektivní funkce MPI

MPI_Datatype

MPI_Scatterv

MPI_Test

MPI_Testall

MPI_Testany

MPI_Testsome

MPI_Wait

MPI_Waitall

MPI_Waitany

MPI_Waitsome