精度损失:使用1D FFTW和MPI调用的并行2D FFT

时间:2014-04-03 13:14:52

标签: mpi fftw

我正在尝试使用FFTW中已经实现的调用和我自己的2D FFT通过1D FFTw调用和mpi通信进行2D FFT的结果匹配。 所以,恢复,我遵循了理论:

1 - FFT in y dimension
2 - transpose the matrix
3 - MPI_Alltoall communication
4-  FFT in x dimension
5-  transpose back
6 - MPI_Alltoall communication

我尝试使用少量处理器(8-12),似乎工作正常。在2D FFTW调用和我自己的结果之间使用RMS进行了正确性。然而,随着我增加核心的数量和矩阵的大小,似乎我失去了精度,即。 RMS失败,因为错误大于预期(我将错误设置为1.0e-10):

  • 给定512x512的矩阵并考虑容差为1.0e-6的RMS: “错误:位置1 0预计成为10936907150.600960并得到10936907150.600958

  • 给定2048x2048的矩阵并考虑公差为1.0e-6的RMS: “错误:位置1 0预期真实部分-4294967296.000107并获得-4294967295.999999

如果我使用的是双重类型,为什么我会失去精确度?

0 个答案:

没有答案