1
1
Граф коммитов

1498 Коммитов

Автор SHA1 Сообщение Дата
George Bosilca
bfbd0e61f6 Minimize the number of lines of code :)
This commit was SVN r12550.
2006-11-10 20:56:08 +00:00
George Bosilca
a38cd366d7 Construct the convertor. It's not really required, but it's not in the
critical path anyway. At least in debug mode we get nice informations about
where the convertor was created.

This commit was SVN r12549.
2006-11-10 20:55:06 +00:00
George Bosilca
858ab24e8e The req_mtl field has to be the last in the struct or bad things happen.
This commit was SVN r12548.
2006-11-10 20:53:41 +00:00
George Bosilca
af68171253 Use the macro to compute the number of elements in a segment in both
bcast and reduce and update the default values for the variables
as required by the comment in the coll_tuned.h file.

This commit was SVN r12546.
2006-11-10 20:04:08 +00:00
George Bosilca
476b922074 Updates & upgrades:
- consistent arguments checking (not allowing to select an algorithm which
     is not available)
 - consistent way of computing the segcount (number of datatypes by segment).
 - small cleanups.
 - more informative debugging messages.

This commit was SVN r12545.
2006-11-10 19:54:09 +00:00
Gleb Natapov
7e03b83d23 Reset opcode field to SEND. It is checked later in pending progress function.
This commit was SVN r12531.
2006-11-10 06:17:00 +00:00
George Bosilca
77ef979457 New architecture for broadcast. A generic broadcast working on a tree
description. Most of the bcast algorithms can be completed using this
generic function once we create the tree structure. Add all kind of
trees.

There are 2 versions of the generic bcast function. One using overlapping
between receives (for intermediary nodes) and then blocking sends to all
childs and another where all sends are non blocking. I still have to
figure out which one give the smallest overhead.

This commit was SVN r12530.
2006-11-10 05:53:50 +00:00
George Bosilca
17405cd9c6 A temporary fix, until we figure out a better approach. The problem
is that if one add "pml=" to the configuration file, really bad things
happen. All PMLs will get initialize, and each of them will initialize
all BTLs. This patch force the mca_pml_base_pml to get initialized in
all cases before we go out of the mca_pml_base_open function.

This commit was SVN r12527.
2006-11-10 04:53:00 +00:00
George Bosilca
1d80f685b5 Remove one compiler warning.
This commit was SVN r12520.
2006-11-09 20:08:43 +00:00
George Bosilca
73eec4bfef Show the MCA parameter coll_base_verbose only if Open MPI is compiled in
debug mode. Otherwise there is no debug anyway ...

This commit was SVN r12516.
2006-11-09 19:02:32 +00:00
George Bosilca
a82ce427e4 Update the number of reduce algorithms available.
This commit was SVN r12503.
2006-11-08 22:20:34 +00:00
George Bosilca
eab1776e9a Explicit casts for our friendly Windows environment...
This commit was SVN r12496.
2006-11-08 17:02:46 +00:00
George Bosilca
0914892044 Small cleanups, some explicit casts.
This commit was SVN r12494.
2006-11-08 16:54:03 +00:00
George Bosilca
74d3946342 Remove the call to set_args. This is only required for the MPI level,
because there we have to be able to return to the user the description
of the data.

This commit was SVN r12493.
2006-11-08 16:52:48 +00:00
George Bosilca
915d748d72 Initialize the convertor on _START not on _INIT. This allow us to
set it up before the match when we know the peer, saving some
time on the critical path. If the receive is ANY_SOURCE then
we initialize the convertor on _MATCHED. Anyway, we will set it
up only once per receive.

This commit was SVN r12484.
2006-11-08 05:42:29 +00:00
George Bosilca
eb45a5e402 Move things around a little bit. Mainly fields from the send and receive
request in the base request. Rearrange the fields to keep the data
together. Remove some useless tests.

This commit was SVN r12482.
2006-11-08 04:58:23 +00:00
George Bosilca
63462331c9 Reduce the number of branches. Keep the fast path as short as possible.
Remove some useless error checking. Add OPAL_UNLIKELY directives.

This commit was SVN r12477.
2006-11-07 23:59:32 +00:00
George Bosilca
f3de2e1a82 Keep the fast path as short as possible.
This commit was SVN r12476.
2006-11-07 23:56:32 +00:00
Jeff Squyres
427c20af0d Use a new algorithm for allgatherv. The old algorithm essentially did
N gatherv's:

  for (i = 0 ... size)
    MPI_Gatherv(..., root = i, ...)

The new algorithm simply does (effectively):

  MPI_Gatherv(..., root = 0, ...)
  MPI_Bcast(..., root = 0, ...)

This commit was SVN r12469.
2006-11-07 18:07:55 +00:00
Galen Shipman
55db17b37c don't try to use a dead btl..
This commit was SVN r12456.
2006-11-06 23:25:24 +00:00
George Bosilca
108ea4dbe9 When the MX MTL complete a request, force a return from the progress function.
Decrease the latency by about 0.3 microseconds.

This commit was SVN r12454.
2006-11-06 23:13:07 +00:00
George Bosilca
3d0df2cf29 Allow the MX BTL to finish the small sends quicker. Once the mx_isend is posted if
the message size is less than 4K do a check for the message completion and if any
call the callback.

This commit was SVN r12453.
2006-11-06 23:12:01 +00:00
Galen Shipman
eef37430a7 failing already failed for ACK timeout..
This commit was SVN r12452.
2006-11-06 22:09:39 +00:00
Galen Shipman
813e7faea8 more fixes for failover.. and yet still more to come..
This commit was SVN r12450.
2006-11-06 21:27:17 +00:00
Gleb Natapov
b4fd2d7d50 Fix warnings from progress thread patch.
This commit was SVN r12434.
2006-11-06 12:34:56 +00:00
Gleb Natapov
82f7c0dd69 Fix regression from v1.1.
1) make the code do what comment says
2) if memory is prepinned don't send multiple PUT messages.

This commit was SVN r12433.
2006-11-06 12:00:17 +00:00
Galen Shipman
f7c554df65 Try to failover when we get an async error from the lower layer (BTL)..
This commit was SVN r12420.
2006-11-03 15:40:26 +00:00
George Bosilca
8529238d93 Add 2 more algorithms to the dynamic list.
This commit was SVN r12415.
2006-11-02 19:19:08 +00:00
George Bosilca
110d07b7d3 Small optimization or zero length messages.
This commit was SVN r12414.
2006-11-02 19:10:28 +00:00
Pavel Shamis
566667ac61 Adding progress thread support to OpenIB BTL.
Reviewed by Gleb.

This commit was SVN r12411.
2006-11-02 16:15:21 +00:00
George Bosilca
dbec514b0f Optimize the generation of the match_bits and the mask.
This commit was SVN r12396.
2006-11-01 23:19:20 +00:00
Gleb Natapov
4c784b6403 As Andrew Friedley pointed, my previous patch may cause deadlock if
mca_btl_openib_endpoint_connect_eager_rdma() is called recursively. He also
noticed that orte_pointer_array_add() can't fail because we allocate max number
of elements at init time. So just remove error handling and locking. No locking
 - no deadlocks.

This commit was SVN r12388.
2006-11-01 15:53:33 +00:00
Gleb Natapov
3bf31fe4a3 Correctly determine the first element on the list. opal_list_get_prev() never
returns NULL, it should be compared with opal_list_get_end() instead.

This commit was SVN r12387.
2006-11-01 13:44:47 +00:00
Gleb Natapov
b5714d698a Fix compilation with GM version smaller than 2.0. Fix compilation warnings.
This commit was SVN r12386.
2006-11-01 10:26:15 +00:00
Gleb Natapov
aac695a51f eager_rdma_buffers update is not atomic. A buffer is added to the array and if
something is going wrong down in the code it is removed from the array. So add
mutex to prevent concurrent access to the array from different threads.

This commit was SVN r12385.
2006-11-01 07:27:32 +00:00
Andrew Friedley
48c5117476 Fix some signedness warnings on threaded builds introduced by r12369
This commit was SVN r12376.

The following SVN revision numbers were found above:
  r12369 --> open-mpi/ompi@d7375ec102
2006-10-31 17:29:25 +00:00
Gleb Natapov
d7375ec102 Fix deadlock reported by Andrew Friedley:
What's happening is that we're holding openib_btl->eager_rdma_lock when
we call mca_btl_openib_endpoint_send_eager_rdma() on
btl_openib_endpoint.c:1227.  This in turn calls
mca_btl_openib_endpoint_send() on line 1179.  Then, if the endpoint
state isn't MCA_BTL_IB_CONNECTED or MCA_BTL_IB_FAILED, we call
opal_progress(), where we eventually try to lock
openib_btl->eager_rdma_lock at btl_openib_component.c:997.

The fix removes this lock altogether. Instead we atomically set local RDMA
pointer to prevent other threads to create rdma buffer for the same endpoint.
And we increment eager_rdma_buffers_count atomically thus polling thread doesn't
need lock around it.

This commit was SVN r12369.
2006-10-31 09:54:52 +00:00
Gleb Natapov
1b152dfe09 On 64 bit platform if high 32 bits of buf address is not zero they are trimmed
by wrong bitwise and. Fix it by expanding mask to 64 bits.

This commit was SVN r12368.
2006-10-31 07:33:35 +00:00
Gleb Natapov
7b39039cd6 Add comments to process_pending functions.
This commit was SVN r12346.
2006-10-29 09:12:24 +00:00
Gleb Natapov
8ef5b6a589 Change tabs to spaces to be consistent with the rest of the file.
This commit was SVN r12345.
2006-10-29 08:12:44 +00:00
George Bosilca
a9c6ae8f15 Minimize the number of branches, and orce the correct prediction for the
most usual one. Most of the time we expect the functions which allocate
requests to succeed.

This commit was SVN r12344.
2006-10-27 23:16:13 +00:00
George Bosilca
44f3dd81b4 Update the comment to reflect what's inside the code.
This commit was SVN r12343.
2006-10-27 23:09:37 +00:00
George Bosilca
3472d19d4d Do not modify the convertor if there is no data to be send across the network. The
req_bytes_packed field is initialized in the BASE_INIT macro, so it is set for
all requests at this stage.

This commit was SVN r12342.
2006-10-27 23:03:15 +00:00
Jeff Squyres
020efdf1f9 Refs trac:250
This commit essentially caches the invoking comm/win/file on the
ompi_request_t. This, paired with the req_type field, allows us to
retrieve the invoking MPI object and invoke the proper errhandler.

The patch is missing most updates for the MPI-2 one-sided stuff (i.e.,
the patch mainly fixes comms and files); I didn't really understand
that code and didn't want to hazard trying to figure it out when Brian
can probably do it much more quickly.

So #250 will still stay open, pending MPI-2 one-sided updates for this
stuff.

This commit was SVN r12339.

The following Trac tickets were found above:
  Ticket 250 --> https://svn.open-mpi.org/trac/ompi/ticket/250
2006-10-27 12:35:27 +00:00
Jeff Squyres
e02114dcf3 Fixes trac:529.
* Create a new request type: NOOP (described below)
 * For all MPI_*_INIT functions, OBJ_NEW an ompi_request_t and set its
   type to NOOP
 * Ensure that the NOOP requests are OBJ_RELEASE'd when they are done
 * MPI_START looks at the request type; if NOOP, just return success. If
   not, call the PML start() function
 * MPI_STARTALL always pass the entire array of requests back to the PML
   (see next point)
 * Make the PMLs only process PML requests (i.e., ignore/skip anything
   that isn't of type PML -- such as the NOOP requests)
 * Add a little more param error checking in STARTALL

This commit was SVN r12338.

The following Trac tickets were found above:
  Ticket 529 --> https://svn.open-mpi.org/trac/ompi/ticket/529
2006-10-27 12:32:36 +00:00
George Bosilca
882b429f64 ompi_mtl_datatype_pack is not a data-type function (really) so it still
need the free_after (which btw has a different meaning that the one removed
from the data-type engine few minutes ago).

This commit was SVN r12333.
2006-10-27 00:15:53 +00:00
George Bosilca
393657ee26 Initialize the sndbuf in all cases. Do not forget to initialize the
tree used in each of the broadcast functions.

This commit was SVN r12332.
2006-10-27 00:13:33 +00:00
George Bosilca
126a68dc9a Big datatype commit. Remove all unused features of the datatype engine. As the memory
allocation logic is completely done outside the data-type engine (in the PML) there is
no need for any special case inside the data-type engine. There is less arguments for
the ompi_convertor_pack and ompi_convertor_unpack as well (the last field free_after is
not required anymore as there is no memory allocated in the engine itself). This change
affect all components using datatypes. I test most of them, but it might happens that I
miss some ... If it's the case please let me know (don't shoot the pianist!!).

This commit was SVN r12331.
2006-10-26 23:11:26 +00:00
George Bosilca
a1a4f7c422 Reset the segment pointer once we release the self fragment.
This commit was SVN r12330.
2006-10-26 23:07:14 +00:00
George Bosilca
be8516e0d7 Anothers indentations.
This commit was SVN r12329.
2006-10-26 23:06:15 +00:00
George Bosilca
83dfd36c1f Indentations.
This commit was SVN r12328.
2006-10-26 23:05:41 +00:00
George Bosilca
91ab093e96 Cleanup. No extern required for the function prototypes.
This commit was SVN r12327.
2006-10-26 23:03:12 +00:00
George Bosilca
ba3c247f2a Big collective commit. I lightly test it, but I think it should be quite stable. Anyway,
the default decision functions (for broadcast, reduce and barrier) are based on a
high performance network (not TCP). It should give good performance (really good) for
any network having the following caracteristics: small latency (5 microseconds) and good
bandwidth (more than 1Gb/s).
+ Cleanup of the reduce algorithms, plus 2 new algorithms (binary and binomial). Now most
  of the reduce algorithms use a generic tree based function for completing the reduce.
+ Added macros for computing the trees (they are used for bcast and reduce right now).
+ Allow the usage of all 5 topologies.
+ Jelena's implementation of a binary tree that can be used for non commutative operations.
  Right now only the tree building function is there, it will get activated soon.
+ Some others minor cleanups.

This commit was SVN r12326.
2006-10-26 22:53:05 +00:00
Andrew Friedley
c752502dee Fix for a common race condition when running the Sandia mt_send_recv.cc test.
A segfault would occur in mca_pml_ob1_recv_request_progress() when trying to prepare the convertor for unpacking, because the request's req_proc field was NULL.

Turns out that we weren't setting the req_proc field in the MCA_PML_OB1_CHECK_SPECIFIC_AND_WILD_RECEIVES_FOR_MATCH macro.  Instead of just setting it there I removed the other place req_proc was being set correctly, and instead took care of all the cases at once in mca_pml_ob1_recv_frag_match().

This commit was SVN r12323.
2006-10-26 19:09:39 +00:00
Gleb Natapov
90be664b9f Some process_pending() functions get bml_btl on which resource was freed as a
parameter. For optimisation purpose only this BTL is used to send packet
through instead of trying to send packets through all BTLs. But actually the 
code was wrong. It simply used provided bml_btl and it may represent different
endpoint from packet's destination. The fixed code checks if packet's
destination is reachable through the BTL, finds appropriate bml_btl and only
then tries to send it through correct bml_btl.

This commit was SVN r12319.
2006-10-26 13:21:47 +00:00
Terry Dontje
7259d1b512 Adjust allocation size to be a quantity divisible by sizeof(size_t). This
is done to assure alignment so strictly aligned CPUs (like SPARC) do not
sigbus.  This also may benefit other platforms too.

This commit fixes trac:494.

This commit was SVN r12312.

The following Trac tickets were found above:
  Ticket 494 --> https://svn.open-mpi.org/trac/ompi/ticket/494
2006-10-25 18:22:38 +00:00
Sven Stork
f3f39e003e - Increment the pipeline depth before we trigger the send function. As
mentioned in the comment the completion/callback of the triggered 
  send operation can happen before the call returns. If this happens and
  if the pipeline depth is 0 before we triggered the send operation and 
  this is the last send operation of the request then the completion detection
  code will decrement the pipeline depth and check it for equality to 0.
  Because (0-1) != 0 the pml completion function for this request will 
  *not* be called.
  This part 2 of the fix for ticket #246.

This commit was SVN r12292.
2006-10-25 08:52:39 +00:00
Sven Stork
3563f15fde - Fix a bug in descriptor handling code. The self BTL was mixing the different
kinds of descriptors (e.g. put rdma descriptor in the eager free-list). 
  This part 1 of the fix for ticket #246.

This commit was SVN r12291.
2006-10-25 08:45:29 +00:00
George Bosilca
99631ccf66 Cleanups.
This commit was SVN r12272.
2006-10-23 22:29:17 +00:00
George Bosilca
d7d3f9e486 Tuned collectives works only for at least 2 processes. We have the self module
for the other cases.

This commit was SVN r12271.
2006-10-23 22:28:56 +00:00
George Bosilca
b848a5ad06 Remove all ompi_coll_chain_t references.
This commit was SVN r12269.
2006-10-23 21:47:50 +00:00
George Bosilca
39cd8d3d17 One to rule them all. We only need one topology information: a tree. How we
build it it's hat make the difference.

This commit was SVN r12268.
2006-10-23 21:46:30 +00:00
George Bosilca
9cf3040e5f Allocate enough memory for the reduce operation when MPI_IN_PLACE is specified.
This commit was SVN r12260.
2006-10-23 17:51:36 +00:00
George Bosilca
6b697ad3dd If the operation is not commutative then force the basic reducve algorithm. The others
cannot be used for non commutative operations ... yet ...

This commit was SVN r12241.
2006-10-20 22:11:44 +00:00
George Bosilca
a7b6078b73 No more segfault. Still some wrong data around ...
This commit was SVN r12238.
2006-10-20 20:17:34 +00:00
George Bosilca
02759cf515 Update the reduce chain collective.
This commit was SVN r12237.
2006-10-20 19:47:52 +00:00
George Bosilca
d7268557a8 Complete the SM BTL changes. Now all displacements are ptrdiff_t and there is
no warnings about any issue with signed/unsigned.

This commit was SVN r12234.
2006-10-20 19:28:12 +00:00
George Bosilca
c86214f420 Fix the SM BTL issues. The problem seems to come from the fact that
the maximum number of nodes on the SM file should be signed, as we use
the -1 to unlimit it.

This commit was SVN r12227.
2006-10-20 17:25:53 +00:00
George Bosilca
06563b5dec Last set of explicit conversions. We are now close to the zero warnings on
all platforms. The only exceptions (and I will not deal with them
anytime soon) are on Windows:
- the write functions which require the length to be an int when it's
  a size_t on all UNIX variants.
- all iovec manipulation functions where the iov_len is again an int
  when it's a size_t on most of the UNIXes.
As these only happens on Windows, so I think we're set for now :)

This commit was SVN r12215.
2006-10-20 03:57:44 +00:00
George Bosilca
527bb7a197 Remove a double ;
This commit was SVN r12213.
2006-10-20 03:28:51 +00:00
George Bosilca
caefd6d0ee Do not leak memory. Allocate the intermediary buffer only when we really need it
(not leafs) and release on the same way.

This commit was SVN r12200.
2006-10-19 22:20:33 +00:00
George Bosilca
26b33ec2d7 If there is just one node, we don't need a decision function, just do the copy
and return.

This commit was SVN r12199.
2006-10-19 22:19:36 +00:00
George Bosilca
3eb2f90ceb For the recurvise doubling correctly compute the closest power of 2 number of
nodes.

This commit was SVN r12191.
2006-10-19 17:14:57 +00:00
George Bosilca
041fcb8d18 Update the barrier decision function.
This commit was SVN r12190.
2006-10-19 17:14:01 +00:00
George Bosilca
18d119bc06 No more warnings.
This commit was SVN r12181.
2006-10-18 21:10:11 +00:00
Galen Shipman
2036bf5c3c make smart and dumb compilers happy
This commit was SVN r12178.
2006-10-18 19:33:39 +00:00
George Bosilca
c9da782804 Keep only one function to get the size of a datatype.
This commit was SVN r12170.
2006-10-18 17:33:01 +00:00
George Bosilca
3db5c0487d typos.
This commit was SVN r12168.
2006-10-18 17:12:25 +00:00
George Bosilca
21ade43b96 Remove a non reacheable statement.
This commit was SVN r12166.
2006-10-18 16:43:55 +00:00
Rainer Keller
47b24a0603 - Now the branch is done, linearize access regarding
request handling.  Buys a little bit on IMB, no
   functional change, otherwise.

This commit was SVN r12165.
2006-10-18 16:11:50 +00:00
Gleb Natapov
252a9cea34 Fix bug in vma rcache.
This commit was SVN r12163.
2006-10-18 10:55:01 +00:00
George Bosilca
be27ee6fa0 Correct the bcast problem where we always did a bcast with segzise of 0.
Activate the reduce decision function.
Others small updates (mostly TAB to spaces).

This commit was SVN r12161.
2006-10-18 02:00:46 +00:00
George Bosilca
640178c4b3 Grepping through the source files I found these calls to the data-type engine
with the wrong type of arguments.

This commit was SVN r12148.
2006-10-17 21:05:04 +00:00
George Bosilca
6f5ec2390b pedantic...
This commit was SVN r12147.
2006-10-17 20:25:40 +00:00
George Bosilca
8852c00c36 Look like a big commit but in fact it address only one issue. The way we're working with
size and diplacement of data-type. After this patch all data can contain size_t bytes
and the displacements are defined as ptrdiff_t. All of the files I was able to compile
have been modified to match this requirement.

This commit was SVN r12146.
2006-10-17 20:20:58 +00:00
Andrew Friedley
16769e64fe Remove old UD BTL code.
The UD BTL isn't gone - the latest version is in my afriedle-ud branch.  This version on the trunk was very old, ompi_ignore'd, lacked performance, and probably contained bugs.  The maintained version on my branch is working solid, and will eventually come back, but not for v1.2.

This commit was SVN r12144.
2006-10-17 18:59:21 +00:00
Rainer Keller
668902c780 - trivial spelling
This commit was SVN r12139.
2006-10-17 16:34:52 +00:00
George Bosilca
ed83927025 Don't reset the convertor when a persistent request complete. Instead reset it
next time then request is used. This will keep the execution path on the default
case (not persistent) shorter.

This commit was SVN r12134.
2006-10-17 05:01:47 +00:00
George Bosilca
ef66afe45c Another inner loop optimization. Only check for num_fails when prev_bytes is
equal to num_bytes.

This commit was SVN r12133.
2006-10-17 04:38:38 +00:00
Pavel Shamis
d64cb58007 Tavor HCA vendor_id was changed to correct one: 23108
Reviewed by: Jeff

This commit was SVN r12127.
2006-10-16 14:46:39 +00:00
Brian Barrett
14f338b7df Fix for lock/unlock epoch issues. Previously, we did not handle the case
where a window was in both the passive and active side of a lock sequence.

Refs trac:488

This commit was SVN r12112.

The following Trac tickets were found above:
  Ticket 488 --> https://svn.open-mpi.org/trac/ompi/ticket/488
2006-10-12 22:52:13 +00:00
Gleb Natapov
afa26fc4f9 Remove empty lines at the end of the file.
This commit was SVN r12083.
2006-10-11 11:38:38 +00:00
Galen Shipman
7102d39415 Use OMPI_FREE_LIST_GET not the blocking OMPI_FREE_LIST_WAIT, this allows GM
to take advantage of PML OB1 resource management.. Tested with intel test
suite p2p_c on 4 nodes. 

This commit was SVN r12075.
2006-10-10 14:56:55 +00:00
George Bosilca
179067dfb5 Correct a type that break the PSM build.
This commit was SVN r12069.
2006-10-09 23:14:22 +00:00
Brian Barrett
51b2a0fd3f A couple of changes to improve shared memory behavior when resources get
constrained:

  * Make sure we always have a number of eager fragments available
    that scales with the number of processes communicating with
    a given proc over shared memory
  * Use FREE_LIST_GET instead of FREE_LIST_WAIT to return an
    error to the PML when resource exhaustion occurs
  * Don't dereference the frag during alloc unless we're sure
    it's not NULL

Reviewed by: Galen

Refs trac:413

This commit was SVN r12053.

The following Trac tickets were found above:
  Ticket 413 --> https://svn.open-mpi.org/trac/ompi/ticket/413
2006-10-06 21:13:49 +00:00
George Bosilca
b27f1814c6 If the function is expected to return a bool then let's return only
true or false.

This commit was SVN r11991.
2006-10-05 05:10:34 +00:00
George Bosilca
4689c56210 Always cast the return of malloc.
This commit was SVN r11990.
2006-10-05 05:07:43 +00:00
George Bosilca
e4df4285b1 Reorder the enum in order to allow some compilers to optimize the big switch in
the header analisys.

This commit was SVN r11975.
2006-10-04 20:03:28 +00:00
Andrew Friedley
836261b85a Fixes ticket 186.
First, move the OPAL_THREAD_LOCK out to the same level as its corresponding UNLOCK.  It was possible to hit the UNLOCK without ever acquiring the lock.

Since the OPAL_THREAD_ADD64() is now protected by this lock, we can just do the decrement non-atomically.

This commit was SVN r11958.
2006-10-03 18:15:26 +00:00
Andrew Friedley
1177844d7a Fixes trac:183.
Don't try to acquire ompi_request_lock here, which in all cases is already held.  Avoids deadlock that occurs even when threads are enabled and we're running a THREAD_SINGLE app.

Reviewed by Galen.

This commit was SVN r11957.

The following Trac tickets were found above:
  Ticket 183 --> https://svn.open-mpi.org/trac/ompi/ticket/183
2006-10-03 18:08:48 +00:00
Jeff Squyres
9ccbab464d Remove unused variable.
This commit was SVN r11918.
2006-10-01 11:51:41 +00:00
George Bosilca
7c8c8d6a46 Keep the critical path as short as possible.
This commit was SVN r11881.
2006-09-28 23:59:24 +00:00
George Bosilca
8d2a8229bb We don't use the send and receive request destructor.
This commit was SVN r11880.
2006-09-28 23:57:49 +00:00
George Bosilca
7f2fd41ace Make sure we trigger the PERUSE event before releasing the request.
This commit was SVN r11879.
2006-09-28 23:54:38 +00:00
George Bosilca
9ae37e474b Force the initialization of the convertor if we detect truncation of messages.
This commit was SVN r11877.
2006-09-28 23:42:56 +00:00
George Bosilca
e5ccc1aece Keep the loop as short as possible. And specialize the search for ANY_TAG.
This commit was SVN r11874.
2006-09-28 22:47:40 +00:00
Brian Barrett
451d362296 MPI_Fence's stupid "I might be in a fence epoch but you can't tell until
I do something else" rule screws me up again.  If we're in a FENCE, but
not in ACCESS | EXPOSE, put us in ACCESS|EXPOSE, as we are now known we
now in a real Fence epoch.  Yay silly MPI standards

Refs trac:441

This commit was SVN r11865.

The following Trac tickets were found above:
  Ticket 441 --> https://svn.open-mpi.org/trac/ompi/ticket/441
2006-09-28 15:11:11 +00:00
Gleb Natapov
26660d657a Openib BTL supports PUT and GET protocol, communicate it to PML. We get better
bandwidth with GET protocol and mpi_leave_pinned option.

This commit was SVN r11862.
2006-09-28 11:48:04 +00:00
Gleb Natapov
30608c5a50 Add separate queues for pending rget and rput frags. Process only limited
number of pending packets at once, otherwise we can spin forever.

This commit was SVN r11861.
2006-09-28 11:41:45 +00:00
Terry Dontje
d228784fa8 Fixed trac #409 by adding a new MCA parameter named
btl_base_warn_component_unused.

This commit was SVN r11844.
2006-09-27 13:24:42 +00:00
Brian Barrett
85cc94f634 Change mpool shared memory file size from 512MB to a scaling factor based
on the number of known local procs, with a high and low watermark.  Right
now, we default to a low watermark point of 64MB, a per-proc scaling
factor of 32MB, and a high watermark point of 512MB

Refs trac:212

This commit was SVN r11824.

The following Trac tickets were found above:
  Ticket 212 --> https://svn.open-mpi.org/trac/ompi/ticket/212
2006-09-26 16:02:31 +00:00
Terry Dontje
bc93adee26 Fixed connection inversion bug by putting in sequence checking for
first sendrecv exchanges for each connection.  This was to fix Trac
#390.

This commit was SVN r11821.
2006-09-26 13:53:00 +00:00
Gleb Natapov
7b1b4f95e3 Local GID table contains not what I thought it contains. It contains local HCA
GIDs (there can be more than one) and not GIDs of the HCA on the network. Entry
zero always have to be initialized so we use it, and warn user if there is more
then one port active and default subnet is configured on at least one of them.

This commit was SVN r11815.
2006-09-26 12:12:33 +00:00
Brian Barrett
a546b6834b Only add the ROMIO source directory into DIST_SUBDIRS and SUBDIRS if
the component is configured successfully.  Otherwise, we can end up 
trying to run make in the romio directory without any Makefiles.  This
really only happens on the targets that recurse into DIST_SUBDIRS - ie
dist, maintainer-clean, and distclean

refs trac:411

This commit was SVN r11807.

The following Trac tickets were found above:
  Ticket 411 --> https://svn.open-mpi.org/trac/ompi/ticket/411
2006-09-25 23:51:13 +00:00
Brian Barrett
c3306f7073 * don't abort if we get a status error - just pass it on to the next layer up
This commit was SVN r11791.
2006-09-25 17:28:24 +00:00
Brian Barrett
b18055451d * need to include errno.h to get errno
This commit was SVN r11790.
2006-09-25 17:17:43 +00:00
Gleb Natapov
9cd25158d6 Fix btl_openib_max_btls parameter handling.
This commit was SVN r11772.
2006-09-25 11:18:20 +00:00
Terry Dontje
d636db5832 Fixed bug trac #213 by moving the udapl btl header to being a footer.
Also fixed bug trac #346.

This commit was SVN r11760.
2006-09-22 19:28:09 +00:00
Gleb Natapov
601a6ca17a Use real subnet prefix instead of sm_lid.
This commit was SVN r11749.
2006-09-22 10:27:12 +00:00
Brian Barrett
8fc278c3a3 Rest of the fix for #325. It uses a bit more space, but now we can reasonably
tell if the remote proc should be in an exposure epoch or not.

Refs trac:325

This commit was SVN r11746.

The following Trac tickets were found above:
  Ticket 325 --> https://svn.open-mpi.org/trac/ompi/ticket/325
2006-09-21 20:49:15 +00:00
Brian Barrett
2ec0c4f593 * Fix race condition in post/wait/start/complete synchronization where one
epoch's control data could overwrite the previous epoch's data because
    we were reusing data structures between PW and SC.  Instead, we now
    have explicit post_msg and complete_msg counters for completion.

    refs trac:354

  * Only register the rdma osc callback once, as it turns out that some
    btls (MX) do somethng more than update a table during the register
    call, and each register call sucks up valuable fragments...

This commit was SVN r11745.

The following Trac tickets were found above:
  Ticket 354 --> https://svn.open-mpi.org/trac/ompi/ticket/354
2006-09-21 19:57:57 +00:00
George Bosilca
688a16ea78 A long time waiting patch. Get rid of the comm->c_pml_procs. It was (and that was
long ago) supposed to be used as a cache for accessing the PML procs. But in
all of the PMLs the PML proc contain only one field i.e. a pointer to the ompi_proc.
This pointer can be accessed using the c_remote_group easily. Therefore, there is no
meaning of keeping the PML procs around. Slim fast commit ...

This commit was SVN r11730.
2006-09-20 22:14:46 +00:00
George Bosilca
1c464d340c Do not increase the reference count for the datatype if it is not required. Plus
some typos.

This commit was SVN r11728.
2006-09-20 20:14:15 +00:00
Brian Barrett
ddffc8748f * remove unneeded files that were included in the mpich2 tarball
This commit was SVN r11726.
2006-09-20 18:27:28 +00:00
Andrew Friedley
e776b01811 This assert fails if -mca pml_dr_enable_csum 0 is set, which isn't what we want..
This commit was SVN r11719.
2006-09-19 19:57:33 +00:00
George Bosilca
6f3782bbd7 When we succesfully cancel a request we have to set it's pml_complete flag to true
if we want to be able to reuse the request. If not, the request will never be freed
even if the user call MPI_Request_free.

This commit was SVN r11717.
2006-09-19 18:04:09 +00:00
Brian Barrett
d1402cf8f5 * Update ROMIO release to the one included with MPICH2-1.0.4p1, tagged in
vendor/romio as mpich2-1.0.4p1.

This commit was SVN r11715.
2006-09-19 16:13:46 +00:00
Gleb Natapov
18c54f574f add rmb()
This commit was SVN r11710.
2006-09-19 13:27:05 +00:00
Gleb Natapov
ac42284c16 Print more helpful message in case we can't find active port.
This commit was SVN r11706.
2006-09-19 08:56:32 +00:00
Rainer Keller
80166a9516 - fix typos
This commit was SVN r11703.
2006-09-19 07:55:41 +00:00
Rainer Keller
40cb5d3e30 - Fix peruse compilation
This commit was SVN r11685.
2006-09-18 07:41:09 +00:00
Rainer Keller
611f3ba408 - Fix buglet found by Feng Sheng's IO tests;
Correctly initialize the status for non-blocking io.

This commit was SVN r11672.
2006-09-15 12:37:29 +00:00
Jeff Squyres
d30b1ad61a Remove a file that should not be in SVN
This commit was SVN r11667.
2006-09-15 02:37:34 +00:00
George Bosilca
a3ad4a7fc8 The visibility flags (and/or Windows friendly export) is now on for all BTLs.
This commit was SVN r11662.
2006-09-14 22:19:39 +00:00
Ralph Castain
37dfdb76eb Here is the major MAD-cure commit. I have written plenty about it, so I refer you here to those messages for a description of everything that was done.
This commit was SVN r11661.
2006-09-14 21:29:51 +00:00
Galen Shipman
877b819ddb Initial commit of QLogic PSM MTL.
This provides support for the Infinipath interconnect using the PSM API. 

Of note: 
This version has a "hackaround" we always return 1 or greater from
the MTL PSM progress function, this should be examined further.

This commit was SVN r11655.
2006-09-14 16:44:02 +00:00
Galen Shipman
0be42b22b9 Fix connection timeout error handling..
This commit was SVN r11651.
2006-09-14 14:02:14 +00:00
Jeff Squyres
a8e9fa09da Fix some compiler warnings introduced in r11619. I checked with
George: ompi_ddt_type_size() returns a signed int only because of the
MPI spec; it will never return a negative value.  So casting the
return value out of it to a (uint32_t) is safe, and makes the
comparisons be between two unsigned values. 

This commit was SVN r11639.

The following SVN revision numbers were found above:
  r11619 --> open-mpi/ompi@8667648a1b
2006-09-13 16:42:31 +00:00
Gleb Natapov
7999c08107 consolidate credit management and CQ polling code.
This commit was SVN r11622.
2006-09-12 09:17:59 +00:00
Graham Fagg
8667648a1b Simple fix (for ticket 363). We push segment size to type size. In other algorithms we switch of segementing altogether. But really the DDT can probably handle partial types so we could really keep the segsize constant (for all but reduce ops) and treat it just as byte arrays..
todos: macroize it as we do it 10 different ways, add mca params to control handling (push up size, no change, switch off segmenting)

This commit was SVN r11619.
2006-09-12 00:01:27 +00:00
Jeff Squyres
6173e952a2 Remove these files from SVN; they should not be committed.
This will force everyone to re-autogen.  Sorry!

This commit was SVN r11616.
2006-09-11 22:43:20 +00:00
Gleb Natapov
03cda61302 Fix hang in receiving into MPI_alloced area.
This code hangs with openib BTL:

int size = 4000000;
sbuf = malloc(size);  
MPI_Alloc_mem(size, MPI_INFO_NULL, &rbuf);

if (rank == 0)
{
    MPI_Recv(rbuf, size, MPI_CHAR, 1, 1, MPI_COMM_WORLD, &stat);
}else{
    MPI_Send(sbuf, size, MPI_CHAR, 0, 1, MPI_COMM_WORLD);
}

This commit was SVN r11613.
2006-09-11 12:18:59 +00:00
Gleb Natapov
fa17445384 fix compilation warning.
This commit was SVN r11601.
2006-09-10 06:17:33 +00:00
Jeff Squyres
fb4d7ab268 * Fix svn:ignore
* Remove files that should not be in SVN

This commit was SVN r11565.
2006-09-08 10:35:45 +00:00
Gleb Natapov
9b93f48e22 fix compile warnings in previous commit.
This commit was SVN r11554.
2006-09-07 13:31:50 +00:00
Gleb Natapov
d0caffa0aa Consolidate receive buffers prepost code for HP/LP QPs.
This commit was SVN r11552.
2006-09-07 13:05:41 +00:00
Gleb Natapov
e7650ff48a Bad things happen if min_rdma_size is smaller then data delivered in the RNDV
packet. Fix this.

This commit was SVN r11548.
2006-09-07 10:42:35 +00:00
Gleb Natapov
298c825592 Remove #if OMPI_MCA_BTL_OPENIB_HAVE_SRQ. Always compile SRQ.
This commit was SVN r11537.
2006-09-06 05:45:37 +00:00
Gleb Natapov
4f05da21a1 remove unused macro
This commit was SVN r11536.
2006-09-06 05:36:26 +00:00
Gleb Natapov
424e412391 Make eager rdma work with SRQ enabled.
This commit was SVN r11530.
2006-09-05 16:04:04 +00:00
Gleb Natapov
c13240a1d1 remove rdma_credits from openib BTL header. Use one field for regular and rdma credits.
This commit was SVN r11529.
2006-09-05 16:02:09 +00:00
Gleb Natapov
fe932ca7bf consolidate part of HP/LP fields.
This commit was SVN r11528.
2006-09-05 16:00:18 +00:00
Gleb Natapov
b6bac100b0 Move error path out of the way.
This commit was SVN r11527.
2006-09-05 15:59:02 +00:00
Gleb Natapov
ffe7051488 fix compilation warnings.
This commit was SVN r11524.
2006-09-05 09:16:22 +00:00
Jeff Squyres
7fe337ce3b Yoinks -- remove some debugging output.
This commit was SVN r11515.
2006-09-01 11:48:26 +00:00
Brian Barrett
e0555889a9 * RMA_SYNC is a more appropriate error message for these than RmA_CONFLICT
* Print a warning error message if a target is not in an exposure epoch
    and an update is received.  This results in the app continuing with
    that call having never happened, rather than evil hangs.

refs trac:325

This commit was SVN r11514.

The following Trac tickets were found above:
  Ticket 325 --> https://svn.open-mpi.org/trac/ompi/ticket/325
2006-08-31 21:07:52 +00:00
Jeff Squyres
6c2e938d31 Update the comment to reflect that this can now be a comma-delimited list.
This commit was SVN r11507.
2006-08-30 20:28:48 +00:00
Jeff Squyres
91bdbc0673 This commit fixes a few things. It looks bigger than it is because a
bunch of code changed indenting level and some code got moved out of
one function and made into its own subroutine.

- Gleb pointed out that I wasn't taking into account values from the
  default section of the INI file (and not finding values in the INI
  file is not an error).
- I incorrectly thought that 0x5ad was Mellanox's vendor ID.  Turns
  out that 0x5ad is Cisco's ID, while 0x2c9 is Mellanox.
  Specifically, Cisco burns its own firmware into the HCA which
  replaces the vendor ID, although the part ID stays the same.  So
  it's Mellanox hardware with Cisco firmware.  And apparently several
  of us do that.  :-)  So I expanded the concept of the vendor_id in
  the INI file to allow for lists of vendor IDs.  
- Along with that, I updated the default INI file to list all the IB
  vendors (that I am aware of -- certainly open to putting more data
  in there from other vendors) who overwrite Mellanox's vendor_id with
  their own for the part numbers that we have on file.

This commit was SVN r11506.
2006-08-30 20:21:47 +00:00
George Bosilca
e33c35112b Correct the conversion between int and bool. Apply it on all files except
the one that will be modified by Ralph for the ORTE 2.0. The missing ones
are in the rsh PLS.

This commit was SVN r11476.
2006-08-28 18:59:16 +00:00
Jeff Squyres
9e2488bfe9 George found a great way to avoid warnings from flex for that unused
function.  Woo hoo!

This commit was SVN r11469.
2006-08-28 13:44:37 +00:00
Gleb Natapov
c70eb43e43 Align eager RDMA buffer so that last byte of the buffer is on the last byte of
the CPU cache line. Improves zero byte latency a little bit because of L1 cache
miss reduction.

This commit was SVN r11465.
2006-08-28 11:03:56 +00:00
George Bosilca
3b39df8ae1 More protection around what we really want to get exported.
This commit was SVN r11437.
2006-08-27 04:49:02 +00:00
Jeff Squyres
196decaf08 * Remove redundant include
* Add missing include

This commit was SVN r11432.
2006-08-26 20:14:19 +00:00
Brian Barrett
c1a77b921d Need to add/subtract modes when dealing with PWSC, since a given window
can be in both a Post and Start state.  Also, the asserts were only
correct assuming that we were never in the post and start state at the
same time, which was obviously silly.

refs trac:303

This commit was SVN r11428.

The following Trac tickets were found above:
  Ticket 303 --> https://svn.open-mpi.org/trac/ompi/ticket/303
2006-08-25 20:39:33 +00:00
Sven Stork
d09863926c - fix dist target
This commit was SVN r11421.
2006-08-25 09:45:08 +00:00
George Bosilca
c8daf226b6 Export the RDMA OSC.
This commit was SVN r11417.
2006-08-24 21:17:31 +00:00
George Bosilca
6f4aa36dfc Add this header file in order to allow the export of the component structure.
This commit was SVN r11404.
2006-08-24 17:40:22 +00:00
Sami Ayyorgun
aa8cd63418 changed some barrier variables for shared-memory to volatile
This commit was SVN r11403.
2006-08-24 16:53:10 +00:00
Torsten Hoefler
6b22641669 added LibNBC (http://www.unixer.de/NBC) as collv1 (blocking) component.
I know it does not make much sense but one can play around with the
performance. Numbers are available at http://www.unixer.de/research/nbcoll/perf/.
This is the first step towards collv2. Next step includes the addition
of non-blocking functions to the MPI-Layer and the collv1 interface.

It implements all MPI-1 collective algorithms in a non-blocking manner.
However, the collv1 interface does not allow non-blocking collectives so
that all collectives are used blocking by the ompi-glue layer.

I wanted to add LibNBC as a separate subdirectory, but I could not
convince the buildsystem (and had not the time). So the component looks
pretty messy. It would be great if somebody could explain me how to move
all nbc*{c,h}, and {hb,dict}*{c,h} to a seperate subdirectory.

It's .ompi_ignored because I did not test it exhaustively yet.

This commit was SVN r11401.
2006-08-24 16:47:18 +00:00
George Bosilca
3f0a7cad9e The last patch for Windows support. Mostly casting and conversion to C++ friendly headers.
This commit was SVN r11400.
2006-08-24 16:38:08 +00:00
Gleb Natapov
21e99cd334 init mtu parameter when no warn is set.
This commit was SVN r11388.
2006-08-24 10:42:42 +00:00
Brian Barrett
1c4de419cc * fix Galen's typo ;)
This commit was SVN r11331.
2006-08-22 20:18:53 +00:00
Galen Shipman
73e9ef46fc use int32_t not size_t (ORTE interface change)..
This commit was SVN r11323.
2006-08-22 17:13:10 +00:00
Galen Shipman
fbf7e9cf1c use int32_t's not size_t's (interface change in ORTE)..
This commit was SVN r11322.
2006-08-22 16:26:36 +00:00
Galen Shipman
99d526a07c Add support for 1_0_0 source btl components
This commit was SVN r11321.
2006-08-22 16:25:36 +00:00
George Bosilca
6fc16516cc orte_std_cntr_t vs. size_t round 3. I back up this one as it
wasn't suppose to be committed (and because it's wrong).

This commit was SVN r11318.
2006-08-22 15:15:09 +00:00
George Bosilca
0417d27f46 orte_std_cntr_t vs. size_t round 2. Advantage for size_t ...
This commit was SVN r11317.
2006-08-22 14:58:31 +00:00
Brian Barrett
75d32b4013 * It appears that AIX provides a mallopt, but not the options to disable
sbrk and the use of mmap().  So rather than checking just for mallopt(),
  we should also be checking for those defines when determining if we can
  disable giving memory back to the OS or not.

This commit was SVN r11279.
2006-08-21 14:00:30 +00:00
George Bosilca
392178b1a8 Move it in the right place.
This commit was SVN r11276.
2006-08-21 04:05:19 +00:00
George Bosilca
ebd7a49428 Create shared memory "files" on Windows. These "files" will be
allocated directly by the OS in the paging file (the HUGE file
that cannot be defragmented with any tools). Unlike UNIX, they
do not have physical existence as files.

This commit was SVN r11273.
2006-08-20 19:45:28 +00:00
George Bosilca
6afa4c6c64 Windows friendly version. We have to split the OMPI_DECLSPEC in at least 3
different macros, one for each project. Therefore, now we have OPAL_DECLSPEC,
ORTE_DECLSPEC and OMPI_DECLSPEC. Please use them based on the sub-project.

This commit was SVN r11270.
2006-08-20 15:54:04 +00:00
Brian Barrett
943e7dcfba * use a temporary to avoid passing pointers to size_t-sized structures into
the mca param functions, which expect poinrters to integers

This commit was SVN r11262.
2006-08-18 21:36:07 +00:00
Dan Lacher
f2526d60ed Minor fix for a dropped comma.
This commit was SVN r11259.
2006-08-18 17:55:57 +00:00
Galen Shipman
e5c594c211 More updates for the async error handler for btl's
In order to provide backwards compatability the framework versions are bumped
and the handler registeration function is at the end of the btl struct.
Testing done on sm, openib, and gm.. 

This commit was SVN r11256.
2006-08-17 22:02:01 +00:00
Brian Barrett
f1bfd174da * need to set SUCCESS when completing a request
This commit was SVN r11255.
2006-08-17 20:03:10 +00:00
Brian Barrett
f0afe38293 * Need to retain / release datatype and communicator so that the MPI layer
handles can be freed before communication completes.

This commit was SVN r11248.
2006-08-17 16:30:03 +00:00
Brian Barrett
31a51c73d9 * fix dumb typo
This commit was SVN r11246.
2006-08-17 15:57:49 +00:00
Brian Barrett
df84dbad00 * use the osc base debugging stream for all output, and do the whole
verbose MCA param thing instead of changing -1 to 0 and back in the
  output stream param.

This commit was SVN r11245.
2006-08-17 14:52:20 +00:00
Brian Barrett
f31bf10b98 If we're ANY_SOURCE, don't grab the ompi_proc to get the convertor by going
through the c_pml_procs, as it might be an intercommunicator and therefore
c_my_rank might not be a valid index.

Fixes trac:266.

This commit was SVN r11238.

The following Trac tickets were found above:
  Ticket 266 --> https://svn.open-mpi.org/trac/ompi/ticket/266
2006-08-16 22:35:53 +00:00
Galen Shipman
7473d04a9a Simple failover is working.. ;-)
This commit was SVN r11237.
2006-08-16 22:32:18 +00:00
Brian Barrett
292068b34b * check return status of module init
This commit was SVN r11235.
2006-08-16 21:27:57 +00:00
Galen Shipman
e809a442e7 add the error handler registration to OB1..
This commit was SVN r11234.
2006-08-16 20:56:22 +00:00
Brian Barrett
74e95bc65f * more fixes for ticket #264. We need to keep the original address around,
so use the req_buff field for keeping track of the bsend buffer and the
  req_addr field for the user buffer, the way the comments suggested we
  were doing it

This commit was SVN r11233.
2006-08-16 20:24:28 +00:00
Galen Shipman
3b49953ce2 Add error callback to the btl interface, this allows error to be delivered to
the upperlayer assynchronously although there are some issues with this.. such
as there are multiple consumers of the btl's.. who get's the

This commit was SVN r11232.
2006-08-16 20:21:38 +00:00
Brian Barrett
0f47949703 * partial fix for #264... We need to return an MPI_ERR_BUFFER if we've run
out of buffer space

This commit was SVN r11229.
2006-08-16 17:32:31 +00:00
Brian Barrett
6d414f2d44 * use the MTL-specific output stream for all error messages
* use OPAL_OUTPUT_VERBOSE rather than printfs for debugging messages

This commit was SVN r11227.
2006-08-16 16:28:58 +00:00
Brian Barrett
3d75d828d3 * Work on ticket #259 -- Add MCA parameters to allow for tuning of the
usual suspects in the CM PML

This commit was SVN r11225.
2006-08-16 14:57:13 +00:00
Brian Barrett
139348647a * remove odd character
This commit was SVN r11212.
2006-08-15 23:58:00 +00:00
Brian Barrett
dc74a6a8e1 * implement iprobe for the MX MTL
This commit was SVN r11211.
2006-08-15 22:16:50 +00:00
Galen Shipman
259b9f04b9 GM needs ack+csum by default for PML DR..
This commit was SVN r11210.
2006-08-15 22:15:22 +00:00