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

660 Коммитов

Автор SHA1 Сообщение Дата
Jeff Squyres
85834b22e6 Change the default to not enable heterogeneous builds; we detect at run-time if a heterogeneous job was started and will barf appropriately if OMPI was not compiled with heterogeneous support
This commit was SVN r18601.
2008-06-06 00:00:37 +00:00
Pavel Shamis
7b9024bc05 Updating Mellanox's Copyright in files touched in 2008
This commit was SVN r18592.
2008-06-05 13:40:26 +00:00
Rolf vandeVaart
8b01499d6e Fix up the checking for whether the epoll interface is working properly. We now make sure that we can properly use the 3 interfaces to epoll. This was needed as there are compilers that do not recognize the packed attribute. The plan is to also request this change get moved upstream to libevent.
Reviewed by Jeff Squyres
This change fixes trac:1316.

This commit was SVN r18548.

The following Trac tickets were found above:
  Ticket 1316 --> https://svn.open-mpi.org/trac/ompi/ticket/1316
2008-05-30 01:00:19 +00:00
Jeff Squyres
6a82b7bbb4 This file does not need to be executable.
This commit was SVN r18516.
2008-05-27 22:03:05 +00:00
Jeff Squyres
1cba10e11b Per advice from Ralf W. (see bug-libtool list post 4:48pm US Eastern
time, 27 May 2008 -- not web archived as of this commit), do the
following:

 * move libtoolize earlier in the process
 * remove most of acinclude.m4; instead, use "aclocal -I config" at
   the top-level to have it automatically pull in any relevant .m4
   file
 * add patch for ifort shared library support for LT 2.2.4
   (http://lists.gnu.org/archive/html/bug-libtool/2008-05/msg00049.html);
   will likely be unnecessary in future LT versions

This commit was SVN r18515.
2008-05-27 21:58:09 +00:00
Jeff Squyres
15fce83c5b Change some define's to AC_DEFUN's so that "aclocal -I config" will
find all the right .m4 files upon demand.

This commit was SVN r18514.
2008-05-27 21:54:23 +00:00
Rainer Keller
b0cbeb0b41 - Add detection of __attribute__((hot)) and __attribute__((cold))
to allow explicit grouping of hot functions into similar code
   sections upon link-time. Should decrease TLB misses (iff the code-
   section is really too large)...
   Candidates for __opal_attribute_hot__ are MPI_Isend MPI_Irecv,
   MPI_Wait, MPI_Waitall
   Candidates for __opal_attribute_cold__ are MPI_Init, MPI_Finalize and
   MPI_Abort...

This commit was SVN r18421.
2008-05-10 10:38:51 +00:00
George Bosilca
fe495e429a Completely remove the kqueue support on MAC OS X. Remove the test
from kqueue that try to detect if kqueue might works with ptys.

This commit was SVN r18411.
2008-05-08 02:33:23 +00:00
Jeff Squyres
807dc5383d Check for a function that is only available in recent versions of the
IBCM library.  Fixes trac:1280.

This commit was SVN r18397.

The following Trac tickets were found above:
  Ticket 1280 --> https://svn.open-mpi.org/trac/ompi/ticket/1280
2008-05-07 11:51:55 +00:00
Pak Lui
f5311903ee Correct the check with AC_LINK_IFELSE per Jeff's suggestion
This commit was SVN r18368.
2008-05-05 02:13:30 +00:00
Jeff Squyres
ba5615a18f Merge in /tmp-public/cpc3 branch to trunk. oob/xoob still remains the
default CPC.

This commit was SVN r18356.
2008-05-02 11:52:33 +00:00
Jeff Squyres
357428f82f Per http://www.open-mpi.org/community/lists/devel/2008/04/3778.php, Ralph W.'s suggestion to remove an unnecessary escape
This commit was SVN r18354.
2008-05-01 22:33:49 +00:00
Jeff Squyres
518bd99e17 Per thread started here:
http://www.open-mpi.org/community/lists/users/2008/04/5483.php

Make the error message a bit more user-friendly.

This commit was SVN r18293.
2008-04-25 11:09:43 +00:00
Jeff Squyres
a198971fa2 Temporarily disable Solaris ports support in libevent. Refs trac:1273
This commit was SVN r18199.

The following Trac tickets were found above:
  Ticket 1273 --> https://svn.open-mpi.org/trac/ompi/ticket/1273
2008-04-17 23:14:43 +00:00
Jeff Squyres
939d50dff6 Minor configure help message fix. Thanks Bernhard Fischer
This commit was SVN r18077.
2008-04-02 22:55:38 +00:00
Rainer Keller
e1e13631cc - Starting with gcc-4.4, the compiler does not recognize faulty
compiler warnings starting with -Wno- to recognize (if there are no
   other warnings.
   Try it with Your favorite warning, such as -Wno-britney will not
   fail, while it will be recognized as faulty, if You also pass on with
   -Wno-britney -Wspears....

This commit was SVN r18070.
2008-04-02 07:44:17 +00:00
George Bosilca
8e8b8950ef Add support for Interix.
This commit was SVN r17983.
2008-03-26 23:20:33 +00:00
Jeff Squyres
314ab2c6e7 Update internal libevent to upstream (v1.4.2-rc + OMPI changes).
Greatly reduce the number of "foo" -> "opal_foo" symbol renames in the
libevent source, and instead greatly expand the event_rename.h file
that uses preprocessor macros to make all public symbols be
"opal_foo".

This commit was SVN r17923.
2008-03-23 12:33:04 +00:00
Jeff Squyres
ace1717ca7 Patch from Brian to add in proper linker libraries
This commit was SVN r17919.
2008-03-21 23:00:54 +00:00
George Bosilca
cce542dd73 Don't do anything if the compile step failed. Make the correct
detection on Windows.

This commit was SVN r17791.
2008-03-07 23:57:56 +00:00
George Bosilca
79d292fe31 Do the microsoft checks.
This commit was SVN r17790.
2008-03-07 22:35:26 +00:00
George Bosilca
023fa2663d Typos.
This commit was SVN r17788.
2008-03-07 21:13:20 +00:00
Ralph Castain
b104a59b08 Remove obsolescent configure option
This commit was SVN r17753.
2008-03-06 03:09:42 +00:00
Pak Lui
4dd5683715 Typo in help message
This commit was SVN r17743.
2008-03-05 16:02:33 +00:00
Matthias Jurenz
07bbdd0de0 Re-enable building of contrib packages by default (the VT configury issues are fixed)
This commit was SVN r17740.
2008-03-05 15:30:50 +00:00
Tim Prins
1b34620d8e Make the default to enable symbol visibility.
Fixes trac:1222

This commit was SVN r17712.

The following Trac tickets were found above:
  Ticket 1222 --> https://svn.open-mpi.org/trac/ompi/ticket/1222
2008-03-05 01:30:32 +00:00
Jeff Squyres
8189fcc7d5 Back out r17702; it went very badly.
This commit was SVN r17704.

The following SVN revision numbers were found above:
  r17702 --> open-mpi/ompi@3df754ebd7
2008-03-05 00:42:39 +00:00
Jeff Squyres
8e631d4dc0 Suggestions from Ralf W. to use the official git HTTP mirrors to get
the latest config.sub and config.guess.

This commit was SVN r17695.
2008-03-04 21:22:51 +00:00
Jeff Squyres
6aba701f65 Change the default to ''not'' build any contrib packages by default
(per consensus on the devel list, at least until the VT configury
issues are fixed).

This commit was SVN r17683.
2008-03-04 13:43:12 +00:00
Matthias Jurenz
70fe703057 set OMPI_CONTRIB_DIST_SUBDIRS only if the contributed software is enabled
This commit was SVN r17680.
2008-03-03 15:59:52 +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
Galen Shipman
44003a41f2 Update common_portals to allow using portals interconnect with a modex rather
than relying on cnos to get the nid/pid map. 

This commit was SVN r17588.
2008-02-25 19:17:21 +00:00
Josh Hursey
99144db970 Improve checkpoint/restart support by allowing a checkpoint to progress when the process is *not* in the MPI library. This involves creating a separate thread for polling for a checkpoint request. This thread is active when the MPI process is not in the MPI library, and paused when the MPI process is in the library.
Some MPI C interface files saw some spacing changes to conform to the coding standards of Open MPI.

Changed MPI C interface files to use {{{OPAL_CR_ENTER_LIBRARY()}}} and {{{OPAL_CR_EXIT_LIBRARY()}}} instead of just {{{OPAL_CR_TEST_CHECKPOINT_READY()}}}. This will allow the checkpoint/restart system more flexibility in how it is to behave.

Fixed the configure check for {{{--enable-ft-thread}}} so it has a know dependance on {{{--enable-mpi-thread}}} (and/or {{{--enable-progress-thread}}}).

Added a line for Checkpoint/Restart support to {{{ompi_info}}}.

Added some options to choose at runtime whether or not to use the checkpoint polling thread. By default, if the user asked for it to be compiled in, then it is used. But some users will want the ability to toggle its use at runtime.

There are still some places for improvement, but the feature works correctly. As always with Checkpoint/Restart, it is compiled out unless explicitly asked for at configure time. Further, if it was configured in, then it is not used unless explicitly asked for by the user at runtime.

This commit was SVN r17516.
2008-02-19 22:15:52 +00:00
Jeff Squyres
5bb1e5151f Suggestions/patches from Brian to make stuff better:
* Include all the stuff that is necessary for running autogen.sh in a
   distribution tarball.
 * Remove from config/Makefile.am's EXTRA_DIST that which is
   automatically included in the tarball in recent versions of
   Automake (i.e., all the m4 files that are acincluded).
 * Make ROMIO's configure script look for something that is actually
   included in the tarball.

Fixes trac:1025.

This commit was SVN r17505.

The following Trac tickets were found above:
  Ticket 1025 --> https://svn.open-mpi.org/trac/ompi/ticket/1025
2008-02-19 01:49:52 +00:00
Galen Shipman
cec3d96a94 configure changes for Cray XT CNL (adds --with-alps param) auto detection is
not included (or desired) 

This commit was SVN r17481.
2008-02-17 19:02:36 +00:00
Matthias Jurenz
12782ba700 Added Ralfs's patch to make future contrib integration easier. Thanks, Ralf!
This commit was SVN r17426.
2008-02-12 11:48:01 +00:00
Pavel Shamis
f0c478e7e0 XRC - replacing the new old API with new one.
This commit was SVN r17369.
2008-02-04 14:03:38 +00:00
Andreas Knüpfer
c53e19be46 bringing VampirTrace integration to the trunk
This commit was SVN r17278.
2008-01-28 08:39:48 +00:00
Jeff Squyres
fe6ba96dd6 Be a little friendlier for mercurial checkouts.
This commit was SVN r17271.
2008-01-28 03:04:53 +00:00
Jeff Squyres
9b1b27fa8d Allow the get_version script to be run under ksh as well. Thanks to Elan Ruusamae for pointing out the problem; thanks to Ralf Wildenhues for providing a shell-independent fix.
This commit was SVN r17246.
2008-01-26 00:01:03 +00:00
Rainer Keller
17906c008f - Take this nights changes to .m4: We have not pml-teg, delete refs.
This commit was SVN r17226.
2008-01-25 09:32:33 +00:00
Jeff Squyres
2227d5ec4a Add configure check for struct ibv_device.transport type, which was added in OFED v1.2. Still need to fix up oob and rdma_cm cpc's to do something better with this information...
This commit was SVN r17198.
2008-01-24 12:14:21 +00:00
Jon Mason
a0d4122606 The new cpc selection framework is now in place. The patch below allows
for dynamic selection of cpc methods based on what is available.  It
also allows for inclusion/exclusions of methods.  It even futher allows
for modifying the priorities of certain cpc methods to better determine
the optimal cpc method.

This patch also contains XRC compile time disablement (per Jeff's
patch).

At a high level, the cpc selections works by walking through each cpc
and allowing it to test to see if it is permissable to run on this
mpirun.  It returns a priority if it is permissable or a -1 if not.  All
of the cpc names and priorities are rolled into a string.  This string
is then encapsulated in a message and passed around all the ompi
processes.  Once received and unpacked, the list received is compared
to a local copy of the list.  The connection method is chosen by
comparing the lists passed around to all nodes via modex with the list
generated locally.  Any non-negative number is a potentially valid
connection method.  The method below of determining the optimal
connection method is to take the cross-section of the two lists.  The
highest single value (and the other side being non-negative) is selected
as the cpc method.

svn merge -r 16948:17128 https://svn.open-mpi.org/svn/ompi/tmp-public/openib-cpc/ .

This commit was SVN r17138.
2008-01-14 23:22:03 +00:00
Ethan Mallove
cb7c435a9c Added OMPI_WHICH macro as an alternative to using {{{`which
<prog>`}}} in `configure`. It is preferable to simply using {{{`which
<prog>`}}} because backticks (`) (aka backquotes) invoke a sub-shell
which may source a "noisy" `~/.whatever` file, and we do not want the
error messages to be part of the assignment in {{{foo=`which
<prog>`}}}.

This commit was SVN r16955.
2007-12-14 02:39:58 +00:00
Jeff Squyres
8320a491fe Fix problem when $CC or $CXX where multiple tokens. A similar fix
when in for $F77 and $FC long ago.

Thanks to Brian Barrett for noticing and submitting a patch.

This commit was SVN r16864.
2007-12-06 11:38:35 +00:00
Gleb Natapov
bd47da4699 Initial XRC support by Mellanox.
This commit was SVN r16787.
2007-11-28 07:18:59 +00:00
Jeff Squyres
71715b05ec Add missing $LDFLAGS in the fortran linker line. This missing flag
erroneously caused the test to fail on Cray systems.

This commit was SVN r16777.
2007-11-27 23:49:08 +00:00
George Bosilca
d0f30e521b After the 10.5.1 update this bug is still valid. Remove the -g from all
Leopard versions (until they fix it).

This commit was SVN r16762.
2007-11-21 03:10:05 +00:00
Jeff Squyres
e491318081 Per #1181, make our use of rm be consistent with the rest of AC/AM.
LT uses $RM, but AC/AM appear to use "rm ...".  So we'll go with
that.

This commit was SVN r16672.
2007-11-06 12:20:58 +00:00
Jeff Squyres
33257f2b56 Remove -g from CCASFLAGS if on OS X Leopard. Fixes trac:1179.
This commit was SVN r16671.

The following Trac tickets were found above:
  Ticket 1179 --> https://svn.open-mpi.org/trac/ompi/ticket/1179
2007-11-06 12:02:11 +00:00
Jeff Squyres
748fc31906 Change everywhere we do a "rm -f conftest*" to "rm -rf conftest" to
cover the case where a subdirectory is also built that needs to be
removed.

Note that there are other macros that we don't control (AC, AM, and/or
LT) that also exhibit this problem that we cannot fix.  :-\

Fixes trac:1180.

This commit was SVN r16669.

The following Trac tickets were found above:
  Ticket 1180 --> https://svn.open-mpi.org/trac/ompi/ticket/1180
2007-11-06 01:32:42 +00:00
Ethan Mallove
005652c9d4 * Embed ident strings into the Open MPI libraries using one of the following
methods (in order of precedence):
  1. #pragma ident <ident string> (e.g., Intel and Sun)
  1. #ident <ident string> (e.g., GCC)
  1. static const char ident[] = <ident string> (all others)
By default, the ident string used is the standard Open MPI version string. Only
the following libraries will get the embedded version strings (e.g., DSOs will
not):
  * libmpi.so
  * libmpi_cxx.so
  * libmpi_f77.so
  * libopen-pal.so
  * libopen-rte.so
* Added two new configure options:
  * `--with-package-name="STRING"` (defaults to "Open MPI username@hostname
    Distribution"). `STRING` is displayed by `ompi_info` next to the "Package"
    heading.
  * `--with-ident-string="STRING"` (defaults to the standard Open MPI version
    string - e.g., X.Y.Zr######). `%VERSION%` will expand to the Open MPI
    version string if it is supplied to this configure option.

This commit was SVN r16644.
2007-11-03 02:40:22 +00:00
Jeff Squyres
00da8605a5 PUSH and POP shell variable scopes like this:
{{{
OMPI_VAR_SCOPE_PUSH([var1 var2 var3])
...use $var1 $var1 and $var3
OMPI_VAR_SCOPE_PUSH([var4 var5 var6])
...use $var1 $var1 and $var3
...use $var4 $var5 and $var6
OMPI_VAR_SCOPE_POP
...use $var1 $var1 and $var3
OMPI_VAR_SCOPE_POP
}}}

The PUSH macro does a simple sanity check to ensure that the variables
listed are not already set with other values.  If they are set, it
will abort configure, assuming that this is a programming error.  If
none of the names are set as environment variables containing values,
the names are saved for later POP'ing.  The POP will unset all the
variables from a corresponding PUSH.

As the names imply, these macros effect a stack-like behavior.  So a
POP must correspond to a PUSH, etc.

These macros are intended to be simple sanity checks for OMPI
configure programmers, and also help keep the environment clean by
unsetting variables when they are no longer used.

This commit was SVN r16592.
2007-10-26 23:35:02 +00:00
George Bosilca
938be44f07 Complete the removal of the mvapi BTL.
This commit was SVN r16491.
2007-10-17 22:02:52 +00:00
George Bosilca
e9aa15f9d5 On behalf of Ralf Wildenhues:
config/ompi_check_visibility.m4 (OMPI_CHECK_VISIBILITY):
Rename ompi_vc_cc_fvisibility to ompi_cv_cc_fvisibility, so
that it will be cached.

This commit was SVN r16435.
2007-10-11 22:06:39 +00:00
Ralph Castain
53af94fd87 Modify the configure system so that gridengine support is only built in specific conditions:
1. --with-sge, always builds
2. --without-sge, never builds
3. if neither is specified, build if and only if either SGE_ROOT is set or "qrsh" is found in the path

This commit was SVN r16422.
2007-10-10 21:39:16 +00:00
Jeff Squyres
74fd678de8 Fix a help message to also show the default value.
This commit was SVN r16369.
2007-10-06 14:25:38 +00:00
Ralph Castain
54b2cf747e These changes were mostly captured in a prior RFC (except for #2 below) and are aimed specifically at improving startup performance and setting up the remaining modifications described in that RFC.
The commit has been tested for C/R and Cray operations, and on Odin (SLURM, rsh) and RoadRunner (TM). I tried to update all environments, but obviously could not test them. I know that Windows needs some work, and have highlighted what is know to be needed in the odls process component.

This represents a lot of work by Brian, Tim P, Josh, and myself, with much advice from Jeff and others. For posterity, I have appended a copy of the email describing the work that was done:

As we have repeatedly noted, the modex operation in MPI_Init is the single greatest consumer of time during startup. To-date, we have executed that operation as an ORTE stage gate that held the process until a startup message containing all required modex (and OOB contact info - see #3 below) info could be sent to it. Each process would send its data to the HNP's registry, which assembled and sent the message when all processes had reported in.

In addition, ORTE had taken responsibility for monitoring process status as it progressed through a series of "stage gates". The process reported its status at each gate, and ORTE would then send a "release" message once all procs had reported in.

The incoming changes revamp these procedures in three ways:

1. eliminating the ORTE stage gate system and cleanly delineating responsibility between the OMPI and ORTE layers for MPI init/finalize. The modex stage gate (STG1) has been replaced by a collective operation in the modex itself that performs an allgather on the required modex info. The allgather is implemented using the orte_grpcomm framework since the BTL's are not active at that point. At the moment, the grpcomm framework only has a "basic" component analogous to OMPI's "basic" coll framework - I would recommend that the MPI team create additional, more advanced components to improve performance of this step.

The other stage gates have been replaced by orte_grpcomm barrier functions. We tried to use MPI barriers instead (since the BTL's are active at that point), but - as we discussed on the telecon - these are not currently true barriers so the job would hang when we fell through while messages were still in process. Note that the grpcomm barrier doesn't actually resolve that problem, but Brian has pointed out that we are unlikely to ever see it violated. Again, you might want to spend a little time on an advanced barrier algorithm as the one in "basic" is very simplistic.

Summarizing this change: ORTE no longer tracks process state nor has direct responsibility for synchronizing jobs. This is now done via collective operations within the MPI layer, albeit using ORTE collective communication services. I -strongly- urge the MPI team to implement advanced collective algorithms to improve the performance of this critical procedure.


2. reducing the volume of data exchanged during modex. Data in the modex consisted of the process name, the name of the node where that process is located (expressed as a string), plus a string representation of all contact info. The nodename was required in order for the modex to determine if the process was local or not - in addition, some people like to have it to print pretty error messages when a connection failed.

The size of this data has been reduced in three ways:

(a) reducing the size of the process name itself. The process name consisted of two 32-bit fields for the jobid and vpid. This is far larger than any current system, or system likely to exist in the near future, can support. Accordingly, the default size of these fields has been reduced to 16-bits, which means you can have 32k procs in each of 32k jobs. Since the daemons must have a vpid, and we require one daemon/node, this also restricts the default configuration to 32k nodes.

To support any future "mega-clusters", a configuration option --enable-jumbo-apps has been added. This option increases the jobid and vpid field sizes to 32-bits. Someday, if necessary, someone can add yet another option to increase them to 64-bits, I suppose.

(b) replacing the string nodename with an integer nodeid. Since we have one daemon/node, the nodeid corresponds to the local daemon's vpid. This replaces an often lengthy string with only 2 (or at most 4) bytes, a substantial reduction.

(c) when the mca param requesting that nodenames be sent to support pretty error messages, a second mca param is now used to request FQDN - otherwise, the domain name is stripped (by default) from the message to save space. If someone wants to combine those into a single param somehow (perhaps with an argument?), they are welcome to do so - I didn't want to alter what people are already using.

While these may seem like small savings, they actually amount to a significant impact when aggregated across the entire modex operation. Since every proc must receive the modex data regardless of the collective used to send it, just reducing the size of the process name removes nearly 400MBytes of communication from a 32k proc job (admittedly, much of this comm may occur in parallel). So it does add up pretty quickly.


3. routing RML messages to reduce connections. The default messaging system remains point-to-point - i.e., each proc opens a socket to every proc it communicates with and sends its messages directly. A new option uses the orteds as routers - i.e., each proc only opens a single socket to its local orted. All messages are sent from the proc to the orted, which forwards the message to the orted on the node where the intended recipient proc is located - that orted then forwards the message to its local proc (the recipient). This greatly reduces the connection storm we have encountered during startup.

It also has the benefit of removing the sharing of every proc's OOB contact with every other proc. The orted routing tables are populated during launch since every orted gets a map of where every proc is being placed. Each proc, therefore, only needs to know the contact info for its local daemon, which is passed in via the environment when the proc is fork/exec'd by the daemon. This alone removes ~50 bytes/process of communication that was in the current STG1 startup message - so for our 32k proc job, this saves us roughly 32k*50 = 1.6MBytes sent to 32k procs = 51GBytes of messaging.

Note that you can use the new routing method by specifying -mca routed tree - if you so desire. This mode will become the default at some point in the future.


There are a few minor additional changes in the commit that I'll just note in passing:

* propagation of command line mca params to the orteds - fixes ticket #1073. See note there for details.

* requiring of "finalize" prior to "exit" for MPI procs - fixes ticket #1144. See note there for details.

* cleanup of some stale header files

This commit was SVN r16364.
2007-10-05 19:48:23 +00:00
Jeff Squyres
7b0fe8b152 Revert r15900; the variable was already named correctly. This fixes
static builds for OMPI components that required extra LIBS or LDFLAGS
(e.g., the openib BTL).

Fixes trac:1155.

This commit was SVN r16314.

The following SVN revision numbers were found above:
  r15900 --> open-mpi/ompi@50941ec389

The following Trac tickets were found above:
  Ticket 1155 --> https://svn.open-mpi.org/trac/ompi/ticket/1155
2007-10-03 06:46:39 +00:00
Tim Prins
b161732af9 Be sure to restore the library flags in case of error. Thanks to Ake Sandgren for pointing this out.
This commit was SVN r16263.
2007-09-27 21:35:52 +00:00
Aurelien Bouteiller
f762850242 Split run_global into process_project and process_framework. This allows for calling only process framework to create components internal sub-frameworks
Minor change to ompi_mca.m4 to move AC_CONFIG_FILES(framework/makefile) in autogen process (instead of configure process), where we still now the actual framework path (instead of guessing using $project/mca/$framework). 

This have shown no side effects in our testing. Let us know if this breaks one of your components in some exotic context. 

This commit was SVN r16146.
2007-09-18 10:36:08 +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
Brian Barrett
2b8af283de Add ability to completely turn off MPI one-sided support, so that users
can experiment with using ROMIO directly.

This commit was SVN r15922.
2007-08-18 21:35:51 +00:00
Brian Barrett
3b98b5f0a1 The reference implementation of Portals (which runs over TCP on Linux) is
only static libraries.  Previously, we were linking the libraries into 
directly into the common, btl, and mtl code.  This seemed to work fine
for me on my Opteron Fedora box, but caused Lisa some issues (PtlNIInit
would succeed, but the network handle would fail when used with
PtlEQAlloc).

Instead, link the portals libraries directly into libmpi and not at
all into the common, btl, or mtl components.  THen use some linker
tricks to force the linker to bring in the public interface for the
reference implementation (which thankfully is pretty small).

This commit was SVN r15902.
2007-08-17 03:56:49 +00:00
Brian Barrett
50941ec389 Fix mis-named enviornment variable. Solves a problem that I'm seeing with
some other code.

This commit was SVN r15900.
2007-08-17 03:50:00 +00:00
Jeff Squyres
1030ddcd58 Per http://www.open-mpi.org/community/lists/devel/2007/08/2152.php,
disable the building of the udapl BTL on Linux by default.  On every
other OS, the udapl configury will attempt to find udapl's
header/library files, etc. by default.  

You can specify --with-udapl on the configure command line (on any OS)
to force OMPI to try to configure/build udapl (i.e., look for udapl's
header/library files, etc.).

This commit was SVN r15894.
2007-08-16 22:01:06 +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
Pak Lui
9af43da1dc * Remove the logic for Solaris to always use the FreeBSD version of qsort.
* Give user the option to configure with the broken qsort fix instead
    of using the native qsort.

This commit was SVN r15716.
2007-07-31 22:43:06 +00:00
Jeff Squyres
8ace07efed This commit brings in two major things:
1. Galen's fine-grain control of queue pair resources in the openib
   BTL.
1. Pasha's new implementation of asychronous HCA event handling.

Pasha's new implementation doesn't take much explanation, but the new
"multifrag" stuff does.  

Note that "svn merge" was not used to bring this new code from the
/tmp/ib_multifrag branch -- something Bad happened in the periodic
trunk pulls on that branch making an actual merge back to the trunk
effectively impossible (i.e., lots and lots of arbitrary conflicts and
artifical changes).  :-(

== Fine-grain control of queue pair resources ==

Galen's fine-grain control of queue pair resources to the OpenIB BTL
(thanks to Gleb for fixing broken code and providing additional
functionality, Pasha for finding broken code, and Jeff for doing all
the svn work and regression testing).

Prior to this commit, the OpenIB BTL created two queue pairs: one for
eager size fragments and one for max send size fragments.  When the
use of the shared receive queue (SRQ) was specified (via "-mca
btl_openib_use_srq 1"), these QPs would use a shared receive queue for
receive buffers instead of the default per-peer (PP) receive queues
and buffers.  One consequence of this design is that receive buffer
utilization (the size of the data received as a percentage of the
receive buffer used for the data) was quite poor for a number of
applications.

The new design allows multiple QPs to be specified at runtime.  Each
QP can be setup to use PP or SRQ receive buffers as well as giving
fine-grained control over receive buffer size, number of receive
buffers to post, when to replenish the receive queue (low water mark)
and for SRQ QPs, the number of outstanding sends can also be
specified.  The following is an example of the syntax to describe QPs
to the OpenIB BTL using the new MCA parameter btl_openib_receive_queues:

{{{
-mca btl_openib_receive_queues \
     "P,128,16,4;S,1024,256,128,32;S,4096,256,128,32;S,65536,256,128,32"
}}}

Each QP description is delimited by ";" (semicolon) with individual
fields of the QP description delimited by "," (comma).  The above
example therefore describes 4 QPs.

The first QP is:

    P,128,16,4

Meaning: per-peer receive buffer QPs are indicated by a starting field
of "P"; the first QP (shown above) is therefore a per-peer based QP.
The second field indicates the size of the receive buffer in bytes
(128 bytes).  The third field indicates the number of receive buffers
to allocate to the QP (16).  The fourth field indicates the low
watermark for receive buffers at which time the BTL will repost
receive buffers to the QP (4).

The second QP is:

    S,1024,256,128,32

Shared receive queue based QPs are indicated by a starting field of
"S"; the second QP (shown above) is therefore a shared receive queue
based QP.  The second, third and fourth fields are the same as in the
per-peer based QP.  The fifth field is the number of outstanding sends
that are allowed at a given time on the QP (32).  This provides a
"good enough" mechanism of flow control for some regular communication
patterns.

QPs MUST be specified in ascending receive buffer size order.  This
requirement may be removed prior to 1.3 release.

This commit was SVN r15474.
2007-07-18 01:15:59 +00:00
Jeff Squyres
b20248709a Next round of LSF commits. Getting farther, but it still doesn't
fully work yet (everything is still .ompi_ignore'ed for everyone).

This commit was SVN r15398.
2007-07-13 11:57:17 +00:00
Ralph Castain
a1bf04f39e First cut at revamping bproc support to separate it out from LANL's configuration.
First cut at adding support for LSF

Lots of ompi_ignores so only Jeff and I will see this stuff

This commit was SVN r15321.
2007-07-10 12:43:05 +00:00
Brian Barrett
1d02b9e7b5 Fix a bunch of issues exposed by Ken Cain in getting Open MPI to work with
VxWorks.  Still some issues remaining, I'm sure.

Refs trac:1010

This commit was SVN r15320.

The following Trac tickets were found above:
  Ticket 1010 --> https://svn.open-mpi.org/trac/ompi/ticket/1010
2007-07-10 03:46:57 +00:00
Brian Barrett
41afd4ebee Clean up the MX configure test a bit. Use AC macros instead of hand
writing them.  Better tests, less code, and caching.  Update the code
to match changes in configure defines.

This commit was SVN r15287.
2007-07-04 22:07:30 +00:00
Brian Barrett
b27b9b5380 * Clean up the ompi_mca macro's support for different configuration
types and add STOP_AT_FIRST_PRIORITY type for framework configuration,
    which allows all components at the highest priority that succeeds to
    succeed
  * Use STOP_AT_FIRST_PRIORITY type for gpr framework, so that the null
    component isn't built when the replica and proxy components are
    available.

This commit was SVN r15286.
2007-07-04 22:00:15 +00:00
George Bosilca
f3f312e8be A new definition for pid_t or Windows (it's a pointer so it should be
an intptr_t).

This commit was SVN r15114.
2007-06-17 04:58:33 +00:00
Jeff Squyres
36679de8d8 Fixes trac:1045.
libsysfs headers are required for libibverbs v1.0 (i.e., OFED 1.0 and
OFED 1.1), meaning that <infiniband/verbs.h> would #include
<sysfs/libsysfs.h>.  Hence, if the libsysfs headers did not exist on a
system, including <verbs.h> would fail.  

With older versions of Autoconf, we would simply test for the
''presence'' of the <infinband/verbs.h> and not actually try to
''use'' it.  This could leave OMPI in a weird situation on systems
that did not have the sysfs headers installed: configure would
complete successfully, but the build of the openib btl would fail.
Some users complained, thinking that there was a real compile error in
the OMPI code base.

Hence, we decided that it would be better to AC_CHECK_HEADER for the
sysfs header files in configure.  If the sysfs header files were not
found, configure would abort.  Users generally understand when
configure aborts, and know how to read the output and fix the
underlying problem; it was ''much'' more obvious than having the OMPI
build fail for nebulous reasons much later.

Note that we also checked for / added -lsysfs, but that wasn't
necessary because libibverbs already run-time linked to it (i.e.,
libibverbs couldn't have been installed if the sysfs libraries weren't
installed).

However, there are now two reasons why the check for sysfs's header
files is no longer necessary:

 * Newer versions of Autoconf are now used for OMPI tarballs that
   check for both the presence '''and''' usability of header files.
   Hence, AC_CHECK_HEADER for <infiniband/verbs.h> will actually try
   to ''use'' it, so if the sysfs header files are not installed,
   AC_CHECK_HEADER will (rightfully) fail.
 * libibverbs v1.1 (i.e., OFED 1.2 and beyond) does not require
   libsysfs at all (headers or libraries).  

When checking for the sysfs header files, OMPI's configure ''forces''
you to have sysfs installed, even though it may not be needed (e.g.,
libibverbs v1.1 and beyond).  Clearly, this is not good (especially
since the sysfs software package is now deprecated, and some Linux
distros no longer install it by default).

So this commit simply removes the check for the sysfs header files and
libraries, allowing OMPI to be build on systems with libibverbs >=1.1 that
do not have sysfs installed.

For systems with libibverbs 1.0, if they do not have the sysfs headers
installed, we'll still fail AC_CHECK_HEADER and therefore still fail
configure properly.  I expanded the warning message to say that if
libibverbs 1.0 is being used, check to ensure that sysfs is installed,
yadda yadda yadda.

This commit was SVN r14971.

The following Trac tickets were found above:
  Ticket 1045 --> https://svn.open-mpi.org/trac/ompi/ticket/1045
2007-06-08 23:34:05 +00:00
George Bosilca
976bad3ae7 The updated m4 file for detecting MX extensions. They are used to retrieve
the mapper MAC.

This commit was SVN r14938.
2007-06-07 00:44:47 +00:00
Brian Barrett
644708a4b4 For modern MACOSX_DEPLOYMENT_TARGETs, allow the Fortran 90 bindings to be
built as shared libraries.

This commit was SVN r14859.
2007-06-05 04:04:44 +00:00
Brian Barrett
a446af5b6b * Remove unneeded SRQ test -- we no longer support OFED builds that don't
have the SRQ interface.
  * Instead of setting AC_DEFINEs per MCA component, set per test.  THe
    answers can never be difference, and this will speed sed just a teeny
    bit

This commit was SVN r14856.
2007-06-05 01:49:26 +00:00
Brian Barrett
8b71f5ceac Fix typo in r14829. Thanks to Bert Wesarg for pointing out my dumbness :).
This commit was SVN r14855.

The following SVN revision numbers were found above:
  r14829 --> open-mpi/ompi@38698adf29
2007-06-05 01:47:48 +00:00
Brian Barrett
beb6dd1924 Include the C++ bindings from mpi.h in a way that doesn't require an extra
-I for ${includedir}/openmpi.  Solves many problems, and with just a tad
bit of hackery.  Don't know why I didn't just do this earlier.

Refs trac:542

This commit was SVN r14853.

The following Trac tickets were found above:
  Ticket 542 --> https://svn.open-mpi.org/trac/ompi/ticket/542
2007-06-05 01:42:47 +00:00
Brian Barrett
38698adf29 Use the AC_PROG_GREP available in AC 2.60 and later. This works around
an issue on Solaris where /usr/bin/grep doesn't understand -q.  The
grep that AC_PROG_GREP finds (/usr/xpg4/bin/grep), which is POSIX
compliant and understands -q.  Also fix one instance where egrep was
used instead of $EGREP.

This commit was SVN r14829.
2007-06-01 02:31:15 +00:00
Rainer Keller
22def7bee5 - Get the TRUE value detection working in case of
intel ifort -i8, i.e. 8-Byte logicals...

This commit was SVN r14819.
2007-05-31 13:03:04 +00:00
Rainer Keller
2cc4e6de85 - Allow detection of weak symbols support with Intel compiler
This commit was SVN r14794.
2007-05-30 13:01:36 +00:00
Pavel Shamis
cd87b05711 Added check for IBV_EVENT_CLIENT_REREGISTER async
event that was not exists in old openib gen2 versions
(Ticket #1025)

This commit was SVN r14658.
2007-05-15 13:53:49 +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
Brian Barrett
4adca8af77 Fix two errors with r14552:
* Have _ompi_check_package_lib set LIBS, similar to how
    _ompi_check_package_include sets CPPFLAGS.  Fixes an
    issue discovered by Don
  * Need to restore flags after end of TM testing.

This commit was SVN r14602.

The following SVN revision numbers were found above:
  r14552 --> open-mpi/ompi@e63346a633
2007-05-08 02:24:27 +00:00
Brian Barrett
36b5db6b39 Escape $tmpCC, as it will have / in it in many cases, leading to a sed
expression that doesn't work.

Refs trac:1021

This commit was SVN r14600.

The following Trac tickets were found above:
  Ticket 1021 --> https://svn.open-mpi.org/trac/ompi/ticket/1021
2007-05-08 02:17:13 +00:00
Sven Stork
ee2764fdb1 - fix the broken trunk in the case of disabled visibility feature
(sorry about the config stuff change during working time)

This commit was SVN r14584.
2007-05-04 15:58:08 +00:00
Sven Stork
a04c8eb39a - Bring over the visibility feature, for a finer symbol export control
via the visibility feature that is provided by some compilers.

  Per default this feature is disabled, to enable it you need to
  configure with --enable-visibility and obviously you need a compiler
  with visibility support. Please refer to the wiki for more information.
  https://svn.open-mpi.org/trac/ompi/wiki/Visibility

This commit was SVN r14582.
2007-05-04 09:03:37 +00:00
Jeff Squyres
4960aee4b2 Temporary fix for the tm breakage the other day. This restores being
able to compile tm support, but is still "odd" in terms of the way AC
macros are normally structured.  Brian says that he will fix it
properly someday.

This commit was SVN r14573.
2007-05-03 00:04:27 +00:00
Brian Barrett
e63346a633 Clean up a couple of issues with some of the configure tests:
* Remove duplicate calls to ompi_check_package by poking at the
    internals just a bit.  Possibly should make those officially
    exposed, but whatever.
  * Don't build OpenIB with PTMalloc2 and no thread support, as
    this will always lead to badness.
  * minor formatting cleanups

This commit was SVN r14552.
2007-05-01 04:40:31 +00:00
Jeff Squyres
989c4417a1 Fixes trac:982.
Thank God for google-able mailing list archives:

    http://www.mail-archive.com/bug-libtool@gnu.org/msg00899.html

We ran into this exact bug in Libtool that was causing the C++
bindings library to be compiled incorrectly (therefore causing static
initializers to not fire properly when in a shared library, which is
the default installation configuration).  Putting in some libtool
patches to fix the problem -- will be mailing the Libtool crowd
shortly to ask for a better fix...

This commit was SVN r14454.

The following Trac tickets were found above:
  Ticket 982 --> https://svn.open-mpi.org/trac/ompi/ticket/982
2007-04-21 00:56:47 +00:00
Jeff Squyres
5bebd24250 Bring over Brian's installdirs fixes from this afternoon (r14445).
This commit was SVN r14450.

The following SVN revision numbers were found above:
  r14445 --> open-mpi/ompi@13d366b827
2007-04-21 00:16:31 +00:00
Jeff Squyres
0ba47105ed Merge the /tmp/jms-installdirs-trunk branch into the trunk. This
finally brings in functionality that is already on the 1.2 branch, and
was developed and tested in the v1.2ofed branch (and other places).

Short version of new features:

 * Support for ibv_fork_init() 
 * Automatically fill in the openib BTL bandwidth value by 
   querying the HCA port 
 * Installdirs functionality 
 * Fixes to always use -I in the Fortran wrapper compilers (#924) 
 * Gleb's mpool updates 
 * Remove some kruft in btl/openib/configure.m4, therefore 
   fixing the harmless warnings noted in #665 
 * Bunches of updates to the Linux RPM spec file 

I.e., effectively the same thing that r14411 brought to the v1.2
branch.

Also effectively brought in r14432 and r14433 (some fixes on top of
the original r14411 commit to v1.2).  Still need to bring in the moral
equivalent of r14445 after this commit (fixes to installdirs).

This commit was SVN r14449.

The following SVN revision numbers were found above:
  r14411 --> open-mpi/ompi@83b31314ae
  r14432 --> open-mpi/ompi@a48f160595
  r14433 --> open-mpi/ompi@68f346d2bc
  r14445 --> open-mpi/ompi@13d366b827
2007-04-21 00:15:05 +00:00
Jeff Squyres
653bafdc11 Per Brian's review of r14372, he suggested that the output flags be
sent to config.log, not stdout.

This commit was SVN r14389.

The following SVN revision numbers were found above:
  r14372 --> open-mpi/ompi@c9dc918355
2007-04-17 03:13:50 +00:00
Jeff Squyres
c9dc918355 Updates to the TM checks, inspired by Bas van der Viles:
* If pbs-config can be found (either in the PATH or the
   --with-tm=<dir> directory tree), use that to search for the relevant
   compiler / linker flags to get TM support.
 * Fix a long-standing bug that if --without-tm is supplied, we'll
   still try to look for tm support

This commit was SVN r14372.
2007-04-14 13:00:32 +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
Brian Barrett
3982be852e Fixed issue with multi-word C compiler variable, where there
was more than one space between tokens.  Thanks to Bert
Wesarg for reporting the issue.

This commit was SVN r14044.
2007-03-16 21:24:12 +00:00
Adrian Knoth
dbb8b8e315 brbarret's fix for hanging configure if $USER is empty. Closes trac:900
This commit was SVN r14005.

The following Trac tickets were found above:
  Ticket 900 --> https://svn.open-mpi.org/trac/ompi/ticket/900
2007-03-11 16:24:46 +00:00