match where ompi_event_init() lived
* initialize and shutdown the code to allow child process wait callbacks
* add comment about few() ussage in rte-enabled jobs (short answer:
don't).
This commit was SVN r2864.
Fixed ompid so it reissues the non-blocking receive - should now be close to ready for primetime. Fixed some logic in the svc framework that wasn't checking properly for action flags.
This commit was SVN r2660.
After spending hours tracking this down, I finally did manage to isolate it to the dirname function. I have installed a "fix" for the problem (using an intermediate temporary copy of the string being passed to the function) that solves the problem without messing us up on the Mac.
Hopefully, we won't find too many more such "cute" errors!
This commit was SVN r2643.
IMPORTANT NOTE: when sendout ompi_output() strings to files, note that
the file goes into the session directory. If the session directory
does not exist yet when you call ompi_output() and you are sending the
string to a file, THE STRING WILL BE DROPPED (in terms of the file --
it will still be sent to all other locations that were specified).
This should really only be a factor for a fairly small portion of
things during initialization of a process -- basically, until the
session directory exists, nothing will be written to a file.
ompi_output() will automatically take care of creating the file and
writing to it once the session directory has been created. So it is
valid to:
id = ompi_output(...something with file set...)
ompi_output(id, "blah!");
/* ... process session directory is created ... */
ompi_output(id, "wazzlebort!");
In this case, the output file will be:
-----
[WARNING: 1 lines lost because the Open MPI process session directory did
not exist when ompi_output() was invoked]
wazzlebort!
-----
This commit was SVN r2637.
Also removed the mpirun3 directory since we are basically dragging mpirun2 along with us - no need to create a new version after all.
Made a few changes to the universe info structure, eliminating the "webserver" and "socket" fields since we will do those contacts through the oob channel. Also changed the "silent_mode" field to "console" since silent mode is the default - the flag needs to tell you to turn the console on, not off.
Parse environ function now gets the ns and gpr replica contact info and loads it in the proper places to hand it off to the respective components, thus allowing me to check connection to them as part of determining if the named universe already exists. Changed the local_universe_exists function accordingly and gave it a new name (since the replicas may not be local). This name will shortly be changed to "ompi_rte_join_universe" as I complete the logic for doing that function.
Please let me know if you see any problems. I successfully ran some trivial multi-process functions in both mpirun2 and singleton modes, and ran the seed daemon as well, so I think it should all be okay.
This commit was SVN r2611.
For those of you looking into the guts of these functions, the most visible changes are:
- raising the assignment of the process name to a higher level, taking it out of the "hole" it had fallen into. We've been having problems with multiple functions assigning the process name. This is understandable - lots of workarounds were implemented in the early development stages. However, it was becoming hard to determine WHEN the name was being defined - it was being hidden under too many layers of function calls. Hence, it is now assigned in the three primary programs in a very visible fashion. Hopefully, we can now chase down all the other places and get rid of them.
- similarly, I raised the visibility of when the session directory gets constructed to ensure it doesn't get done at the wrong time and/or multiple times.
- created a new function that parses all the non-mca level environmental variables and assigns the info into the corresponding structures. I have also included notes in this function and in the various ompi_rte_init_stage functions about proper ordering.
- modified the rte cmd line parsers to store the options they find into the environment so they can be passed along later
That about does it.
This commit was SVN r2589.
doesn't do what it was designed for, and therefore wasn't useful, so
per discussion with Ralph last night, we decided to scrap it.
This commit was SVN r2539.
This also includes a checkpoint update to openmpi.c and ompid.c. I have re-enabled the ompid compile.
This latter raises an important point. The trunk compiles the programs like ompid just fine under Linux. It also does just fine for OSX under the dynamic libraries. However, we are seeing errors when compiling under OSX for the static case - the linker seems to have trouble resolving some variable names, even though linker diagnostics show the variables as being defined. Thus, a warning to Mac users that you may have to locally turn things off if you are trying to do static compiles. We ask, however, that you don't commit those changes that turn things off for everyone else - instead, let's try to figure out why the static compile is having a problem, and let everyone else continue to work.
Thanks
Ralph
This commit was SVN r2534.
- see src/util/show_help.h for details (doxygen); main function call
is ompi_show_help()
- text message files are expected to be located in $pkgdatadir
(usually $prefix/share/openmpi). Anyone can install a text file in
$pkgdatadir with their message(s) in it and then have them displayed
via ompi_show_help(). "pkgdata_DATA" is the keyword to use in
Makefile.am's, for example (from src/mca/base/Makefile.am):
pkgdata_DATA = help-mca-base.txt
- added a few examples in the code base using ompi_show_help(), but
not too many -- can convert more "show_help" comments in the code
over time; no huge rush. :-)
- no i18n-like support yet; waiting for advice and consensus from
other developers
This commit was SVN r2519.
BTW, in case anyone is trying to use threads, be aware that much of the RTE is NOT thread-safe at this time. We'll work on that soon.
:-)
This commit was SVN r2379.
- Make the code conform better to the coding guidelines (I think some
of this was written long before the guidelines were established...?)
This commit was SVN r2357.
strip down cmd_line.h; remove necessity of including
include/constants.h and util/argv.h.
- This means that a bunch of other files in the source tree that
depended on those files having already been included needed to be
updated to include the relevant file(s)
- In fixing these (^^), added both /* $HEADER$ */ and #include
"ompi_config.h" in a few files that were missing them.
- change from ompi_cmd_line_create() / ompi_cmd_line_free() to
OBJ_NEW() / OBJ_RELEASE()
- update mpirun2.cc to allow "-np"
- fix minor problem in mpirun2.cc where two command line params were
accepting "-h"
- slightly revamped cmd_line.c to use the OBJ_NEW/OBJ_RELEASE
interface. Added new function ompi_cmd_line_make_opt3() that allows
"single dash" parameters.
- Greatly expanded the ompi_cmd_line_t doxygen docs.
- The diff for ompi_cmd_line_t is artificially large because I also
took the opprotunity to reformat to 4 space tabs. Sorry. :-\
This commit was SVN r2308.
- modified rte_init to utilize name server, interface to session directory system
- added fields to system_info and proc_info
- created a utility for converting process into daemon
- modified openmpi to interface to various functions, spawn universe, record contact info, etc. Program almost complete.
- began building ompid daemon
This commit was SVN r2270.
- unpack string allocates memory for user removing need to know/set max string lengths
- fixed missing 'break' in case statement thanks to unit test yet again!
- updated unit test ompi_pack (test8)
- will remove old OMPI_STRING type and support shortly after checking for usage
This commit was SVN r2219.