cannam@127: cannam@127: cannam@127: cannam@127: cannam@127: cannam@127: FFTW 3.3.5: MPI Initialization cannam@127: cannam@127: cannam@127: cannam@127: cannam@127: cannam@127: cannam@127: cannam@127: cannam@127: cannam@127: cannam@127: cannam@127: cannam@127: cannam@127: cannam@127: cannam@127: cannam@127: cannam@127: cannam@127: cannam@127: cannam@127:
cannam@127:

cannam@127: Next: , Previous: , Up: FFTW MPI Reference   [Contents][Index]

cannam@127:
cannam@127:
cannam@127: cannam@127:

6.12.2 MPI Initialization

cannam@127: cannam@127:

Before calling any other FFTW MPI (‘fftw_mpi_’) function, and cannam@127: before importing any wisdom for MPI problems, you must call: cannam@127:

cannam@127: cannam@127:
cannam@127:
void fftw_mpi_init(void);
cannam@127: 
cannam@127: cannam@127: cannam@127:

If FFTW threads support is used, however, fftw_mpi_init should cannam@127: be called after fftw_init_threads (see Combining MPI and Threads). Calling fftw_mpi_init additional times (before cannam@127: fftw_mpi_cleanup) has no effect. cannam@127:

cannam@127: cannam@127:

If you want to deallocate all persistent data and reset FFTW to the cannam@127: pristine state it was in when you started your program, you can call: cannam@127:

cannam@127: cannam@127:
cannam@127:
void fftw_mpi_cleanup(void);
cannam@127: 
cannam@127: cannam@127: cannam@127:

(This calls fftw_cleanup, so you need not call the serial cannam@127: cleanup routine too, although it is safe to do so.) After calling cannam@127: fftw_mpi_cleanup, all existing plans become undefined, and you cannam@127: should not attempt to execute or destroy them. You must call cannam@127: fftw_mpi_init again after fftw_mpi_cleanup if you want cannam@127: to resume using the MPI FFTW routines. cannam@127:

cannam@127: cannam@127: cannam@127: cannam@127: cannam@127: