kml_fft(f)_mpi_local_size_ext

描述了本地进程数据的大小和位置,以及计算所需分配的空间。

接口定义

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