Condividi tramite


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

Vedi anche

Funzioni del tipo di dati MPI