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

1810 Коммитов

Автор SHA1 Сообщение Дата
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
Brian Barrett
6026fc98f6 * Fix M4 quoting so that AC 2.60 won't complain
Submitted by: Ralf Wildenhues
Reviewed by: Brian Barrett

This commit was SVN r10129.
2006-05-31 03:39:18 +00:00
Brian Barrett
c723d196c5 Rather than using fragment size to determine fragment type, use an enum.
Do this rather than the my_list pointer because we need to do some
things that are somewhat special because we pre-pin eager fragments but
not send fragments.  Also makes a couple ideas I have slightly easier to
play around with.

This commit was SVN r10127.
2006-05-31 03:34:32 +00:00
George Bosilca
abc580b2d5 Sven patch to check the optimized description before freeing it. For predefined
datatypes the optimized description point to the default description, so special
care should be taken before freeing it.

This commit was SVN r10119.
2006-05-30 16:36:06 +00:00
Jeff Squyres
5f356edb64 Bring over changes from the /tmp/fortran-stuff series:
- Make the F90 bindings compile and link properly with gfortran 4.0,
  4.1, Intel 9.0, PGI 6.1, Sun (don't know version offhand -- the most
  current as of this writing, I think), and NAG 5.2, although some
  have limitations (e.g., NAG can't seem to handle the medium and
  large sizes)
- Building the F90 "small" module size is now the default, even for
  developers
- Split up mpif.h into multiple files because parts of it were toxic
  to the F90 bindings
- Properly specify unsized/unshaped arrays to make the bindings work
  on all known compilers
- Make ompi_info show Fortran 90 bindings size
- XML somewhat lags the generated scripts as of this commit, but
  functionality was my main goal -- the XML can be updated later (if
  at all).

This commit was SVN r10118.
2006-05-30 14:37:41 +00:00
George Bosilca
aa1c1e70c6 Fix the datatype bug noticed by Rainer. Under some circumstances (and only for
predefined datatypes) the optimized description was set to NULL instead of
pointing to some valid description. As for some data, having an optimized
version is not possible (as no optimizations bring any benefit), we have
to make sure this field (opt_desc) is always correctly initialized.

This commit was SVN r10112.
2006-05-27 06:21:27 +00:00
Galen Shipman
2667c52a5d Track fragments by list, not by size..
-- reviewed by Brian, needs to hit all the branches.. 

This commit was SVN r10078.
2006-05-25 18:07:26 +00:00
Galen Shipman
38a0561d9b Allow maximum send size to be less than the eager limit.
Instead of figuring out which free list the fragment belongs to based on size
we simply store a pointer to the list which it belongs in the fragment.

This was reviewed by Brian and should hit all the branches.

This commit was SVN r10072.
2006-05-25 16:57:14 +00:00
Andrew Friedley
fa9ec2afdf Add my sandia username for convenience
This commit was SVN r10071.
2006-05-25 15:49:11 +00:00
Andrew Friedley
8a3d0862ca I can commit! *happy dance*
Trying to remember what I did here.. eager/max messages should work now, no RDMA yet.  A number of other fixes and cleanups.

I do know of two problems:
 Bad stuff happens when flooded with send frags too quickly - the BTL doesn't handle flow control.
 Certain IBM tests turn up a length assertion in the datatype engine - needs more investigation.

This commit was SVN r10070.
2006-05-25 15:47:59 +00:00
Gleb Natapov
f590d8a190 fix eager RDMA on PPC64.
This commit was SVN r10059.
2006-05-25 11:05:12 +00:00
Jeff Squyres
dd44d36be0 Fix for ticket #25. Ensure that in the threaded case where we have
This commit was SVN r10043.
2006-05-24 16:15:07 +00:00
George Bosilca
1c55956db1 Extend Sven patch for pack/unpack.
This commit was SVN r10040.
2006-05-24 14:48:00 +00:00
Jeff Squyres
a553c3444a This has bugged me for a long time: make the "want libltdl" output
like the rest of the output (i.e., "yes" / "no" vs. "1" / "0").

This commit was SVN r10039.
2006-05-24 10:56:47 +00:00
Jeff Squyres
3c265958ba @#$%@#%#%
Fix one more typo that was missed last night.

This commit was SVN r10038.
2006-05-24 10:30:08 +00:00
Jeff Squyres
8c0ebb4897 Drat -- forgot the copyright.
This commit was SVN r10025.
2006-05-23 18:42:11 +00:00
Jeff Squyres
dc9a16581e Unbelieveable how this lived so long. Thanks to Bert Wesarg for
reporting this.

This commit was SVN r10023.
2006-05-23 18:00:44 +00:00
George Bosilca
e832aac7b1 This is always on the critical path so let's make it static inline.
This commit was SVN r10020.
2006-05-23 03:22:15 +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
085cac552f Don't let TCP to create local connections, we have the self BTL for this purpose.
This commit was SVN r10018.
2006-05-23 03:06:32 +00:00
George Bosilca
837221831a Temporary solution for in-bound computation of the next BTL.
This commit was SVN r10016.
2006-05-22 23:28:40 +00:00
Rainer Keller
7cece521c6 - Use calloc as per suggestion of George.
This commit was SVN r10006.
2006-05-22 14:18:44 +00:00
George Bosilca
1dcd70ad80 The master convertor is the one that knows if the peers are
homogeneous or heterogeneous.

This commit was SVN r10005.
2006-05-22 06:22:32 +00:00
George Bosilca
eb149cb9c8 Move the datatype tests in its own directory.
This commit was SVN r10003.
2006-05-22 06:12:43 +00:00
George Bosilca
b8ef0cc749 Minor cleanups.
This commit was SVN r10001.
2006-05-21 05:55:21 +00:00
George Bosilca
e43fbd0082 Remove all useless variables. Minor cleanups.
This commit was SVN r10000.
2006-05-21 05:53:22 +00:00
Galen Shipman
9165882c07 fixes for failover...
This commit was SVN r9998.
2006-05-20 02:39:05 +00:00
Jeff Squyres
faf63c68f8 Merge over from the /tmp/fortran-stuff branch
- split mpif.h into mpif.h and mpif-common.h[.in]
- mpif-common.h is included by various f90 things and contains output
  from configure
- mpif.h defines some f77-specific stuff and then includes
  mpif-common.h 

This commit was SVN r9997.
2006-05-20 02:15:49 +00:00
Brian Barrett
96bf81a329 * datatype_check might need to uptdate the value of count (if we received
less than we posted for).  We were passing by value, so this update was
  not being propgated back up the stack and we could segfault.  Make the
  count argument a pointer so that updates will be passed as expected.

This needs to go to the v1.1 branch

This commit was SVN r9991.
2006-05-19 21:58:12 +00:00
Jeff Squyres
299f4fdb2c Oops -- fix the comment. A victim of cut-n-paste.
This commit was SVN r9971.
2006-05-18 18:10:12 +00:00
Jeff Squyres
942f9e8f8d Fixes for ticket:14. Lengthy discussion is on that ticket and in a
comment in ompi_comm_invalid() in
source:/trunk/ompi/communicator/communicator.h.

Short version:
- ompi_comm_invalid() returns TRUE for MPI_COMM_NULL
- therefore MPI_COMM_C2F needs to explicitly check for MPI_COMM_NULL
  (because it uses ompi_comm_invalid())
- make ~20 MPI functions only call ompi_comm_invalid() instead of
  calling ompi_comm_invalid() *and* checking for MPI_COMM_NULL (~40 MPI
  functions already only called ompi_comm_invalid() -- we should be
  consistent)
- similar issue for ompi_win_invalid(), so I added a cross-referencing
  comment in win.h and fixed MPI_WIN_SET_NAME to only call
  ompi_win_invalid() (and not check for MPI_WIN_NULL)

This commit was SVN r9970.
2006-05-18 18:05:46 +00:00
Jeff Squyres
800ba39152 Fixes for:
- make dist
- proper inclusion of files between trivial and small
- vpath

This commit was SVN r9964.
2006-05-18 11:26:52 +00:00
Gleb Natapov
1c1b87a9f1 init mutex before use.
This commit was SVN r9963.
2006-05-18 09:35:11 +00:00
Jeff Squyres
a7c854f878 Add some comments explaining why these functions have an interface but
no definition.

This commit was SVN r9962.
2006-05-17 22:22:29 +00:00
Jeff Squyres
c3aeaed77b SPAWN_MULTIPLE should actually be in the "small" size, not the
"medium" size.

This commit was SVN r9961.
2006-05-17 21:58:48 +00:00
Craig E Rasmussen
94f463c924 Changes to remove attr_fn functions from the mpi namespace/module.
This commit was SVN r9960.
2006-05-17 21:31:04 +00:00
Jeff Squyres
95c1f12b97 Missed this one yesterday
This commit was SVN r9958.
2006-05-17 16:31:25 +00:00
Jeff Squyres
15758d5f29 Fix AC_DEFINE to match what it's supposed to be defining
This commit was SVN r9952.
2006-05-17 03:26:43 +00:00
George Bosilca
100f6ce56b The trylock return 0 not 1 if the lock was grabbed. My logic around this trylock
was just wrong.

This commit was SVN r9946.
2006-05-16 23:13:48 +00:00
Galen Shipman
deb2254c91 1. mpool_free changes to allow null registrations
2. fix for MPI_Free_mem, was calling deregister but never called mpool_free.. so
we leaked memory. Still an open issue here though, if the memory is alloc'd
and the mpool doesn't create and cache a registration, we will never find the
mpool to free with. 

This commit was SVN r9944.
2006-05-16 22:04:31 +00:00
Jeff Squyres
7b59847765 Ensure that endpoint->endpoint_addr is not NULL before trying to
derefence through it.  It is legal for endpoint_addr to be NULL in the
destructor because if btl_tcp_add_procs() -> btl_tcp_proc_insert()
returns UNREACH, then endpoint_addr will be NULL and we'll OBJ_RELEASE
it.

This commit was SVN r9940.
2006-05-16 19:01:08 +00:00
Jeff Squyres
1f8cc1af65 Add an extra -I so that compilers can find mpi-f90-interfaces.h in a
vpath build.

This commit was SVN r9937.
2006-05-16 17:30:42 +00:00
Jeff Squyres
e24377a89c Back out a pair of commits from George from last week because they
apparently don't work properly: r9869, r9868 (sm btl alignment issues)

This commit was SVN r9936.

The following SVN revision numbers were found above:
  r9868 --> open-mpi/ompi@9b985c3216
  r9869 --> open-mpi/ompi@adedf511fb
2006-05-16 16:48:43 +00:00
Jeff Squyres
d3ff507bc2 Add explicit path to mpi-f90-interfaces.h.sh. Blast; I could have
sworn that I committed this yesterday.

This commit was SVN r9935.
2006-05-16 15:00:23 +00:00
Sven Stork
da7ad0e8b8 - update function name inside debug statement
This commit was SVN r9933.
2006-05-16 14:33:41 +00:00
Jeff Squyres
3e60cd163e Ensure that mpi_sizeof.f90 is added to the build
This commit was SVN r9925.
2006-05-15 19:32:01 +00:00
Jeff Squyres
332954e168 Spell the AC_SUBST'ed names properly
This commit was SVN r9924.
2006-05-15 19:31:38 +00:00
Jeff Squyres
171585ff34 Ensure to put implicit none *before* the header file includes
This commit was SVN r9923.
2006-05-15 19:31:01 +00:00
Craig E Rasmussen
13c113b39c Changed INOUT to IN in MPI_*_SET_ATTR functions.
This commit was SVN r9922.
2006-05-15 17:13:20 +00:00
Craig E Rasmussen
a547a64f93 Changed INOUT to IN in MPI_*_SET_ATTR functions.
This commit was SVN r9916.
2006-05-15 16:00:04 +00:00
Brian Barrett
dcc6b47fa2 * put rdma operations in the send event queue instead of receive because it's
easier to do event accounting that way
* greatly increase receive event and buffer sizes.  We're still about half
  of what Cray defaults to, so I don't feel bad about the increases
* Implement a pre-pinning optimization for eager fragments - will be
  pinned on first use and left pinned for the life of the fragment
* Since we can't have two receive frag callbacks fired at the same time,
  don't have receive free list - just keep one receive fragment in the
  module.  Saves a big free list and all that interaction.

This commit was SVN r9915.
2006-05-14 04:23:26 +00:00
Brian Barrett
db03ca0cc0 rip out a bunch of code that didn't work and really sucked and was only there
to try to get some numbers that I couldn't actually get.  So back to the
restart point.

This commit was SVN r9914.
2006-05-14 00:59:40 +00:00
Brian Barrett
f2a6e63d82 Fix for the double iWrite problem Edgar found with ROMIO, plus some other
things I found:
  - Locking should prevent it from happening (I think), but there was a 
    race condition in the component progress -- a callback could be
    triggered that would free the request before it was off the outstanding
    requests list.
  - When pulling a request off the component free list, make sure to
    reinitialize the free_called state on the IO request.  This was
    what was causing Edgar's failures
  - In the request cleanup code, pull the request out of the per-
    component free list before returning to the free list.  This
    probably would cause asserts to fire, although it looks like
    I wrote the loops such that it would have been memory safe if
    the asserts didn't fire.  Not really sure why I did that, but
    let's try it again...

This should go to the v1.0 and v1.1 branches.

This commit was SVN r9913.
2006-05-13 02:30:40 +00:00
Jeff Squyres
a6d52ceed1 Minor correction in use of mca param API; otherwise the param is not found.
This commit was SVN r9903.
2006-05-11 22:12:29 +00:00
Jeff Squyres
51c5516815 Add a new MCA parameter: mpi_keep_peer_hostnames. If this is nonzero,
(which is currently the default, although we may argue over this later
:-) ), a new field in the ompi_proc_t named proc_hostname will have
the string hostname of that peer.  If 0, this field will be NULL.

This allows for printing nicer error messages in environments where
peer hostnames are not otherwise easily obtainable, such as the mvapi
BTL (requested by Sandia, who has both a *huge* number of nodes and
6GB of RAM per node, so they don't care about the extra memory usage
;-) ).

This commit was SVN r9902.
2006-05-11 19:46:21 +00:00
Edgar Gabriel
7e99dc4301 - fix in comm_spawn_multiple: we cannot check for the errorcodes array
being null, if the constant MPI_ERRCODES_IGNORE is defined as (void *)
NULL;
- the communicator in file open has to be an intra-communicator.

This commit was SVN r9893.
2006-05-11 13:23:53 +00:00
Andrew Friedley
4c3aa05c83 uDAPL has an expects memory for enumerating interface adapters in a really
weird way - fix up to do things 'properly'.

Add my sandia username to the unignore.

This commit was SVN r9879.
2006-05-10 19:50:30 +00:00
George Bosilca
adedf511fb Remove the printf that I unfortunately commit.
This commit was SVN r9869.
2006-05-10 00:02:54 +00:00
George Bosilca
9b985c3216 Force the useful data to be aligned on special boundary. It is 32 bits
right now. Some testing on large NUMA machines should be done in order
to make sure that we need to export this variable out to the MCA layer.

This commit was SVN r9868.
2006-05-09 21:46:10 +00:00
George Bosilca
a386fccccc Increase the default limits for the SM BTL. These new
values allow better performances on all the clusters
I was able to test.

This commit was SVN r9867.
2006-05-09 21:44:24 +00:00
Brian Barrett
91086cf2a4 * we want to unlink match entries when we unlink memory descriptors, but
I want to be lazy and not do it by hand, so set the match entries to
  PTL_UNLINK.

This commit was SVN r9861.
2006-05-09 14:20:51 +00:00
Gleb Natapov
0c34d5c9e6 fix endpoint matching in on demand connection establishment. This fix is in mvapi btl already.
This commit was SVN r9855.
2006-05-09 12:12:52 +00:00
Brian Barrett
1d337831d0 Fixes for more issues found by Dries Kimpe:
- We had a bad conditional choice, such that asking for pvfs2 would
    result in pvfs trying to build as well, which was going to fail.
  - We didn't try to link in the libray for PVFS2's adio component.
  - We were clobbering romio_flags, so it was impossible to pass
    flags to romio (like the selection of filesystems)

This commit was SVN r9854.
2006-05-09 09:30:09 +00:00
Galen Shipman
c992eeb1f3 don't need to decrement memory registered twice,, this is done in
mru_delete.. 

This commit was SVN r9853.
2006-05-08 17:42:34 +00:00
Brian Barrett
7dddc6d54c Define the constants needed by ROMIO to activate support code for
DARRAY / SUBARRAY.

This commit was SVN r9851.
2006-05-08 16:33:31 +00:00
Brian Barrett
462849d88c Fix two issues reported by Dries Kimpe:
- LDFLAGS set at the top level of Open MPI were not passed to the 
   ROMIO configure script
 - If ROMIO was explicitly required (with --enable-io-romio) and
   not able to be built, abort OMPI's configure script.

This needs to go to the v1.0 and v1.1 branches.

This commit was SVN r9845.
2006-05-08 13:13:32 +00:00
Brian Barrett
8397a1d71f still running into issues, but...
- change MASK behavior for tags - we need the upper bit to be whether
  the tag is reseved or not.  MPI_ANY_TAG should not pull off any
  reserved tag communication
- some other random debugging output to try to get some idea what is
  spewing out of here.

This commit was SVN r9844.
2006-05-08 09:23:09 +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
George Bosilca
e63c1dc242 The last commit wans't supposed to bring this function in. It's not yet
ready for primetime...

This commit was SVN r9840.
2006-05-07 20:51:43 +00:00
George Bosilca
33aa65f894 Remove useless include.
This commit was SVN r9839.
2006-05-07 20:49:45 +00:00
Galen Shipman
a4c9db0c18 decrease the total bytes in the rcache when a registration is deleted from the
cache. 

This commit was SVN r9837.
2006-05-07 01:15:33 +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
George Bosilca
8338a79082 This one belong to the previous commit but it somehow get lost ...
This commit was SVN r9830.
2006-05-05 04:32:42 +00:00
George Bosilca
3929ae7010 Add more knowledge into the master convertor. Now all the conversion
function are stored in a single location, th master convertor. With the
old information (mainly the remote sizes for each predefined data-type)
now we know everything we need about the remote peers.

This commit was SVN r9829.
2006-05-05 04:30:11 +00:00
George Bosilca
4438be5bcb Ditch one more function call. Make the initialization step as small as
possible.

This commit was SVN r9828.
2006-05-05 03:42:18 +00:00
George Bosilca
a55d4632c6 Continue the cleaning, shrink the convertor initialization function.
This commit was SVN r9827.
2006-05-05 03:25:31 +00:00
George Bosilca
c53914ce31 Smallest overhead for contiguous predefined datatypes. There is now a special path
in the convertor code for predefined contiguous types.

This commit was SVN r9821.
2006-05-04 22:21:09 +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
Tim Woodall
161e54e6c8 finalize/cleanup failed btl
This commit was SVN r9819.
2006-05-04 18:48:45 +00:00
George Bosilca
d8eb9978a6 Rearrange the convertor initialization, in order to make the upgrade required
for contiguous types simpler.

This commit was SVN r9818.
2006-05-04 17:36:08 +00:00
Tim Woodall
d8ff8010f3 track wether the vfrag is being retransmitted
This commit was SVN r9817.
2006-05-04 17:30:58 +00:00
Tim Woodall
1b26caa95b first cut at btl failover - seems to be working for simple test case
This commit was SVN r9816.
2006-05-04 16:16:26 +00:00
Tim Woodall
350d5b1713 change hardcoded values into mca params
This commit was SVN r9815.
2006-05-04 15:20:18 +00:00
Tim Woodall
fdd622544b added optional copy routine to allow "derived" class
of mca_bml_base_endpoint to copy state if an endpoint
is updated (e.g. btl deleted/added)

This commit was SVN r9814.
2006-05-04 15:19:12 +00:00
Tim Woodall
14293acce0 - added cleanup to destructor
- added copy routine to copy state from one sequence tracker into another

This commit was SVN r9813.
2006-05-04 15:14:47 +00:00
Brian Barrett
d101e91b97 * fix matching logic - since tag might be negative, need to mask the proper bits
or the bit-wise or changes all the high bits, which is bad
* push convertor creation to init to save a bit of time
* make debugging use macros so that it can go bye-bye

This commit was SVN r9810.
2006-05-04 13:48:32 +00:00
George Bosilca
93ccbc666a The macro is alreadfy defined in one of the header file.
This commit was SVN r9809.
2006-05-04 07:06:58 +00:00
George Bosilca
bdecdc8d41 Cleanup the MX BTL. Remove all mpool related code as there will never be a MX mpool.
This commit was SVN r9808.
2006-05-04 06:55:45 +00:00
Edgar Gabriel
8c49f14dce fix a bug in the intercomm-split allgather emulation function.
This commit was SVN r9806.
2006-05-03 21:41:10 +00:00
George Bosilca
c5209aad93 The return value is random. Let's return something that make sense.
This commit was SVN r9805.
2006-05-03 18:17:00 +00:00
Edgar Gabriel
f962ba2d89 fix the handling of the 'high' argument in Intercomm_merge. The logic
was unfortunatly exactly the opposite way round.

This commit was SVN r9803.
2006-05-03 14:43:52 +00:00
Brian Barrett
6db0f2a027 * couple of corrections to compile on Red Storm
This commit was SVN r9801.
2006-05-03 13:13:59 +00:00
Rainer Keller
29876af927 - Fix small buglet which causes SIGSEGV (seen with mpitrace/Paraver)
This commit was SVN r9799.
2006-05-03 07:53:13 +00:00
Jeff Squyres
87a2458bb1 Make sure to use the C version of the string.
This commit was SVN r9796.
2006-05-03 03:29:06 +00:00
Brian Barrett
1aa13c1e5c * do proper fortran string handling for the MPI-IO functions that take string
arguments.  Thanks to Bernard Knaepen for bringing this to our attention.

This commit was SVN r9792.
2006-05-02 14:39:11 +00:00
Brian Barrett
4add400f7d * properly start with the memory descriptor inactive
This commit was SVN r9787.
2006-05-01 20:23:38 +00:00
Brian Barrett
5f939c53be * first take at send / receive for a poratls pml (still really dumb and simple)
This commit was SVN r9786.
2006-05-01 20:03:49 +00:00
Brian Barrett
56f48357b3 * don't try to register callback at init time (will do at window creation time
anyway), so that we can run without ob1

This commit was SVN r9785.
2006-05-01 20:03:03 +00:00
Craig E Rasmussen
8a16f844ec Changes MPI_Intercomm_merge high variable from integer to logical
This commit was SVN r9783.
2006-05-01 18:58:35 +00:00