1. Changed the RMGR and PLS APIs to add "signal_job" and "signal_proc" entry points. Only the "signal_job" entries are implemented - none of the components have implementations for "signal_proc" at this time. Thus, you can signal all of the procs in a job, but cannot currently signal only one specific proc.
2. Implemented those new API functions in all components except xgrid (Brian will do so very soon). Only the rsh/ssh and fork modules have been tested, however, and only under OS-X.
3. Added signal traps and callback functions for SIGUSR1/2 to orterun/mpirun that catch those signals and call the appropriate commands to propagate them out to all processes in the job.
4. Added a new test directory under the orte branch to (eventually) hold unit and system level tests for just the run-time. Since our test branch of the repository is under restricted access, people working on the RTE were continually developing their own system-level tests - thus making it hard to help diagnose problems. I have moved the more commonly-used functions here, and added one specifically for testing the SIGUSR1/2 functionality.
I will be contacting people directly to seek help with testing the changes on more environments. Other than compile issues, you should see absolutely no change in behavior on any of your systems - this additional functionality is transparent to anyone who does not issue a SIGUSR1/2 to mpirun.
Ralph
This commit was SVN r10258.
of $libdir and $bindir (i.e., was correctly doing local launches, but
was still using $prefix/lib and $prefix/bin for remote launches).
[Re-]Fixes OFED bug 59.
This commit was SVN r10207.
The following SVN revision numbers were found above:
r9930 --> open-mpi/ompi@1d6902296c
We were stuck in an infinite loop inside the rmaps round_robin
component when the user specified a host, then over subscribed it.
Instead of retuning an error, we looped forever.
For example:
$ cat hostfile
A slots=2 max-slots=2
B slots=2 max-slots=2
$ mpirun -np 3 --hostfile hostfile --host B
<hang>
The loop would not terminate because both host A and B are in the
'nodes' structure as they are both allocated to the job. However,
after allocating 2 slots to host B, we remove it from the node list
leaving us with a 'nodes' structure with just A in it. Since we can't
use host A, we keep looping here until we find a node that we can use.
This patch checks to make sure that if we get into this situation where
rmaps is looping over the list a second time without finding a node
during the first pass then we know that there are no nodes left to
use, so we have a resource allocation error, and should return to the user.
This patch should be moved to all of the release branches
This commit was SVN r10131.
pipeline. See lengthy comment in iof_base_endpoint.c for the details, but
the short version is that we shouldn't set O_NONBLOCK on standard I/O
file descriptors, so we no longer do.
Closes ticket:9
This commit was SVN r9966.
option as discussed on the devel-core mailing list. The Big
Difference is that instead of hard-coding the strings "/lib" and
"/bin" in to append to the prefix, we append the basename of the local
libdir and bindir. Hence, if your libdir is $prefix/lib64, we'll
append /lib64 to construct the remote node's LD_LIBRARY_PATH (etc.).
Also appended the orterun.1 man page to include a description of
--prefix, how it is constructed, what it handles / what it does not,
etc.
This commit was SVN r9930.
exit out, rather than trying to have the pls exit. Since singletons
weren't started with a pls, there's no way the pls is going to be
able to kill the process. So just exit and save the error message.
This commit was SVN r9859.
in San Jose. Allow the configure option --disable-binaries to build OMPI,
but not build or install the support binaries (so basically, just build
the libraries).
This commit was SVN r9777.
as the smaller machine's SIZE_MAX won't be SIZE_MAX on the bigger machine, which
can lead to failures along the way -- in this case, with GPR triggers being
improperly fired.
This commit was SVN r9776.
is interpreted as a shutdown of the io channel on the next iteration.
Definitively not the good approach. The correct condition is
bigger than 0.
This commit was SVN r9770.
copy of the receive buffer based on the iovec struct that may have been updated
during partial reads to reflect the current offset. Need to make the copy using
the base address of the buffer.
Thanks to Sven Stork for finding this.
This should be backported to 1.0.X and 1.1.X branches.
This commit was SVN r9749.
automagically bring in the libraries through the top-level library (so
liborte automatically brings in libopal, etc.). Otherwise, we get some
warnings on Solaris
This should go to the v1.1 branch
This commit was SVN r9666.
- The constant 1 is a signed int by default. Explicitly say that
it is an unsigned value so we can't overflow
- Fix unreachable statement warnings in dss_arith by breaking out
of switch statements instead of returning - this should have
no impact on performance, since it's a non-conditional jump
- A couple of the GPR files had carriage returns and were in
DOS mode - put them in unix mode...
These should all probably go to the v1.1 branch...
This commit was SVN r9664.
Copy the Doxyfile to orte so people can generate just that documentation. Adjust the properties on that directory so it ignores the resulting doxygen output tree.
This should go over to the release branch(es)
This commit was SVN r9625.
thread, which will do progress independently of MPI. So in this case we
have to call opal_event_loop instead of opal_progress.
This commit was SVN r9551.
event library (since the event library has its own thread). So when
we are using progress threads, we really want to call opal_event_loop()
and not opal_progres().
This commit was SVN r9549.
* Add a platform spec for using the portals reference implementation's
RTE instead of our own to make local testing easier.
* Add a cnos rmgr component so that 1) we don't have to build nearly
as many components (no need for ras,rds,pls,etc.) and 2) calls
to MPI_ABORT() won't print error messages about not being able to
contact the daemon. Still need to fill in some of the terminate
stuff with calls from cnos, but will come in time.
* Make gpr_null use the base code for creating value and keyval
structures so that we don't segfault in ompi_mpi_init().
This commit was SVN r9510.
to the defines. As our internal types (job_id and co.) are unsigned that generate
several errors (integer overflow in expression and comparison between signed and
unsigned). Casting the defines to the correct type solve these problems.
This commit was SVN r9481.