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 程序都可以使用任一顺序。 定义的值反映典型用法。
oldtype
指定每个元素的数据类型。
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 Pack 2012 MS-MPI 可再发行程序包、HPC Pack 2008 R2 MS-MPI 可再发行程序包、HPC Pack 2008 MS-MPI 可再发行程序包或 HPC Pack 2008 客户端实用工具 |
标头 |
Mpi.h;Mpif.h |
库 |
Msmpi.lib |
DLL |
Msmpi.dll |