Partilhar via


função MPI_Type_create_subarray

Define um novo tipo de dados que consiste numa subarray ndimensional de uma matriz ndimensional. A subarray pode estar localizada em qualquer lugar dentro da matriz completa. Pode ter qualquer tamanho não zero, desde que esteja totalmente contido na matriz.

Sintaxe

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

Parâmetros

ndims

O número de dimensões de matriz e o número de elementos nos parâmetros array_of_sizes, array_of_subsizes e array_of_starts .

array_of_sizes

O número de elementos em cada dimensão da matriz completa.

array_of_subsizes

O número de elementos em cada dimensão da subarray.

array_of_starts

O índice inicial da subarray em cada dimensão.

order

A ordem das dimensões.

MPI_ORDER_C

A ordem principal da linha na qual todos os elementos de uma determinada linha são armazenados contíguo.

MPI_ORDER_FORTRAN

A ordem principal da coluna na qual todos os elementos de uma determinada coluna são armazenados contíguo.

Nota

Os programas C e Fortran podem utilizar qualquer uma das encomendas. Os valores definidos refletem a utilização típica.

 

oldtype

Especifica o tipo de dados de cada elemento.

newtype [out]

Em troca, contém uma MPI_Datatype identificador que representa o novo tipo de dados.

Valor devolvido

Devolve MPI_SUCCESS com êxito. Caso contrário, o valor devolvido é um código de erro.

Em Fortran, o valor devolvido é armazenado no parâmetro 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

Observações

A função devolve um erro se o tamanho da subarray exceder o tamanho da matriz. Para cada dimensão i, o valor do parâmetro array_of_subsizes[i] tem de ser maior ou igual a um e menor ou igual ao parâmetro array_of_sizes[i ].

A função devolve um erro se a subarray iniciar ou terminar fora dos limites da matriz. Para qualquer dimensão i, o valor do parâmetro tem de ser zero e a soma dos parâmetros array_of_starts[i] e array_of_subsizes[i] tem de ser menor ou igual ao valor do parâmetro array_of_sizes[i] . Por exemplo, se a subarray tiver o mesmo tamanho que a matriz, a subarray tem de começar no índice zero. Presume-se que as matrizes estão indexadas a partir de zero.

Requisitos

Produto

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

Cabeçalho

Mpi.h; Mpif.h

Biblioteca

Msmpi.lib

DLL

Msmpi.dll

Ver também

Funções de Tipo de Dados MPI