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

1810 Коммитов

Автор SHA1 Сообщение Дата
Brian Barrett
cba9b1e6b7 * the POrtals MTL is now stable enough to not have it ompi ignored
This commit was SVN r10682.
2006-07-06 18:26:48 +00:00
Brian Barrett
58ce434292 * remove the broken, defunct portals PML. Not needed anymore, since we can
do the same basic thing with the MTL design

This commit was SVN r10681.
2006-07-06 18:24:08 +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
Brian Barrett
b7b93e48f5 * can definitely be optimized more, but add code for calling send for MTL
components that have a blocking send implementation

This commit was SVN r10679.
2006-07-06 16:37:59 +00:00
Brian Barrett
ef6b7e170f * make mtl datatype wrapper code inline functions
This commit was SVN r10678.
2006-07-06 15:58:07 +00:00
Galen Shipman
2217fd4003 reset receive request convertor for persistent requests
We can always call unpack.. 

This commit was SVN r10677.
2006-07-06 15:13:26 +00:00
Brian Barrett
ef8c6a249b * Fix up some direct-calling issues for the PML/MTL
This commit was SVN r10676.
2006-07-06 15:12:38 +00:00
Brian Barrett
95118f83f6 * complete all outstanding Portals events before shutting down
* Remove all knowledge of PML requests from the Portals MTL

This commit was SVN r10675.
2006-07-06 14:33:29 +00:00
Brian Barrett
26eee59032 * turns out that you should only call bsend_request_alloc or
bsend_request_init, but not both.  Otherwise, you don't free
  some buffer space and end up leaking buffers and ending in
  badness
* since you only call alloc() or init(), but not both, need to 
  restore reference counting in init()

This commit was SVN r10674.
2006-07-06 14:02:51 +00:00
Gleb Natapov
e05ec69dc4 print "flush error" only once.
This commit was SVN r10672.
2006-07-06 08:03:01 +00:00
Gleb Natapov
9b0807e547 Put pending fragment on the right waiting list.
This commit was SVN r10671.
2006-07-06 07:51:23 +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
Brian Barrett
c793ad0a3d unpack the amount received, not the amount we had space to receive.
This commit was SVN r10669.
2006-07-05 22:31:29 +00:00
Galen Shipman
c933c0f65f unpack the length actually received, not the length posted..
This commit was SVN r10668.
2006-07-05 22:16:46 +00:00
Brian Barrett
3e29949cc8 * Fix shutdown code in utcp portals code
* make all sends long sends for now in Portals MTL
* More optimized match check

This commit was SVN r10667.
2006-07-05 21:46:45 +00:00
Galen Shipman
fe480cd003 change mask bits and don't call convertor if we received directly into the
user buffer.. 

This commit was SVN r10665.
2006-07-05 21:10:09 +00:00
Jeff Squyres
429c25095e Fix for bug #176.
* Fix for two problems introduced by r10661:
   1. ensure to use the key ''after'' it is initialized (sigh).
   1. handle the case where we free the attrkey before it is fully
      initialized (i.e., some other error causes us to free it).  In
      this case, don't try to remove the key from the hash map,
      because it won't exist.
 * More accurate zeroing in the keyval constructor
   (ompi_attrkey_item_constructor)
 * Widen the scope of the alock such that the attrkey destructor does
   not need to acquire it.  Instead, assume that the caller already
   has it.
 * Add a comment about why the keyval may get destroyed as the result
   of deleting an attribute (so that I don't have to figure it out
   again the next time I read this code :-) )

This commit was SVN r10664.

The following SVN revision numbers were found above:
  r10661 --> open-mpi/ompi@fdba2c9df0
2006-07-05 20:23:08 +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
Jeff Squyres
fdba2c9df0 Per the analysis in bug #184, move some assignments around to effect
thread safety.  This is likely to be only the first of multiple steps
for complete thread safety in the MPI attribute code.  All tests
[continue to] pass the intel and ibm attribute tests.

Also renamed a variable from "attr" to "attrkey" to reflect that it's
a keyval, not an attribute.

This commit was SVN r10661.
2006-07-05 17:37:17 +00:00
Brian Barrett
4ee4acb6a6 * ignore some Cray-only code when not on the Cray machine
This commit was SVN r10660.
2006-07-05 17:16:27 +00:00
Brian Barrett
043153dad3 * fix opal_list_item_t -> ompi_free_list_item_t type change
This commit was SVN r10659.
2006-07-05 17:02:16 +00:00
Rainer Keller
23d3628691 - Declare and initialize the peruse_handle_list_lock
This commit was SVN r10656.
2006-07-05 13:48:25 +00:00
George Bosilca
d2bf3844e9 Include the header file which define opal_output.
This commit was SVN r10648.
2006-07-04 06:23:01 +00:00
George Bosilca
2bdb06b549 Force the request to NULL in order to avoid complaints from the compiler.
This commit was SVN r10647.
2006-07-04 06:20:13 +00:00
George Bosilca
402a03d229 Add a .h dependency in order to remove a warning when we compile without --enable-debug.
This commit was SVN r10646.
2006-07-04 04:53:38 +00:00
George Bosilca
9ac1a6cdb3 Remove the warnings. Now they are ompi_free_list_item not opal_list_item_t.
This commit was SVN r10645.
2006-07-04 04:21:16 +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
Graham Fagg
f10c21b746 corrected mca param description and algorithm count
(now to find out why I have disallowed direct calling fo the bm tree)

This commit was SVN r10603.
2006-06-30 23:22:49 +00:00
Josh Hursey
2edf1511fd Closes ticket #173 : Split name linking up for orte/ompi shared tools.
This moves the logic to create the symbolic links for:
 - mpirun
 - mpiexec
 - ompi-ps
 - ompi-clean
and their respective man pages to the ompi level from
the orte layer.

This is a bit pedantic, but orte shouldn't be doing the
work of ompi since that is a bit of an abstraction break.

Note: need to autogen.sh to get this. Sorry :(

This commit was SVN r10602.
2006-06-30 22:01:56 +00:00
Graham Fagg
f64cbbe8f2 ops. some decisions used extent rather than size for decision making
yes this means it WAS possible for two nodes to choice two different algorithms
(discovered by Doug Gregor and figured out by George)
Also changed some names like size to comsize so we know which sizes we are using where
This should be updated in al versions

This commit was SVN r10601.
2006-06-30 21:49:04 +00:00
Brian Barrett
df9273587f * romio_cb_write should also be forced to enable when optimizations are
requested

This commit was SVN r10584.
2006-06-30 15:06:10 +00:00
Galen Shipman
7e079d20ab fix for stupid casting.. addresses issue on PPC64 where sizes get set
improperly and badness ensues..

This commit was SVN r10574.
2006-06-29 21:58:50 +00:00
George Bosilca
7d59a6885b Remove all references to the MRU list. Add back the repost list checks. For some reasons
it decrease the latency by around 0.3 micro-seconds ...

This commit was SVN r10571.
2006-06-29 19:25:44 +00:00
George Bosilca
78f0de127d Typo.
This commit was SVN r10567.
2006-06-29 15:16:25 +00:00
George Bosilca
4df58b5579 Latency is LATENCY as everybody understand it not some percentage of something. Now, we really
order the BTL depending on the real latency for the eager protocol. Starting from now, the
latency one can specify for the devices will be in micro-second, while the bandwidth is in Mbs
(as it was before).

This commit was SVN r10566.
2006-06-29 15:13:58 +00:00
George Bosilca
238147f576 Help the compiler to optimize the code. Now the order in the enum reflect the
order we use them in the switch.

This commit was SVN r10565.
2006-06-29 15:10:58 +00:00
George Bosilca
9bf281bca2 Remove the gm_mru_reg list as it is never used. Cleanup the repost logic. Now we repost
a receive fragment only when we're done with the message from inside and we try to add it
to the list.

This commit was SVN r10564.
2006-06-29 15:10:11 +00:00
George Bosilca
43b7b17033 Release the memory registration when the descriptors get freed.
This commit was SVN r10540.
2006-06-28 15:24:16 +00:00
George Bosilca
d9daa34a6c Set the registration field to NULL when we create a new fragment.
This commit was SVN r10539.
2006-06-28 15:23:36 +00:00
Gleb Natapov
c8f75c472a remove modulo op from fast path. Improvement 0.02-0.04ms.
This commit was SVN r10538.
2006-06-28 12:00:47 +00:00
Gleb Natapov
e58a89ef3e OMPI_ENABLE_DEBUG is always defined (to 0 or 1). Use #if and nto #ifdef.
This commit was SVN r10537.
2006-06-28 11:25:09 +00:00
Gleb Natapov
704a5eb645 Support for LMC (lid mask count) and multiple QPs per port.
This commit was SVN r10536.
2006-06-28 07:23:08 +00:00
Galen Shipman
e6cd8db0e5 DR will now checksum on a per btl basis (see MCA_BTL_FLAGS_NEED_CSUM). We
still always send ACK's, teasing apart completion for ACK/no ACK looks like a
pain in the .. 

This commit was SVN r10530.
2006-06-27 20:23:47 +00:00
Brian Barrett
0031e39d72 * fix for dumb memory bug introduced in romio performance fixup code
This commit was SVN r10528.
2006-06-27 19:58:18 +00:00
Brian Barrett
9a65a7ca97 * re-add -Is necessary for VPATH builds.
This commit was SVN r10524.
2006-06-27 14:10:34 +00:00
Jeff Squyres
df45221a3e Until a real fix for #142 is found, this workaround prohibits using
mpi_leave_pinned when multiple OpenIB HCA ports are found.
Specifically, if mpi_leave_pinned == 1 and ultiple HCA ports are
found, the MCA parameter btl_openib_max_btls is set to 1.  If the MCA
parameter btl_openib_warn_leave_pinned_multi_port is true, emit a
warning that this happened (having an MCA parameter to control the
warning allows users/sysadmins to turn it off instead of being nagged
for every run).

This commit was SVN r10521.
2006-06-27 10:43:03 +00:00
Gleb Natapov
012d95d195 If ompi_free_list_grow fails wait until resources are available instead of
spinning without progress.

This commit was SVN r10520.
2006-06-27 09:23:51 +00:00
Gleb Natapov
52208d7bf9 Whe don't need to register zero sized frags.
This commit was SVN r10519.
2006-06-27 08:50:12 +00:00
Galen Shipman
8855e5b73a Fixes for DR as well as better diagnostic..
Successfully passing the intel test suite with/without induced errors/drops. 

This commit was SVN r10518.
2006-06-26 22:29:29 +00:00
Brian Barrett
970d858f30 * Add performance code requested by LANL, per ticket #128. Must be
explicitly enabled at run-time with the mca parameter
  io_romio_enable_parallel_optimizations set to something non-zero.
  This will enable some magic flags in Panasas if the user didn't
  set them (either on or off) and do some slightly better things
  with strided collective writes.

This commit was SVN r10516.
2006-06-26 22:26:36 +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
41c886399b Don't let the user to specify flags which does not make sense. If the PUT flag is
specified check that the put function is available for the BTL. Same safe check for
the GET function. At the end make sure that at least on communication protocol is
specified, otherwise force the send flag.

This commit was SVN r10507.
2006-06-26 20:00:18 +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
Gleb Natapov
b7715395cb Return descriptor before sending credits one more time. We may need it.
This commit was SVN r10495.
2006-06-26 07:05:58 +00:00
Andrew Friedley
7bfac82ce7 Change over from lazy connection setup to setting up at initialization
time.

UD is connectionless, and as long as peers are statically assigned to QPs,
there is no reason to set up the adressing information lazily.

Lots of code was axed, as endpoints no longer have state.  Removed a
number of other elements in the endpoint struct to make it as lightweight
as possible.

I was able to remove an entire function call/branch in the send path,
which I believe is the main contributor to a 2us drop in NetPIPE latency.

Some whitespace cleanups as well.

Passes IBM test suite, and all but certain intel tests that were failing
before the change, over ob1 PML.

This commit was SVN r10494.
2006-06-23 16:50:50 +00:00
Andrew Friedley
046f4cd4ae Enough cleanup for now.
Moved a lot of the module-specific init from the component init to the module init.

Try keeping a pointer to reduce indexing, didn't seem to help - leaving in place
for now.

This commit was SVN r10485.
2006-06-22 22:12:13 +00:00
Brian Barrett
7dd1112d07 * implement missing MPI::Is_finalized() function
This commit was SVN r10482.
2006-06-22 19:40:54 +00:00
Andrew Friedley
8392ed4cac A checkpoint before I really do some cleanup.. nothing pretty here.
Playing around with OPAL_LIKELY/UNLIKELY, no real gains yet.

Reworked progress() to process many WC's at a time, as well
as immediately repost groups of receive buffers.

This commit was SVN r10481.
2006-06-22 18:06:55 +00:00
George Bosilca
9eb023a5c2 OK my last commit was ... kind of wrong. It only worked if the element_size
was smaller than the CACHE_LINE_SIZE. Here is the version that works.

In fact this works on 2 steps. First we set the element size to something
multiple of the desired alignment. Then when we allocate memory, we compute
the total size, and we will align each of the elements (we allocate
multiple of them every time) to the CACHE_LINE_SIZE.

This commit was SVN r10479.
2006-06-22 14:47:07 +00:00
George Bosilca
c71f6c9765 All elements will be aligned to the CACHE_LINE_SIZE define (currently 128
bytes). The simplest way to make sure they are aligned is to update
the size of the basic element to a multiple of the desired alignment.
It will use a little bit more memory, but the improvements on the SM BTL
seems quite interesting.

This commit was SVN r10478.
2006-06-22 14:07:14 +00:00
Jeff Squyres
9a679644c2 Arf. Don't output the body of the WTICK or WTIME functions in the
module header if we're not doing small.

This commit was SVN r10475.
2006-06-22 13:20:01 +00:00
George Bosilca
90a043da16 Move the Fortran file into the nodist headers.
This commit was SVN r10465.
2006-06-21 21:28:51 +00:00
Jeff Squyres
87ec6c5384 Fix the fix -- if we're not compiling the profiling layer, then we
cannot include the PMPI_WTIME|WTICK functions in the external and
double precision statements because some compilers complain about
this.  Instead, we need to use the macro that is defined by
configure.ac (MPIF_H_PMPI_W_FUNCS).  This unfortunately means that we
need to generate mpif.h (in addition to mpif-config.h) because the
"external" statement is toxic to F90 compilers.

This commit was SVN r10464.
2006-06-21 21:24:01 +00:00
George Bosilca
cde42e68e8 As now the MPI_Wtime and MPI_Wtick are functions do not export the
profiling prototype by default.

This commit was SVN r10463.
2006-06-21 20:05:16 +00:00
Jeff Squyres
723b6e50a9 George suggested a better way to make WTICK and WTIME -- be consistent
with the other methodology even if there are no choice buffers and no
special constants.  But it keeps the Makefile.am simple and the
methodology consistent.

This commit was SVN r10462.
2006-06-21 19:07:09 +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
f27591444a Remove one of the internal variable to make things more clear and more
similar with the other pack/unpack functions.

This commit was SVN r10455.
2006-06-21 14:49:41 +00:00
George Bosilca
710a49ce79 Correctly update the flags when we build data-types. Play nicely with the NO_GAP flag.
This commit was SVN r10454.
2006-06-21 14:46:10 +00:00
Jeff Squyres
48e9a72c47 Add the missing files -- they're svn:ignored because of all the
generated files.

This commit was SVN r10451.
2006-06-21 14:11:12 +00:00
George Bosilca
820f103cd9 Remove one of the optimizations, as it lead to non correct data description.
This commit was SVN r10450.
2006-06-21 14:06:52 +00:00
George Bosilca
382a0209f7 Correctly play with the flags. Ported from the 1.1 branch.
This commit was SVN r10449.
2006-06-21 14:05:09 +00:00
Jeff Squyres
720f38efc5 Fix for MPI_WTICK / MPI_WTIME F90 bindings issue. The previous hope
was that declaring the type of MPI_WTICK and MPI_TIME in mpif-common.h
would allow the F90 bindings to call through to the back end f77
function and have the right return type.  But upon reflection, that's
silly -- we were just declaring the variables MPI_WTICK and MPI_WTIME
that were of type double precision.  Duh.

So add some fixed (non-generated) wrapper F90 functions to call the
back-end *C* MPI_WTICK and MPI_TIME functions (vs. the back end *F77*
functions).  We have to call the back-end C functions because there's
a name conflict if we try to call the back-end F77 functions -- for
the same reasons that we can't "implicitly" define MPI_WTIME and
MPI_WTICK in the f90 module, we can't call such an implicitly-defined
function.  So we had to add new back-end C functions that are directly
callable from Fortran, the easiest implementation of which was to
provide 4 one-line functions for each (rather than muck around with
weak symbols).

This commit was SVN r10448.
2006-06-21 13:44:20 +00:00
Andrew Friedley
365c81d6e9 Fix a few issues reported by Terry Dontje:
1. ompi/mca/btl/udapl/btl_udapl_proc.c should be including
btl_udapl_endpoint.h for mca_btl_udapl_proc_insert function.

2. btl_udapl_endpoint.c it looks like you are using
&endpoint->endpoint_lock when you should use &ep->endpoint_lock in a
OPAL_THREAD_LOCK call.

3. btl_udapl_frag.h has a couple opal_list_item_t's that should be
ompi_free_list_item_t in the _FRAG_ALLOC_{EAGER,MAX} macros.

This commit was SVN r10442.
2006-06-20 17:13:44 +00:00
George Bosilca
70e60a05b7 Cleanups ...
This commit was SVN r10437.
2006-06-20 15:59:29 +00:00
George Bosilca
9b46e1effd Allow the personalize function to be used only to set the flags. If the
position pointer is NULL, then the function will not try to set the convertor
position.

This commit was SVN r10436.
2006-06-20 15:58:57 +00:00
George Bosilca
95460ae41f Temporary commit for Galen. Remove the #if 0 and you will be able to have
a double check on the checksum: once on the sparse layout and a second
time directly on the packed buffer.

This commit was SVN r10433.
2006-06-20 14:37:53 +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
George Bosilca
044868df45 Set the destination descriptor before calling the recv registration. Once
this call is completed, we have to remove it in order to be able to cleanup
correctly the fragments.

This commit was SVN r10428.
2006-06-20 14:11:09 +00:00
George Bosilca
1b18b7d934 Change the parameter registration of this BTL to the new calls (new is relative
here). Change the self BTL to use RDMA protocol.

This commit was SVN r10427.
2006-06-20 14:09:58 +00:00
Jeff Squyres
1d27ca5d0a Until a real fix for #142 is found, this workaround prohibits using
mpi_leave_pinned when multiple OpenIB HCA ports are found.
Specifically, if mpi_leave_pinned == 1 and ultiple HCA ports are
found, the MCA parameter btl_openib_max_btls is set to 1.  If the MCA
parameter btl_openib_warn_leave_pinned_multi_port is true, emit a
warning that this happened (having an MCA parameter to control the
warning allows users/sysadmins to turn it off instead of being nagged
for every run).

This commit was SVN r10424.
2006-06-20 11:32:46 +00:00
Jeff Squyres
600bf4295a Update the help message to be slightly more concise and clear
This commit was SVN r10422.
2006-06-20 11:23:38 +00:00
Brian Barrett
3d027e57a8 * fix for ticket #141. If we are going to shortcut out of polling the
send/receive queues if there is something available in the short message
  rdma queues, then we have to poll *ALL* the rdma queues before exiting,
  or we aren't fair about frag reception and fall into degenerate matching
  cases.

This commit was SVN r10410.
2006-06-17 21:32:25 +00:00
George Bosilca
bdcaf146cc Pretty print the datatype information (more condensed).
This commit was SVN r10409.
2006-06-17 20:30:57 +00:00
George Bosilca
b47ffcd9d8 Avoid updating the last position on the stack.
This commit was SVN r10408.
2006-06-17 20:29:51 +00:00
Brian Barrett
5cadbbbf41 Fix for bug #140. If we're leaving things pinned, certain assumptions about
where to look for registrations that were used in the alloc/free code don't
work (because the memory returned from malloc() -- whowever gets around to
calling it) might actually be registered already.  So just call malloc
and free directly and avoid the whole issue when leave pinned is on.  After
all, you have to pay the registration cost sometime, and if leave pinned
is on, you only have to pay it once.  It makes things much simpler to
have that once be at first use rather than during ALLOC_MEM, and as far
as I can read, we're still standards conformant this way.

This commit was SVN r10406.
2006-06-17 18:34:41 +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
George Bosilca
27000ef7d6 More compact and readable code. Otherwise, no big difference with the
previous version.

This commit was SVN r10389.
2006-06-16 03:07:42 +00:00
George Bosilca
3f96f39e46 If the goal of this code was to copy the iovec and skip the first offset
bytes then it was not correct.

This commit was SVN r10388.
2006-06-16 03:06:30 +00:00
George Bosilca
93afe59226 It is not required to initialize the csum.
This commit was SVN r10387.
2006-06-16 03:05:20 +00:00
George Bosilca
1f96768b76 For zero length persistent request do not reposition the convertor as
it is not initialized.

This commit was SVN r10386.
2006-06-16 03:04:41 +00:00
George Bosilca
4ff8c354c6 Advance the position when we reach the DT_END_LOOP marker. When compute the
displacement use the count of the number of items we skip.

This commit was SVN r10385.
2006-06-16 03:03:34 +00:00
George Bosilca
d7e5683a45 Keep the += by now. The only checksum that we have require it.
This commit was SVN r10384.
2006-06-16 03:01:16 +00:00
George Bosilca
9cc931b155 This comment is not valid anymore.
This commit was SVN r10383.
2006-06-16 03:00:43 +00:00
George Bosilca
3219b917b9 Generate more optimal internal data representations.
This commit was SVN r10382.
2006-06-16 03:00:20 +00:00
George Bosilca
213de1dd18 Change the name of one of the datatype parameters to match all the others.
This commit was SVN r10368.
2006-06-15 03:28:23 +00:00
George Bosilca
7608261c8a Do not sum the checksum. Instead use the intermediary values in order to
correctly compute the final checksum. This is not a bug in the case where
both the sender and the receiver execute EXACTLY the same checksum
computations but is definitively a problem if not (such as the buffered case).

This commit was SVN r10367.
2006-06-15 03:27:37 +00:00
George Bosilca
0c709e3f53 Do not unpack outside the legal boundaries of the data even if the specified
iov_len is larger than the amount of missing data.

This commit was SVN r10366.
2006-06-15 03:24:19 +00:00
George Bosilca
5cfa775ef9 Pedantic ...
This commit was SVN r10365.
2006-06-15 03:22:28 +00:00
George Bosilca
7d2ce68c2a Correctly compute the boundaries for the Fortran matrix style.
This commit was SVN r10364.
2006-06-15 03:21:54 +00:00
Jeff Squyres
4d337baccf Fix for ticket ticket #119. Do not check the type of the errhandler
-- always return a value c2f translation if it's a valid errhandler.

This commit was SVN r10357.
2006-06-14 19:42:39 +00:00
Brian Barrett
05046e8ad2 if MX isn't running on some hosts, but is on others, we were blocking in the modex receive
waiting for the non-running procs to publish their contact information.  Publish their
(lack of) contact information.

This commit was SVN r10355.
2006-06-14 19:07:38 +00:00
George Bosilca
aca71521db Complete the move of the mpool registration from opal_list_item_t to the
ompi_free_list_item_t.

This commit was SVN r10354.
2006-06-14 17:43:50 +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
Brian Barrett
d367dc5d56 * Fix for bug #115 -- we need to decrement the use count on a pinned buffer
so that memory is actually deregistered.  Reviewed by Galen.

This commit was SVN r10349.
2006-06-14 13:38:24 +00:00
George Bosilca
4782793eb6 Correctly unpack the partial data, taken in account the displacement
of the data. It's quite costly, but it's the simplest way to make data
reliability.

This commit was SVN r10347.
2006-06-14 03:18:56 +00:00
George Bosilca
24099edb38 Make sure the partial_length has the expected value.
This commit was SVN r10346.
2006-06-14 03:17:32 +00:00
George Bosilca
3727fa2ae6 Nothing relevant. I add some more output in the case we have a checksum error.
Just to be able to know more information about the failure.

This commit was SVN r10337.
2006-06-13 19:36:38 +00:00
George Bosilca
f648f0bb51 If the convertor have the checksum flag don't try to be nice and optimize.
Just do it in a way that will allow the checksum computation in all the cases.

This commit was SVN r10336.
2006-06-13 19:24:29 +00:00
George Bosilca
d077b73d0b Compute the checksum only on the new part of the buffer.
This commit was SVN r10335.
2006-06-13 19:23:38 +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
George Bosilca
e8e30dcc8c And now the final correct version of the subarray function. The problem
with the last one was that the resized function only set the soft lb and ub
markers without actually moving the usefull data up to the correct
displacement. Using a struct instead solve the problem. Anyway, as defined
in the MPI standard we have to set the lower bound and the upper bound
of the new type to the correct values too.

This commit was SVN r10328.
2006-06-13 07:42:23 +00:00
George Bosilca
88a363fe34 Several changes:
- add more comments on the pack and unpack functions.
- remove all pack/unpack versions that are not used anymore.
- other various cleanups.
- update the safeguard macro (which compute theboundaries of the
  datatype in order to protect us from accessing memory locations
  outside of the data).
- for the contiguous (with or without gaps) pack and unpack correctly
  compute the starting point.

This commit was SVN r10327.
2006-06-13 07:23:43 +00:00
George Bosilca
3fb5dafdb3 Print the fake DT_END_LOOP entry at the end of the datatype when we
dump the datatype.

This commit was SVN r10326.
2006-06-13 07:15:24 +00:00
George Bosilca
c5c0bc39d8 By default a convertor is initialized for local operations. It means
that the remote architecture will be set to the local one.

This commit was SVN r10325.
2006-06-13 07:13:51 +00:00
George Bosilca
1ee23b4195 resize does not have to change the true_lb and true_ub. It only affect
the lb and ub.

This commit was SVN r10324.
2006-06-13 07:12:50 +00:00
Andrew Friedley
c68c6ac122 A number of fixes and the usual cleanup..
- Added some basic flow control to limit number of posted sends.
- Merged endpoint send/recv lock into single endpoint lock.
- Set the LMR triplet length in the send path, not at allocation time.
  This has to be done because upper layers might send less than the
  amount allocated.
- Alter the tie-breaker if statement protecting the second call
  to dat_ep_connect().  The logic was reversed compared to the tie-
  breaker for the first dat_ep_connect(), making it possible for
  3 or more processes to form a deadlock loop.
- Some asserts were added for debugging purposes.. leaving them
  in place for now.

This commit was SVN r10317.
2006-06-12 22:42:01 +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
George Bosilca
a3c93df20c As I'm unable to correctly compute the size in multiple of the datatype, let me do
it in the simplest way: multiple of the original datatype + the h version of the
vector function.

This commit was SVN r10313.
2006-06-12 22:08:33 +00:00
Brian Barrett
480ffd3045 Fix issue that came up with testing some LANL romio applications.
MPI_FILE_GET_INFO should return the info currently in use, not the one
used to create the file handle.  ROMIO adds a bunch of keys, so you can
create a file handle with MPI_INFO_NULL and have MPI_FILE_GET_INFO return
something totatlly different.

This commit was SVN r10312.
2006-06-12 21:45:48 +00:00
George Bosilca
57bdb323b0 Initialize the extent before using it.
This commit was SVN r10309.
2006-06-12 19:38:52 +00:00
George Bosilca
00e611784b For contiguous and contiguous with gaps types we should take in account the true_lb
when we pack/unpack.

This commit was SVN r10308.
2006-06-12 16:53:23 +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
Brian Barrett
d3257f22d8 * back out Galen's r10300 because it breaks the build. Real fix coming RSN.
This commit was SVN r10303.

The following SVN revision numbers were found above:
  r10300 --> open-mpi/ompi@b0f3745791
2006-06-12 14:38:14 +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
Galen Shipman
b0f3745791 declare these as ompi_free_list_item_t's
This needs to go to 1.1

This commit was SVN r10300.
2006-06-12 13:26:15 +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
20c34a53f7 Set the lb and extent for the case when the dimension is 1 and make
sure the last_type is defined when we go outside the loop.

This commit was SVN r10297.
2006-06-11 21:27:28 +00:00
George Bosilca
3c42cf1d55 Correctly compute the location of the dt_args pointers.
This commit was SVN r10296.
2006-06-11 20:40:32 +00:00
Galen Shipman
9d73217637 These list items are free list items, and should inherit properly..
This commit was SVN r10295.
2006-06-11 20:19:12 +00:00
George Bosilca
386a02d2ae Rewrite the subarray strictly following the MPI standard. Set the lb and ub
as it should be. I hope I get it right this time ...

This commit was SVN r10293.
2006-06-11 19:57:49 +00:00
George Bosilca
95dd1b173a Consitent behavior for all implementations of pack/unpack. The initial
lower_bound is now directly added to the user pointer when the convertor
is created, instead of having to add it all over the places inside the
pack/unpack functions.

This commit was SVN r10292.
2006-06-11 19:56:25 +00:00
George Bosilca
4457df0278 Small optimization. Precompute the extent once outside the loop instead of
computing it at every iteration of the loop.

This commit was SVN r10291.
2006-06-11 19:54:44 +00:00
George Bosilca
135de73185 Print the name of the array before printing the values.
This commit was SVN r10290.
2006-06-11 19:53:39 +00:00
George Bosilca
a2e0d09448 Another optimization for the datatype representation. When there is a loop with
any count including just one element, we can remove the loop if we update the
count and extent of he internal type.

This commit was SVN r10289.
2006-06-11 19:52:38 +00:00
George Bosilca
791a1b1a7e On resize don't forget to update the true_lb and true_ub.
This commit was SVN r10288.
2006-06-11 19:51:18 +00:00
Jeff Squyres
8b8bf363c4 Add missing svn:executable property
This commit was SVN r10283.
2006-06-10 10:59:01 +00:00
Jeff Squyres
02d8a46d5f Fix for ticket #89.
* Change the type of Fortan's MPI_STATUSES_IGNORE to double complex
so that it will never possibly be mistaken for a real status (i.e.,
integer(MPI_STATUS_SIZE)), particularly in the F90 bindings.  See
comment in mpif-common.h explaining this (analogous argument to
MPI_ARGVS_NULL for MPI_COMM_SPAWN_MULTIPLE).
 * Add second interfaces for the following functions that take a double
complex (i.e., MPI_STATUSES_IGNORE).  This required adding the second
interface in mpi-f90-interfaces.h[.sh] and then generating new wrapper
functions to call the back-end F77 function for each of these four, so
we added 4 new files in ompi/mpi/f90/scripts/ and updated the various
Makefile.am's to match:
   * MPI_TESTALL
   * MPI_TESTSOME
   * MPI_WAITALL
   * MPI_WAITSOME

The XSL is now not in sync with the scripts.  Although I suppose that
that is becoming less and less important (because it does not impact
the end user at all -- to be 100% explicit, no release should ever be
held up because the XSL is out of sync), but it will probably be
important when we go to fix the "large" interface; so it's still worth
fixing... for now...

This commit was SVN r10281.
2006-06-09 23:40:20 +00:00
Brian Barrett
d5acb4e3cc * silence dumb (and mostly useless) warning during cleanup
This commit was SVN r10280.
2006-06-09 21:09:53 +00:00
Brian Barrett
cc99a63169 * fix issue with PANFS not building properly - we didn't add PANFS_LIB to the
list of libraries

This commit was SVN r10279.
2006-06-09 20:41:12 +00:00
Jeff Squyres
a4030ad2d9 Improve the tremendously unhelpful MCA help message for the
btl_openib_ib_mtu and btl_mvapi_ib_mtu MCA params by showing the valid
values what what they represent (got a question about this from Cisco
testing engineers).

This commit was SVN r10277.
2006-06-09 18:02:45 +00:00
George Bosilca
a7e849f58b Reorder the pointer computations in order to keep them correctly aligned.
This commit was SVN r10275.
2006-06-09 16:10:15 +00:00
Andrew Friedley
9a92394bfd Mostly cleanups - preprocessor fixes and removal of OPAL_OUTPUTs.
Also updated to match recent mpool_free changes.

This commit was SVN r10273.
2006-06-09 00:18:29 +00:00
Andrew Friedley
75176370ae blah. somehow missed adding .ompi_ignore/.ompi_unignore.
This commit was SVN r10272.
2006-06-09 00:15:36 +00:00
Andrew Friedley
cca1616368 Finally committing the UD BTL.
UD is the Unreliable Datagram transport for Infiniband, specifically OpenIB.  This BTL is derived from the existing openib BTL, which is RC (Reliable Connection) based.

Still a work in progress, as there is a lot of work left to do.  Specifically, performance, scalability, and flow control need to be addressed.

Currently I'm playing around with different methods for handling receive buffers, as well as profiling to figure out where the time is going.

This commit was SVN r10271.
2006-06-09 00:13:45 +00:00
George Bosilca
272ef9f412 Get rid of the storage in the convertor. It wasn't working as expected in all
the cases. Instead replace it with a better solution, which work even for
fragments received not in order. However, this solution work only on the
current supported modes in ompi (homogeneous & heterogeneous with endianess).

The method is tricky. We will rely on 2 partial unpacks. First we will find
a byte that is not on the data to unpack, and we will pad the data with this
byte. Once we have the full length as expected, we will unpack the data, and
all the bytes in the unpacked form which do not match the unused byte will be
copied into the user buffer. This way we will reconstruct the unpacked data
in 2 times, once for the begining and once for the end.

This commit was SVN r10270.
2006-06-08 23:35:07 +00:00
George Bosilca
958a2b0863 Various cleanups in order to keep the code faster by reducing the number of (useless)
ifs and the size of the loop.

This commit was SVN r10267.
2006-06-08 21:35:45 +00:00
George Bosilca
49204a79d4 Add another flag to mark the data that are really contiguous. Really here means that
they will be contiguous even when a multiple of them are send. This is the difference
between the NO_GAPS and CONTIGUOUS flags: contiguous one suppose that the data might
have gaps in the begining and/or at the end but the content of the data is contiguous.

This commit was SVN r10266.
2006-06-08 21:27:50 +00:00
George Bosilca
79829d559b The correct number of iovec is +1 as we exit the for loop without incrementing the index.
This commit was SVN r10265.
2006-06-08 21:23:01 +00:00
George Bosilca
7804822aa8 Several cleanups and corrections. The only time we can do an optimized
pack is if the data has the BASIC flag which means it is predefined and contiguous.
For the unpack the convertor has to be homogeneous plus the same requirements
as for the pack.

This commit was SVN r10263.
2006-06-08 21:21:52 +00:00
George Bosilca
d880f65f3b Use the DT_FLAG_BASIC for Fortran predefined types. Do not force it f the data is
contiguous.

This commit was SVN r10261.
2006-06-08 21:15:07 +00:00
Galen Shipman
08823e56fa check address before looking for the item in the tree corresponding to the
address.. 
All have been reviewed by brian.. putting in a changeset request.. 

This commit was SVN r10256.
2006-06-08 16:27:59 +00:00
Galen Shipman
636ef0cf6c don't put back null items on the list..
This commit was SVN r10253.
2006-06-08 14:46:41 +00:00
Galen Shipman
429056078a fix numerous late night errors..
1) don't need tree if memory is just malloc'd 
2) fix memory and free list leak.. 
3) deregister first and then free... doh.. 

This commit was SVN r10251.
2006-06-08 14:23:20 +00:00
Galen Shipman
5a2ceda93f a couple of stupid late night mistakes...
This commit was SVN r10250.
2006-06-08 13:39:41 +00:00
Galen Shipman
0bb8a6fca8 roll back to not use memalign
This commit was SVN r10249.
2006-06-08 04:34:04 +00:00
Galen Shipman
b42b0bd1af potential fix for ticket #81
Added a tree to track memory allocation from MPI_Alloc_mem, this allows us to
free the registrations in a sane fashion.. also should be faster.. 

This commit was SVN r10248.
2006-06-08 04:29:27 +00:00
Sven Stork
c31e6f9767 use memalign instead of malloc + manually alignment in the mvapi mpool
revert commit 10243

This commit was SVN r10247.
2006-06-07 23:21:23 +00:00
George Bosilca
5c72ca01fd Correctly compute the number of used iovecs. The last change, exit the loop too early
without incrementing the index. The result was that the last iovec was ignored.

This commit was SVN r10246.
2006-06-07 22:46:59 +00:00
Andrew Friedley
5ace292cc1 Should fix ticket #81 - which is specific to MVAPI, I've included the same fix for gm/openib as well.
uDAPL has the same problem, will fix in separate commit so it doesn't go to branch.

This commit was SVN r10243.
2006-06-07 15:52:48 +00:00
Sven Stork
0084c9469a use correct free methode for additional allocated memory
This commit was SVN r10241.
2006-06-07 10:24:28 +00:00
George Bosilca
8031f191e2 Don't invent MPI names for the datatypes. Use he one in the standard.
This commit was SVN r10237.
2006-06-06 22:54:38 +00:00
Galen Shipman
84479d0b5a potential fix for iprobe test,, tested with openib.. will have andy try ud..
This commit was SVN r10232.
2006-06-06 22:10:41 +00:00
George Bosilca
499c0abac7 A cleaner and more stable version of the contiguous pack.
This commit was SVN r10231.
2006-06-06 20:19:36 +00:00
George Bosilca
a64a80dff4 If the user type has a size of zero let's return zero. We will have a consistent behavior
with MPICH.

This commit was SVN r10230.
2006-06-06 19:51:42 +00:00
George Bosilca
6258c49a4a Recomputer the contiguous flags in a better way.
This commit was SVN r10229.
2006-06-06 19:40:21 +00:00
George Bosilca
370bf0481d A more restrictive test for detecting if a datatype is contiguous. Do not allow
anything that have a negative displacement.

This commit was SVN r10228.
2006-06-06 18:24:58 +00:00
George Bosilca
c32a611297 Minor cleanups and add the same consistent behavior as the one described on the
commit 10225.

This commit was SVN r10227.
2006-06-06 18:24:09 +00:00
George Bosilca
7968bfedae Small optimization.
This commit was SVN r10226.
2006-06-06 18:23:06 +00:00
George Bosilca
11bf138820 Have a consistent behavior. Independing on the MPI type that will get created if the
user specify a count equal to zero it will get back a datatype with the size, lb, ub,
true_lb and true_ub set to zero (very similar to the MPI_DATATYPE_NULL except it can
be used for communications).

This commit was SVN r10225.
2006-06-06 18:22:36 +00:00
George Bosilca
7d7e801f15 External pack/unpack fixes.
This commit was SVN r10223.
2006-06-06 03:26:32 +00:00
Galen Shipman
90799f82cd copy paste error..
This commit was SVN r10220.
2006-06-06 02:38:29 +00:00
Galen Shipman
cc54b07aa0 add better error messages for vapi retry exceeded errors.
This commit was SVN r10219.
2006-06-06 02:04:56 +00:00
George Bosilca
edc2fa9141 Allow zero count contiguous data-types. And be user friendly, set the ub, lb, true_lb
and true_ub to zero.

This commit was SVN r10212.
2006-06-05 21:57:28 +00:00
Galen Shipman
9e6e7575b9 doh... add the file..
This commit was SVN r10210.
2006-06-05 21:24:42 +00:00
Galen Shipman
f05dee0435 add help file to explain why things went south..
This commit was SVN r10209.
2006-06-05 21:23:45 +00:00
George Bosilca
07fb4b8012 Allow a block indexed type with a count of zero. Be user friendly and set the ub, lb,
true_lb as well as the true_ub to zero in this case.

This commit was SVN r10208.
2006-06-05 21:16:57 +00:00
George Bosilca
5c2d2fc02a Match size is supposed to return Fortran types.
This commit was SVN r10206.
2006-06-05 21:07:48 +00:00
George Bosilca
e50cdeb927 Allow the creation of strcutres with count zero. And try to have a more friendly behavior
(even if I don't agree with it) by setting the lb, ub, true_lb and true_ub to zero.

This commit was SVN r10205.
2006-06-05 21:07:16 +00:00
George Bosilca
d7fa11d576 Correctly mark the Fortran data-types as being Fortran (not C and change it later
to Fortran). Add a new global variable, which keep track of all MPI predefined types.
This variable include all optional types, and is depend on the system where OMPI is
compiled.  Use this variable to correctly find out the size match type.

This commit was SVN r10204.
2006-06-05 20:44:17 +00:00
George Bosilca
3e0104f414 Some cleanups and a bug correction. The UB and LB has to stay as the used define them.
Therefore we do not have to reorder them to keep the LB smaller than UB. Just do what
the user want.

This commit was SVN r10202.
2006-06-05 20:39:10 +00:00
George Bosilca
5ac12c52a0 Correctly compute the size of the new datatype description. Before, the size was always
larger than required, now we are a lot more conservative.

This commit was SVN r10201.
2006-06-05 20:37:39 +00:00
Galen Shipman
74c97fb784 cleanup error reporting.. use ompi_proc_t->proc_name if available this gives
us source/dest hostnames for communication errors.. 

This goes to 1.1 branch (reviewed by Brian).. 

This commit was SVN r10200.
2006-06-05 20:02:41 +00:00
George Bosilca
b682ecdff4 Cleanups. Re-order the match size function and remove the now useless internal version.
This commit was SVN r10198.
2006-06-05 18:39:34 +00:00
Brian Barrett
c70fff6ed0 * Fix for bug #44 for the trunk -- remove a bunch of warnings from the DR
PML when compiling on Solaris.  Patch won't apply cleanly to the v1.1
  branch, so a diff for that is coming up soon.

This commit was SVN r10173.
2006-06-01 18:58:38 +00:00
Galen Shipman
83ff3201b5 don't use rank or nprocs in error messages when we don't have them..
This should hit 1.1 and 1.0 branches.. 
Reviewed by Brian

This commit was SVN r10164.
2006-06-01 14:24:11 +00:00
Galen Shipman
0344ae4ac5 Fix to allow eager limit and max send size to be any size (within resource limitations). Instead of storing the ompi_free_list_t * in the fragment, we use the frag type enum, this tells us where the frag came from and where it should return.. This could also be done in mvapi but is not a high priority moving forward..
Review by Brian, needs to hit the trunk + 1.1 release.. 

This commit was SVN r10157.
2006-06-01 02:32:18 +00:00
Brian Barrett
5163f2b296 Fix for bug #36. The MX, MVAPI, and OpenIB components don't have
support for progress threads, so we shouldn't build them or try to use
them when support for progress threads has been requested.  The TCP, GM,
SELF, and SM BTLs should have progress thread support, so they aren't
disabled.  The Portals BTL isn't compiled on platforms with threads,
so it doens't need to be updated.

This commit was SVN r10156.
2006-06-01 01:30:16 +00:00
Craig E Rasmussen
8a22272ffb Changed to use procedure alias (when names too long).
This commit was SVN r10145.
2006-05-31 15:06:44 +00:00
Craig E Rasmussen
4cd13f07c4 Changed to use procedure alias (when names too long).
This commit was SVN r10144.
2006-05-31 15:04:38 +00:00
Galen Shipman
c79efc9efb track which list a fragment came from, allows returning based on list, not
on size. 

This commit was SVN r10142.
2006-05-31 14:24:32 +00:00
Jeff Squyres
3e86381533 Add thread protection -- must only construct the alock when we have
threading support.

This commit was SVN r10138.
2006-05-31 13:48:21 +00:00
Gleb Natapov
d2c7bcfbe1 init alock mutex before use.
This commit was SVN r10135.
2006-05-31 06:37:39 +00:00
Brian Barrett
4904e34a52 set datarootdir, necessary for Autoconf-2.60 which will define some variables
based upon this value (e.g., datadir, docdir).

Submitted by: Ralf Wildenhues
Reviewed by: Brian Barrett

This commit was SVN r10133.
2006-05-31 03:43:55 +00:00