Compartilhar via


função MPI_Type_create_subarray

Define um novo tipo de dados que consiste em uma submatriz ndimensional de uma matriz ndimensional. A subarray pode estar localizada em qualquer lugar dentro da matriz completa. Pode ser qualquer tamanho diferente de 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 submatriz.

array_of_starts

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

order

A ordem das dimensões.

MPI_ORDER_C

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

MPI_ORDER_FORTRAN

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

Observação

Os programas C e Fortran podem usar qualquer ordem. Os valores definidos refletem o uso típico.

 

oldtype

Especifica o tipo de dados de cada elemento.

newtype [out]

No retorno, contém um identificador MPI_Datatype que representa o novo tipo de dados.

Retornar valor

Retorna MPI_SUCCESS em caso de êxito. Caso contrário, o valor retornado será um código de erro.

Em Fortran, o valor retornado é 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

Comentários

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

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

Requisitos

Produto

Pacote Redistribuível do HPC Pack 2012 MS-MPI, Pacote Redistribuível HPC Pack 2008 R2 MS-MPI, Pacote Redistribuível do HPC Pack 2008 MS-MPI ou Utilitários de Cliente HPC Pack 2008

parâmetro

Mpi.h; Mpif.h

Biblioteca

Msmpi.lib

DLL

Msmpi.dll

Confira também

Funções de tipo de dados MPI