функция MPI_Type_create_subarray
Определяет новый тип данных, состоящий из n-мерного подмассивного массива n-мерного массива. Вложенный массив может находиться в любом месте полного массива. Это может быть любой ненулевой размер, если он полностью содержится в массиве.
Синтаксис
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
);
Параметры
ndims
Количество измерений массива и количество элементов в array_of_sizes, array_of_subsizes и array_of_starts параметрах.
array_of_sizes
Количество элементов в каждом измерении полного массива.
array_of_subsizes
Количество элементов в каждом измерении подмассивного массива.
array_of_starts
Начальный индекс подмассивного массива в каждом измерении.
order
Порядок измерений.
MPI_ORDER_C
Порядок основной строки, в котором все элементы для данной строки хранятся непрерывно.
MPI_ORDER_FORTRAN
Основной порядок столбцов, в котором все элементы для данного столбца хранятся непрерывно.
Примечание
Программы C и Fortran могут использовать любой заказ. Определенные значения отражают типичное использование.
старый тип
Указывает тип данных каждого элемента.
newtype [out]
При возврате содержит дескриптор MPI_Datatype , представляющий новый тип данных.
Возвращаемое значение
Возвращает MPI_SUCCESS при успешном выполнении. В противном случае возвращаемое значение представляет собой код ошибки.
В Fortran возвращаемое значение хранится в параметре 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
Комментарии
Функция возвращает ошибку, если размер подмассивного массива превышает размер массива. Для каждого измерения i значение параметра array_of_subsizes[i] должно быть больше или равно 1 и меньше или равно параметру array_of_sizes[i] .
Функция возвращает ошибку, если вложенный массив начинается или заканчивается за пределами массива. Для любого измерения i значение параметра должно быть равно нулю, а сумма параметров array_of_starts[i] и array_of_subsizes[i] должна быть меньше или равна значению параметра array_of_sizes[i] . Например, если вложенный массив имеет тот же размер, что и массив, то вложенный массив должен начинаться с нуля индекса. Предполагается, что массивы индексируются, начиная с нуля.
Требования
Продукт |
Распространяемый пакет HPC 2012 MS-MPI, пакет HPC 2008 R2 распространяемый пакет MS-MPI, пакет HPC 2008 MS-MPI или клиентские служебные программы пакета HPC 2008 |
Заголовок |
Mpi.h; Mpif.h |
Библиотека |
Msmpi.lib |
DLL |
Msmpi.dll |