I'm running linux (slackware 12.2), openmpi 1.4.2 and fftw3 3.2.4.
As to the planner always running in parallel, I suspect it isn't. It's
trying to optimize the split up the fft computation between different
codelets and different numbers of threads (including none). It tries
something and measures the result. In fact, if it determines that
threads don't provide any advantage (irrespective of MPI) then it won't
use them, and indeed this might be the case here. Unfortunately, fftw
doesn't seem to return or provide a way to get the acutal number of
threads it plans to use.
On Wed, 2010-07-21 at 21:54 +0200, Jed Brown wrote:
> On Wed, 21 Jul 2010 15:20:24 -0400, David Ronis <David.Ronis_at_[hidden]> wrote:
> > Hi Jed,
> > Thanks for the reply and suggestion. I tried adding -mca
> > yield_when_idle 1 (and later mpi_yield_when_idle 1 which is what
> > ompi_info reports the variable as) but it seems to have had 0 effect.
> > My master goes into fftw planning routines for a minute or so (I see the
> > threads being created), but the overall usage of the slaves remains
> > close to 100% during this time. Just to be sure, I put the slaves into
> > a MPI_Barrier(MPI_COMM_WORLD) while they were waiting for the fftw
> > planner to finish. It also didn't help.
> They still spin (instead of using e.g. select()), but call sched_yield()
> so should only be actively spinning when nothing else is trying to run.
> Are you sure that the planner is always running in parallel? What OS
> and OMPI version are you using?
> users mailing list