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

885 Коммитов

Автор SHA1 Сообщение Дата
Galen Shipman
5a4b1ebdd4 in mca_btl_openib_endpoint_post_send: set opcode on work request before potentially inserting it on pending list..
This commit was SVN r8127.
2005-11-12 02:11:14 +00:00
George Bosilca
e297b58fbd Add more MCA arguments.
Make some of them system (not seems by the user) and read-only.
Small cleanups.

This commit was SVN r8126.
2005-11-12 00:31:59 +00:00
Galen Shipman
5cf2d8d40c default to first available IP address if no matching subnets found..
This commit was SVN r8125.
2005-11-12 00:31:34 +00:00
Jeff Squyres
24b9de292c Fix for [righteous] compiler warnings from xlf90 compiler on OSX
10.3.  Specifically define what the parameter type is, and mark its
intent. 

This commit was SVN r8124.
2005-11-11 23:18:59 +00:00
Tim Woodall
607f62accd - pass a flag to the peer indicating wether data is contiguous at the soure
- only attempt to schedule rdma if contiguous at both src/dst
- need to review this for next release 

This commit was SVN r8119.
2005-11-11 15:33:25 +00:00
Graham Fagg
877f7bbe6a File based dynamic up and tested...
Lots of misc fixes: printfs->opal_output, handles fanin/out correctly for forced ops
unused vars, correct calculations on meaning of 'msgsize' for decision functions
(varies depending on algorithm), etc

This commit was SVN r8113.
2005-11-11 04:49:29 +00:00
Brian Barrett
878676218e Rename opal/memory to opal/memoryhooks because XLC++ on Mac OS X is broken.
When compiling C++ code that includes something that looks for the C++
header file "memory" (stupid C++ headers not having .h extensions), it
goes through the header file search path, which includes $(topsrcdir)/opal,
so it finds the directory $(topsrcdir)/opal/memory/ and tries to load
that as the memory header file and all goes downhill.

This commit was SVN r8111.
2005-11-11 00:26:27 +00:00
Tim Woodall
654ba6d262 srq cleanup
This commit was SVN r8106.
2005-11-10 23:29:54 +00:00
Tim Woodall
2013104d1a SRQ cleanup
This commit was SVN r8104.
2005-11-10 20:51:56 +00:00
Tim Woodall
4a06e8463c port of flow control from mvapi
This commit was SVN r8102.
2005-11-10 20:15:02 +00:00
Jeff Squyres
bacfb4fa2b Remove the generated F90 interfaces for all the "2 buffer" MPI API
functions (e.g., MPI_REDUCE).  We don't generate the back-end
subroutines for them (because it makes an expontential number of
subroutines, and compilers literally will segv), so we shouldn't
generate the f90 interfaces for them, either.  This allows user's MPI
F90 apps to automaitcally fall through to the F77 bindings for these
functions.

This commit was SVN r8094.
2005-11-10 16:04:39 +00:00
Tim Woodall
985c2ca943 cleanup
This commit was SVN r8093.
2005-11-10 15:40:27 +00:00
Jeff Squyres
6e08072113 Fix for the interface name for MPI_File_write_ordered_begin -- the
name was changed to shorten it too early (and then not restored), so
the "interface" name was not output correctly into
mpi-f90-interfaces.h.  Change to make it like the other long functions
-- temporarily change it to a shorter name while outputing the
subroutines, and then revert it when outputting the end interface.

This commit was SVN r8086.
2005-11-10 14:10:20 +00:00
George Bosilca
405d9794f8 Somehow I miss to remove one of the previous definition for the unavailable data.
This commit was SVN r8080.
2005-11-10 02:59:20 +00:00
George Bosilca
3507d5e9cd opal/util/output.h is required for optimized builds.
This commit was SVN r8076.
2005-11-10 01:19:27 +00:00
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
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
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
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
Graham Fagg
dcd3450e06 simplified the building of different rule sets
(also corrected some prototypes missing 'struct')

This commit was SVN r8003.
2005-11-06 22:05:50 +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
2e10d0c099 Forgot to add the intrinsic op MPI_REPLACE (Brian, the One Sided Bug
Finder, gets credit)

This commit was SVN r7993.
2005-11-04 19:00:35 +00:00
Tim Woodall
e45f4744ee do not return these descriptors to cache
This commit was SVN r7986.
2005-11-03 23:20:38 +00:00
Tim Woodall
26003bc952 fix from release branch - don't use get protocol if more
than one btl is available

This commit was SVN r7984.
2005-11-03 20:52:56 +00:00
Jeff Squyres
9e723b8519 Remove some compiler warnings
This commit was SVN r7973.
2005-11-03 15:26:43 +00:00
Jeff Squyres
4fc135fd2b Looks like I forgot to put DDT support for the optional C datatypes
MPI_UNSIGNED_LONG_LONG, MPI_LONG_LONG, and MPI_LONG_LONG_INT --
although I already had implementations of all the relevant functions
for these types.  Doh!

This commit was SVN r7944.
2005-11-01 03:28:59 +00:00
Graham Fagg
9547a635a9 snapshot while switching systems
but, dynamic rules from a user defined config file is almost there now

This commit was SVN r7943.
2005-11-01 00:19:05 +00:00
Graham Fagg
fe03e068f2 allow forced algorithms (where the user or *test* suite knows better) to
go through the dynamic decision rule interface.
(forced algorithms are set with MCA params)
fixed some silly verbose output with wrong func name in it etc
updates to fixed dec rules.

This commit was SVN r7940.
2005-10-31 20:45:50 +00:00
Tim Woodall
31eb35c3f1 correct rnr parameter - need to review this code and pass correct data type
This commit was SVN r7936.
2005-10-31 17:18:39 +00:00
Edgar Gabriel
2ec5fa5d24 - The component will remove itself from the list of potential collective
modules, if its priority is zero (the default value). Reason for that is
  + if there is no other module with a priority > 0, the hierarchical
    collective module has a problem anyway, since it has to rely on the coll
    modules of the subcommunicators. On the other hand, if its priority is
    zero, it won't be chosen anyway, and we can simply save the
    allreduce/allgather and comm_split operations which might occur during
    hierarchy detection.
  + to improve the startup times until we have the modex thing which we
    discussed with Jeff and Tim in Knoxville in place

- adding an mca parameter indicating a symmetric configuration. This can 
  speed up startup times, since each process can conclude from its data onto
  the data of the other processes -> no need for the allreduce operations. Per
  default  this parameter is set to "no".

This commit was SVN r7932.
2005-10-30 16:01:13 +00:00
George Bosilca
b0def3f6bf MX has 2 limitations regarding the iovecs. First they do not support iovec witha total size
larger than 32K for inter-nodes transfert ... and then they do not support iovecs larger than
16K for inter-node transfert. Therefore we have to set the size of our first fragment to
16K to match both cases.

This commit was SVN r7926.
2005-10-28 20:37:43 +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
George Bosilca
d916e0c5b4 The (I hope) final solution for the convertor problem. As all the PML inherit
the base send and receive request from the pml_base, we can solve our problem
if we construct the convertor attached to any request in the pml_base_construct
function. At the end of the life time for each request (here life time is 
related to one utilisation, without taking in account the cache) we release
all information attached to the convertors in the _FINI macro by calling the
ompi_convertor_cleanup.

This commit was SVN r7910.
2005-10-28 03:26:36 +00:00
Brian Barrett
bf67c9387b * initialize send request convertor with the correct type (convertor instead
of request).  This fixes at least the bug with NetPIPE in 64bit land that
  Troy was seeing. 

This commit was SVN r7904.
2005-10-27 23:08:27 +00:00
Galen Shipman
4a15761732 add support for srq limit reached async event, even though it doesn't appear
to  be supported by mellanox vapi.. perhaps this will be supported in the near 
future, for now it doesn't hurt to have it in the trunk


Also cleanup the receive descriptor posting macro's.. 

This commit was SVN r7903.
2005-10-27 22:47:19 +00:00
Tim Woodall
3bd5b81dfa Submitted: Gleb Natapov
This commit was SVN r7899.
2005-10-27 17:48:40 +00:00
Tim Woodall
4fc5b2105a this is currently an int - we shouldn't restrict it unless required
This commit was SVN r7895.
2005-10-27 17:06:58 +00:00
Tim Woodall
13409ec53b correction for hang, check for additional fragments before callback,
which may queue a new fragment

This commit was SVN r7889.
2005-10-27 01:39:39 +00:00
Graham Fagg
5bb0d4a053 enable allreduce to be selected
This commit was SVN r7888.
2005-10-26 23:55:37 +00:00
Graham Fagg
2587d7ade9 added some more linear functions.
minor corrections on naming and debug info

This commit was SVN r7887.
2005-10-26 23:51:56 +00:00
Graham Fagg
c3e1dc410d Started to add basic linear functions
Also started to add the allreduce algorithms as I test them
(i.e. if it goes in its after testing from now on)

This commit was SVN r7886.
2005-10-26 23:11:32 +00:00
Jeff Squyres
d47ce065e9 Minor Makefile.am fix for static builds.
This commit was SVN r7882.
2005-10-26 15:57:58 +00:00
Edgar Gabriel
ba3bf6592f fixing some warnings. No idea yet why the static builds fail...
This commit was SVN r7879.
2005-10-26 12:56:56 +00:00
Jeff Squyres
23ab9e0277 A better solution to the previous commit -- RETAIN/RELEASE the MPI_Op
at the top-level MPI API function.  This allows two kinds of
scenarios:

1. MPI_Ireduce(..., op, ...);
   MPI_Op_free(op);
   MPI_Wait(...);

For the non-blocking collectives that we're someday planning -- to
make them analogous to non-blocking point-to-point stuff.

2. Thread 1:
   MPI_Reduce(..., op, ...);
   Thread 2:
   MPI_Op_free(op);

Granted, for #2 to occur would tread a fine line between a correct and
erroneous MPI program, but it is possible (as long as the Op_free was
*after* MPI_reduce() had started to execute).  It's more realistic
with case #1, where the Op_free() could be executed in the same thread
or a different thread.

This commit was SVN r7870.
2005-10-25 19:20:42 +00:00
Edgar Gabriel
d009d8de57 opening the hierarchical collective component to the public. I am at this
stage fairly confident that 
- it works in most scenarious (with symmetric hierarchies, with asymmetric
  hierarchies, wihout hierarchies - it just removes itself)
- it does not create too many problems (I am not aware of any at least)
- it does not slow down startup anymore dramatically (thanks to the fixes of
  Brian, Jeff, Tim and a significant reduction in the number of collective
  operations in the comm_query)
Any feedback is highly welcome.

This commit was SVN r7868.
2005-10-25 18:38:43 +00:00
Edgar Gabriel
00c04ab56a moving the hierarch collective component to the new parameter
registration interface.

This commit was SVN r7867.
2005-10-25 18:34:47 +00:00
Edgar Gabriel
3633605010 moving op_init further up in ompi_mpi_init, since it is required when
quering some of the collective components. Up to now, it just worked
somehow, but now with correct reference counting for ops in place, it
refused :-)

This commit was SVN r7866.
2005-10-25 18:33:48 +00:00
Jeff Squyres
ef09e768e0 Ensure to OBJ_DESTRUCT to free memory during finalize (caught by
Brian). 

This commit was SVN r7864.
2005-10-25 17:27:58 +00:00
Jeff Squyres
f8fd10715c - Minor style fix
- Be sure to properly OBJ_CONSTRUCT the intrinsic MPI_Op's
- RETAIN/RELEASE the op's when used in the invoke function

This commit was SVN r7863.
2005-10-25 16:24:00 +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
Graham Fagg
382f05c7ad Infastructure changes.
started to add static (fixed if) statement based decision rules based on gigE numbers
added mca params so that a user can force a certain algorithm/segment/topo on a per collective basis
(this is not in the fixed call path but only in the dynamic (at com create) call path).
(these params can be used by test suites such as OCC to choice which algorithm they are using).

This commit was SVN r7854.
2005-10-25 03:55:58 +00:00
Graham Fagg
d8e32464cb ops. setting/reading mca option from the right varible would help.
This commit was SVN r7850.
2005-10-24 21:33:48 +00:00
Brian Barrett
1e2f7d6a3d * make sure to expose ompi_op_t as an object
This commit was SVN r7848.
2005-10-24 20:31:14 +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
Galen Shipman
cb84a57c57 add endpoint and srq flow-control..
Note, we are failing the ring tests in the intel p2p test suite, but we seem
to fail the same tests under the current trunk.. will look into this further. 

This commit was SVN r7823.
2005-10-21 02:21:45 +00:00
Galen Shipman
c4889ac759 update openib mpool to properly deregister and release (carry over from
mvapi). 

Still need to add endpoint and srq flow control as in mvapi 

This commit was SVN r7816.
2005-10-20 03:57:17 +00:00
Galen Shipman
0d1d231169 convert to new mca params, adding description strings.
changed mca param rr_buf_min/max to rd_min/max 
Add bandwidth param to openib 

This commit was SVN r7815.
2005-10-20 02:55:21 +00:00
George Bosilca
75bc3dd43c Dont mess around with the OBJ_DESTRUCT on the communicator. It's quicker (and safer) to call
directly the communicator cleanup function (ompi_convertor_cleanup).

This commit was SVN r7814.
2005-10-19 21:28:52 +00:00
George Bosilca
1d75b7972f Solve thee problem with the reference count on the datatype (RT bug 1492). The problem is that the
convertor (when prepared) increase the reference count on the used datatype. This reference count
will be released only when the OBJ_DESTRUCT is called on a convertor. However, having to call
OBJ_CONSTRUCT and OBJ_DESTRUCT on each request every time we want to use it (even when it come
from the cache) is an expensive operation. This can be avoided is the OBJ_DESTRUCT will leave the
convertor in exactly the same state as OBJ_CONSTRUCT. With this approach we just have to call
OBJ_CONSTRUCT for each convertor once when we initially create the request.

This commit was SVN r7813.
2005-10-19 20:57:39 +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
de5e501519 Rather than hard spinning waiting for something to happen when doing shared
memory initialization, call opal_progress() to push any pending events
around and possibly yield the processor if nothing entertaining is happening.

This should probably go to the 1.0 branch.

This commit was SVN r7808.
2005-10-19 00:56:14 +00:00
George Bosilca
d2f831cd18 Construct the convertor attached to the receive request. This should happens only on the first allocation of a request object.
This commit was SVN r7807.
2005-10-18 21:53:05 +00:00
Brian Barrett
bcebd1b6b7 Fix a couple of places where headers didn't get installed correctly when
--with-devel-headers is given to configure:
  * allocator, rcache, and mpool were putting things in the wrong place
  * timer wasn't installing the inline implementations at all

This commit was SVN r7805.
2005-10-18 20:12:55 +00:00
Edgar Gabriel
3a7efaf4d9 fix for reduce and allreduce for an unsymmetric case
This commit was SVN r7802.
2005-10-18 19:20:48 +00:00
Edgar Gabriel
818b4af554 - reverting the logic in the hierarchy detection stuff. This can reduce the
number of collective operations and simplifies the logic significantly.
- introducing a special case if size of comm == 1, avoiding thus collective
 operations as well ( i.e. no need for hierarchies)
- fix for an unsymmetric case. Still to be tested.

This commit was SVN r7799.
2005-10-18 18:17:50 +00:00
Tim Woodall
b570c8cad4 need to specify a size, base address will match
This commit was SVN r7798.
2005-10-18 17:01:36 +00:00
Galen Shipman
4d2d39b0a6 intial checking of SRQ flow control support for mvapi
This commit was SVN r7796.
2005-10-18 14:55:11 +00:00
Jeff Squyres
f9974f72e0 construct/destruct convertor when requests are
constructed and allocated to free lists

This commit was SVN r7791.
2005-10-18 12:19:43 +00:00
Jeff Squyres
a459659a33 Print the string name of the return code
This commit was SVN r7789.
2005-10-17 20:47:44 +00:00
Galen Shipman
3efecaaeda convert openib btl to use new mca_param registration.. Also, change rr_buf_min
and rr_buf_max to rd_min and rd_max 

This commit was SVN r7786.
2005-10-17 20:00:34 +00:00
Tim Woodall
c944988b9e merge in changes from release branch - acquire/release send token for put/get
This commit was SVN r7784.
2005-10-17 18:59:28 +00:00
Jeff Squyres
89931ac05f - Correct typo in comment
- Add DIST_SUBDIRS to ompi/tools/Makefile.am

This commit was SVN r7780.
2005-10-17 11:55:55 +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
Edgar Gabriel
7e45f64065 reduce has now been tested quite extensively for all (predefined) operations
and for all root nodes and passed all tests.
First cut on barrier (which from my perspective does not make sense from the
performance point of view) and on allreduce (which might make sense),

This commit was SVN r7774.
2005-10-15 22:24:44 +00:00
Edgar Gabriel
3fab9c628c switching the root and creating (if necessary) the new local leader sub-communicators seems to work as well. Thoroughly tested with bcast, not yet that exhaustivly tested for the reduction.
This commit was SVN r7773.
2005-10-15 21:13:44 +00:00
Edgar Gabriel
7d34770456 further bugfixes. The hierarchy detection works now as far as I can see (even in unsymmetric sitations). Bcast and reduce work as well. Still to test: the code which generates new local leader communicators, in case the root of the operation is not yet part of the lleader comm.
This commit was SVN r7772.
2005-10-15 19:36:54 +00:00
Edgar Gabriel
63554d245f further bugfixes
This commit was SVN r7771.
2005-10-15 18:44:57 +00:00
Edgar Gabriel
92c7b77cbc minor bug fixes
This commit was SVN r7770.
2005-10-15 18:32:40 +00:00
Edgar Gabriel
ba163c611c checkpoint before moving to a real cluster. Most of the recoding should be
done. This version also doesn't break ompi (at least if its not chosen :-) ).
New features compared to the version from last Thursday (where bcast and
reduce seemed to work in most scenarios):
- clearer internal infrastructure
- ability to handle all root processes with a (hopefully) minimal number of
local leader communicators. 

This commit was SVN r7769.
2005-10-15 17:04:01 +00:00
Jeff Squyres
e097ee635a Silence compiler warnings.
This commit was SVN r7768.
2005-10-14 22:06:25 +00:00
Jeff Squyres
237bd4c6cd Fix ompi_info -- cxx:bindings was somehow hard-coded to "yes" instead
of reflecting whether the C++ bindings were supported or not.

This commit was SVN r7766.
2005-10-14 20:07:05 +00:00
Jeff Squyres
f47c272986 Fix for the max-31-F90-symbol-limit problem: keep the interface names
the same (since those are both mandated by MPI and <31 characters),
but change some of the back-end subroutine names so that they are <31
characters and therefore obey the F90 standard.  Remove an outdated /
useless (and confusing) script.

This commit was SVN r7764.
2005-10-14 19:50:30 +00:00
Edgar Gabriel
2c909383bb abstracting the group_free operation into an internal routine (required
by some other components on ompi).

This commit was SVN r7763.
2005-10-14 18:51:20 +00:00
Edgar Gabriel
84c070fc0f get rid of the different modes how to store the colorarray for now. Might be
reintroduced later as an optimization.

This commit was SVN r7762.
2005-10-14 18:11:21 +00:00
Edgar Gabriel
6d14440972 checkpoint for moving again to another machine. major rewrite to clean
up internal interfaces in progress.

This commit was SVN r7761.
2005-10-14 17:41:44 +00:00
Edgar Gabriel
770aeaf97b modifications towards adding new local-leader communicators.
This commit was SVN r7760.
2005-10-14 12:18:29 +00:00
Graham Fagg
636b42afff handle non existant recv buf in reduce for non root processes
(basic allreduce does this for mpi_in_place case)

This commit was SVN r7759.
2005-10-14 00:00:37 +00:00
Graham Fagg
61b8218d76 MPI_IN_PLACE fix for reduce.
(actually a work around for an optimisation in the reduce for not saving ops on the first recv of each segment)
Minor change in topo.

This commit was SVN r7758.
2005-10-13 23:38:21 +00:00
Edgar Gabriel
48f2563b4c checkpoint. Moving to another machine.
This commit was SVN r7757.
2005-10-13 20:04:26 +00:00
Edgar Gabriel
4b05359b16 minor fixes when freeing the component
This commit was SVN r7756.
2005-10-13 18:22:16 +00:00
Edgar Gabriel
0a5a346bbb first cut on the reduce operation.
This commit was SVN r7755.
2005-10-13 17:58:13 +00:00
Edgar Gabriel
30af775d40 further fixes. The first hierarchical MPI_Bcast works! Its just ~ 100 times slower then basic at the moment :-)
This commit was SVN r7754.
2005-10-13 17:34:42 +00:00
Edgar Gabriel
460b5cb840 further corrections to the hierarchy detection algorithms. It seems to work now as far as my tests show...
This commit was SVN r7753.
2005-10-13 16:21:13 +00:00
Edgar Gabriel
f5d16419b2 fix in the logic regarding protocol detection.
This commit was SVN r7749.
2005-10-13 15:07:35 +00:00
Edgar Gabriel
5d7fbd9d2e minor change in bml_r2_add_procs: the memory for the bml_endpoints structure
has to be allocated outside of the routine. Thus, the update version of pml/ob1/oml_ob1.c

This commit was SVN r7739.
2005-10-12 20:59:25 +00:00
Edgar Gabriel
3e5ad3e681 Updates
This commit was SVN r7738.
2005-10-12 20:56:29 +00:00
Tim Woodall
22f460bdc5 merge in changes from release branch
This commit was SVN r7737.
2005-10-12 20:24:43 +00:00