- creating the stack work now even for contiguous data (with gaps around) and
independing on the fragment size.
- add a TYPE argument to the PUSH_STACK macro. It's too obscure to explain it here :)
- in dt_add we avoid surrounding a datatype with loops if we can handle it by increasing the
count of the datatype (only if the datatype contain one type element and if the extent
match). But it's enough to speed up a lot the packing/unpacking of all composed predefined
datatypes (line MPI_COMPLEX and co.).
- in dt_module.c improve the handling of the flags for all composed predefined
datatypes. There is still something to do for the Fortran datatypes but it will be on
the next commit.
This commit was SVN r5879.
entire explanation ;-) )
Our Abaqus friends just pointed out another bug to me. We have the
"-x" option to orterun to export environment variables to
newly-started processes. However, it doesn't work if the environment
variable is already set in the target environment. For example:
mpirun -x LD_LIBRARY_PATH -np 2 a.out
The app context correctly contains LD_LIBRARY_PATH and its value, and
that app context correctly propagates out to the orted and is present
when we fork/exec a.out. However, if LD_LIBRARY_PATH is already set
in the newly-started process' environment, the fork pls won't override
it with the value from the app context.
It really only has to do with the ordering of arguments in
ompi_environ_merge() -- when merging to env arrays together, we
"prefer" one set to the other if there are duplicate names. I think
that if the user wants to override variables (even variables like
LD_LIBRARY_PATH), we should let them -- it's necessary for some
applications (like in Abaqus' case). If they screw it up, it's their
fault (e.g., setting some LD_LIBRARY_PATH that won't work).
That being said, we should *not* allow them to override specific MCA
parameters that are necessary for startup -- that's easy to accomplish
by setting up that stuff *after* we merge in the context app
environment.
Also note that I am *only* speaking about the fork pls here -- so this
only applies to started ORTE job processes, not the orted.
So an easy re-order to do the following:
env_copy = merge(environ and context->app)
ompi_setenv(...MCA params necessary for startup..., env_copy)
execve(..., env_copy)
does what we want.
This commit was SVN r5878.
split between OMPI and ORTE, added a lengthy comment to ompi_bitmap.h
explaining the reason why (and how it would be fine to re-merge them
-- if someone has the time) and references to it from all the other
relevant .h files.
This commit was SVN r5876.
Add the logic to properly assign new cellid's to hosts read in by the hostfile component. However, don't turn it on yet.
It seems that the code base has (unfortunately) assumed that cellid is always zero. When I turn on the cellid capability, the system "hangs" whenever the cellid is non-zero. I'll have to chase that problem down. For now, I've turned "off" the cellid assignment in the hostfile component.
This commit was SVN r5865.
1. Fixed the GPR search engine so that keys AND worked, and so that multiple objects with the same key didn't mess up the search.
2. Added an orte_bitmap function based on the existing ompi_bitmap one, but minus the fortran "pollution"
3. Added a new name service function called create_my_name to remove the duplicate name creation that was happening with the RML. Basically, the RML has to assign a name when a process makes first contact if the process doesn't already have a name. For processes that get a name passed into them, this was okay - the name was already assigned. For other processes (e.g., singletons), this was not okay - the first message to the seed daemon was to create a name, which caused the RML to assign one, and then the name service to assign another.
4. Change orted so it gets its name the way everyone else does - during orte_init.
This commit was SVN r5842.
Change a couple function definitions in datatype.h from extern
to OMPI_DECLSPEC since they are never defined anywhere else, and
need to be for the build.
Added the datatype.h file to ptl_self so it can see the inline
convertor_pack routines in that file when not in Debug mode.
This commit was SVN r5808.