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 |