Luis, a MPI window creation is a collective operation, that involves the creation of a communicator that involves (several) non blocking allgather.
I recommend you first make sure you that creating a windows does not start a recursion. Cheers, Gilles On Fri, May 22, 2020 at 7:53 PM Luis Cebamanos via devel <devel@lists.open-mpi.org> wrote: > > Hello OpenMPI devs, > > I know this can be a bit vague question, but I am looking for some hint > that could help me to debug the problem I am facing here. > > I am trying to create a dynamic window inside a collective operation. > Inside the operation, the call to ompi_win_create_dynamic hangs with > processes waiting in ompi_request_wait_completion: > > rc = ompi_comm_nextcid_nb (newcomm, comm, bridgecomm, arg0, arg1, > send_first, mode, &req); > if (OMPI_SUCCESS != rc) { > return rc; > } > > ompi_request_wait_completion (req); > > There is nothing obvious there but I can see from my debugging that > processes end up in (opal_progress.c): > > #if OPAL_HAVE_SCHED_YIELD > if (opal_progress_yield_when_idle && events <= 0) { > /* If there is nothing to do - yield the processor - otherwise > * we could consume the processor for the entire time slice. If > * the processor is oversubscribed - this will result in a best-case > * latency equivalent to the time-slice. > */ > sched_yield(); > } > #endif /* defined(HAVE_SCHED_YIELD) */ > > I have been debugging it for a while now and I am starting to feel like > I am driving in circles. Is there anything I should look at in this > particular situation? What could possible be the caused? > > Regards, > Luis > > > The University of Edinburgh is a charitable body, registered in Scotland, > with registration number SC005336.