George Bosilca
d34b51b8ec
Correctly compute the gaps inside the datatype. They depend on the shape of the
...
final datatype not on the shape of the added datatype. The gaps exist if the
extent of the final datatype is not equal to its size.
This commit was SVN r10867.
2006-07-18 15:47:12 +00:00
George Bosilca
5666bece6a
Don't update the base pointer when we finish unpacking a partial data.
...
This commit was SVN r10710.
2006-07-11 00:22:58 +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
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
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
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
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
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
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
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
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
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
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
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
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