描述了本地进程数据的大小和位置,以及计算所需分配的空间。
C interface:
ptrdiff_t kml_fft_mpi_local_size_ext(int rnk, const ptrdiff_t *n, MPI_Comm comm, enum SCALFFT_DECOMPOSE_TYPE_E decomp_type, ptrdiff_t *low, ptrdiff_t *high);
ptrdiff_t kml_fftf_mpi_local_size_ext(int rnk, const ptrdiff_t *n, MPI_Comm comm, enum SCALFFT_DECOMPOSE_TYPE_E decomp_type, ptrdiff_t *low, ptrdiff_t *high);
函数返回一个ptrdiff_t类型的值,表示要分配的buffer的元素个数,成功则返回值大于等于0,失败返回-1。
参数名 |
数据类型 |
描述 |
输入/输出 |
---|---|---|---|
rnk |
int |
待处理数据维度数量 |
输入 |
n |
const ptrdiff_t * |
n是维度为rnk的数组,包含数据序列每一维度的大小,约束:n[i] ≥ 1, for i in 0 to rnk - 1 |
输入 |
comm |
MPI_Comm |
通信域 |
输入 |
decomp_type |
enum SCALFFT_DECOMPOSE_TYPE_E |
分解算法,SCALFFT_DECOMPOSE_TYPE_SLAB,SCALFFT_DECOMPOSE_TYPE_PENCIL,SCALFFT_DECOMPOSE_TYPE_BRICK |
输入 |
low |
ptrdiff_t * |
本地数据起点 |
输出 |
high |
ptrdiff_t * |
本地数据终点 |
输出 |
C: "kfft-mpi.h"
C interface:见kml_fft(f)_mpi_plan_create。