Freigeben über


MPI_Type_create_subarray-Funktion

Definiert einen neuen Datentyp, der aus einem n-dimensionalen Subarray eines n-dimensionalen Arrays besteht. Das Subarray kann sich an einer beliebigen Stelle innerhalb des vollständigen Arrays befinden. Es kann eine beliebige größe ohne Zero sein, solange sie vollständig im Array enthalten ist.

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

Parameter

ndims

Die Anzahl der Arraydimensionen und die Anzahl der Elemente in den Parametern array_of_sizes, array_of_subsizes und array_of_starts .

array_of_sizes

Die Anzahl der Elemente in jeder Dimension des vollständigen Arrays.

array_of_subsizes

Die Anzahl der Elemente in jeder Dimension des Subarrays.

array_of_starts

Der Startindex des Subarrays in jeder Dimension.

order

Die Reihenfolge der Dimensionen.

MPI_ORDER_C

Die Zeilenhauptreihenfolge, in der alle Elemente für eine bestimmte Zeile zusammenhängend gespeichert werden.

MPI_ORDER_FORTRAN

Die Spaltenhauptreihenfolge, in der alle Elemente für eine bestimmte Spalte zusammenhängend gespeichert werden.

Hinweis

Sowohl C- als auch Fortran-Programme können beide Bestellungen verwenden. Die definierten Werte spiegeln die typische Nutzung wider.

 

oldtype

Gibt den Datentyp jedes Elements an.

newtype [out]

Enthält bei Rückgabe ein MPI_Datatype-Handle , das den neuen Datentyp darstellt.

Rückgabewert

Gibt MPI_SUCCESS nach Erfolg zurück. Andernfalls ist der Rückgabewert ein Fehlercode.

In Fortran wird der Rückgabewert im IERROR-Parameter gespeichert.

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

Hinweise

Die Funktion gibt einen Fehler zurück, wenn die Größe des Subarrays die Größe des Arrays überschreitet. Für jede Dimension i muss der Wert von array_of_subsizes[i] -Parameter größer oder gleich eins und kleiner als oder gleich dem array_of_sizes[i] -Parameter sein.

Die Funktion gibt einen Fehler zurück, wenn das Subarray außerhalb der Grenzen des Arrays beginnt oder endet. Für jede Dimension i muss der Wert des Parameters null sein, und die Summe der Parameter array_of_starts[i] und array_of_subsizes[i] muss kleiner oder gleich dem Wert des array_of_sizes[i] -Parameters sein. Wenn das Subarray beispielsweise die gleiche Größe wie das Array aufweist, muss das Subarray bei Index 0 beginnen. Es wird davon ausgegangen, dass Arrays ab 00 indiziert werden.

Anforderungen

Produkt

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

Header

Mpi.h; Mpif.h

Bibliothek

Msmpi.lib

DLL

Msmpi.dll

Weitere Informationen

MPI-Datentypfunktionen