* change all the opal_output_verbose calls in the critical path to
OPAL_OUTPUT_VERBOSE so that they are pre-processed out if debugging
is not enabled
* remove stub code
This commit was SVN r6564.
"run-time" api for the reference implementation.
* Make the non-modex utcp and redstorm compat code do the same things in
the same order
This commit was SVN r6556.
associated with the descriptor is ours again once the callback function
returns. Make it so - probably can optimize out some of the stuff I
did when I mistakenly thought the descriptor free() was called on the
passed descriptor
* Fix some dumb accounting errors with MD usage for unexpected receives
This commit was SVN r6555.
Fixed receive descriptor counts that limited mvapi and openib to 2 procs.
Begin porting error messages to use the BTL_ERROR macro.
This commit was SVN r6554.
1. Modify the registry to eliminate redundant data copying for startup messages.
2. Revise the subscription/trigger system to avoid redundant storage of triggers and subscriptions. This dramatically reduces the search time when a registry action occurs - to illustrate the point, there are now only a handful of triggers on the system for each job. Before, there were a handful of triggers for each PROCESS in the job, all of which had to be checked every time something happened on the registry. This is much, much faster now.
3. Update all subscriptions to the new format. There are now "named" subscriptions - this allows you to "name" a subscription that all the processes will be using. The first one to hit the registry actually defines the subscription. From then on, any subsequent "subscribes" to the same name just cause that process to "attach" to the existing subscription. This keeps the number of subscriptions being tracked by the registry to a minimum, while ensuring that each process still gets notified.
4. Do the same for triggers.
Also fixed a duplicate subscription problem that was causing people to receive data equal to the number of processes times the data they should have received from a trigger/subscription. Sorry about that... :-( ...but it's all better now!
Uncovered a situation where the modex data seems to be getting entered on the registry a second time - the latter time coming after the compound command has been "fired", thereby causing all the subscriptions to fire. Asked Tim and Jeff to look into this.
Second phase of the changes will involve modifying the xcast system so that the same message gets sent to all processes. This will further reduce the message traffic, and - once we have a true "broadcast" version of xcast - really speed things up and improve scalability.
This commit was SVN r6542.
- we modex send and receive a structure containing the nid id and the endpoint id. On the
remote node we can recompose the endpoint_addr via mx_connect.
- accept several retry to mx_connect (up to 5 seconds ... soon to be a MCA param).
- correctly construct/destruct the internal objects.
- some others minor changes.
This commit was SVN r6535.
multiple components to share a single mpool module (e.g., the
ptl/btl and coll sm components).
- Re-tool the ptl, btl, and coll sm components to first look for the
target mpool module, and if they don't find it, to create it.
- coll sm component now correctly identifies when it is supposed to
run or not (i.e., if all the processes in the communicator are on
the same host). Now we just need to fill in some algorithms. :-)
This commit was SVN r6530.
corrected free and realloc in mpool. Added alloc_base to
mca_mpool_base_registration_t to be used as the actual alloc'd base address,
which may be different from the reported base address due to page allignment.
This commit was SVN r6524.
IBM tests, but see same segfaults / assets in sm btl.
* Add prepare_src implementation so that we can send multiple fragments of
large messages
* Add queuing of sends if either there are too many outstanding sends
(we have to limit this so that we don't have more sends pending than
we could get acks for) or if we get an ack with a 0 byte mlength,
which means the remote side dropped the message on us.
Still need to valgrind to make sure I'm not leaking resources
This commit was SVN r6508.
- Change ompi_proc_world() to only return the procs in this job (as
opposed to all of them)
- Add a subscription that fires during MPI_INIT (stg1) for figuring
out which procs are on my local node. Need to figure out what to do
in the esoteric cases -- but the obvious one (Red Storm), where
subscriptions are never fired, is ok, because by definition, no
other procs will be on my node, so their default value (not on my
node) is ok.
--> Need to have RHC check this code; it seems to work, but I think
I'm getting too much data back from the subscription.
- End result is that any proc that is on my node will have its
OMPI_PROC_FLAG_LOCAL bit set on its proc->proc_flags field.
- Added/corrected a few comments in proc.h.
This commit was SVN r6507.