Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Fortran 我可以用mpi执行本地fftw吗?_Fortran_Mpi_Fftw - Fatal编程技术网

Fortran 我可以用mpi执行本地fftw吗?

Fortran 我可以用mpi执行本地fftw吗?,fortran,mpi,fftw,Fortran,Mpi,Fftw,我正在使用fftw3库使用Fortran对数据执行多维(比如说二维,但也可以是三维)dft。(我有一个fortran接口,可以在fortran中正确使用fftw)。 这是关于用一些数值算法解电磁学方程。所以我的阵列代表了二维(或三维)电磁组件和空间中的电磁场。 我的数据存储在不同的MPI进程中。由于Fortran是列主程序,我的数据应该是列主程序(因此,我的区域分解只需要在最后一个维度中进行,我尝试更改) 假设我有一个2D数组(x,y),包含8个mpi任务。 fftw_mpi当前希望我的数组仅通

我正在使用fftw3库使用Fortran对数据执行多维(比如说二维,但也可以是三维)dft。(我有一个fortran接口,可以在fortran中正确使用fftw)。 这是关于用一些数值算法解电磁学方程。所以我的阵列代表了二维(或三维)电磁组件和空间中的电磁场。 我的数据存储在不同的MPI进程中。由于Fortran是列主程序,我的数据应该是列主程序(因此,我的区域分解只需要在最后一个维度中进行,我尝试更改)

假设我有一个2D数组(x,y),包含8个mpi任务。 fftw_mpi当前希望我的数组仅通过y方向分解)。 我希望能够执行x方向分割,以便对数据的上下部分(通过x方向)执行局部dft。
我考虑将4个mpi任务组合在一起,以执行两个fftw_mpi_计划,每半个子阵列一个

您可能对实现这种2D分解的GPLv3 DFT库感兴趣。否则,如果您只想在本地数据上执行本地DFT,而不想在进程之间进行通信,那么每个procress都可以用通常的方式调用FFTW。谢谢您的回答。但是我想对每个dft执行一个具有多个mpi进程的本地dft。您是否考虑过使用类似mpi_ALLTOALL的方法转置数据,然后对本地内存中的数据应用串行FFTW?Alltoall就是为这种情况设计的。