funktionen MPI_Type_create_subarray

Definierar en ny datatyp som består av en n-dimensionell subarray för en n-dimensionell matris. Undermatrisen kan finnas var som helst i den fullständiga matrisen. Den kan vara valfri icke-nollstorlek så länge den är helt innesluten i matrisen.

Syntax

int MPIAPI MPI_Type_create_subarray(
        int                   ndims,
        _In_count_(ndims) int array_of_sizes[],
        _In_count_(ndims) int array_of_subsizes[],
        _In_count_(ndims) int array_of_starts[],
        int                   order,
        MPI_Datatype          oldtype,
  _Out_ MPI_Datatype          *newtype
);

Parametrar

ndims

Antalet matrisdimensioner och antalet element i parametrarna array_of_sizes, array_of_subsizes och array_of_starts .

array_of_sizes

Antalet element i varje dimension i den fullständiga matrisen.

array_of_subsizes

Antalet element i varje dimension i underarrayen.

array_of_starts

Startindexet för undermatrisen i varje dimension.

order

Måttens ordning.

MPI_ORDER_C

Den rad-större ordning i vilken alla element för en viss rad lagras sammanhängande.

MPI_ORDER_FORTRAN

Kolumnens huvudordning där alla element för en viss kolumn lagras sammanhängande.

Anteckning

Både C- och Fortran-program kan använda endera beställningen. De definierade värdena återspeglar typisk användning.

 

oldtype

Anger datatypen för varje element.

newtype [out]

Vid retur innehåller ett MPI_Datatype handtag som representerar den nya datatypen.

Returvärde

Returnerar MPI_SUCCESS vid lyckat resultat. Annars är returvärdet en felkod.

I Fortran lagras returvärdet i parametern IERROR .

Fortran

    MPI_TYPE_CREATE_SUBARRAY(NDIMS, ARRAY_OF_SIZES, ARRAY_OF_SUBSIZES, ARRAY_OF_STARTS, ORDER, OLDTYPE, NEWTYPE, IERROR)
        NDIMS, ARRAY_OF_SIZES, ARRAY_OF_SUBSIZES, ARRAY_OF_STARTS, ORDER, OLDTYPE, NEWTYPE, IERROR

Kommentarer

Funktionen returnerar ett fel om storleken på underarrayen överskrider matrisens storlek. För varje dimension i måste värdet för parametern array_of_subsizes[i] vara större än eller lika med en och mindre än eller lika med parametern array_of_sizes[i].

Funktionen returnerar ett fel om underarrayen startar eller slutar utanför matrisens gränser. För alla dimension i måste värdet för parametern vara noll och summan av parametrarna array_of_starts[i] och array_of_subsizes[i] måste vara mindre än eller lika med värdet för parametern array_of_sizes[i]. Om subarrayen till exempel har samma storlek som matrisen måste underarrayen börja vid index noll. Matriser antas vara indexerade från noll.

Krav

Produkt

HPC Pack 2012 MS-MPI Redistributable Package, HPC Pack 2008 R2 MS-MPI Redistributable Package, HPC Pack 2008 MS-MPI Redistributable Package eller HPC Pack 2008 Client Utilities

Huvud

Mpi.h; Mpif.h

Bibliotek

Msmpi.lib

DLL

Msmpi.dll

Se även

MPI-datatypsfunktioner