cannam@167: cannam@167: cannam@167: cannam@167: cannam@167: cannam@167: FFTW 3.3.8: How Many Threads to Use? 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: Multi-threaded FFTW   [Contents][Index]

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

5.3 How Many Threads to Use?

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

There is a fair amount of overhead involved in synchronizing threads, cannam@167: so the optimal number of threads to use depends upon the size of the cannam@167: transform as well as on the number of processors you have. cannam@167:

cannam@167:

As a general rule, you don’t want to use more threads than you have cannam@167: processors. (Using more threads will work, but there will be extra cannam@167: overhead with no benefit.) In fact, if the problem size is too small, cannam@167: you may want to use fewer threads than you have processors. cannam@167:

cannam@167:

You will have to experiment with your system to see what level of cannam@167: parallelization is best for your problem size. Typically, the problem cannam@167: will have to involve at least a few thousand data points before threads cannam@167: become beneficial. If you plan with FFTW_PATIENT, it will cannam@167: automatically disable threads for sizes that don’t benefit from cannam@167: parallelization. cannam@167: cannam@167:

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