MPI and non-ORTE applications for RSH on one node with or without
threads. I think we're approaching convergence with the tim branch
This commit was SVN r4895.
* mpi_show_mca_params
If set to true, this turns on the dumping of all MCA parameters when MPI_INIT is called.
Only the 'rank 0' processes will print the parameters.
* mpi_show_mca_params_file
(This value is only used if the first argument is set to true) If this value is non-NULL
it specifies the file to put the dump into. This file can then be used as input to mpirun
for debugging purposes. If this value is not set (and mpi_show_mca_params is set) then
the parameters are dumped to stdout.
I also changed the following parameters to internal=true:
gpr_base_replica
ns_base_replica
pcmclient_env_cellid
This commit was SVN r4475.
- mca_base_param_set_int() -- set the value of an MCA int param from
the API
- mca_base_param_set_string() -- set the value of an MCA string param
from the API
- mca_base_param_unsed() -- unset a previously set MCA param (string
or int)
- mca_base_param_dump() -- obtain a listing of all currently
registered MCA params
- mca_base_param_dump_release() -- release the list of all registered
MCA params that was obtained from mca_base_param_dump()
See Doxygen docs in src/mca/base/mca_base_param.h for details of these
functions.
This commit was SVN r4415.
parameters. These are intended to be used by the system itself for
passing information around, and are not generally intended for the
user to see or modify. Hence, we flag them as "internal" which causes
them not to show up in the ompi_info output (by default). This
"security through obscurity" is good enough -- it's really only
intended to keep casual observers away. The MCA parameters are still
there and are still settable (if a developer wants to set them).
To mark an MCA parameter as internal, simply call
mca_param_set_internal() with its index. I debated about adding a
flag to mca_param_register_[int|string](), but then would have
involved changing a *lot* of code throughout the base -- and internal
MCA parameters is certainly not the common case.
Note that you can provide the new ompi_info flag --internal in
conjunction with the --param flag to force it to also show all the
internal MCA params.
This commit was SVN r4373.
resolution is now (effectively):
- read from MPI keyval (if associated)
- read from command line
- read from environment
- read from file
More capabilities will be added shortly for developers to
programatically set MCA parameter values
- Create [empty but commented] system-wide MCA param file that gets
installed at $sysconf/openmpi-mca-params.conf (i.e.,
$prefix/etc/openmpi-mca-params.conf)
- The following files are opened and read (in order):
1. $sysconf/openmpi-mca-params.conf
2. $HOME/.openmpi/mca-params.conf
Specifically, the values in 2) will override the values in 1) (so
users can override system-wide defaults.
- Update MCA string params to allow for "~/" in the middle to be
expanded to the user's home directory.
- Added to default value of MCA parameter component_path to be:
$pkglibdir:$HOME/.openmpi/components
$pkglibdir is typically $prefix/lib/openmpi. So now both of these
directories will be searched for components at run time (in all Open
MPI executables, including ompi_info). Note that this is an MCA
parameter, so it, too, can be changed at run-time.
- Updated all docs to match this behavior -- some is \internal, so it
doesn't show unless you tell doxygen to generate internal docs
(which is not the default)
- update ompi_info to handle new behavior; ompi_info --param now shows
the *current* default value (i.e., it will look in the environment
and/or files to find out what the default values are -- so if you
change a value in $HOME/.openmpi/mca-params.conf, it should be
reflected in "ompi_info --param all all")
- updated bunches of doxygen docs to match
- this diff is slightly artifically large -- some of the changes are
converstions to 4 space tabs (I re-indented my own code that
previously used 2 space tabs)
This commit was SVN r2408.
- Various fixes / cleanups as a result of the code review
George makes a good point that we could consolidate a lot of the
malloc's / strdup's in this code for platforms where we do not have
a lot of memory (i.e., add up all the memory required and make one
big malloc vs. lots of little mallocs). This is something for
post-first-release.
- Convert another data structure to the OBJ_* interface.
- Split the internal prototypes and struct definitions into their own
header file that won't be included anywhere else in Open MPI (except
ompi_info).
This commit was SVN r1692.
real commit of the collectives. MPI_SCAN and MPI_EXSCAN are still not
implemented, but lots of other things are in the critical path and
holding up other people, so it's ok to commit without them:
- better checks for sizes in configure, and add defaults for fortran
sizes if we don't have a fortran compiler
- fix some logic that was accidentally broken for size checks for the
file type offset_t
- add some C equivalent types for fortran's complex and double complex
(for use in internal reduction/op functions)
- additionals and slight reorganization of ompi_mpi_init()
ompi_mpi_finalize()
- fully implement all top-level MPI collective calls, including all
param checking for both intra- and inter-communicators (woof)
- change the communicator_t type for stuff that we need in coll, and
update all references throughout the code base to match
- all kinds of updates to the coll framework base
- next cut of the basic coll module -- has all intracommunicator
collectives implemented except scan and exscan (see note above).
All intercommunicator functions return ERR_NOT_IMPLEMENTED.
- MPI_Op is a fixed implementation -- not component-ized yet. So
there are generic C loops for all implementations.
This commit was SVN r1491.