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

228 Коммитов

Автор SHA1 Сообщение Дата
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
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
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
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
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
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
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
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
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
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
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
George Bosilca
1c55956db1 Extend Sven patch for pack/unpack.
This commit was SVN r10040.
2006-05-24 14:48:00 +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
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
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
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
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
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
0aa7587dd7 More timers around the pack/unpack functions.
This commit was SVN r9778.
2006-04-29 04:23:49 +00:00
George Bosilca
1af7a797f8 Vector type is the one I work on.
This commit was SVN r9774.
2006-04-28 16:20:47 +00:00
George Bosilca
b990870b55 Keep only the fastest version of the homogeneous unpack. Reorder the code
to improve the execution path. Some minor clean-ups.

This commit was SVN r9773.
2006-04-28 16:19:54 +00:00
George Bosilca
e23c3008a6 Keep only the best [the fastest] version of the unpack function.
This commit was SVN r9772.
2006-04-28 16:18:29 +00:00
George Bosilca
5133c987e3 Move the code around to shorten the execution path for the most common data-types.
This commit was SVN r9771.
2006-04-28 16:17:28 +00:00
George Bosilca
0fd4e2d906 Optimize the execution path.
This commit was SVN r9763.
2006-04-27 22:25:53 +00:00
George Bosilca
faba013106 Move tests. Most of the checking are now disabled, only the performance one
are still active.

This commit was SVN r9762.
2006-04-27 22:25:02 +00:00
George Bosilca
ced5d564cf Make sure we set the COMPLETED flag on the convertor in all the cases.
This commit was SVN r9761.
2006-04-27 20:53:28 +00:00
George Bosilca
80a53c7aff More tests, some comments, some new data-types. First step for the performance framework.
This commit was SVN r9760.
2006-04-27 20:52:43 +00:00
George Bosilca
0fcae472aa Detect when the convertor is done with the conversion in a more
generic way.

This commit was SVN r9756.
2006-04-27 17:25:56 +00:00
George Bosilca
cabf703dad No need for the assert after a loop.
This commit was SVN r9755.
2006-04-27 17:25:21 +00:00
George Bosilca
aa11164fdc Update the test to match the latest version of the convertor.
This commit was SVN r9754.
2006-04-27 17:24:53 +00:00
George Bosilca
29fe545451 Remove all references to the ompi_mpi_long_long variable. The MPI_LONG_LONG is now
a synonym to MPI_LONG_LONG_INT.

This commit was SVN r9703.
2006-04-24 22:15:42 +00:00
George Bosilca
40bcb2fb36 Still some long long left over. Should be clean by now.
This commit was SVN r9701.
2006-04-24 21:40:16 +00:00
George Bosilca
a297a7ae67 MPI standard state that MPI_LONG_LONG and MPI_LONG_LONG_INT are synonyms. Thanks to
Martin audet for finding out this one.

This commit was SVN r9699.
2006-04-24 21:24:10 +00:00