cannam@167: cannam@167: cannam@167: cannam@167: cannam@167: cannam@167: FFTW 3.3.8: MPI Initialization cannam@167: cannam@167: cannam@167: cannam@167: cannam@167: cannam@167: cannam@167: cannam@167: cannam@167: cannam@167: cannam@167: cannam@167: cannam@167: cannam@167: cannam@167: cannam@167: cannam@167: cannam@167: cannam@167: cannam@167: cannam@167:
cannam@167:

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

cannam@167:
cannam@167:
cannam@167: cannam@167:

6.12.2 MPI Initialization

cannam@167: cannam@167:

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

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

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

cannam@167: cannam@167:

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

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

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

cannam@167: cannam@167: cannam@167: cannam@167: cannam@167: