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

6247 Коммитов

Автор SHA1 Сообщение Дата
George Bosilca
8119c970db Improve the connection algorithm for MX. There are 2 problems here:
- first we setup the connections in the begining with all the peers
- MX does not handle well the case where several peers make connections to the same
  destination simultaneously.

So I change the order in which we connect. First we compute our rank in the array,
then in a round-robin fashion we setup connection starting with our left neighboard.

This commit was SVN r8075.
2005-11-10 01:15:49 +00:00
George Bosilca
dc1ad885d1 Move the output message outside the loop. We print an error message only once when we fail to
connect to a peer. Bonus, we print some additional informations like its MAC Address or name
if it's on our tables.

This commit was SVN r8074.
2005-11-10 01:13:18 +00:00
Tim Woodall
4c7c277b0a improve the scalability of MPI_Waitall ...
note that any code that sets a request to a completed state must
now increment a counter for every completed request

This commit was SVN r8073.
2005-11-10 00:45:27 +00:00
Tim Woodall
62fd74140b decrease socket buffers sizes to same as ptl code
This commit was SVN r8072.
2005-11-10 00:40:55 +00:00
Tim Woodall
2f6d50e0c6 init rdma count
This commit was SVN r8071.
2005-11-10 00:04:25 +00:00
Tim Woodall
b5ed723ea4 - check for null return
- disable debug

This commit was SVN r8070.
2005-11-10 00:02:18 +00:00
George Bosilca
55051b81c4 Activate the protection against unavailable datatypes. They get a flag DT_FLAG_UNAVAILABLE. We check now this flag in all the send/recv operations via the macros on mpi/c/bindings.h.
This flag is inherited by all datatypes create with unavailable datatypes. Basically, we let the user create the wrong datatype but we dont let him using it for any pt2pt communications or any pack/unpack.

This commit was SVN r8069.
2005-11-09 23:43:41 +00:00
Brian Barrett
5e6ab09424 apparently there are some platforms that do not like having munmap(NULL, 0)
called.  Instead, map and then munmap something.

This commit was SVN r8067.
2005-11-09 23:42:49 +00:00
Tim Woodall
78c98386d7 should reset the count (for persistent requests)
This commit was SVN r8064.
2005-11-09 22:02:48 +00:00
Tim Woodall
58b46d2da0 return mpool resources when request completes rather than in free
This commit was SVN r8063.
2005-11-09 21:59:01 +00:00
Graham Fagg
6b99301893 extra verbose in debug mode to help occ
This commit was SVN r8061.
2005-11-09 21:01:35 +00:00
Edgar Gabriel
b3d3552900 Fix for a problem Brian pointed out with cartesian communicators: in
comm_fill_rest there is no need for calling ompi_set_group_rank, since
we know already the rank of the process in the new comm. In case the
process was not part of the new communicator (rank = MPI_UNDEFINED)
calling this function caused a segfault on some platforms.

This commit was SVN r8060.
2005-11-09 21:00:58 +00:00
Brian Barrett
586a9be557 * make it easier to compare free timings with / without memory hooks enabled
This commit was SVN r8059.
2005-11-09 18:20:08 +00:00
Brian Barrett
05f8785e4f * OBJ_RELEASE is probably going to call free() in the way we're using it in
this function, and the lock will still be held, so we'd have deadlock.
  Instead, unlock, then release.  We don't need the lock for calling the
  release - we're not modifying any shared variables my that point.

  This should probbaly go onto the 1.0 branch, although it would be nearly
  impossible to trigger the deadlock with the way we use the free handlers
  at present.

This commit was SVN r8057.
2005-11-09 17:58:41 +00:00
George Bosilca
a6fdc2b2b4 Turn off the missing data-type message on MPI_Init.
This commit was SVN r8056.
2005-11-09 17:34:44 +00:00
Galen Shipman
3079fc2da1 use correct lock for threaded build..
This commit was SVN r8055.
2005-11-09 16:09:05 +00:00
George Bosilca
de0676a3dd Do not do any local copy into the storage if this convertor is finished. This is usefull in the Pack/Unpack case when there is more data in the packed buffer than the one we try to extract.
This commit was SVN r8054.
2005-11-09 07:46:12 +00:00
George Bosilca
025a8a04c5 More optimization of the data-type description are now possibles. Some corner cases are corrected. As a result we discover more accurately the contiguous part of the data memory layout.
This commit was SVN r8051.
2005-11-09 00:02:39 +00:00
Tim Woodall
78522ed454 send credits on correct qp
This commit was SVN r8050.
2005-11-08 22:59:44 +00:00
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
Tim Woodall
b4ca28da4b removed debug
This commit was SVN r8046.
2005-11-08 21:41:02 +00:00
Jeff Squyres
6de5c208f2 Fix propblem with prototypes for wtick and wtime in prototypes_pmpi.h.
This commit was SVN r8043.
2005-11-08 19:45:51 +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
Tim Woodall
2d9c509add flow control
This commit was SVN r8039.
2005-11-08 16:50:07 +00:00
Graham Fagg
bcf8744bf6 valgrind saved me from a nasty order of eval error... i.e. derefing slected_data before setting it.
Anyway fixed and no memory leaks in coll tuned so far.

This commit was SVN r8037.
2005-11-08 04:52:30 +00:00
Graham Fagg
5b3ba944a8 Enabled, and running...
todos. turn the debug messages  into ompi ignorables and inot do some ops in ompi_bug mode

This commit was SVN r8036.
2005-11-08 04:43:17 +00:00
Graham Fagg
833b558046 Full configuration file based control of tuned collectives.
(verbose on bad config file and even cleans up after itself enought to make valgrind happy).

This commit was SVN r8035.
2005-11-08 03:36:38 +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
Graham Fagg
39207db7cd removed the n-dimmension rule base..
replacing it was simpler code for V1

This commit was SVN r8033.
2005-11-08 03:03:51 +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
Jeff Squyres
a1ba3168d9 Remove extrameous comments
This commit was SVN r8017.
2005-11-07 22:44:26 +00:00
George Bosilca
9832d5d883 The OMPI_GENERATE_F77_BINDINGS work only for the most common F77 bindings, the
one that does not return any value. There are 2 exceptions MPI_Wtick and MPI_Wtime.
For these 2 we can insert the bindings manually.

This commit was SVN r8016.
2005-11-07 19:37:32 +00:00
Brian Barrett
28891d6de3 * Move MPI_Wtime and MPI_Wtick back out of mpi.h and into the C bindings library,
restoring the PMPI version.  A variety of reasons for this:

  - mpi.h was blinding using inline in a C header without the configrue mojo
    properly set it, as mpi.h doesn't include ompi_config.h.  This eventually
    would have caused a borked build.
  - mpi.h and mpif.h were never updated to not include PMPI_W{tick,time} as
    a proper prototype
  - The C++ and F90 bindings didn't do the right things when there was no
    PMPI version of the C call, but profiling was enabled
  - Since we only use gettimeofday, the function call overhead really doesn't
    matter

This should probably go to the 1.0 branch

This commit was SVN r8014.
2005-11-07 17:22:48 +00:00
Jeff Squyres
60b19dcf63 Add missing functions for MPI_LONG_LONG, MPI_LONG_LONG_INT, and
MPI_UNSIGNED_LONG_LONG.

This commit was SVN r8010.
2005-11-07 14:42:46 +00:00
Jeff Squyres
21be5e18ee - Fix the MPI_Op intrinsic operation string names ("MPI_foo", not
"MPI_OP_foo")
- Remove all the handlers for MPI_REPLACE for general reductions
  (it's only defined for MPI_ACCUMULATE, and ACCUMULATE is handled
  differently than the other reductions, so it's safe to make all the
  maps for REPLACE be empty)

This commit was SVN r8008.
2005-11-07 13:30:17 +00:00