MPI4PY FFT—使用MPI for Python的并行快速傅立叶变换(FFT)
mpi4py-fft的Python项目详细描述
mpi4py fft
MPI4PY FFT是一个用于计算快速傅立叶变换(FFT)的Python包。 大型阵列是分布式的,通信由 python的mpi(mpi4py)。要分发大型阵列,我们使用 new and completely generic algorithm 它允许分布多维数组的任何索引集。我们 只能分布一个索引(一个板分解),两个索引集(铅笔 分解)或更高维数组。
mpi4py fft带有自己的python接口 FFTW库。此接口可以使用 很像pyfftw,甚至 实到实变换,如离散余弦或正弦变换。
更多文档可在readthedocs找到。
安装
mpi4py fft包可以使用以下命令安装:
pip install mpi4py-fft
或者,要从BitBucket获取最新版本:
pip install git+https://bitbucket.org/mpi4py/mpi4py-fft@master
使用Coda Forge通道中的Conda进行安装:
conda install -c conda-forge mpi4py-fft
或者使用conda build从主源目录构建它:
conda build -c conda-forge conf/ conda create --name mpi4py_fft mpi4py_fft --use-local
它将从conda forge通道中拉入所需的依赖项。
注意,mpi4py fft依赖于python包
- mpi4py
- numpy
- cython
以及串行C库
特别注意mpi4py要求 使用编译器包装器mpicc在搜索路径上安装mpi。 fftw头和库也必须在搜索路径上可用,并且 我们将为fftw库找到的任何精度构建包装器。
以上所有依赖项都可用,并将通过 如果康达用于安装,康达锻造通道。不过,皮普 对MPI或FFTW没有帮助。
对于IO,您需要安装h5py或 netCDF4支持 MPI。第一个可以从Coda Forge频道通过:
conda install -c conda-forge h5py=*=mpi_mpich_*
另一方面,netcdf4在conda forge上没有mpi 频道。不过,osx和 来自spectralDNS通道的Linux 在水蟒云上:
conda install -c spectralDNS netcdf4-parallel