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

487 Коммитов

Автор SHA1 Сообщение Дата
Rolf vandeVaart
74d0259480 Add new implentation of barrier. This shows better performance on some clusters.
However, no decision logic is changed by this commit so default behavior has not changed.  This
is only selectable by runtime parameters.

This commit was SVN r18464.
2008-05-20 17:37:41 +00:00
Rolf vandeVaart
71091a19c3 Fix bug in spacing of code per https://svn.open-mpi.org/trac/ompi/wiki/CodingStyle.
This commit was SVN r18463.
2008-05-20 14:11:10 +00:00
Rolf vandeVaart
763f5259a8 Fix memory leak of 88 bytes that occurred on each call to MPI_Comm_dup.
Need to release the items and the item list after selecting the collective
modules that are being used.  Reviewed by Jeff Squyres.

This commit was SVN r18457.
2008-05-19 21:34:01 +00:00
Jeff Squyres
7154776465 Removed unused variable / compiler warning.
This commit was SVN r18454.
2008-05-19 13:41:45 +00:00
Rolf vandeVaart
375406e1fa Remove the ignore files as decided at Tuesday's developers conference call. Now, hierarchical collectives will be compiled in but the priority is still at 0 requiring a user to set mca parameters to enable them.
This commit was SVN r18440.
2008-05-15 01:26:52 +00:00
Jeff Squyres
671f0c379d Remove a whole pile of orte/util/show_help.h's that I missed. :-(
This commit was SVN r18437.
2008-05-14 11:32:33 +00:00
Jeff Squyres
e7ecd56bd2 This commit represents a bunch of work on a Mercurial side branch. As
such, the commit message back to the master SVN repository is fairly
long.

= ORTE Job-Level Output Messages =

Add two new interfaces that should be used for all new code throughout
the ORTE and OMPI layers (we already make the search-and-replace on
the existing ORTE / OMPI layers):

 * orte_output(): (and corresponding friends ORTE_OUTPUT,
   orte_output_verbose, etc.)  This function sends the output directly
   to the HNP for processing as part of a job-specific output
   channel.  It supports all the same outputs as opal_output()
   (syslog, file, stdout, stderr), but for stdout/stderr, the output
   is sent to the HNP for processing and output.  More on this below.
 * orte_show_help(): This function is a drop-in-replacement for
   opal_show_help(), with two differences in functionality:
   1. the rendered text help message output is sent to the HNP for
      display (rather than outputting directly into the process' stderr
      stream)
   1. the HNP detects duplicate help messages and does not display them
      (so that you don't see the same error message N times, once from
      each of your N MPI processes); instead, it counts "new" instances
      of the help message and displays a message every ~5 seconds when
      there are new ones ("I got X new copies of the help message...")

opal_show_help and opal_output still exist, but they only output in
the current process.  The intent for the new orte_* functions is that
they can apply job-level intelligence to the output.  As such, we
recommend that all new ORTE and OMPI code use the new orte_*
functions, not thei opal_* functions.

=== New code ===

For ORTE and OMPI programmers, here's what you need to do differently
in new code:

 * Do not include opal/util/show_help.h or opal/util/output.h.
   Instead, include orte/util/output.h (this one header file has
   declarations for both the orte_output() series of functions and
   orte_show_help()).
 * Effectively s/opal_output/orte_output/gi throughout your code.
   Note that orte_output_open() takes a slightly different argument
   list (as a way to pass data to the filtering stream -- see below),
   so you if explicitly call opal_output_open(), you'll need to
   slightly adapt to the new signature of orte_output_open().
 * Literally s/opal_show_help/orte_show_help/.  The function signature
   is identical.

=== Notes ===

 * orte_output'ing to stream 0 will do similar to what
   opal_output'ing did, so leaving a hard-coded "0" as the first
   argument is safe.
 * For systems that do not use ORTE's RML or the HNP, the effect of
   orte_output_* and orte_show_help will be identical to their opal
   counterparts (the additional information passed to
   orte_output_open() will be lost!).  Indeed, the orte_* functions
   simply become trivial wrappers to their opal_* counterparts.  Note
   that we have not tested this; the code is simple but it is quite
   possible that we mucked something up.

= Filter Framework =

Messages sent view the new orte_* functions described above and
messages output via the IOF on the HNP will now optionally be passed
through a new "filter" framework before being output to
stdout/stderr.  The "filter" OPAL MCA framework is intended to allow
preprocessing to messages before they are sent to their final
destinations.  The first component that was written in the filter
framework was to create an XML stream, segregating all the messages
into different XML tags, etc.  This will allow 3rd party tools to read
the stdout/stderr from the HNP and be able to know exactly what each
text message is (e.g., a help message, another OMPI infrastructure
message, stdout from the user process, stderr from the user process,
etc.).

Filtering is not active by default.  Filter components must be
specifically requested, such as:

{{{
$ mpirun --mca filter xml ...
}}}

There can only be one filter component active.

= New MCA Parameters =

The new functionality described above introduces two new MCA
parameters:

 * '''orte_base_help_aggregate''': Defaults to 1 (true), meaning that
   help messages will be aggregated, as described above.  If set to 0,
   all help messages will be displayed, even if they are duplicates
   (i.e., the original behavior).
 * '''orte_base_show_output_recursions''': An MCA parameter to help
   debug one of the known issues, described below.  It is likely that
   this MCA parameter will disappear before v1.3 final.

= Known Issues =

 * The XML filter component is not complete.  The current output from
   this component is preliminary and not real XML.  A bit more work
   needs to be done to configure.m4 search for an appropriate XML
   library/link it in/use it at run time.
 * There are possible recursion loops in the orte_output() and
   orte_show_help() functions -- e.g., if RML send calls orte_output()
   or orte_show_help().  We have some ideas how to fix these, but
   figured that it was ok to commit before feature freeze with known
   issues.  The code currently contains sub-optimal workarounds so
   that this will not be a problem, but it would be good to actually
   solve the problem rather than have hackish workarounds before v1.3 final.

This commit was SVN r18434.
2008-05-13 20:00:55 +00:00
Rolf vandeVaart
0e32dd1022 Add MPI_Alltoallv to tuned collectives and add a pairwise implementation of MPI_Alltoallv. However, do not change the default behavior for now. The only way to use new pairwise implementation is via mca parameters.
This commit was SVN r18394.
2008-05-07 02:31:24 +00:00
Rich Graham
4d1ae7b05f accidentally made a change in the wrong place.
This commit was SVN r18262.
2008-04-23 17:32:05 +00:00
Rich Graham
293dd6ad4e add myself to list of people building this module.
This commit was SVN r18261.
2008-04-23 17:25:36 +00:00
Rich Graham
7658cc79e4 Pass in the correct module to the reduction call.
This commit was SVN r18260.
2008-04-23 17:23:30 +00:00
Tim Mattox
0215474cb8 Fix two bugs in coll_sm_module.c from bit-rot:
Fixed a selection bug, and removed a bogus "free(proc)" call
which ultimately caused MPI_Finalize to crash.

This commit was SVN r18235.
2008-04-22 18:41:21 +00:00
Rich Graham
df35223603 add selection logic for barrier and reduce.
This commit was SVN r18215.
2008-04-19 22:40:04 +00:00
Rich Graham
bee8b42f29 remove debug code that would not let people run.
Add infrastructure for blocking-barrier.

This commit was SVN r18214.
2008-04-19 01:34:04 +00:00
Rich Graham
6c77fa4921 add a blocking shared memory algorithm.
This commit was SVN r18185.
2008-04-16 22:10:23 +00:00
Rich Graham
249445d61f added reduce-scatter followed by gather to root.
This commit was SVN r18133.
2008-04-11 13:49:08 +00:00
Rich Graham
a6bdbfab97 implement allreduce as reduce-scatter, followed by an allgather.
This commit was SVN r18132.
2008-04-11 04:06:29 +00:00
Rich Graham
70f3aab5f2 remove some code that is not needed.
This commit was SVN r18128.
2008-04-10 17:32:04 +00:00
Rich Graham
5c7db1e315 remove 2 race conditions in the buffer recycling logic.
This commit was SVN r18127.
2008-04-10 17:20:52 +00:00
Edgar Gabriel
4964434205 reverting commit 18122, since the commit was executed accidentally in the
wring directory. The UH copyrights do belong into this file (i.e. because of
the fix which is in the 1.2 branch, the UH copyright notes are in the header
there alreary), but I want to have the proper log for that.  

This commit was SVN r18124.
2008-04-10 15:09:31 +00:00
Edgar Gabriel
f87830767a the verification of recvcount==0 and rank = root was braking
inter-communicator scatter, since the root (root==MPI_ROOT) might very well
have recvcount=0. The same fix has been applied to gather.c just the other way
round. 
 
Fixes the bug reported on the mainling list by Martin Audet. If there is a
1.2.7 this fix might be worthwhile porting it over.

Please note, that while the test works now for basic and for inter, we get a
0byte malloc warning from the inter module, which we still have to fix in a
separate patch.

This commit was SVN r18122.
2008-04-10 14:58:51 +00:00
Rich Graham
c6783549ef getting old
This commit was SVN r18110.
2008-04-09 16:55:16 +00:00
Rich Graham
1a20c3ce51 more debug.
This commit was SVN r18109.
2008-04-09 16:19:52 +00:00
Rich Graham
e7e18303f6 more debug.
This commit was SVN r18108.
2008-04-09 15:10:58 +00:00
Rich Graham
b14c6b17d5 adding debug output.
This commit was SVN r18107.
2008-04-09 13:32:01 +00:00
Rich Graham
10434fb2f1 add barrier synchorinzation at the end of the module init, to
avoid initializing shared memory variables in use.

This commit was SVN r18105.
2008-04-09 03:44:40 +00:00
Rich Graham
19bb1a2e86 fix initialization bug.
This commit was SVN r18104.
2008-04-08 23:34:06 +00:00
Rich Graham
a69a8d9626 initialize the flags.
This commit was SVN r18102.
2008-04-08 22:16:39 +00:00
Rich Graham
8765a2bbdd more debug code.
This commit was SVN r18101.
2008-04-08 20:38:20 +00:00
Rich Graham
08becf33b5 add more debugging.
This commit was SVN r18100.
2008-04-08 18:44:50 +00:00
Rich Graham
aa1b7dd406 more debug
This commit was SVN r18099.
2008-04-08 03:56:47 +00:00
Rich Graham
0c18bdeff7 more debug code.
This commit was SVN r18098.
2008-04-08 03:04:20 +00:00
Rich Graham
9d5a7238df Add some debugging code.
This commit was SVN r18097.
2008-04-07 23:20:15 +00:00
Rich Graham
fa696734d5 add some debug code.
This commit was SVN r18096.
2008-04-07 21:03:23 +00:00
Rich Graham
1b54e8b76e fix buffer management for nb-barrier.
This commit was SVN r18081.
2008-04-05 21:59:04 +00:00
Rich Graham
94f8fd365c a few reduction optimizations. Add bcast.
This commit was SVN r18075.
2008-04-02 19:02:33 +00:00
George Bosilca
a00ca20446 More cleanups.
This commit was SVN r18069.
2008-04-02 06:38:33 +00:00
Rich Graham
eb5d6096f1 add reduction routine - fix buffer recycling logic which was totally
broken.

This commit was SVN r18065.
2008-04-01 22:56:18 +00:00
Rich Graham
90e53ca9ee debug the pipeline algorithm.
This commit was SVN r18008.
2008-03-28 15:10:07 +00:00
Rich Graham
e2ad9c4be2 adjust to change in orte_process_info.
This commit was SVN r17986.
2008-03-27 01:25:28 +00:00
Rich Graham
441fb9fb9e checkpoint.
This commit was SVN r17985.
2008-03-27 01:16:32 +00:00
Ralph Castain
cca449e379 Move an OMPI RML tag to the OMPI layer
This commit was SVN r17950.
2008-03-25 13:30:48 +00:00
Ralph Castain
dc7f45dafd Remove the obsolete and largely unused orte_system_info structure. The only fields that were used in that struct were nodeid and nodename - these have been transferred to the orte_process_info structure.
Only one place used the user name field - session_dir, when formulating the name of the top-level directory. Accordingly, the code for getting the user's id has been moved to the session_dir code.

This commit was SVN r17926.
2008-03-23 23:10:15 +00:00
Rich Graham
a7c836a2b0 fix location of the restrict key word.
Make the tag in the fan-in/fan-out algorithm be fragment based.

This commit was SVN r17903.
2008-03-21 01:40:36 +00:00
Rich Graham
2c66d396b7 take care of some bit-rot with the fanin-fanout method.
This commit was SVN r17902.
2008-03-21 01:08:49 +00:00
Rich Graham
b9520e61dc get the sm optimized allreduce working for all but user defined
operations.  Added to the reduction operations a set of reduction
functions that take 2 input buffers and one output buffer to avoid
some extra memory copies.  These can't be used with user defined
operations.  The intel c collective suite passes both original, and
new (new, not the user defined operations).

This commit was SVN r17901.
2008-03-20 23:51:16 +00:00
Edgar Gabriel
570bbea5e0 fixing the allgather problem reported on the mailing list. The problem was
that at one locatin we had the local-size instead of the remote size as a
receive argument.

This commit was SVN r17849.
2008-03-17 19:42:18 +00:00
Rich Graham
27182afb67 get the timers in correctly.
This commit was SVN r17832.
2008-03-16 03:25:16 +00:00
Rich Graham
afcd1016fd move temp buffer allocation out of the iteration loop - i.e. always use the
same temp loop.  The algorithm is rather synchronous already...

This commit was SVN r17831.
2008-03-16 03:20:46 +00:00
Rich Graham
a1766b29f6 fix some barrier addressing errors.
This commit was SVN r17830.
2008-03-15 22:46:19 +00:00
Rich Graham
0453e7d2f4 bug in management memory allocation - too much memory allocated.
This commit was SVN r17829.
2008-03-15 18:12:20 +00:00
Rich Graham
3c2f1eb8bf reduce the number of temp buffers used.
This commit was SVN r17828.
2008-03-15 17:23:04 +00:00
Rich Graham
0f9d642d51 temp buffer pointers are computed when they are set up. A bit more
efficient, but more important, it is much easier to play around with
memory layout now.

This commit was SVN r17827.
2008-03-15 16:36:35 +00:00
Rich Graham
e3e336b5ab check point
This commit was SVN r17826.
2008-03-15 13:31:21 +00:00
Rich Graham
ebcf928c24 add some diagnostics.
This commit was SVN r17789.
2008-03-07 22:27:41 +00:00
Rich Graham
9131461511 move some test code to another machine.
This commit was SVN r17785.
2008-03-07 19:18:02 +00:00
Rich Graham
c230b65543 fix a couple of bugs. Recursive doubling seems to be working.
This commit was SVN r17777.
2008-03-07 02:51:38 +00:00
Rich Graham
70157166f9 checkpoint - compiles, now neeed to debug.
This commit was SVN r17775.
2008-03-07 00:39:59 +00:00
Rich Graham
4eace9d020 starting to implement recursive doubling algorithm.
This commit was SVN r17765.
2008-03-06 18:38:58 +00:00
Rich Graham
67ad9b6d6b increase max data segments size.
This commit was SVN r17677.
2008-03-02 19:11:09 +00:00
Rich Graham
53126fa7bd add calls to opal_progress()
This commit was SVN r17673.
2008-02-29 23:25:09 +00:00
Rich Graham
d37db14901 get the shared memory collectives working again with the new
version of orte.

This commit was SVN r17672.
2008-02-29 22:28:57 +00:00
Rich Graham
c253a7bda1 simplify the code abit.
This commit was SVN r17664.
2008-02-29 03:55:12 +00:00
Rich Graham
1632d8b299 revert to an older (not previosly checked in) version to get around a
regression.

This commit was SVN r17663.
2008-02-29 03:12:12 +00:00
Rich Graham
827e8d877e fix bug in node type, and some memory copy optimizations.
This commit was SVN r17661.
2008-02-29 01:20:11 +00:00
Rich Graham
940d6732c9 remove compiler warnings.
This commit was SVN r17656.
2008-02-28 22:01:19 +00:00
Rich Graham
2b5fab9d51 avoid 0 byte malloc.
This commit was SVN r17653.
2008-02-28 21:11:42 +00:00
Rich Graham
4b26adef00 remove some debug output.
This commit was SVN r17650.
2008-02-28 20:54:35 +00:00
Rich Graham
5df6c6d043 fix several race conditions.
This commit was SVN r17645.
2008-02-28 19:40:19 +00:00
Ralph Castain
d70e2e8c2b Merge the ORTE devel branch into the main trunk. Details of what this means will be circulated separately.
Remains to be tested to ensure everything came over cleanly, so please continue to withhold commits a little longer

This commit was SVN r17632.
2008-02-28 01:57:57 +00:00
Rich Graham
68aa691171 checkpoint work.
This commit was SVN r17620.
2008-02-27 14:56:36 +00:00
Rich Graham
b4bbb70bb7 got it all, but for the mem copies. Also, need to make sure volatile declarations are all inplace, as well as memory barriers.
This commit was SVN r17572.
2008-02-25 00:16:21 +00:00
Rich Graham
2d8c2420e8 checkpoint.
This commit was SVN r17571.
2008-02-24 20:54:16 +00:00
Rich Graham
771584bff5 generate reduction tree.
This commit was SVN r17569.
2008-02-24 03:25:40 +00:00
Rich Graham
b9bb78484d a bit of omptimization.
This commit was SVN r17528.
2008-02-20 16:19:49 +00:00
Rich Graham
09afc36f5f correct addressing.
This commit was SVN r17519.
2008-02-20 01:12:43 +00:00
Rich Graham
b87b15580c fix memory allocation error. Initialize pointer.
This commit was SVN r17514.
2008-02-19 20:01:42 +00:00
Rich Graham
1cd8a2e578 checkpoint - works for 2 procs, but not more.
This commit was SVN r17477.
2008-02-17 05:21:58 +00:00
Rich Graham
8006927ae8 free buffer, rather than ask for another one, when done with the memory.
This commit was SVN r17468.
2008-02-15 04:21:58 +00:00
Rich Graham
2277b47ab9 register mca_coll_sm2_allreduce_intra - function still does not do any
reduction operations.

This commit was SVN r17467.
2008-02-15 04:13:00 +00:00
Rich Graham
9b0687e6df add buffer allocation and deallocation calls to the allreduce routine, so
I can start debugging the memory management code.  The allreduce fucntion
 does nothing at this stage.

This commit was SVN r17466.
2008-02-15 03:59:14 +00:00
Rich Graham
41943dbd76 adding missing files.
This commit was SVN r17462.
2008-02-15 00:59:28 +00:00
Rich Graham
41f4b06b39 buffer allocate/release code is fully written, and compiles. Now need to debug.
This commit was SVN r17461.
2008-02-15 00:57:44 +00:00
Rich Graham
7cc58768cd checkpoint something that compiles
This commit was SVN r17460.
2008-02-15 00:33:14 +00:00
Rich Graham
292d930eea check point.
This commit was SVN r17457.
2008-02-14 20:00:26 +00:00
Edgar Gabriel
77057a50a3 - adding the two-level hierarchy detection algorithm
- minor fix in the temporary collectives 
- removing the symmetric parameter, since it didn't really make sense.

This commit was SVN r17359.
2008-02-01 17:11:36 +00:00
Rich Graham
fda485ff9c backing file is allocated and deallocated.
This commit was SVN r17358.
2008-02-01 15:26:20 +00:00
Rich Graham
165fc3f8cc memory allocation implemented and debugged. Still need to finish
file allocation/dealocation and control information initialization.

This commit was SVN r17291.
2008-01-29 03:09:12 +00:00
Rich Graham
e24c2ebbc0 have a working skeleton for the SM-V2 component. It does nothing at this stage.
This commit was SVN r17241.
2008-01-25 21:16:36 +00:00
Rich Graham
1d0334f4f2 skeleton for new shared memory collective component.
This commit was SVN r17235.
2008-01-25 19:35:26 +00:00
Rich Graham
432ba0cecd add comments about the life-cycle of a collective module.
This commit was SVN r17223.
2008-01-25 03:46:31 +00:00
George Bosilca
31390c0074 We should take in account the extent of the datatype when we compute
the initial displacement in bytes. Thanks to Daniel G. Hyams for the fix.

This commit was SVN r17165.
2008-01-19 05:34:53 +00:00
George Bosilca
3fca3973d3 The PTLs are now long gone !!!
This commit was SVN r17104.
2008-01-10 00:18:45 +00:00
George Bosilca
906e8bf1d1 Replace the ompi_pointer_array with opal_pointer_array. The next step
(sometimes after the merge with the ORTE branch), the opal_pointer_array
will became the only pointer_array implementation (the orte_pointer_array
will be removed).

This commit was SVN r17007.
2007-12-21 06:02:00 +00:00
Jeff Squyres
213b5d5c6e Per long threads on the mailing list and much confusion discussion
about linkers, have all OPAL, ORTE, and OMPI components '''not'' link
against the OPAL, ORTE, or OMPI libraries.

See ttp://www.open-mpi.org/community/lists/users/2007/10/4220.php for
details (or https://svn.open-mpi.org/trac/ompi/wiki/Linkers for a
better-formatted version of the same info).

This commit was SVN r16968.
2007-12-15 13:32:02 +00:00
Andrew Friedley
c15047b264 Add LLNL copyright to the file i modified yesterday
This commit was SVN r16404.
2007-10-09 15:18:23 +00:00
Andrew Friedley
fd51d9cf28 The call to opal_list_insert() had an off by one error (I think), causing selected components to get lost with certain load orderings.
I went ahead and rewrote the code to use opal_list_insert_pos() instead, which gives a cleaner flow and more speed.

This commit was SVN r16392.
2007-10-08 23:01:36 +00:00
Jeff Squyres
f92d9097d8 Some more changes to update to coll v1.1.0 that were missed
yesterday.  This actually exposed a very, very long-standing bug where
part of the coll base was incorrectly checking the coll API version
against the MCA API version.  When coll went to v1.1 (yesterday) and
was no longer the same as the MCA v1.0, the test started failing.

This commit fixes to check for v1.1 everywhere in the coll base, and
to ensure to check coll framework/API version numbers against coll
framework/API version numbers (vs. against the MCA API version
number).

This commit was SVN r16373.
2007-10-07 12:20:22 +00:00
Jeff Squyres
3d34bff596 No technical/functional changes: simply change the name of the "data"
parameter to "module" everywhere, just to be a little more clear what
the purpose of that parameter is.

This commit was SVN r16372.
2007-10-07 08:36:45 +00:00
Jeff Squyres
fc2b4376e9 Update forgotten macro.
This commit was SVN r16368.
2007-10-06 14:11:35 +00:00
Jelena Pjesivac-Grbovic
ada43fef9e This fixes bug #1157 in coll/self module.
All vector functions had incorrect handling of the offset.

This commit was SVN r16360.
2007-10-05 17:40:16 +00:00
Andrew Friedley
2e66590993 Fix mistakes in the basic component.. can't call collectives on the communicator and always pass the basic module.. have to give them the module off the communicator.
This commit was SVN r16329.
2007-10-04 16:29:24 +00:00
George Bosilca
1e7a791349 Remove some of the problems identified by Coverty.
This commit was SVN r16112.
2007-09-12 20:13:26 +00:00
George Bosilca
c755938eb0 Coverty: release the temporary buffer on error.
This commit was SVN r16104.
2007-09-12 17:45:12 +00:00
Shiqing Fan
a0660f4deb - Just some type casts.
This commit was SVN r16100.
2007-09-12 15:29:58 +00:00
Jeff Squyres
c4a38f47f6 Resolve Coverity CID 467: remove unused variable / dead code.
This commit was SVN r15997.
2007-08-29 01:23:18 +00:00
Edgar Gabriel
a2f5cada1a convert the hiearch component to the new structure. More testing required before we remove the .ompi_ignore flag again.
This commit was SVN r15954.
2007-08-23 20:41:29 +00:00
Shiqing Fan
a497a3fcad - Fix some small bugs, copy-paste mistakes.
This commit was SVN r15941.
2007-08-21 19:57:28 +00:00
Sven Stork
3985a35c35 - export required symbol
This commit was SVN r15939.
2007-08-21 18:46:11 +00:00
Brian Barrett
af4e86c25f Update collectives selection logic to allow for multiple components to be
used at nce (up to one unique collective module per collective function).
Matches r15795:15921 of the tmp/bwb-coll-select branch

This commit was SVN r15924.

The following SVN revisions from the original message are invalid or
inconsistent and therefore were not cross-referenced:
  r15795
  r15921
2007-08-19 03:37:49 +00:00
Jelena Pjesivac-Grbovic
9bd9c92dbd Making sure that the decision function for scatter and gather correctly
computes everything for MPI_IN_PLACE case.

This commit was SVN r15841.
2007-08-13 17:35:50 +00:00
Jelena Pjesivac-Grbovic
b558e820cb removing compiler wraning
This commit was SVN r15803.
2007-08-08 15:22:01 +00:00
Jelena Pjesivac-Grbovic
daa10b277e modifying scatter decision function to use binomial algorithm for
small message sizes.

This commit was SVN r15798.
2007-08-07 22:16:13 +00:00
Mohamad Chaarawi
59a7bf8a9f Merging in the Sparse Groups..
This commit includes config changes..

This commit was SVN r15764.
2007-08-04 00:41:26 +00:00
Sven Stork
855434de59 - fixes several coverty issues
- add missing initialisation for variables
  - use strncpy instead of strcpy

This commit was SVN r15683.
2007-07-30 14:44:37 +00:00
Jelena Pjesivac-Grbovic
1b66a52c50 Modifying type of binomial tree used for binomial reduce:
switching:
       0                         0
     / \ \                     / \ \
	1    \ \         -->       4   \ \
  /      \ \                 /     \ \
 3       2  \               3       2 \
             4                         1
(duh).  The first form is the bmtree suitable for bcast, but the latter is better for reduce.
Updating default decision function accordingly.

This commit was SVN r15422.
2007-07-13 21:07:51 +00:00
Jelena Pjesivac-Grbovic
d677db9b5f cleaning up alltoall implementation:
- removing MPI_* calls from bruck implementation
- simplifying 2 process case
- identation, etc.

This commit was SVN r15301.
2007-07-07 01:06:19 +00:00
Jelena Pjesivac-Grbovic
483222085e Fixing compiler warnings.
In gather, the ptmp += incr is irrelevant, since ptmp is set within the loop.

This commit was SVN r15293.
2007-07-05 20:40:50 +00:00
Jelena Pjesivac-Grbovic
3b0a52a104 adding tuned allgatherv implementation using bruck, ring, and neighbor-exchange algorithms.
The implementations passed intel and imb tests up to 40 processes.

This commit was SVN r15280.
2007-07-03 23:33:12 +00:00
Jelena Pjesivac-Grbovic
d55b415bb0 fixing typo
This commit was SVN r15240.
2007-06-28 20:56:55 +00:00
Jelena Pjesivac-Grbovic
8fc8b44d11 Modifying reduce decision function for large, single element reduces (again).
Binary algorithm without segmentation tends to outperform binomial algorithm 
in this case.

This commit was SVN r15226.
2007-06-27 22:01:56 +00:00
Jelena Pjesivac-Grbovic
0ecef1750d Modifying the default reduce decision function to use binomial algorithm
for single-element reduce (segmented algorithms make no sense in this case
and can cause performance degradation). 

This commit was SVN r15209.
2007-06-26 20:14:03 +00:00
Jelena Pjesivac-Grbovic
567b40b9a9 Modifying the default broadcast decision function to use binomial algorithm
for single-element broadcasts (segmented algorithms make no sense in this case
and can cause performance degradation).

This commit was SVN r15208.
2007-06-26 20:08:31 +00:00
Jelena Pjesivac-Grbovic
3740640711 Modifying MPI_Gather in tuned module:
- adding linear algorithm with synchronization for gather.
  This algorithm prevents congestion at root process, but introduces 
  synchronization (serializes non-root processes, but allows messages 
  to arrive from two processes at the same time).  
  It performed better than binomial and linear algorithms for large message, 
  and intermediate and large communicator sizes.
- Updating MPI_Gather decision function to reflect performance results
  from MX.  I will perform more measurements though - so this one can 
  change.

This commit was SVN r15165.
2007-06-21 20:00:36 +00:00
Sven Stork
22af6d38e6 - UNexport symbols that shouldn't be needed outside the libraries
- replace #if/#endif with BEGIN/END_C_DECLS
- reformating

This commit was SVN r14669.
2007-05-16 15:46:52 +00:00
Brian Barrett
21e00f6f0c Clean up a couple of configure things:
* Require Autoconf 2.60 or higher and remove some cruft
    required for AC 2.59 or the AC 2.59 / AC 2.60 mix
  * Remove a bunch of now unnecessary AC_SUBST calls
  * Use the libtool-provided variables for the -I and
    library to use when compiling against ltdl

Fixes trac:1000

This commit was SVN r14652.

The following Trac tickets were found above:
  Ticket 1000 --> https://svn.open-mpi.org/trac/ompi/ticket/1000
2007-05-15 04:23:48 +00:00
Jelena Pjesivac-Grbovic
625c6739ab Removing warning about unsed variable
This commit was SVN r14579.
2007-05-03 20:26:41 +00:00
Jelena Pjesivac-Grbovic
9eff74ad4d Modifying generalized reduce "synchronized" behavior:
- Removing "small" message size limit because it really does not relate to the eager size
accross the board.
Now, the leaf nodes in generalized reduce will use blocking send (DEFAULT/ORIGINAL BEHAVIOR) 
either when the maximum number of outstanding requests is 0 or 
when the total number of segments is less than the maximum number of outstanding requests.
Otherwise, it will send messages using non-blocking synchronized send operation.

This commit was SVN r14572.
2007-05-02 21:42:45 +00:00
George Bosilca
69642a9cd4 Remove 2 warnings about ptrdiff_t to unsigned long implicit conversion.
This commit was SVN r14565.
2007-05-01 19:47:33 +00:00
Jelena Pjesivac-Grbovic
3eac49aa59 Adding flow control for leaf nodes in generalized reduce structure.
This "feature" is disabled by default and it should not affect the current performance.

In case when the message size is large and segment size is smaller than eager size for particular interface,
the leaf nodes in generalized reduce function can overflood parent nodes by sending all segments without 
any synchronization.  This can cause the parent to have HIGH number of unexpected messages (think 16MB 
message with 1KB segments for example).  In case of binomial algorithm root node always has at least one
child which is leaf, so this can potentially affect the root's performance significantly [Especially in 
large communicators where root may have quite a few children (binomial tree for example)].
When the segment size is bigger than the eager size, rendezvous protocol ensures that this does 
not happen so it is not necessary.
Originally, the problem was exposed in "infinite" bucket allocator clean up time for "small" segment sizes
(which may explain some "deadlocks" on Thunderbird tests).

To prevent this, we allow user to specify mca parameter "--mca coll_tuned_reduce_algorithm_max_requests NUM"
this limits number of outstanding messages from a leaf node in generalized reduce to the parent to NUM.
Messages are sent as non-blocking synchrnous messages, so syncronization happens at "wait" time.
The synchronization actually improved performance of pipeline and binomial algorithm for large message sizes
with 1KB segments over MX, but I need to test it some more to make sure it is consistent.

Since there is no easy way to find out what is "the eager" size for particular btl, I set the limit to 4000B.
If message/individual segment size is greater than 4000B - we will not use this feature.  This variable may
or may not be exposed as mca parameter later...

I did not have any problems running it and both "default" and "synchronous" tests passed Intel Reduce* tests 
up to 80 processes (over MX).

This commit was SVN r14518.
2007-04-25 20:39:53 +00:00
Jelena Pjesivac-Grbovic
53cbec7a09 Make coll/tuned dynamic rules more verbose (when promted with --mca coll_base_verbose 1)
This commit was SVN r14469.
2007-04-23 16:34:52 +00:00
Jeff Squyres
51f286d737 Just like r14289 on the ORTE trunk:
Per discussions with Brian and Ralph, make a slight correction in
where components are installed. Use $pkglibdir, not $libdir/openmpi,
so that when compiled in the orte trunk, components are installed to
the right directory (because the component search patch is checking
$pkglibdir).

This commit was SVN r14345.

The following SVN revisions from the original message are invalid or
inconsistent and therefore were not cross-referenced:
  r14289
2007-04-12 11:19:42 +00:00
George Bosilca
120cf76ad8 Remove some warnings.
This commit was SVN r14196.
2007-04-02 19:11:06 +00:00
George Bosilca
cc65814969 And set the message size before the first use too.
This commit was SVN r14159.
2007-03-28 18:01:13 +00:00
George Bosilca
b540545fa7 Set the communicator size before using it.
This commit was SVN r14158.
2007-03-28 17:59:21 +00:00
Mohamad Chaarawi
bfaf9d4a12 Added new module for intercomm collectives. This will require an
autogen.

This commit was SVN r14149.
2007-03-27 02:06:42 +00:00
Jelena Pjesivac-Grbovic
d6402b6898 Adding in-order binary tree algorithm for non-commutative reduce operations.
I tested algorithm with intel and ibm tests and it passed again - so it should work.

This commit was SVN r14068.
2007-03-19 21:03:57 +00:00
Josh Hursey
dadca7da88 Merging in the jjhursey-ft-cr-stable branch (r13912 : HEAD).
This merge adds Checkpoint/Restart support to Open MPI. The initial
frameworks and components support a LAM/MPI-like implementation.

This commit follows the risk assessment presented to the Open MPI core
development group on Feb. 22, 2007.

This commit closes trac:158

More details to follow.

This commit was SVN r14051.

The following SVN revisions from the original message are invalid or
inconsistent and therefore were not cross-referenced:
  r13912

The following Trac tickets were found above:
  Ticket 158 --> https://svn.open-mpi.org/trac/ompi/ticket/158
2007-03-16 23:11:45 +00:00
Rolf vandeVaart
42168575fd Fix for the special case where np=2 and the sendbuf is set to MPI_IN_PLACE.
In that case, sendcount and sendtype are not valid and we need to use
recvcount and recvtype.

This commit fixes trac:943.  Reviewed by Jelena Pjesivac-Grbovic.

This commit was SVN r14022.

The following Trac tickets were found above:
  Ticket 943 --> https://svn.open-mpi.org/trac/ompi/ticket/943
2007-03-13 19:01:20 +00:00
Jelena Pjesivac-Grbovic
9780a000ba Cleanup of generic reduce function and possible (low probability) bug fix.
- fixing line lengths and some of the comments
- possible bug fix (but I do not think we exposed it in any tests so far)
  temporary buffers were allocated as multiples of extent instead of 
  true_extent + (count -1) * extent.
Everything is still passing Intel tests over tcp and btl mx up to 64 nodes.

This commit was SVN r13956.
2007-03-08 00:54:52 +00:00
Jelena Pjesivac-Grbovic
57cbafafd5 Clean up of generic broadcast function: removing unecessary statements and improving comments.
This commit was SVN r13955.
2007-03-07 21:59:53 +00:00
Jelena Pjesivac-Grbovic
0c07654c30 Updating reduce_scatter decision function based on MX results up to 64 nodes and both 1ppn and 2ppn
configurations.

This commit was SVN r13945.
2007-03-07 00:38:33 +00:00
Jelena Pjesivac-Grbovic
e5ed167a6e Adding tuned version of reduce_scatter implementation.
Currently 3 algorithms are available:
- non-overlapping, reduce + scatterv, (works for non-commutative operations)
- recursive halving algorithm (copied from basic module)
- ring algorithm  (similar to allreduce ring, for large messages)

This commit was SVN r13929.
2007-03-05 20:40:39 +00:00
Li-Ta Lo
196e2a86bb addes binomial tree based scatter, passed IBM and intel tests
This commit was SVN r13906.
2007-03-02 23:19:02 +00:00
Li-Ta Lo
11c94cbe76 eliminated the use of MPI_Get_count
This commit was SVN r13904.
2007-03-02 22:57:50 +00:00
Li-Ta Lo
3765e19d15 added ASCII graph for the topologies
This commit was SVN r13892.
2007-03-02 17:17:14 +00:00
Li-Ta Lo
bd75f2f162 change ALLGATHER to GATHER
This commit was SVN r13891.
2007-03-02 17:02:29 +00:00
Li-Ta Lo
c5d8c221b0 added binomial tree based Gather alogrithm, passed IBM and Intel tests
This commit was SVN r13835.
2007-02-28 01:11:01 +00:00
Jelena Pjesivac-Grbovic
627533fe4a Adding segmented ring algorithm for Allreduce for commutative operations.
Algorithm allows user to specify the segment size to be used for computation/communication overlap.
The additional memory requirement for the algorithm is 2 x segment size.
It performed well for (really) large message sizes over MX and it passed intel Allreduce_c and Allreduce_loc_c tests.

This commit was SVN r13832.
2007-02-27 20:32:30 +00:00
George Bosilca
bec20422ee Remove the warnings about printf data-type mismatch.
This commit was SVN r13804.
2007-02-26 22:20:35 +00:00