Hi, Thanks for the quick response. But it looks like I am missing something because neither -mca nor --mca is being recognized by my mpirun command.
% mpirun --mca coll_sync_priority 100 --mca coll_sync_barrier_after 10 -q -np 2 a.out -------------------------------------------------------------------------- mpirun was unable to find the specified executable file, and therefore did not launch the job. This error was first reported for process rank 0; it may have occurred for other processes as well. NOTE: A common cause for this error is misspelling a mpirun command line parameter option (remember that mpirun interprets the first unrecognized command line token as the executable). Node: mia Executable: —-mca -------------------------------------------------------------------------- 4 total processes failed to start % which mpirun /usr/local/bin/mpirun % ls -l /usr/local/bin/mpirun lrwxrwxrwx. 1 root root 7 Jan 15 20:50 /usr/local/bin/mpirun -> orterun jw2002 -------------------------------------------- On Fri, 1/18/19, Nathan Hjelm via users <users@lists.open-mpi.org> wrote: Subject: [OMPI users] Fwd: Minimum time between MPI_Bcast or MPI_Reduce calls? To: "Open MPI Users" <users@lists.open-mpi.org> Cc: "Nathan Hjelm" <hje...@me.com> Date: Friday, January 18, 2019, 9:00 PM Since neither bcast nor reduce acts as a barrier it is possible to run out of resources if either of these calls (or both) are used in a tight loop. The sync coll component exists for this scenario. You can enable it by adding the following to mpirun (or setting these variables through the environment or a file): —mca coll_sync_priority 100 —mca coll_sync_barrier_after 10 This will effectively throttle the collective calls for you. You can also change the reduce to an allreduce. -Nathan > On Jan 18, 2019, at 6:31 PM, Jeff Wentworth via users <users@lists.open-mpi.org> wrote: > > Greetings everyone, > > I have a scientific code using Open MPI (v3.1.3) that seems to work fine when MPI_Bcast() and MPI_Reduce() calls are well spaced out in time. Yet if the time between these calls is short, eventually one of the nodes hangs at some random point, never returning from the broadcast or reduce call. Is there some minimum time between calls that needs to be obeyed in order for Open MPI to process these reliably? > > The reason this has come up is because I am trying to run in a multi-node environment some established acceptance tests in order to verify that the Open MPI configured version of the code yields the same baseline result as the original single node version of the code. These acceptance tests must pass in order for the code to be considered validated and deliverable to the customer. One of these acceptance tests that hangs does involve 90 broadcasts and 90 reduces in a short period of time (less than .01 cpu sec), as in: > > Broadcast #89 in > Broadcast #89 out 8 bytes > Calculate angle #89 > Reduce #89 in > Reduce #89 out 208 bytes > Write result #89 to file on service node > Broadcast #90 in > Broadcast #90 out 8 bytes > Calculate angle #89 > Reduce #90 in > Reduce #90 out 208 bytes > Write result #90 to file on service node > > If I slow down the above acceptance test, for example by running it under valgrind, then it runs to completion and yields the correct result. So it seems to suggest that something internal to Open MPI is getting swamped. I understand that these acceptance tests might be pushing the limit, given that they involve so many short calculations combined with frequent, yet tiny, transfers of data among nodes. > > Would it be worthwhile for me to enforce with some minimum wait time between the MPI calls, say 0.01 or 0.001 sec via nanosleep()? The only time it would matter would be when acceptance tests are run, as the situation doesn't arise when beefier runs are performed. > > Thanks. > > jw2002 > _______________________________________________ > users mailing list > users@lists.open-mpi.org > https://lists.open-mpi.org/mailman/listinfo/users _______________________________________________ users mailing list users@lists.open-mpi.org https://lists.open-mpi.org/mailman/listinfo/users _______________________________________________ users mailing list users@lists.open-mpi.org https://lists.open-mpi.org/mailman/listinfo/users