cannam@167: cannam@167: cannam@167: cannam@167: cannam@167: cannam@167: FFTW 3.3.8: Avoiding MPI Deadlocks 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: Distributed-memory FFTW with MPI   [Contents][Index]

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

6.9 Avoiding MPI Deadlocks

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

An MPI program can deadlock if one process is waiting for a cannam@167: message from another process that never gets sent. To avoid deadlocks cannam@167: when using FFTW’s MPI routines, it is important to know which cannam@167: functions are collective: that is, which functions must cannam@167: always be called in the same order from every cannam@167: process in a given communicator. (For example, MPI_Barrier is cannam@167: the canonical example of a collective function in the MPI standard.) cannam@167: cannam@167: cannam@167:

cannam@167: cannam@167:

The functions in FFTW that are always collective are: every cannam@167: function beginning with ‘fftw_mpi_plan’, as well as cannam@167: fftw_mpi_broadcast_wisdom and fftw_mpi_gather_wisdom. cannam@167: Also, the following functions from the ordinary FFTW interface are cannam@167: collective when they are applied to a plan created by an cannam@167: ‘fftw_mpi_plan’ function: fftw_execute, cannam@167: fftw_destroy_plan, and fftw_flops. cannam@167: cannam@167: cannam@167: cannam@167:

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