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

454 Коммитов

Автор SHA1 Сообщение Дата
George Bosilca
2e042c91cf Once we compute the local offset use it (instead of the global one).
This commit was SVN r13634.
2007-02-13 09:34:04 +00:00
Gleb Natapov
1033002595 Fix memory leak. Free allocated descriptor if operation cannot proceed.
This commit was SVN r13610.
2007-02-12 09:47:51 +00:00
Brian Barrett
041beeb1b6 Share currently selected PML in the modex information, then check whenever
adding new procs that the remote proc's pml is the same as our local pml.
Turns the hangs from mismatched PMLs into an abort, which is better,
I think.

This commit was SVN r13582.
2007-02-09 16:38:16 +00:00
Galen Shipman
ec610a9e65 spread priorities out a bit..
This commit was SVN r13487.
2007-02-04 00:55:25 +00:00
Galen Shipman
a94101fa62 mostly another hack around for PML selection, allows CM be select itself if an
MTL is available, if not OB1 is used. Still prevents DR and OB1 from stomping
on each other though. 

This commit was SVN r13481.
2007-02-03 02:01:18 +00:00
George Bosilca
0ff2115964 Other warnings are now silenced.
This commit was SVN r13462.
2007-02-02 06:47:35 +00:00
Rainer Keller
ca35881cd0 - Minor bugfixes and removed compiler warnings
This commit was SVN r13343.
2007-01-28 19:52:09 +00:00
Jeff Squyres
52ca6cf86c The mpi_leave_pinned and mpi_leave_pinned_pipeline MCA parameters were
needlessly registered in multiple different places, and none of them
had a good help string.  There was also an inconsistent check for
setting both mpi_leave_pinned and mpi_leave_pinned_pipeline (i.e., it
was only in ob1).  This commit moves the registration of these params
to one central place (ompi/runtime/ompi_mpi_params.c, with all other
mpi_* MCA params) and uses globals to propagate the values as
relevant.  The error check was also moved to the central location to
ensure that we can consistency everywhere.

This commit was SVN r13226.
2007-01-21 14:02:06 +00:00
Gleb Natapov
4c7dbd36c7 Balance RDMA operation in round robin fashion between all available RDMA BTLs.
OB1 always use first element from array of BTLs available for RDMA. The patch
change the array creation algorithm, it puts different BTL in the first element
in round robin fashion.

This commit was SVN r13174.
2007-01-18 09:15:18 +00:00
Brian Barrett
a34e67d743 Remove unneeded PARAM_INIT_FILE variable in configure.params files used by
components that use configure.m4 for configuration or are always built. 
The macro has not been needed since moving to configure types other than
configure.stub

Fixes trac:590

This commit was SVN r13031.

The following Trac tickets were found above:
  Ticket 590 --> https://svn.open-mpi.org/trac/ompi/ticket/590
2007-01-08 03:44:22 +00:00
Brian Barrett
8900d3ae43 Second take at fixing the issues with using ompi_ptr_t. Add helper functions for converting from .pval to .lval and vice-versa. Users of ompi_ptr_t types should only use one of the fields in the union unless using the helper conversion functions. For the BTLs, local pointers will always be stored in the .pval field and remote pointers always stored in the .lval field.
George wrote the initial patch, I extended it slightly and am responsible for all bugs found.

Refs trac:587

This commit was SVN r13023.

The following Trac tickets were found above:
  Ticket 587 --> https://svn.open-mpi.org/trac/ompi/ticket/587
2007-01-07 01:48:57 +00:00
Brian Barrett
48ec0b2071 Revert out r12974, 12976, and 12991 as George has provided a less intrusive fix
for now...

This commit was SVN r12997.

The following SVN revision numbers were found above:
  r12974 --> open-mpi/ompi@27cea44a9c
2007-01-04 22:07:37 +00:00
Galen Shipman
931a389c4f fix deadlock on rendezvous protocol..
This commit was SVN r12982.
2007-01-04 03:46:11 +00:00
Brian Barrett
27cea44a9c Fix a number of issues with the ompi_ptr_t:
* Make sure that the pval always writes to the correct portion of the
    lval.  This only matters on 32 bit big endian machines.
  * On 32 bit machines when assigning to pval, the other 4 bytes of lval
    weren't being written, which could lead to bogus data

We use macros so that there aren't casts all over the code and the pval
assignment can occur to the correct 4 bytes.  Refs trac:587

This commit was SVN r12974.

The following Trac tickets were found above:
  Ticket 587 --> https://svn.open-mpi.org/trac/ompi/ticket/587
2007-01-03 19:47:48 +00:00
Gleb Natapov
a6127fd8ce Increase req_bytes_delivered atomically.
This commit was SVN r12971.
2007-01-03 15:19:34 +00:00
Gleb Natapov
79202561f6 Don't check req_pipeline_depth on frag completion. Checking of
req_bytes_delivered should be enough.

This commit was SVN r12967.
2007-01-03 14:44:20 +00:00
Gleb Natapov
1ad6c41735 Sender can start scheduling send fragments immediately after receiving ACK. No
need to wait for RNDV completion.

This commit was SVN r12965.
2007-01-03 12:37:11 +00:00
George Bosilca
0b5d879a63 ompi_convertor_pack do not return errors (all checkings are done when the
convertor is created).

This commit was SVN r12940.
2006-12-29 07:40:02 +00:00
George Bosilca
d8db9e49f3 Set the bml_btl to NULL or segfault !!!
This commit was SVN r12939.
2006-12-29 07:38:24 +00:00
Brian Barrett
2ab65eb521 Remove some debugging output that was #if 0'ed out but shouldn't have been
committed into the trunk anyway

This commit was SVN r12897.
2006-12-19 02:34:41 +00:00
Gleb Natapov
190e7a27cd Merge with gleb-mpool branch. All RDMA components use same mpool now (rdma).
udapl/openib/vapi/gm mpools a deprecated. rdma mpool has parameter that allows
to limit its size mpool_rdma_rcache_size_limit (default is 0 - unlimited).

This commit was SVN r12878.
2006-12-17 12:26:41 +00:00
Brian Barrett
6f8b366acb Rename liborte to libopen-rte and libopal to libopen-pal per telecon today
and bug #632.

Refs trac:632

This commit was SVN r12762.

The following Trac tickets were found above:
  Ticket 632 --> https://svn.open-mpi.org/trac/ompi/ticket/632
2006-12-05 18:27:24 +00:00
Brian Barrett
441432950f Merge in changes from the bwb-heterogeneous temp branch (r12491 -
r12714) for supporting compilers / architectures with different
padding rules.

This commit was SVN r12749.

The following SVN revisions from the original message are invalid or
inconsistent and therefore were not cross-referenced:
  r12491
  r12714
2006-12-04 20:11:42 +00:00
Gleb Natapov
30ca7457b4 Some BTLs (e.g TCP) can report put/get completion before data actually
hits the buffer on the other side. For this kind of BTLs we need to send
FIN through the same BTL, PUT was performed with so network will handle
ordering for us. If we will use another BTL, receiver can get FIN before
data will hit the buffer and complete request prematurely. We mark such
problematic BTLs with MCA_BTL_FLAGS_FAKE_RDMA flag (this kind of RDMA
is really fake, because the real one guaranties that sender will see the
completion only after receiver's NIC confirmed that all the data was
received).

This commit was SVN r12732.
2006-12-03 10:12:09 +00:00
Gleb Natapov
39c930b160 The bug fixing part of r12720 introduce much more serious bug that it fixes.
It calls mca_pml_ob1_send_fin_btl() which may fail and doesn't check return
code. This breaks all RDMA transports event when only one BTL is used. Revert
it for now, I am working on a real fix for the problem (I hope).

This commit was SVN r12731.

The following SVN revision numbers were found above:
  r12720 --> open-mpi/ompi@3e3689320b
2006-12-03 08:55:59 +00:00
Gleb Natapov
65d7ad4581 The "bug fix" from the r12721 reverts part of the r12433 that fixed
regresion from v1.1 was reviewed and put to v1.2 branch. So revert this part
of r12721 back.

This commit was SVN r12730.

The following SVN revision numbers were found above:
  r12433 --> open-mpi/ompi@82f7c0dd69
  r12721 --> open-mpi/ompi@3edd850d2e
2006-12-03 08:29:55 +00:00
George Bosilca
3edd850d2e Some indentation and code arrangement. However, there is a bug fix. Force the PUT
protocol to always obey to the btl_max_rdma_size.

This commit was SVN r12721.
2006-12-01 22:26:14 +00:00
George Bosilca
3e3689320b Some indentations and one BIG fix. Avoid race conditions on the PUT RDMA
protocol when multiple NICS are available between 2 peers. The fix force
the FIN message to take exactly the same path as the fragment it describe
(i.e. same path means same BTL). Otherwise, the FIN can be received by
the peer before the RDMA complete and the request will get freed
too early.

This commit was SVN r12720.
2006-12-01 21:52:07 +00:00
Andrew Friedley
a4bdcb4faa Fix a segfault that turned up in more MPI_THREAD_MULTIPLE testing.
Same sort of problem and fix as described in r12323 - mca_pml_ob1_recv_frag_progress() was segfaulting due to a NULL req_proc pointer.  The path leading to this was through the mca_pml_ob1_check_cantmatch_for_match() function, where we can match a frag using the same macros as mca_pml_ob1_frag_match() and never initialize the req_proc pointer.

This commit was SVN r12582.

The following SVN revision numbers were found above:
  r12323 --> open-mpi/ompi@c752502dee
2006-11-13 20:12:51 +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
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
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
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
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
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
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
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
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
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
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
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
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
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
Rainer Keller
40cb5d3e30 - Fix peruse compilation
This commit was SVN r11685.
2006-09-18 07:41:09 +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
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
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
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
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
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
24de93e2d4 * fix some compile errors with having OB1 direct called
This commit was SVN r11170.
2006-08-14 15:43:03 +00:00
Gleb Natapov
91f48f9a79 Merge with gleb-pml branch. Add out of resource handling support to PML layer.
If resource is not available request is added to one of the pending list and retried later.

This commit was SVN r10900.
2006-07-20 14:44:35 +00:00
Brian Barrett
4c5fbfdcd2 Solution to ticket #172. If we received more bytes than we delivered, then
the message was truncated.  So set the error accordingly.

This commit was SVN r10811.
2006-07-14 19:36:56 +00:00
George Bosilca
5617cb1a0a Make some function static. Optimize the fast path. Still working on the latency ...
This commit was SVN r10787.
2006-07-13 16:52:40 +00:00
George Bosilca
9f927dc7c1 Minor cleanups. On the OB1 PML the endpoint is not used => remove it from the build.
There was some old code regarding the convertor which does not have to be there
(the problem was corrected a while ago). In the PML we already know how the progress
function is defined, so call the BML progress instead, which will save one function
call. 

The macro MCA_PML_OB1_COMPUTE_SEGMENT_LENGTH is already defined in the pml_ob1.h
so it should not be in the endpoint.h.
Remove a double definition of the mca_pml_ob1_progress function in the pml_ob1.h.

This commit was SVN r10775.
2006-07-13 00:07:13 +00:00
George Bosilca
476c9e64df Don't keep multiples copies of the datatype and count. The only one we really need
is the one provided by the user. For the buffered send the real datatype used
for the communication is always MPI_BYTE and the count can be retrieved from
the req_bytes_packed field. This will decrease the size of the request by
one pointer and one size_t (8 bytes or 16 bytes depending on the architecture).

This commit was SVN r10680.
2006-07-06 17:58:25 +00:00
George Bosilca
01a59d68da Do not generate the XFER_BEGIN and XFER_END events if the length of
the data is zero, for both the receives and the sends.

This commit was SVN r10670.
2006-07-05 23:39:13 +00:00
George Bosilca
6265625983 Generate the XFER_CONTINUE PERUSE event (or the receive) before unpacking the data.
This commit was SVN r10663.
2006-07-05 19:45:00 +00:00
Brian Barrett
7d12f9119a * make sure to include post_configure.sh in the dist tarball, so that
direct calling the ob1 pml works properly.

This commit was SVN r10644.
2006-07-04 04:03:58 +00:00
Brian Barrett
47725c9b02 * Add new PML (CM) and network drivers (MTL) for high speed
interconnects that provide matching logic in the library.
  Currently includes support for MX and some support for
  Portals
* Fix overuse of proc_pml pointer on the ompi_proc structuer, 
  splitting into proc_pml for pml data and proc_bml for
  the BML endpoint data
* bug fixes in bsend init code, which wasn't being used by
  the OB1 or DR PMLs...

This commit was SVN r10642.
2006-07-04 01:20:20 +00:00
George Bosilca
940dbff0fa Add a new PERUSE macro. This is for the CONTINUE event (the one we added to the
standard). This macro allow us to specify the length of the fragment. Now we are
able to know how the message is fragmented between the network devices or inside
the communication protocol.

This commit was SVN r10508.
2006-06-26 20:08:33 +00:00
George Bosilca
c43b9821e7 Generate the PERUSE XFER_CONTINUE event.
This commit was SVN r10501.
2006-06-26 19:01:22 +00:00
George Bosilca
53a5d3df0f Remove useless lines.
This commit was SVN r10500.
2006-06-26 19:00:37 +00:00
George Bosilca
a514cdc068 Always limit the size of the RDMA transfer to the maximum amount supported
by the BTL (btl_max_rdma_size). Now the PUT protocol is pipelined even if there
is just one network between the 2 peers. Unfortunately, this problem is present
the 1.1 (no pipeline for the PUT protocol).

This commit was SVN r10499.
2006-06-26 19:00:07 +00:00
George Bosilca
8cd4718198 Generate the PERUSE PERUSE_COMM_REQ_XFER_BEGIN event only when there is some
data to transfer.

This commit was SVN r10498.
2006-06-26 18:57:55 +00:00
George Bosilca
31365fa799 Use the RDMA limit not the eager one when we schedule a receive (for the
PUT protocol).

This commit was SVN r10456.
2006-06-21 15:51:56 +00:00
George Bosilca
ec28040c58 Remove all useless assignment (now they are done inside the macro). Protect one
call to the _UNPACK macro, in the case where the length of the received data
is zero. This might happens on the PUT protocol.

This commit was SVN r10431.
2006-06-20 14:16:52 +00:00
George Bosilca
f38480f1d1 Set the recv_bytes value in all the cases. Somehow the PERUSE macro
contained an error, so now it hould be back again.

This commit was SVN r10430.
2006-06-20 14:14:04 +00:00
George Bosilca
dee2a7a08d On this branch the rdma_offset should be set. The send_offset is *anyway*
already set in the _START macro.

This commit was SVN r10429.
2006-06-20 14:12:32 +00:00
Brian Barrett
c9e8dbc10e * fix for multi-nic case with put protocol -- index will be 1 for the first
put request if we have more than one nic

This commit was SVN r10397.
2006-06-16 22:25:04 +00:00
Galen Shipman
5d71c149c2 Another fix for PML request completion when local network completion can occur
out of order.. 

Reviewed by Brian.. needs to hit 1.1 

This commit was SVN r10353.
2006-06-14 16:55:35 +00:00
Galen Shipman
0eddad6849 Handle out of order completion/receives when marking completion...
this is a fix for #107... needs to go to the 1.1 branch.. 

This commit was SVN r10331.
2006-06-13 16:57:41 +00:00
Galen Shipman
218a438509 finished the ompi_free_list_t class nightmare..
This commit was SVN r10314.
2006-06-12 22:09:03 +00:00
Galen Shipman
18dda70fd0 make ompi_free_list_item_t a class..
This will go to the 1.1 branch but will probably require a few changes as
ompi_free_list_t is different in the branch.. 

This commit was SVN r10306.
2006-06-12 16:44:00 +00:00
Gleb Natapov
48d348b577 Don't complete send request before we've got completion on the first rndv packet.
Sender can receive and complete PUT request before it gets completion on the first rndv packet. senreq struct may be reused for the next MPI_Send and unexpected completion mess up the things. I sometimes got SEGV and sometimes data corruption.

This commit was SVN r10301.
2006-06-12 14:00:43 +00:00
George Bosilca
7d1feffbf7 The real solution. If the sendreq->req_send.req_bytes_packed is zero then there
is no data to be trasfered. And this is the condition which lead to a non
initialized convertor.

This commit was SVN r10299.
2006-06-12 06:18:18 +00:00
George Bosilca
c959c2f214 Don't reset the convertor's position if it wasn't initialized before. This can
only happens for zero byte persistent requests.

This commit was SVN r10298.
2006-06-12 06:14:35 +00:00
George Bosilca
95d0395578 I'm skeptical about the ability of the compiler to correctly optimize the
loop local variables.

This commit was SVN r10019.
2006-05-23 03:21:15 +00:00
George Bosilca
b8ef0cc749 Minor cleanups.
This commit was SVN r10001.
2006-05-21 05:55:21 +00:00
George Bosilca
e658557d52 Move the convertor creation out of th critical path. If we expect a
message from a known peer (not MPI_ANY_SOURCE) then we can attach the
remote proc and initialize the convertor as soon as we know the data-type,
and the count (so basically in the _INIT macro). If it's not the case, then
create them in the _MATCHED macro (as in the original version). Of course,
beforeinitializing the convertor we check that there will be some data
in the message.

This commit, plus the convertor improvements from few days ago, lower the
latency for my test case environment (mvapi) by 0.1 microseconds. The convertor
now is as slim as it can be, I don't think there is anything else to
remove/improve. 

This commit was SVN r9843.
2006-05-07 21:03:12 +00:00
George Bosilca
a7542824ed Generic length computation (moved from the endpoint.h).
This commit was SVN r9842.
2006-05-07 20:54:44 +00:00
George Bosilca
569b88e093 The endpoint include is not required.
This commit was SVN r9841.
2006-05-07 20:52:55 +00:00
Rainer Keller
0f9b10ff8e - Update test dup MPI_COMM_WORLD -- so that we may
have additional Barriers for output.

This commit was SVN r9831.
2006-05-05 07:42:33 +00:00
Rainer Keller
71d328c086 - Add the PERUSE_COMM_REQ_XFER_CONTINUE for recv.
This commit was SVN r9820.
2006-05-04 19:31:33 +00:00
George Bosilca
22572940c8 Remove some useless code.
This commit was SVN r9513.
2006-04-01 07:42:43 +00:00
George Bosilca
58cd591d3b PERUSE support for OB1. There we go, now the trunk has a partial peruse implementation.
We support all the events in the PERUSE specifications, but right now only one event
of each type can be attached to a communicator. This will be worked out in the future.
The events were places in such a way, that we will be able to measure the overhead
for our threading implementation (the cost of the synchronization objects).

This commit was SVN r9500.
2006-03-31 17:09:09 +00:00
Galen Shipman
5271948ec0 --- opal object changes
add object size to opal class
no longer need the size when allocating a new object as this is stored in
the class structure

--- dr changes 
Previous rev. maintained state on the communicator used for acking duplicate
fragments, but the communicator may be destroyed prior to successfull
delivery of an ack to the peer. We must therefore maintain this state
globally on a per peer, not a per peer, per communicator basis. 
This requires that we use a global rank on the wire and translate this as
appropriate to a local rank within the communicator. 

This commit was SVN r9454.
2006-03-29 16:19:17 +00:00
George Bosilca
dabe47ca3d A function declared as static inline and who's not used directly, but
only as a pointer reference completely confuse some compilers (gcc 4.1
included). Removing the inline (it was there before when the function
was used in the same file) seems to solve the problem. However, the most
strange thing is that the bug only appear when we compile directly in
the trunk directory. It just don't happens when we're using the VPATH
build.

This commit was SVN r9408.
2006-03-24 04:21:30 +00:00
Galen Shipman
e548f5f8a8 change pml_ob1_leave_pinned_pipeline param to mpi_leave_pinned_pipeline
This commit was SVN r9384.
2006-03-23 15:57:34 +00:00
Tim Woodall
12e502b10d use correct loop index
This commit was SVN r9356.
2006-03-21 18:18:22 +00:00
Galen Shipman
5600932c2f fix misc warnings
This commit was SVN r9339.
2006-03-20 15:41:45 +00:00
Tim Woodall
bd870519fd - modified convertor copy_and_prepare routines to accept an addition
flag, new flags to be included when convertor is initialized
- modified pml/btl module defs and added stub functions for diagnostic
  output routines to dump state of queues / endpoints
- updates to data reliability pml

This commit was SVN r9329.
2006-03-17 18:46:48 +00:00
George Bosilca
612570134f The request management framework has been redesigned. The main idea is
to let the PML (or io, more generally the low level request manager)
to have it's own release function (what was before the req_fini). This
function will only be called from the low level while the req_free will
be called from the upper level (MPI layer) in order to mark the request
as not used by the user anymore.

From the request point of view the requests will be marked as inactive
everytime we read their status (true for persistent as well). As 
MPI_REQUEST_NULL is already marked as inactive, the test and wait functions
are simpler. The drawback is that now we have to change in the
ompi_request_{test|wait} the req_status of the request once we get it's
status.

This commit was SVN r9290.
2006-03-15 22:53:41 +00:00
Tim Woodall
8bf6ed7a36 - corrected locking in gm btl - gm api is not thread safe
- initial support for gm progress thread
- corrected threading issue in pml
- added polling progress for a configurable number of cycles to wait for threaded case

This commit was SVN r9188.
2006-03-02 00:39:07 +00:00
Brian Barrett
1479a90b39 * assert() that endianness doesn't need to change if we are sending RDMA headers
around, since OB1 currently doesn't do the right thing there, but that should
  not happen in the near future because the R2 BML should not make any RDMA
  networks available between machines with different architectures
* Clean up the #ifs a little bit so that we don't do unneeded work when
  on big endian machines and heterogeneous support is disabled...

This commit was SVN r9184.
2006-02-28 19:54:46 +00:00
Rainer Keller
5102571c02 - Get rid of the temporary reachability bitmap.
This commit was SVN r9163.
2006-02-27 11:06:01 +00:00
Brian Barrett
285581dff2 More endian-related cleanups:
- moved hton64 and ntoh64 from the bunch of places it had been copied
    into one header file
  - properly set and use the btl_tcp's nbo option to put things in
    network byte order on the wire if both sides don't have the same
    endianness
  - Put the OB1 PML's headers (with a couple exceptions I need to discuss
    with Tim) in network byte order on the wire if both sides don't have
    the same endianness
  - since it was needed for the TCP BTL, move the orte_process_name_t
    HTON and NTOH macros from the TCP OOB to ns_types.h

This commit was SVN r9145.
2006-02-26 00:45:54 +00:00
Brian Barrett
2eb76ff0cd * finish the TEG/UNIQ/PTL removal
This commit was SVN r9118.
2006-02-23 00:39:01 +00:00
Brian Barrett
63be889350 * include the correct file if we are doing the component bypass thing with ob1
This commit was SVN r9111.
2006-02-22 16:16:38 +00:00
Rainer Keller
0642809967 - Trivial change:
Function mca_pml_ob1_recv_request_fin is not used anywhere

This commit was SVN r9029.
2006-02-14 09:48:24 +00:00
Rainer Keller
45e3415bb5 - With the change from MCA_PML_OB1_FREE in r8945 to the send/recv
counterparts, the reset to MPI_REQUEST_NULL of the upper
   struct ompi_request_t was broken. Nightly mpi_test_suite
   failed, e.g.
   mpirun -np 2 ./mpi_test_suite -t "Ring Isend"

This commit was SVN r9028.

The following SVN revision numbers were found above:
  r8945 --> open-mpi/ompi@83f83e5730
2006-02-14 09:09:05 +00:00
George Bosilca
418ffa32ce Remove a strange warning from gcc 4.2:
ompi/mca/pml/ob1/pml_ob1_sendreq.h:210:96: warning: backslash and newline separated by space

This commit was SVN r9013.
2006-02-13 19:02:39 +00:00
Tim Woodall
609ad79982 change default for pipeline
This commit was SVN r9012.
2006-02-13 17:54:36 +00:00
Galen Shipman
dd00fb029f set size to bytes packed
This commit was SVN r9011.
2006-02-13 17:53:54 +00:00
Galen Shipman
fe05d1f238 use size passed,
This commit was SVN r9010.
2006-02-13 17:53:30 +00:00
George Bosilca
bbe79f7f0e Performance tunning. The OB! progress functions just call the BML one. Thus, setting the
progress function in the mca_pml to the BML progress one, avoid having a cascade of
call to the progress function and speed up a little bit the execution.

This commit was SVN r9007.
2006-02-13 16:28:25 +00:00
Brian Barrett
566a050c23 Next step in the project split, mainly source code re-arranging
- move files out of toplevel include/ and etc/, moving it into the
    sub-projects
  - rather than including config headers with <project>/include, 
    have them as <project>
  - require all headers to be included with a project prefix, with
    the exception of the config headers ({opal,orte,ompi}_config.h
    mpi.h, and mpif.h)

This commit was SVN r8985.
2006-02-12 01:33:29 +00:00
George Bosilca
a4619b1a11 Remove a compilation warning from the RDMA engine.
Correct the problem introduced by the commit 8933 (thanks Tim). In order to avoid to much
trafic on the bus we do not compute the bytes_delivered (require an atomic size_t add)
we have to set it in the begining or otherwise we will report the wrong count in the
MPI status.

This commit was SVN r8968.
2006-02-10 21:14:08 +00:00
George Bosilca
0376dce258 Keep track of the ompi_proc in the comm_proc. This avoid a lookup for the processor and
simplify the execution path. The peer proc (ompi_proc_t) is set at the matching stage.

This commit was SVN r8962.
2006-02-10 18:55:43 +00:00
Galen Shipman
44fe6c3896 allow pml pipeline to cache memory registrations
to enable this (off by default) use: 
-mca pml_ob1_leave_pinned_pipeline 1 
!!AND!!!
-mca mpool_use_mem_hooks 1 

This commit was SVN r8949.
2006-02-09 15:49:51 +00:00
George Bosilca
269fc0c13a Cleanup:
1. remove all useless macros from the proc header file
2. merge 2 of the match macros (they share the same logic except one list)

This commit was SVN r8946.
2006-02-09 06:59:54 +00:00
George Bosilca
83f83e5730 Specialize the MCA_PML_OB1_FREE macro. When we call this macro we already know what kind
of request we are playing with (send or receive). Therefore, it's useless to have another
switch inside this macro and make the code bigger. Now, we have 2 versions
MCA_PML_OB1_SEND_REQUEST_FREE and MCA_PML_OB1_RECV_REQUEST_FREE.

This commit was SVN r8945.
2006-02-08 22:42:00 +00:00
George Bosilca
600f664db2 No comment !!! But this time I really remove the second lock ...
This commit was SVN r8943.
2006-02-08 21:43:46 +00:00
George Bosilca
89db0be4a8 Remove the second lock.
This commit was SVN r8940.
2006-02-08 19:19:57 +00:00
Galen Shipman
18bbb049d1 fix bsend bug, need to check that data length before packing.
This needs to go to the release branch

This commit was SVN r8937.
2006-02-08 17:39:33 +00:00
George Bosilca
0775c88a9b Remove all unused variables.--This line, and those below, will be ignored--
M    ob1/pml_ob1_recvreq.c

This commit was SVN r8934.
2006-02-08 07:20:48 +00:00
George Bosilca
e9706e6db0 Remove the macro to compute the length of the segments from the send header
and add a new macro that can be used for both sends and receives.
Move to atomic operations to manage the length of the sended or received
status. There is one instance where the atomic operation is not required
as the code can cannot be executed in same time by 2 differents threads.

This commit was SVN r8933.
2006-02-08 06:03:54 +00:00
Tim Woodall
e920ec67b9 - add new send flag (MCA_PML_OB1_SEND_COMPLETE) to force local completion prior to signalling mpi completion
This commit was SVN r8907.
2006-02-06 19:51:49 +00:00
George Bosilca
eb1d2dd290 Working down the latency (0.2 micro-sec on a Xeon 2Ghz) by removing the
second instance of the ompi_proc from the send and receive request. This
information is already available on the base request, so there is no
need for duplication. The drawback is that now (in order to avoid a
second lookup in the communicator array of procs) we have to set the base
proc in the PML's _ALLOC macro.

This commit was SVN r8900.
2006-02-05 06:13:07 +00:00
Rainer Keller
60c2ae768b - Change the spacing preventing finding the struct from script.
This commit was SVN r8819.
2006-01-26 11:55:00 +00:00
George Bosilca
a2f31b2bf6 Use the MCA_PML_BASE_REQUEST_MPI_COMPLETE macro to set the completed state to true.
Add back the mutex protection around the size computations as they are not yet atomic
operations.

This commit was SVN r8812.
2006-01-25 23:17:17 +00:00
Galen Shipman
1e0ea9dd6d Major fixes for the RDMA registration cache (leave_pinned).
This commit fixes issues with HPL runs on node counts > 4. 

This commit was SVN r8793.
2006-01-23 22:51:50 +00:00
Jeff Squyres
bd2524378a Remove unused variable
This commit was SVN r8784.
2006-01-22 12:20:01 +00:00
Rainer Keller
a437fd3aaf - As with George's r8771, move lock/unlock of ompi_request_lock into the
if-clause, getting rid of local schedule variable.

This commit was SVN r8778.

The following SVN revision numbers were found above:
  r8771 --> open-mpi/ompi@2fadddebc8
2006-01-21 21:02:35 +00:00
Rainer Keller
7442a641ea - Fix locking, not related to the current deadlocks.
This commit was SVN r8777.
2006-01-21 13:43:36 +00:00
George Bosilca
2fadddebc8 Decrease the lock granularity and remove it from the path where we don't need it.
Reorder the code to get rid of some local variables.

This commit was SVN r8771.
2006-01-20 17:19:22 +00:00
George Bosilca
68b0ba0f58 We need the copyright ...
This commit was SVN r8625.
2005-12-31 15:51:57 +00:00
Jeff Squyres
06b01b3b76 Fix uninitialized variable
This commit was SVN r8605.
2005-12-23 13:02:36 +00:00
Tim Woodall
e1a49793f7 improve diagnostics when registration fails
This commit was SVN r8599.
2005-12-22 16:32:12 +00:00
Jeff Squyres
efe84971ce Correct copyrights and some typos
This commit was SVN r8588.
2005-12-22 05:37:28 +00:00
Tim Woodall
ebbac05f3c remove questionable sched_yield - probably left over from debugging
This commit was SVN r8457.
2005-12-12 16:00:27 +00:00
George Bosilca
5c8c939713 Move the comment at the right place.
This commit was SVN r8445.
2005-12-10 23:25:29 +00:00
George Bosilca
c6eb429a9a Wondows work:
- remove windows socket initialization (it's already in the TCP component)
 - protect all used header files
 - remove the unused ones.

This commit was SVN r8434.
2005-12-10 21:38:48 +00:00
Tim Woodall
bce1d2e220 volatile not required for non-threaded case
This commit was SVN r8392.
2005-12-06 18:27:56 +00:00
Tim Woodall
e135f850af backed out to much :-)
This commit was SVN r8356.
2005-12-01 17:32:27 +00:00
Tim Woodall
394bf196bd back out changes to match only one probe - consensus was we should
allow this if multiple threads post multiple probes

This commit was SVN r8353.
2005-12-01 17:17:06 +00:00
Tim Woodall
53a33f3bed dont allow fragment to match more than one probe
This commit was SVN r8352.
2005-12-01 17:06:40 +00:00
Tim Woodall
d7c1c23e3f corrections for handling probe with out of order delivery
- when processing out of order list - reset match to null on each iteration
- check matched request type and if probe - complete probe and queue fragment
  on unexpected list

This commit was SVN r8339.
2005-11-30 17:57:59 +00:00
George Bosilca
c4e843ae08 A little add to the comment.
This commit was SVN r8143.
2005-11-13 23:01:41 +00:00
Tim Woodall
607f62accd - pass a flag to the peer indicating wether data is contiguous at the soure
- only attempt to schedule rdma if contiguous at both src/dst
- need to review this for next release 

This commit was SVN r8119.
2005-11-11 15:33:25 +00:00
Tim Woodall
4c7c277b0a improve the scalability of MPI_Waitall ...
note that any code that sets a request to a completed state must
now increment a counter for every completed request

This commit was SVN r8073.
2005-11-10 00:45:27 +00:00
Tim Woodall
2f6d50e0c6 init rdma count
This commit was SVN r8071.
2005-11-10 00:04:25 +00:00
Tim Woodall
78c98386d7 should reset the count (for persistent requests)
This commit was SVN r8064.
2005-11-09 22:02:48 +00:00
Tim Woodall
58b46d2da0 return mpool resources when request completes rather than in free
This commit was SVN r8063.
2005-11-09 21:59:01 +00:00
Jeff Squyres
42ec26e640 Update the copyright notices for IU and UTK.
This commit was SVN r7999.
2005-11-05 19:57:48 +00:00
Tim Woodall
e45f4744ee do not return these descriptors to cache
This commit was SVN r7986.
2005-11-03 23:20:38 +00:00
Tim Woodall
26003bc952 fix from release branch - don't use get protocol if more
than one btl is available

This commit was SVN r7984.
2005-11-03 20:52:56 +00:00
George Bosilca
d916e0c5b4 The (I hope) final solution for the convertor problem. As all the PML inherit
the base send and receive request from the pml_base, we can solve our problem
if we construct the convertor attached to any request in the pml_base_construct
function. At the end of the life time for each request (here life time is 
related to one utilisation, without taking in account the cache) we release
all information attached to the convertors in the _FINI macro by calling the
ompi_convertor_cleanup.

This commit was SVN r7910.
2005-10-28 03:26:36 +00:00
Brian Barrett
bf67c9387b * initialize send request convertor with the correct type (convertor instead
of request).  This fixes at least the bug with NetPIPE in 64bit land that
  Troy was seeing. 

This commit was SVN r7904.
2005-10-27 23:08:27 +00:00
Tim Woodall
4fc5b2105a this is currently an int - we shouldn't restrict it unless required
This commit was SVN r7895.
2005-10-27 17:06:58 +00:00
George Bosilca
1d75b7972f Solve thee problem with the reference count on the datatype (RT bug 1492). The problem is that the
convertor (when prepared) increase the reference count on the used datatype. This reference count
will be released only when the OBJ_DESTRUCT is called on a convertor. However, having to call
OBJ_CONSTRUCT and OBJ_DESTRUCT on each request every time we want to use it (even when it come
from the cache) is an expensive operation. This can be avoided is the OBJ_DESTRUCT will leave the
convertor in exactly the same state as OBJ_CONSTRUCT. With this approach we just have to call
OBJ_CONSTRUCT for each convertor once when we initially create the request.

This commit was SVN r7813.
2005-10-19 20:57:39 +00:00
Jeff Squyres
f9974f72e0 construct/destruct convertor when requests are
constructed and allocated to free lists

This commit was SVN r7791.
2005-10-18 12:19:43 +00:00
Edgar Gabriel
5d7fbd9d2e minor change in bml_r2_add_procs: the memory for the bml_endpoints structure
has to be allocated outside of the routine. Thus, the update version of pml/ob1/oml_ob1.c

This commit was SVN r7739.
2005-10-12 20:59:25 +00:00
Tim Woodall
22f460bdc5 merge in changes from release branch
This commit was SVN r7737.
2005-10-12 20:24:43 +00:00
Tim Woodall
6da9561ea8 merge in correction from v1.0
This commit was SVN r7732.
2005-10-12 16:40:52 +00:00
Tim Woodall
d859855dea merge in changes from 1.0
This commit was SVN r7728.
2005-10-12 15:54:35 +00:00
Tim Woodall
4a71621410 merge in scheduling changes from release branch
This commit was SVN r7699.
2005-10-11 20:41:51 +00:00
Brian Barrett
b7ef094766 * the cid in the header is only 16 bits, so limit our max cid to what can fit in there.
This commit was SVN r7639.
2005-10-05 15:43:28 +00:00
George Bosilca
f8355ec104 Cast the right side member to void* before assignment.
This commit was SVN r7608.
2005-10-04 12:37:23 +00:00
Tim Woodall
c05ef28f6e - added routine to ompi_pointer_array to remove array contents
- corrected memory hook callback to catch all allocations (need to optimize this)
- don't attempt to consolidate allocations

This commit was SVN r7600.
2005-10-03 23:29:26 +00:00
Galen Shipman
67d38b7896 Add multi-nic support to openib
Fix connection establishment race in openib 
Other misc 

This commit was SVN r7570.
2005-09-30 22:58:09 +00:00
Galen Shipman
05e6e51fec re-reg from min of bases and max of bounds
add byte counting for total registered memory 

This commit was SVN r7546.
2005-09-29 21:28:54 +00:00
Galen Shipman
c1f5543f62 need to call mpool_release on all registrations obtained in the pml.
sanity checks 

This commit was SVN r7530.
2005-09-28 04:49:40 +00:00
Galen Shipman
b9b78f8f5d modify rcache_rb to find registrations in the middle of a base and bound
This commit was SVN r7528.
2005-09-28 02:11:35 +00:00
Galen Shipman
0fc17cedee change order of ops on register
This commit was SVN r7525.
2005-09-27 21:43:41 +00:00
Galen Shipman
3c97b3f722 Modified the registration to include a base_align and bound_align for
searching the tree. Modified the memory callback to search the tree at each
page boundary for registrations. This is necessary as an application may
malloc memory and send out of any portion of that memory, even discontiguous
regions. 

This commit was SVN r7510.
2005-09-27 02:01:21 +00:00
Galen Shipman
9fe5844071 decrement ref count on removal of registration from mru and tree.
add misc asserts to check for proper reference counting. 

ugly hack 1 -- use mallopt to never release memory ala sbrk - this is
commented out in mca_btl_mvapi_component_init

ugly hack 2 -- test registrations comming out of the tree via rcache_find, for
an unknown reason the tree is returning registrations where the address is not
within the base or bound of the registration. If this happens, we return
NULL. 

comment out code to enable mem hooks if leave_pinned is set, note we can do
this via an mca param and will default it to leave_pinned with mem_hooks when
we iron out these issues. 

I am adding a unit test for the rcache. Note that we have a unit test for the
rb tree but the compare function is significantly different than that used for
registrations. After we have tracked down the issues with rcache_rb we will
remove the above hacks. 

This commit was SVN r7499.
2005-09-24 00:24:49 +00:00
Andrew Friedley
555ae37255 Add lib{opal,orte,mpi}.la to appropriate LIBADD's, some whitespace cleanup as well.
This commit was SVN r7477.
2005-09-22 12:28:54 +00:00
Tim Woodall
9791c066e8 dont attempt to pin the receive buffer if data has
already been received

This commit was SVN r7475.
2005-09-21 23:23:47 +00:00
Tim Woodall
a74ca0062a reductions to initial memory footprint
This commit was SVN r7455.
2005-09-21 19:10:56 +00:00
Galen Shipman
4296e723c9 default free_lists to smaller size..
This commit was SVN r7454.
2005-09-21 18:55:07 +00:00
Tim Woodall
782e5b21cc cleanup
This commit was SVN r7451.
2005-09-21 15:34:45 +00:00
Tim Woodall
9b96ecf9b1 correction for rdma case - currently rdma entire message
This commit was SVN r7392.
2005-09-15 19:36:56 +00:00
Tim Woodall
6ae2ae4d1a - code cleanup
- correct mpi semantics

This commit was SVN r7390.
2005-09-15 18:47:59 +00:00
Tim Woodall
6ffa947a85 dont try and use convertor if not initialized
This commit was SVN r7375.
2005-09-14 22:03:52 +00:00
Tim Woodall
c25fb5dab0 - fixed issue w/ btl send-in-place option that was affecting tcp
- reduced size of match header by an additional 4 bytes to 16 bytes
- corrections for buffered send (work in progress)

This commit was SVN r7371.
2005-09-14 17:08:08 +00:00
Galen Shipman
f0b1ea52bc if all else fails in prepare_src,, pack
init the rdma_pending list in ob1

This commit was SVN r7366.
2005-09-14 04:41:33 +00:00
Galen Shipman
b3db6fc2d1 Add code for mem_free hooks, commented out right now as there are performance
issues. 
In PML-OB1 - fix for sync-sends of zero length. 

This commit was SVN r7362.
2005-09-14 02:17:04 +00:00
Tim Woodall
ee58631c82 corrections for probe/iprobe
This commit was SVN r7342.
2005-09-13 16:45:41 +00:00
Galen Shipman
d932cfd342 merge of rcache work into the trunk.. lotsa fun ;-)..
I regression tested before the merge, I will regression test tonight and
correct issues that might have crept in. 

This commit was SVN r7329.
2005-09-12 22:28:23 +00:00
George Bosilca
8b1c28e068 No more warnings for the threaded case compilation. Some of the fields have to be declared
as volatile to make sure the compiler don't try to optimize them out. 

This commit was SVN r7302.
2005-09-11 20:48:37 +00:00
George Bosilca
2e3764a181 Remove the unused variable p + something that SVN figure out and where I dont see any difference,
certainly just some conversion from TAB to space ...

This commit was SVN r7287.
2005-09-10 04:06:49 +00:00
George Bosilca
0ad973afdd Do not modex sned and receive the proc architecture. This is now done outside the PML in the proc
init and was added there few weeks ago by Ralph.

This commit was SVN r7282.
2005-09-09 22:21:57 +00:00
Brian Barrett
ed56e743b7 * update configure.ac to use the modern version of AC_INIT and
AM_INIT_AUTOMAKE, instead of the deprecated version.
* Work around dumbness in modern AC_INIT that requires the version
  number to be set at autoconf time (instead of at configure time, as
  it was before).  Set the version number, minus the subversion r number,
  at autoconf time.  Override the internal variables to include the r
  number (if needed) at configure time.  Basically, the right thing
  should always happen.  The only place it might not is the version
  reported as part of configure --help will not have an r number.
* Since AM_INIT_AUTOMAKE taks a list of options, no need to specify
  them in all the Makefile.am files.
* Addes support for subdir-objects, meaning that object files are put
  in the directory containing source files, even if the Makefile.am is
  in another directory.  This should start making it feasible to
  reduce the number of Makefile.am files we have in the tree, which
  will greatly reduce the time to run autogen and configure.

This commit was SVN r7211.
2005-09-07 05:54:53 +00:00
Tim Woodall
7ccc43a052 correct for btls that don't support get
This commit was SVN r7201.
2005-09-06 19:01:35 +00:00
Tim Woodall
4fbf7965e3 check for rdma btls when leave pinned is set
This commit was SVN r7151.
2005-09-02 15:04:47 +00:00
Tim Woodall
47b41c7081 correct regression
This commit was SVN r7098.
2005-08-30 19:38:56 +00:00
Tim Woodall
2a9ab3eb10 move obj construct back into open
This commit was SVN r7057.
2005-08-26 20:28:42 +00:00
Tim Woodall
47ee552220 can't mark request as complete until local completion as buffers point to user data
This commit was SVN r7054.
2005-08-26 20:18:16 +00:00
Galen Shipman
53a0b37946 free the descriptor, don't cache it.
This commit was SVN r6991.
2005-08-23 23:49:07 +00:00
Tim Woodall
08a90e4318 work in progress
This commit was SVN r6990.
2005-08-23 23:05:01 +00:00
Tim Woodall
5a399e8150 default to using new BTLs "-mca pml ob1" rather than older ptls
This commit was SVN r6984.
2005-08-23 20:21:44 +00:00
Tim Woodall
95bf77fc8d corrections for rdma pipeline
This commit was SVN r6926.
2005-08-18 17:06:35 +00:00
Tim Woodall
f274f524ab - added get based protocol (if supported by btl) for pre-registered memory
- removed 8 bytes from the majority of the pml headers 

This commit was SVN r6916.
2005-08-17 18:23:38 +00:00
Tim Woodall
dc3e8bf041 ack is not required if we are going to do rdma remainder of the message
This commit was SVN r6893.
2005-08-15 22:30:52 +00:00
Tim Woodall
adce576d5e corrections for eager send of data in place
This commit was SVN r6892.
2005-08-15 21:31:52 +00:00
Jeff Squyres
c465eb8567 Rename opal/threads/thread.h -> opal/threads/threads.h to avoid a
naming conflict with Solaris' <thread.h>

This commit was SVN r6879.
2005-08-15 11:02:01 +00:00
Galen Shipman
adb20d6fcf fix sync send..
This commit was SVN r6875.
2005-08-14 22:10:08 +00:00
Brian Barrett
f273d84b1b * update ob1 to direct call
* don't know what I was thinking, but can't use the MCA_PML_CALL macro on
  the two data values, as they don't have things that the macro can
  expand into

This commit was SVN r6868.
2005-08-14 03:14:20 +00:00
Jeff Squyres
cf16a521c8 Ensure to get ompi/include/constants.h
This commit was SVN r6845.
2005-08-12 21:42:07 +00:00
Tim Woodall
0ab588e5d2 added support for sending eager messages directly from user buffer
if supported by btl - btl must set MCA_BTL_FLAGS_SEND_INPLACE

This commit was SVN r6844.
2005-08-12 21:33:01 +00:00
Tim Woodall
15c5fd6092 cleanup
This commit was SVN r6838.
2005-08-12 19:29:05 +00:00
Galen Shipman
9cbcdae14b more BML related stuff.. static_components.h is autogen'd configure.params is
not. Compile warning fixed in pml_ob1_sendreq.c

This commit was SVN r6821.
2005-08-12 14:40:06 +00:00
Galen Shipman
b01ebf45c9 Fixed build error related to direct call (bml_direct_call.h). Misc bug fixes
and compiler warning issues. Fixed threaded build issue. 

This commit was SVN r6819.
2005-08-12 14:08:40 +00:00
Galen Shipman
c3c83aa3e1 BML (BTL Managment Layer). Allows BTL's to be used outside of the PML. See
bml.h and PML-OB1 for usage. 

This commit was SVN r6815.
2005-08-12 02:41:14 +00:00
Brian Barrett
95fd068ffa remove hard coded constants for value of MPI_TAG_UB and the max CID and add
the values to the PML structure.  This will allow PMLs that want to do
hardware matching at the cost of a smaller range of valid tags and cids.
Updated all the places that used the MPI_TAG_UB_VALUE constant to instead
look at the pml struct.

This commit was SVN r6778.
2005-08-09 14:56:04 +00:00
Tim Woodall
e9ca560f16 corrections for probe/iprobe
This commit was SVN r6770.
2005-08-08 21:07:12 +00:00
George Bosilca
8b93cb7661 Rename all the functions starting with mca_base_modex to mca_pml_base_modex.
Change all the places where they are used to fit the new name.

Remove the code to check the remote arch from the PML. We will have a GPR mechanism
in ompi_mpi_initialize to do that.

This commit was SVN r6750.
2005-08-05 18:03:30 +00:00
Brian Barrett
24116a3935 * fix up a bunch of threading issues when progress and/or mpi threads
are enabled.  Mostly just ADD32 -> ADD_SIZE_T issues and naming of
  variables in THREAD_{LOCK,UNLOCK}

This commit was SVN r6706.
2005-08-02 17:36:01 +00:00
Tim Woodall
2324f36065 call ob1 progress rather than endpoint - as it may not have one
This commit was SVN r6696.
2005-08-01 22:30:25 +00:00
Brian Barrett
170777d399 * exit on error, not success...
This commit was SVN r6677.
2005-07-29 00:07:52 +00:00
Tim Woodall
b2ec71a609 correct for case where eager limit is greater than min_rdma_size
This commit was SVN r6663.
2005-07-28 19:35:47 +00:00
Brian Barrett
93671ab150 * remove ompi_{ignore,unignire} files
This commit was SVN r6658.
2005-07-28 18:46:46 +00:00
Brian Barrett
b0b6ddd078 * add --enable-heterogeneous (default: enabled) to enable heterogeneous
support in OMPI.  Currently only enables/disables the architecture
  sharing modex in ob1 pml.
* Add sds framework to ompi_info
* Figure out table ids to use for Portals BTL at configure time, since
  we should use 30 & 31 on Red Storm, but the reference implementation
  only supports 0-8.
* Some bug fixes in Portals UTCP sds

This commit was SVN r6650.
2005-07-28 16:16:13 +00:00
Galen Shipman
168274db45 Call progress on send schedule so that prepare_src can run if the rdma ack
lands between sending fragments up to rdma_offset. 

This commit was SVN r6646.
2005-07-28 15:38:31 +00:00
Brian Barrett
6aa464b67e More changes from Red Storm port
- only call sched_yield if it exists
  - don't fail out if modex doens't work in ob1
  - bunch of fixes for Portals BTL
  - add cnos rml component
  - add NULL gpr component (should only be used if replica AND proxy
    fail to load)  

This commit was SVN r6629.
2005-07-27 23:07:14 +00:00
Tim Woodall
2a392b9fca removed debug
This commit was SVN r6571.
2005-07-20 21:13:55 +00:00
George Bosilca
404d9ea990 One less compilation warning.
This commit was SVN r6561.
2005-07-20 06:48:11 +00:00
George Bosilca
3b52a31e1f Make some compilers quiet. Otherwise they complain about uninitialized variables even if
the logic inside prevent an execution path where they can be used uninitialized.

This commit was SVN r6560.
2005-07-20 06:47:10 +00:00
Tim Woodall
14ba3322e9 cleanup
This commit was SVN r6546.
2005-07-18 21:22:55 +00:00
Tim Woodall
0423d414ef - correction for sync send
- now passing all of the intel p2p list

This commit was SVN r6543.
2005-07-18 18:54:25 +00:00
Tim Woodall
025dcfa80b dont try and pack zero byte message
This commit was SVN r6532.
2005-07-15 20:58:11 +00:00
Jeff Squyres
f41e4149fa - Add new mpool base function: lookup by module name. This allows
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.
2005-07-15 20:01:35 +00:00
Tim Woodall
3ca9536695 yet another change to sequence logic
This commit was SVN r6528.
2005-07-15 18:34:37 +00:00
Tim Woodall
612734f395 set request status on start
This commit was SVN r6526.
2005-07-15 16:17:33 +00:00
Tim Woodall
27e8f00fc0 decrease pipeline depth for rdma case
This commit was SVN r6500.
2005-07-14 21:28:17 +00:00
Tim Woodall
e163943eac check for null registration
This commit was SVN r6493.
2005-07-14 19:07:01 +00:00
Brian Barrett
e4168a0fcb * another place I need another username
This commit was SVN r6483.
2005-07-14 13:44:12 +00:00
George Bosilca
6aa956241f Solve the issues when several PML are available. The main problem here come from the fact that an PML
is a lot more difficult than a PTL, and it can adapt it's behavior to the level of threading required
by the user. In this case the behavior is the priorit of the PML. Therefore this information is never
availale before the init function (of the PML) is called. So I try to keep nearly the same structure
as it was before, with one change. When a PML get initialized it does not necessarily means it has been
selected, so it does not means it has to create all it's internal structures (and select the PTL and
all this stuff). They can all be done later, when a PML knows that it definitively get selected
(when the enable function is called with the argument set to true). Thus, in the case of a PML close
one have to check if the PML has been selected or not before trying to clean up the internals.

I had to change the MPI_Init function to allow the PML to be enabled before we start adding procs inside.

This commit was SVN r6434.
2005-07-12 05:40:56 +00:00
Brian Barrett
6e4f33e48c * after careful consideration, there's really no reason to force config.m4
components to succeed with --enable-dist.  Instead, just add them to
  all_components and make dist will still work - we're going to stamp out
  the Makefiles no matter what
* Add missing header to ob1 pml for make dist
* Clean up the Portals BTL configure code

This commit was SVN r6413.
2005-07-10 01:09:31 +00:00
Tim Woodall
11f1f067c2 use the btls min rdma size as the cutoff (rdma offset) for the send protocol
This commit was SVN r6372.
2005-07-07 22:08:56 +00:00
Tim Woodall
eabdb860bc tuning
This commit was SVN r6370.
2005-07-07 20:58:57 +00:00
Jeff Squyres
ba99409628 Major simplifications to component versioning:
- After long discussions and ruminations on how we run components in
  LAM/MPI, made the decision that, by default, all components included
  in Open MPI will use the version number of their parent project
  (i.e., OMPI or ORTE).  They are certaint free to use a different
  number, but this simplification makes the common cases easy:
  - components are only released when the parent project is released
  - it is easy (trivial?) to distinguish which version component goes
    with with version of the parent project
- removed all autogen/configure code for templating the version .h
  file in components
- made all ORTE components use ORTE_*_VERSION for version numbers
- made all OMPI components use OMPI_*_VERSION for version numbers
- removed all VERSION files from components
- configure now displays OPAL, ORTE, and OMPI version numbers
- ditto for ompi_info
- right now, faking it -- OPAL and ORTE and OMPI will always have the
  same version number (i.e., they all come from the same top-level
  VERSION file).  But this paves the way for the Great Configure
  Reorganization, where, among other things, each project will have
  its own version number.

So all in all, we went from a boatload of version numbers to
[effectively] three.  That's pretty good.  :-)

This commit was SVN r6344.
2005-07-04 20:12:36 +00:00
Brian Barrett
9f44b80291 * rename ompi_argv to opal_argv
* rename ompi_basename to opal_basename
* rename ompi bitop functions to opal
* rename ompi_cmd_line to opal_cmd_line
* rename ompi_sizet2int to opal_sizet2int
* rename orte_daemon_init to opal_daemon_init
* rename ompi_few to opal_few

This commit was SVN r6330.
2005-07-04 00:13:44 +00:00
Brian Barrett
a13166b500 * rename ompi_output to opal_output
This commit was SVN r6329.
2005-07-03 23:31:27 +00:00
Brian Barrett
23b687b0f4 * rename ompi_event to opal_event
This commit was SVN r6328.
2005-07-03 23:09:55 +00:00
Brian Barrett
39dbeeedfb * rename locking code from ompi to opal
This commit was SVN r6327.
2005-07-03 22:45:48 +00:00
Brian Barrett
ccd2624e3f * rename ompi_progress to opal_progress
This commit was SVN r6326.
2005-07-03 21:57:43 +00:00