1. Change the hardcoded "8" to "SIZE_OF_CHAR"
2. Change "cover_bit" to "resize"
Also removed an extra "if" check that was duplicative.
Again, tested on up to 100 processes.
This commit was SVN r5983.
For anyone interested, the problem stemmed from two things:
1. a bug in the ompi_bitmap utility (which I copied to orte_bitmap to avoid unintentionally disturbing something else) that causes the bitmap NOT to expand unless the caller asks for a bit that is more than one byte outside the current array size. The unit test didn't pick it up because it doesn't check that close to the boundary.
2. a "feature" in the ompi_bitmap utility that only expands the array if you try to SET a bit outside the current boundary, but NOT if you try to CLEAR a bit outside the array limit. This appears intentional as the unit test checks for this behavior, but I hadn't been expecting the asymmetry.
The orte_bitmap utility now appropriately expands in both circumstances. I also added a function to expand the array so it "covers" a bit location without setting or clearing it. The function allows you to ensure the array is big enough to handle the specified bit, but leave the bit alone if it already is there (the other functions would set/clear it if it was).
I've tested it with up to 100 processes without problem.
This commit was SVN r5980.
use ebx in inline assembly. For the beta, just don't inline the 64
bit atomic compare and swap on IA32 (cmpxchg8 requires use of ebx).
Any caller of the function will fall back to the non-inline version.
This commit was SVN r5957.
A new file has been added (new_pack.c). It is not yet used but inside I try to create
a more cleaner ppack/unpack function. There is still work in progress on this file.
New !!! In debug mode there is a gdb friendly function where you can set a breakpoint
(ompi_ddt_safeguard_pointer_debug_breakpoint) in order to see what's the status of
the convertor and the internal veraible when the ddt engine try to do a pack/unpack
outside the user buffer.
A new field in the convertor structure. This field get initialized in the convertor_init_for_*
functions and point to the datatype description that have to be used by the pack/unpack
functions. Until now each one of them have a test in the begining to detect which data
representation to be used (normal or optimized). Now this field point directly to the correct
one.
Change names for local variable to be easier to understand what they are supposed to
represent.
Add a new function ompi_convertor_set_start_position which can be used to set the
current position in the convertor depending on the datatype attached to the convertor.
An improved version of convertor_init_generic which work wiith convertors comming from a cache.
Only the necessary field get modified.
A lot more cleanups ...
This commit was SVN r5950.
Use the correct indentation.
Now we can force the progress function to grab as many events as possible
(in order to avoid starvation for the send queue).
Add more elems in the unexpected queue (internal buffers use to temporary
store the data for the unexpected messages).
Decrease the number of variables in some functions (cleanup).
Avoid using goto ...
This commit was SVN r5949.
Split the datatypes in 3 categories:
1. basic datatypes: count always one and the datatype is always
contiguous
2. complex datatypes composed on one basic type with a count. Most of
the time these datatypes will be contiguous.
3. complex datatypes composed by 2 basic types. Depending on the
architecture these types can be non contiguous.
Reorder the defines to match the previous categories. Add some
comment to describe the changes in the files.
Clean-up the flags:
- DT_FLAG_PREDEFINED is attached to all predefined datatypes.
- DT_FLAG_CONTIGUOUS is attached to all contiguous one. This flag is
detected at runtime depending on the architecture.
This commit was SVN r5946.
-bynode and -byslot orterun command line parameters now set a single
MCA param (ras_base_schedule_policy) which is looked up by the
following components to decide which RAS base API function to invoke:
ras base bjs
ras base host
rmaps round_robin
This commit was SVN r5941.
* turn off echoing on the pty (which was what r5925 was trying to
do).
With this patch, stdin forwarding to rank 0 looks good, with the exception
of the initialization delay until stage gate 1.
This commit was SVN r5930.
The following SVN revision numbers were found above:
r5925 --> open-mpi/ompi@e406a4b1aa
setup. Now uses fork() instead of ssh if the target nodename is the
same as the current nodename (which will happen if the user gave
"localhost" or just the hostname without the domain) or if the
target nodename is local according to ompi_ifislocal() (which will
happen if the user gave a FQDN)
This commit was SVN r5916.
orte_system_info.nodename so that cleanup and the like occur
correctly. Otherwise, the daemon on localhost and an MPI process
can have different ideas on what the local nodename is, and that
lead to all kinds of badness with both process killing and cleanup.
Also fixes the annoying ssh keys problem when sshing to localhost.
- modify the rsh pls to ssh to localhost if the target nodename is the
same as orte_system_info.nodename AND is not resolvable (ie, ssh to
would fail). Otherwise, ssh to nodename. This should work around
the issues Ralph was seeing with ssh failing on his laptop (since
the above change undid the previous fix to this problem).
- Small change to ompi_ifislocal() to squelch a warning message about
unresolvable hostnames when checking to see if a name is, in fact,
resolvable.
- Force ORTE process to have same nodename field as it's starting
daemon (assuming it was started using the fork pls), so that the
fork pls can properly kill the process, and cleanup its session
directory on abnormal exit.
This commit was SVN r5914.