1
1

99 Коммитов

Автор SHA1 Сообщение Дата
George Bosilca
63ba3bde11 Allow the convertor to remember the last trucated unpack. If the same convertor is used for the next unpack it will put the data back correctly. However, if the BTL/PTL create a new convertor, even if it clone the last one this magic will not happens !
This commit was SVN r8048.
2005-11-08 21:48:48 +00:00
George Bosilca
cdfe5e71fd By default there is no pending length on the convertor.
This commit was SVN r8047.
2005-11-08 21:45:45 +00:00
George Bosilca
7582ae3ef1 A simpler way to get output about the packing/unpacking. Now there are 2 MCA parameters datatype_pack_debug and datatype_unpack_debug. When they are set to 1 the ddt engine will dump a lot of messages. Dont turn them to one by default. But if you notice any problems in the ddt you can turn them to one and send me the output.
First step toward adding memory to the convertor. It will be able to keep partial basic datatype between calls ...

This commit was SVN r8042.
2005-11-08 17:49:51 +00:00
George Bosilca
2b9b5500b9 Change some variable's names.
This commit was SVN r8041.
2005-11-08 17:44:56 +00:00
George Bosilca
c63e4dcef9 When we finish one of the loops take care of the index of the begining of the loop. If it's -1 then we just complete the full datatype ... therefore we have to do something special.
This commit was SVN r8040.
2005-11-08 16:53:31 +00:00
George Bosilca
579398a135 Change some variable names (from pSrc to something more clear like user_memory and/or packed_buffer).
This commit was SVN r8034.
2005-11-08 03:12:58 +00:00
George Bosilca
4ed2da50e9 A step forward. The original displacement for contiguous data with gaps is now correctly computed. At least the original displacement.
This commit was SVN r8031.
2005-11-08 00:03:05 +00:00
George Bosilca
387390355c Shame on me ... there should be extent not displacement.
This commit was SVN r8030.
2005-11-08 00:02:14 +00:00
George Bosilca
ce65ef3c6e And here is the makefile that integrate the new files. Now ... have as much fun as I did :)
This commit was SVN r8029.
2005-11-07 23:25:12 +00:00
George Bosilca
ccbeb6ac5a Take in account the original displacement for contiguous datatypes.
Limit the amount of data to be packed to the remaining on the convertor. This make the things a lot simpler in the pack/unpack functions.

This commit was SVN r8028.
2005-11-07 23:24:13 +00:00
George Bosilca
5641f4f56b Change the name of one of the fields in the end_loop structure.
Update all the macros to reflect the change.
A slightly different version of the boundaries checking function.

This commit was SVN r8027.
2005-11-07 23:22:43 +00:00
George Bosilca
1ddb90bbae Slim fast ... Do as less as possible on the critical path. The most expensive function now is the one that compute the stack when we move to a new position. For this function there are
several versions depending on the type of the data annd the position where we want to go.

This commit was SVN r8026.
2005-11-07 23:21:27 +00:00
George Bosilca
461f607fd3 Add one prototype from the new_position.c
This commit was SVN r8025.
2005-11-07 23:19:54 +00:00
George Bosilca
8df200528d The END_LOOP structure change the name of one of it's fields.
This commit was SVN r8024.
2005-11-07 23:18:57 +00:00
George Bosilca
f7359e24d6 Add some macros in the begining of the file. They are not used right now, but they will be in few days.
Do not ignore the type and extent of the last optimized basic type in some special cases.

Update the last fake END_LOOpP with the correct value for the first_elem_disp field.

This commit was SVN r8023.
2005-11-07 23:17:00 +00:00
George Bosilca
53cb3c2bee Force the data name to the empty string when we call destroy.
This commit was SVN r8022.
2005-11-07 23:14:32 +00:00
George Bosilca
8799d1799a The shiny new pack and unpack functions. The big difference is that the displacement is
never stored on the stack. It is partially stored on the stack depending on the loops
but every time we pack/unpack a basic datatype we take in account again it's displacement.
This approach make the whole logic a lot simpler. In same time I split the big functions
in several basic block.

This commit was SVN r8021.
2005-11-07 23:13:04 +00:00
George Bosilca
334ca349fe Several bug fixes:
- if the alignment of wchar is zero then wchar_t is not supported by the OS. We skip it.
- Now that the definition of end_loop change compute the first_elem_description for all
  predefined datatypes.
- In debug mode print a list of the datatypes that are not supported by the current
   architecture.

This commit was SVN r8020.
2005-11-07 23:10:33 +00:00
George Bosilca
84a89d68dc When we advance the convertor by a multiple of the data size there is a quick optimization.
We can compute the number of complete datatype that we will advance, update the stack and
then compute the new position taking in acount only the remaining bytes.

This commit was SVN r8019.
2005-11-07 23:00:28 +00:00
George Bosilca
288cdaf302 This is the way to compute the position for a convertor under the new rules.
This file is now yet activated. It will became the default after the next
commit.  (checkpoint to start testing on other clusters)

This commit was SVN r8006.
2005-11-07 09:00:52 +00:00
George Bosilca
c1b713c56e Make a compiler happy about casting.
This commit was SVN r8005.
2005-11-07 04:59:46 +00:00
George Bosilca
7b7aaf897c Do not add epsilon to the data extent if there is a user set UB for the data.
This commit was SVN r8004.
2005-11-07 04:04:20 +00:00
Jeff Squyres
42ec26e640 Update the copyright notices for IU and UTK.
This commit was SVN r7999.
2005-11-05 19:57:48 +00:00
Jeff Squyres
7bdfe6557b - Update the checks in REDUCE, ALLREDUCE, SCAN, EXSCAN, and
REDUCE_SCATTER to more thoroughly check the datatype/op combination
  to see if it's valid or not.  If it's not, print a meaningful error
  message rather than "Invalid MPI_Op" indicating what specifically
  was wrong (therefore hopefully helping users track down where in the
  code the problem is, and/or telling us that there's a reduction
  operation combo that we don't support that we should)
- The check for whether a datatype is intrinsic needed to be updated
  -- it's not sufficient to check that dtype->id < DT_MAX_PREDEFINED;
  you really need to check the PREDEFINED flag on the datatype.
  Thanks to George for this fix (only intrinsics have a meaningful
  value in dtype->id).

This commit was SVN r7923.
2005-10-28 16:47:32 +00:00
George Bosilca
ab97bde177 Rainer pointer out that the convertor already have the CONTIGUOUS flag is the
data is contiguous (set in ompi_convertor_prepare).
For unpack reinforce the limits of the pack for contiguous types.

This commit was SVN r7914.
2005-10-28 05:27:40 +00:00
George Bosilca
5355765d81 Cleanup has to reset the stack position.
This commit was SVN r7913.
2005-10-28 05:25:08 +00:00
Jeff Squyres
a9f04c7573 Only do the extra va_* stuff if we're compiling with the compiler that
cares about it (PGI).

This commit was SVN r7860.
2005-10-25 13:08:52 +00:00
Rainer Keller
d6120d32d6 - Only minor white-space changes, to clean up
This commit was SVN r7843.
2005-10-24 10:36:16 +00:00
George Bosilca
b45651988b Protect against elements with ZERO length.
Remove all the useless code.

This commit was SVN r7827.
2005-10-21 06:48:51 +00:00
George Bosilca
1fb8ec646a Add the homogeneous flag back in the convertor.
Correct/improve one of the comments.
Descrease the amount of memory required for the stack.

This commit was SVN r7826.
2005-10-21 06:47:57 +00:00
George Bosilca
63c5013fe6 After a OBJ_DESTRUCT a convertor has to be in a usable state. Read the comment for more informations.
This commit was SVN r7812.
2005-10-19 20:51:52 +00:00
George Bosilca
8987bcabe2 Remove the memcpy we can do it as we parse the datatypes in order to increase their references.
This commit was SVN r7811.
2005-10-19 20:51:11 +00:00
George Bosilca
6c6f17628f Remove a double OMPI_DECLSPEC from the definition of one of the predefined data-types.
This commit was SVN r7810.
2005-10-19 20:50:25 +00:00
Brian Barrett
1302cb4072 The next in a long line of crazed build system changes from Brian. This was
originally suggested by Ralf Wildenhues, to try to speed autogen, configure,
and make (and possibly even make install).  Use automake's include directive
to drastically reduce the number of Makefile files (although the number of
Makefile.am files is the same - most are just included in a top-level
Makefile.am).  Also use an Automake SUBDIRs feature to eliminate the
dynamic-mca tree, which was no longer really needed.  This makes adding
a framework easier (since you don't have to remember the dynamic-mca
tree) and makes building faster (as make doesn't have to recurse through
the dynamic-mca tree)

This commit was SVN r7777.
2005-10-17 00:21:10 +00:00
George Bosilca
6e3c23ec3b Do not allow the use of the optimized path for predefined non contiguous datatypes (like MPI_SHORT_INT on most of the architectures).
This commit was SVN r7776.
2005-10-16 19:41:40 +00:00
Jeff Squyres
e097ee635a Silence compiler warnings.
This commit was SVN r7768.
2005-10-14 22:06:25 +00:00
George Bosilca
cb7b401ca8 Correct the send-recv operation.
This commit was SVN r7709.
2005-10-11 22:41:08 +00:00
George Bosilca
967cd1be32 Make the datatype compile on solaris.
Remove some warnings ...

This commit was SVN r7619.
2005-10-04 15:45:18 +00:00
George Bosilca
9a67831ba3 Alway call the memory allocation function with the correct type for the first argument. The problem is
that on some OSes the iovec struct is not POSIX complian, the iov_len is not a size_t but simply an int.
This patch, add a local variable (type size_t) to use with the memory allocation function, and then put
back the value in the iov_len field.

This commit was SVN r7615.
2005-10-04 14:44:59 +00:00
George Bosilca
059c802094 Correct a small typo
This commit was SVN r7614.
2005-10-04 14:42:37 +00:00
Jeff Squyres
d4b7618db7 Comment out what seems to be a debugging output. Will confirm with
George.

This commit was SVN r7544.
2005-09-29 16:39:27 +00:00
George Bosilca
a7db1763e2 Cleanups ...
This commit was SVN r7420.
2005-09-18 12:34:29 +00:00
George Bosilca
ec621c2145 That was a bad*bad typo. To compute the flags I have to use & not |.
In the case where the user want to roll-back a convertor we should first rewind the
convertor to the beginning and then move it to the requested position. Otherwise the
logic do roll-back a convertor in an optimized way is really difficult. BTW, in terms of
performances one would prefer to have 2 convertors and play with position inside, than
just having one and roll it back.

This commit was SVN r7378.
2005-09-14 23:32:18 +00:00
George Bosilca
fdfd966aad On the last position on the conversion stack in the displacement field we should have the
relative displacement not the absolute one. This relative displacement will be addesd to the
absolute one in order to compute the correct position on the source (or destination) buffer.

This commit was SVN r7377.
2005-09-14 23:29:27 +00:00
Tim Woodall
c25fb5dab0 - fixed issue w/ btl send-in-place option that was affecting tcp
- reduced size of match header by an additional 4 bytes to 16 bytes
- corrections for buffered send (work in progress)

This commit was SVN r7371.
2005-09-14 17:08:08 +00:00
George Bosilca
3e35dbee30 Add a helper function to find out if a couple datatype & count represent a contiguous
memory layout.

This commit was SVN r7357.
2005-09-13 21:59:34 +00:00
George Bosilca
a5871ffc23 Report back the correct position when the caller use ompi_convertor_set_position. That should
fix Tim's problems.

This commit was SVN r7353.
2005-09-13 20:29:50 +00:00
George Bosilca
5b1303edef Correctly handle the convertor flags.
This commit was SVN r7298.
2005-09-11 18:51:47 +00:00
George Bosilca
6b2d154df3 Add more debug messages to the pack and unpack functions.
This commit was SVN r7297.
2005-09-11 18:51:06 +00:00
George Bosilca
95497b156e Cleanup the flags when we clone or copy a convertor. Add safety checks for the set_position function.
This commit was SVN r7296.
2005-09-11 18:49:46 +00:00