funzione MPI_Type_create_subarray
Definisce un nuovo tipo di dati costituito da una sottoarray n-dimensionale di una matrice n-dimensionale. La sottomaschera può essere posizionata in qualsiasi punto all'interno della matrice completa. Può essere qualsiasi dimensione diversa da zero purché sia completamente contenuta all'interno della matrice.
Sintassi
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
);
Parametri
ndims
Numero di dimensioni della matrice e numero di elementi nel array_of_sizes, array_of_subsizese array_of_starts parametri.
array_of_sizes
Numero di elementi in ogni dimensione della matrice completa.
array_of_subsizes
Numero di elementi in ogni dimensione della sottomaschera.
array_of_starts
Indice iniziale della sottomaschera in ogni dimensione.
order
Ordine delle dimensioni.
MPI_ORDER_C
Ordine di riga principale in cui tutti gli elementi per una determinata riga vengono archiviati in modo contiguo.
MPI_ORDER_FORTRAN
Ordine di colonna principale in cui tutti gli elementi per una determinata colonna vengono archiviati in modo contiguo.
Nota
Entrambi i programmi C e Fortran possono usare entrambi gli ordini. I valori definiti riflettono l'utilizzo tipico.
oldtype
Specifica il tipo di dati di ogni elemento.
newtype [out]
In caso di restituzione, contiene un handle MPI_Datatype che rappresenta il nuovo tipo di dati.
Valore restituito
Restituisce MPI_SUCCESS in caso di esito positivo. In caso contrario, il valore restituito è un codice di errore.
In Fortran il valore restituito viene archiviato nel parametro 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
Commenti
La funzione restituisce un errore se le dimensioni della sottomaschera superano le dimensioni della matrice. Per ogni dimensione i, il valore del parametro array_of_subsizes[i] deve essere maggiore o uguale a uno e minore o uguale al parametro array_of_sizes[i].
La funzione restituisce un errore se la sottoarray inizia o termina all'esterno dei limiti della matrice. Per qualsiasi dimensione i, il valore del parametro deve essere zero e la somma dei parametri array_of_starts[i] e array_of_subsizes[i] deve essere minore o uguale al valore del parametro array_of_sizes[i]. Ad esempio, se la sottoarray ha le stesse dimensioni della matrice, la sottoarray deve iniziare in corrispondenza dell'indice zero. Si presuppone che le matrici siano indicizzate a partire da zero.
Requisiti
Prodotto |
Pacchetto ridistribuibile DI HPC Pack 2012 MS-MPI, HPC Pack 2008 R2 MS-MPI Redistributable Package, HPC Pack 2008 MS-MPI Redistributable Package o utilità client HPC Pack 2008 |
Intestazione |
Mpi.h; Mpif.h |
Libreria |
Msmpi.lib |
DLL |
Msmpi.dll |