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

823 Коммитов

Автор SHA1 Сообщение Дата
Jeff Squyres
7d1f6d42ab Case-sensitive filesystem fix for OS X / Xgrid
This commit was SVN r19130.
2008-08-02 14:07:48 +00:00
Dan Lacher
9175da1e02 Putback for all changes to automate man page updates to strings of
versions, dates and build names.

Fixes trac:1387

Big thanks to Jeff and Brian for help and oversight.

This commit was SVN r19120.

The following Trac tickets were found above:
  Ticket 1387 --> https://svn.open-mpi.org/trac/ompi/ticket/1387
2008-08-01 21:14:37 +00:00
Jeff Squyres
4adc4a632a This option is neither documented nor implemented.
This commit was SVN r19027.
2008-07-24 23:37:16 +00:00
Jeff Squyres
5b9219565c Remove the use of __cpu_to_be64() and replace it with hton64().
This commit was SVN r18995.
2008-07-23 12:08:55 +00:00
Pavel Shamis
849a8f86a7 Bug fox for #1388 - fixing ib_cm_listen() random failures.
This commit was SVN r18952.
2008-07-20 06:21:32 +00:00
Ethan Mallove
294f07a13d Fixes trac:1401 (-xvector* needs to be counted as an optimzation flag for orterun to compile)
This commit was SVN r18947.

The following Trac tickets were found above:
  Ticket 1401 --> https://svn.open-mpi.org/trac/ompi/ticket/1401
2008-07-18 19:19:22 +00:00
Pavel Shamis
452141bfb8 Bugfix for #1375.
- Adding configure options that allow to disable IB/RDMA-CM support.
- Code cleanup in openib section of configure

This commit was SVN r18830.
2008-07-08 06:32:54 +00:00
George Bosilca
872d957550 Allow Open MPI to configure correctly on the Sicortex machine.
This commit was SVN r18731.
2008-06-25 03:07:53 +00:00
Ralph Castain
17fcd72b5d Restore bproc code - if someone wants to maintain it, then more power to them...but it would definitely be easier if the old code is in the trunk. This is all .ompi_ignore'd except for me so I can play with making it compile again in my copious free time.
This commit was SVN r18716.
2008-06-24 01:27:22 +00:00
Jeff Squyres
3f95b906c5 Fixes trac:1085: Improves SLURM configure logic to also allow OS X or any platform where srun is found in the PATH.
This commit was SVN r18714.

The following Trac tickets were found above:
  Ticket 1085 --> https://svn.open-mpi.org/trac/ompi/ticket/1085
2008-06-23 23:12:55 +00:00
Ralph Castain
955d117f5e Add a new grpcomm module that mimics the old 1.2 behavior - it -always- does a modex because it always includes the architecture. Hence, we called it "blind-and-dumb" since it doesn't look to see if this is required - moniker of "bad". :-)
Update the ESS API so we can update the stored arch's should the modex include that info. Update ompi/proc to check/set the arch for remote procs, and add that function call to mpi_init right after the modex is done.

Setup to allow other grpcomm modules to decide whether or not to add the arch to the modex, and to detect if other entries have been made. If not, then the modex can just fall through. Begin setting up some logic in the "basic" module to handle different arch situations.

For now, default to the "bad" module so we will work in all situations, even though we may be sending around more info than we really require.

This fixes ticket #1340

This commit was SVN r18673.
2008-06-18 22:17:53 +00:00
Ralph Castain
0532d799d6 Complete implementation of the --without-rte-support configure option. Working with Brian, this has been tested on RedStorm.
Some minor changes to help facilitate debugger support so that both mpirun and yod can operate with it. Still to be completed.

This commit was SVN r18664.
2008-06-18 03:15:56 +00:00
Brian Barrett
7712b07ac4 Add perl based wrapper compilers for cross-compile environments. The default
is still to use the C based wrapper compilers (which have many more features
and are more well tested).  The Perl compilers are enabled with the option
--enable-script-wrapper-compilers, which also ignores the option
--disable-binaries (ie --enable-script-wrapper-compilers --disable-binaries
will result in perl-based wrapper compilers being installed, but no other
binaries being installed).

This commit was SVN r18655.
2008-06-13 22:52:25 +00:00
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
Jeff Squyres
176cecfb3b Fix for LT 2.1 libltdl lt_dlopen behavior of putting loaded DSO's in a
private scope.  Solves the problem of Red Hat-provided OFED not
working properly because the libibverbs plugins are not linked
against libibverbs.

This commit was SVN r13926.
2007-03-05 17:21:42 +00:00
Brian Barrett
ada2316fd3 work around issue where $CC might be multiword and would leave stuff in the
extra linker flags.  Reported by Bert Wesarg.

This commit was SVN r13774.
2007-02-24 22:18:44 +00:00
Brian Barrett
7ce72af158 fix some misuses of various environment variables when running pthread checks
reported by Ake Sandgren on the users list a couple months ago...

This commit was SVN r13773.
2007-02-24 21:22:55 +00:00
Rainer Keller
dbe6100bd2 - As there are other changes to configure-files:
Cleanup check_attributes and comments, get rid of _msg

This commit was SVN r13678.
2007-02-16 07:45:53 +00:00
Josh Hursey
5a0f268ddd fix minor typo
This commit was SVN r13677.
2007-02-16 01:36:59 +00:00
Pavel Shamis
edeab0e912 Adding Mellanox Technologies copyright to files touched by Mellanox.
This commit was SVN r13669.
2007-02-15 18:03:20 +00:00
Rainer Keller
38696e8d32 - Check for attributes, after C and C++ have been set up.
- Set ompi-specific autoconf cache-variables
 - Implement one function to check for availability of an
   attribute with the possibility for a cross-check.
 - Do cross-checks for
     __attribute__(format)
     __attribute__(nonnull)
     __attribute__(sentinel)
     __attribute__(warn_unused_result)
 - Grep the compilers warnings for keywords regarding ignored
   attributes.
 - Include also the no_instrument_function

This commit was SVN r13556.
2007-02-08 13:34:44 +00:00
Rainer Keller
80295b8f68 - Indent one space; this crept up to deliver:
icc -g -finline-functions -fno-strict-aliasing-restrict -c help.c
icc: Command line warning: ignoring option '-fno-strict-aliasing'; no argument required

This commit was SVN r13507.
2007-02-06 13:23:23 +00:00
Jeff Squyres
c91fcd7fbd Fix a bunch of minor typos submitted by Bernhard Fischer.
This commit was SVN r13505.
2007-02-06 12:00:30 +00:00
Rainer Keller
c2c8bdf8ac - Check not only C, but also C++ compiler both at one
go and have proper casting.
   Tested with linux gcc-4, icc-9.0, pathcc-2.2.1 and pgi-6.2.5

   (icc warns on several attributes, that they are ignored;
    same for pathcc and pgi)

This commit was SVN r13485.
2007-02-03 17:35:46 +00:00
Tim Prins
cc896e6292 make way for a better fix...
This commit was SVN r13484.
2007-02-03 16:49:28 +00:00
Tim Prins
0d283cb4d7 Fix for the attribute problems we have been having lately.
Check both the c and cpp compilers for support of attributes, and then check for support for each individual attribute with both compilers. Only if both compilers support a given attribute will we enable it.

This commit was SVN r13483.
2007-02-03 15:58:49 +00:00
Rolf vandeVaart
bf5113198d Update to orte-clean so it will remove files on local and
remote nodes.  It will also kill off rogue orteds and orterun
processes.  The killing of processes is ifdef'ed out for Windows
since I do not know how to do it there.  Note that this change
will requite an autogen.  

This commit was SVN r13477.
2007-02-03 00:25:42 +00:00
Rolf vandeVaart
fd1bf67119 Fix where we initialize some variables if attribute is not
supported by compiler.

This commit was SVN r13410.
2007-02-01 04:01:04 +00:00
Rainer Keller
7d799523e5 - include the attributes for always_inline and sentinel
This commit was SVN r13373.
2007-01-30 21:26:08 +00:00
Rainer Keller
2bda2f5d8c - Fix and extend the attribute checking macros for the
most common attributes. Useful attributes may be:
   - optimization (pure, const, malloc--restrictness)
   - data layout (packed)
   - interface definition, API (deprecated, visibility, weak alias)
   - compiler hint for code analysis and debugging (nonnull, format)

This commit was SVN r13369.
2007-01-30 20:52:46 +00:00
Rainer Keller
ca35881cd0 - Minor bugfixes and removed compiler warnings
This commit was SVN r13343.
2007-01-28 19:52:09 +00:00
Brian Barrett
c6ee421c78 Work around a bug involving dependent libraries when building 64 bit on Mac OS X
This commit was SVN r13246.
2007-01-22 20:31:04 +00:00
Rainer Keller
31e12cbe71 - Get --coverage to work with new gcov and cleanup the generated files.
- Use regexp to check for optimizations in flags.

This commit was SVN r13211.
2007-01-19 14:28:52 +00:00
Jeff Squyres
add3909096 Back out 13076 and 13077 in favor of a much simpler approach.
Sorry for the configure change -- hopefully it's early enough in the
morning that it won't affect people... (new approach won't have a
configure change).

Refs trac:739.

This commit was SVN r13080.

The following Trac tickets were found above:
  Ticket 739 --> https://svn.open-mpi.org/trac/ompi/ticket/739
2007-01-11 14:07:15 +00:00
Jeff Squyres
f0932a0701 A workaround for a bug in the PGI 6.2 compiler series. This bug has
been fixed in the 7.0 PGI series, but is unlikely to be fixed in the
6.2 series:

 * Add a configure test looking for the bad behavior (the PGI compiler
   chokes on C code where structs containing bool's are copied by
   value)
 * Set OMPI_BOOL_STRUCT_COPY to 1 if it's ok, 0 if it's not (i.e., PGI
   6.2 series will have this value set to 0)
 * In two places in the code base -- orte-clean and btl_openib_ini.h,
   we have a struct that contains a bool that is copied by value.  In
   these two places, check OMPI_BOOL_STRUCT_COPY and if it's 1, use
   the "int" type instead of "bool".

Fixes trac:739

This commit was SVN r13076.

The following Trac tickets were found above:
  Ticket 739 --> https://svn.open-mpi.org/trac/ompi/ticket/739
2007-01-11 02:21:26 +00:00
George Bosilca
416e5b5f6a Enable the MX extensions if and only if the mx_extensions.h header
is installed on the system.

This commit was SVN r12937.
2006-12-29 00:31:32 +00:00
George Bosilca
3eeecc3838 Add support for faster small messages. While sending a message, we check if
the data was buffered by the MX library. If it's the case then we declare
the send as completed and disable the completion event for the mx request.

This commit was SVN r12935.
2006-12-28 22:34:24 +00:00
George Bosilca
3903009b8b Add a check for the unexpected handler. If enabled, allow the zero-copy
protocol over the MX BTL. Now, we have only one matching, the one in Open
MPI.

The problem is that when the unexpected handler is triggered, not all the
message is on the host memory. In the best case we get one MX fragment (internal
MX fragment), in the worst we get NULL. The only way to fit this with the
design of the PML is to force the eager protocol at the MX internal fragment
size, and to limit the send/receive protocol at the same size. Tests show
the outcome is not far from optimal (if the pipeline depth is increased
a little bit).

Set MX_PIPELINE_LOG in order to allow MX to use internal fragments of 4K.

This commit was SVN r12930.
2006-12-28 03:35:41 +00:00
Li-Ta Lo
eac3520d00 update xcpu autoconfig checks for libxcpu and friends
This commit was SVN r12903.
2006-12-20 22:56:25 +00:00
Brian Barrett
bf38c9d8e2 Configure changes... woopie...
* Check that the C++, Fortran 77, and Objective C comilers emit code
    that can link against object files emitted by the C compiler.
    Moves some built / run time errors to configure time, which is
    nice and should help with the debugging
  * Remove unneeded -F option when building the XGrid components, 
    which started causing problems with LT 2.0.
  * Try to use the XGridFoundation library, rather than just seeing
    if we can give -framework XGridFoundation.  Should make the
    test slightly more accurate
  * Don't assume XGrid is unavailable on 64 bit platforms, as that
    won't be true on Leopard
  * Require AM 1.10 or newer if using AC 2.60 or newer, so that
    we don't have a split of AC supporting Objective C and AM
    not doing so

This commit was SVN r12701.
2006-11-30 01:59:44 +00:00
Rainer Keller
2fc3ce8efc - Get -restrict check to work
This commit was SVN r12432.
2006-11-05 20:38:44 +00:00
Brian Barrett
9534bb27d9 dont' remove .m4 files during make maintainer-clean as it prevents
the target from completing due to dependency issues 

This commit was SVN r12412.
2006-11-02 18:41:04 +00:00
Pavel Shamis
566667ac61 Adding progress thread support to OpenIB BTL.
Reviewed by Gleb.

This commit was SVN r12411.
2006-11-02 16:15:21 +00:00
George Bosilca
6745e1a7b7 Correctly detect the STDC_HEADERS, before adding flags to the CFLAGS. Now,
that we have the STDC_HEADERS we are able to detect when ptrdiff_t is defined.

This commit was SVN r12254.
2006-10-23 03:55:52 +00:00
Jeff Squyres
533b4db7b5 Fix a problem when $FC/$F77 were multiple tokens.
This commit was SVN r12246.
2006-10-21 14:24:30 +00:00
Tim Prins
45a4f2c7ed Fix a minor problem in variable naming in these configure macros.
Thanks to Martin Audet for reporting this on the users list.

This commit was SVN r12203.
2006-10-19 23:35:14 +00:00
Brian Barrett
204f5b8f52 - Clean up wrapper compiler man pages during maintainer-clean, since
they might require special tools (not sure if sed with multiple -e
    arguments is totally portable)
  - ignore the opalcc.1 man page.  Couldn't do this in the previous
    man page commit (r12192) because I was removing opalcc.1 in that
    commit.

This commit was SVN r12194.

The following SVN revision numbers were found above:
  r12192 --> open-mpi/ompi@581a4b0a4e
2006-10-19 20:14:40 +00:00
Brian Barrett
e7a7a64e4c Implement MPI::SEEK_{SET, END, POS} for the C++ bindings, working around
some issues with the C #defines SEEK_{SET, END, POS}.  The workaround
involves some hackery that should work in almost every common use case
for the C stdio constants (and all the legal issues of the MPI constants).
The one issue is that the C stdio constants are now const ints instead
of #defines, which means that #ifdef checks will fail for the constants.

Behavior can be disabled at either configure time or build time.

Refs trac:387

This commit was SVN r12121.

The following Trac tickets were found above:
  Ticket 387 --> https://svn.open-mpi.org/trac/ompi/ticket/387
2006-10-15 23:50:24 +00:00
Brian Barrett
9adde4f7b8 Allow multilib capability based on compiler flags. See:
https://svn.open-mpi.org/trac/ompi/wiki/compilerwrapper3264
for more information.

Refs trac:374

This commit was SVN r12120.

The following Trac tickets were found above:
  Ticket 374 --> https://svn.open-mpi.org/trac/ompi/ticket/374
2006-10-15 21:21:08 +00:00
Dan Lacher
ba0389723e Ticket: #346
remove requirements on .la files on wrapper scripts

Ticket: #374
  extend compilers to support 32 bit and 64 bit in one version of the wrapper

Submitted by: Dan Lacher
Reviewed by: Rolf Vandevaart

This commit was SVN r11908.
2006-09-29 23:58:58 +00:00
Brian Barrett
bc9c6d65c6 The last of the Alpha fixes. The Alpha sh shell's builtin test doesn't
like == that much...

Refs trac:380

This commit was SVN r11860.

The following Trac tickets were found above:
  Ticket 380 --> https://svn.open-mpi.org/trac/ompi/ticket/380
2006-09-28 03:45:27 +00:00
Brian Barrett
4d7f221f86 There are some compilers (with the right options) that make LOGICALS
8 bytes.  Adjust the configure tests to allow for this case.

Refs trac:427

This commit was SVN r11859.

The following Trac tickets were found above:
  Ticket 427 --> https://svn.open-mpi.org/trac/ompi/ticket/427
2006-09-28 03:25:18 +00:00
Brian Barrett
9111f74627 More escaping fixes in the build system. Anything in the Makefile needs to
have $ escaped to $$.  Also, remove one more place for the shell to
expand those $s in the format string.

This commit was SVN r11809.
2006-09-26 02:37:35 +00:00
Brian Barrett
a546b6834b Only add the ROMIO source directory into DIST_SUBDIRS and SUBDIRS if
the component is configured successfully.  Otherwise, we can end up 
trying to run make in the romio directory without any Makefiles.  This
really only happens on the targets that recurse into DIST_SUBDIRS - ie
dist, maintainer-clean, and distclean

refs trac:411

This commit was SVN r11807.

The following Trac tickets were found above:
  Ticket 411 --> https://svn.open-mpi.org/trac/ompi/ticket/411
2006-09-25 23:51:13 +00:00
Brian Barrett
ad48aa82e9 A number of changes for improved Alpha support:
* Use $31 instead of mnemonic zero for the gcc inline
    assembly test, as the GNU assembler doesn't like
    zero, but both Tru64 and GNU assembler should be fine
    with $31
  * Disable Linux timer component on Alpha.  The CPU timer
    rolls over every 10 seconds or less, so it's kinda
    worthless for our needs.
  * Fix some escaping issues when local functions are
    denoted with a $
  * Remove C++ comments from the Alpha assembly.
  * Add base assembly code for the non-inlined functions
    on Alpha

This commit was SVN r11764.
2006-09-23 03:23:57 +00:00
Brian Barrett
e3497a8bff Fix a number of places where we can cause errors in configure if CFLAGS /
CXXFLAGS are set to -Wall -Werror.  Thanks to Ralf for the patch.

refs trac:290

This commit was SVN r11762.

The following Trac tickets were found above:
  Ticket 290 --> https://svn.open-mpi.org/trac/ompi/ticket/290
2006-09-22 23:58:23 +00:00
Tim Prins
83a7f6e4de Fix for bug #369.
LoadLeveler only sets LOADL_PROCESSOR_LIST when there are 128 or less tasks allocated to a job. The POE RAS relied on this variable so I created a new RAS which uses the LoadLeveler API instead of relying on the environment variable. This still needs some testing, so for now we use the POE RAS whenever LOADL_PROCESSOR_LIST, otherwise we fall back on this component.

Unfortunately, this will require an autogen...

This commit was SVN r11732.
2006-09-21 00:08:49 +00:00
Brian Barrett
8622fe8874 * be more liberal about about which platforms we consider to be alpha,
so that we include all the ev series on platforms that report more than
  just "alpha".  Fixes one of many issues on Alpha reported by a user.

refs trac:380

This commit was SVN r11683.

The following Trac tickets were found above:
  Ticket 380 --> https://svn.open-mpi.org/trac/ompi/ticket/380
2006-09-17 23:14:17 +00:00
Jeff Squyres
8226dab86c Fixes trac:377
Add --enable-orterun-prefix-by-default (and a synonym:
--enable-mpirun-prefix-by-default) to make orterun always behave as if
"--prefix $prefix" was given on the command line (where $prefix is the
value given to the --prefix option to configure).  This prevents many
rsh/ssh users from needing to modify their shell startup files to set
the LD_LIBRARY_PATH for Open MPI (they will still need to set PATH or
otherwise find the OMPI executables to mpicc/mpirun/etc. their MPI
applications).

Also added --noprefix option to orterun to disable this behavior.
Finally, note that even if --enable-orterun-prefix-by-default is
specified, if the user specifies --prefix or /path/to/mpirun, these
options will override the default value of the prefix ($prefix).

This commit was SVN r11669.

The following Trac tickets were found above:
  Ticket 377 --> https://svn.open-mpi.org/trac/ompi/ticket/377
2006-09-15 02:52:08 +00:00
Galen Shipman
877b819ddb Initial commit of QLogic PSM MTL.
This provides support for the Infinipath interconnect using the PSM API. 

Of note: 
This version has a "hackaround" we always return 1 or greater from
the MTL PSM progress function, this should be examined further.

This commit was SVN r11655.
2006-09-14 16:44:02 +00:00
Jeff Squyres
c9d244a298 Rename some OMPI_* macros to be OPAL_* macros.
This commit was SVN r11598.
2006-09-08 23:42:32 +00:00
Jeff Squyres
c068bc155a First steps towards IPv6 support. Mainly to support the guys working
on it, even though there's no other IPv6 code in the tree yet.

This commit was SVN r11561.
2006-09-08 00:10:40 +00:00
Sven Stork
78413e62b3 - fix lost compiler flag
This commit was SVN r11451.
2006-08-27 16:28:05 +00:00
George Bosilca
c697a25040 If we want to compile any application on Windows we need at least
these 2 libraries. Save and resotre (to the default values) the LDFLAGS.

This commit was SVN r11439.
2006-08-27 04:52:46 +00:00
Brian Barrett
53925dfd88 * Use AC_TRY_LINK instead of AC_TRY_cOMPILE to see if the compiler hints
for prefetch and branch prediction work.  A non-happy compiler could
  just think these were functions and we wouldn't get the error, because
  we didn't try to link.

  Refs trac:287

This commit was SVN r11333.

The following Trac tickets were found above:
  Ticket 287 --> https://svn.open-mpi.org/trac/ompi/ticket/287
2006-08-22 22:20:12 +00:00
George Bosilca
8db4a55a57 Reorder the C++ compiler discovery stages. Check first the compiler vendor
before checking if we are able to compile the test program. This is required
for windows as the C++ conftest.c file generated by configure cannot be
compiled with the Microsoft cl.exe compiler (because of the exit function
prototype). So if we detect a vendor equal to microsoft we will assume
that the compiler is correctly installed (which is true on Windows most
of the time anyway).

This commit was SVN r11268.
2006-08-20 13:53:27 +00:00
George Bosilca
6b01358cc1 Generate static-component.h file C++ friendly.
This commit was SVN r11267.
2006-08-20 13:48:24 +00:00
Brian Barrett
1daa21e1e3 It appears that most versions of the IBM XL compiler (including the latest
releases on Linux and OS X) don't handle const_cast<> of 2-dimensional 
arrays properly.  If we're using one of the compilers that isn't friendly
to such casts, fall back to a standard C-style cast.

refs: #271

This commit was SVN r11263.
2006-08-19 22:55:59 +00:00
Brian Barrett
43116cd13c * Don't define _GNU_SOURCE if we are using the IBM XL compilers, as it seems
to cause them to miscompile TCP-related code.

  refs trac:276

This commit was SVN r11258.

The following Trac tickets were found above:
  Ticket 276 --> https://svn.open-mpi.org/trac/ompi/ticket/276
2006-08-18 04:12:24 +00:00
Brian Barrett
4176e61049 * Add support for building the F90 bindings library as a shared library
on almost all platforms (except OS X... sigh...).  This is the merge 
  of r10846 - 10894 from the tmp/f90-shared branch to the trunk.

This commit was SVN r11103.

The following SVN revisions from the original message are invalid or
inconsistent and therefore were not cross-referenced:
  r10846
2006-08-03 00:17:31 +00:00
Rainer Keller
12166eb0d7 - The intel-based assembler on ia64 (such as NEC's ecc) needs
.proc/.endp-declarations for functions in order to be able to
   link successfully.
   Currently used in configure, only.
   
   There has not been found another arch, where this is necessary.
   So asm-data.txt and base/default.conf has not been changed.

This commit was SVN r11068.
2006-07-31 22:30:07 +00:00
Rainer Keller
bfadfa9eb6 - Get code-coverage to work with gcc-4.x (needs --coverage flag also
when linking)
   This allows ompi-branch optimization. Works now with mpicc wrappers.

This commit was SVN r11067.
2006-07-31 21:55:01 +00:00
Galen Shipman
c9e0eda190 Initialize the completion queue to a reasonable size based on maximum number
of send/receives outstanding.

Use ibv_cq_resize if available after initial creation of completion queue if
cq_size is too small (based on number of peers). 

This commit was SVN r11053.
2006-07-30 00:58:40 +00:00
Brian Barrett
aaf31c6ade * Make the backtrace printing functionality a framework
* Copy Linux and Solaris backtrace support from util/stacktrace.c
* Added backtrace support for Mac OS X.

This commit was SVN r11023.
2006-07-27 02:56:02 +00:00
Brian Barrett
7ea33eac02 Merge in rest of event library update branch, updating the event library to
libevent-1.1a.

svn merge -r10917:11006 https://svn.open-mpi.org/svn/ompi/tmp/libevent-update

This commit was SVN r11022.

The following SVN revisions from the original message are invalid or
inconsistent and therefore were not cross-referenced:
  r10917
  r11006
2006-07-27 01:51:18 +00:00
Brian Barrett
dfa1221c3b * AC_CONFIG_LINKS has a minor problem in that it always uses ln -s, rather
than $(LN_S).  This causes problems with with Windows and probably
  elsewhere (re: #200).  So use a slightly different trick to get the
  right header selected for the MEMCPY and TIMER components.

* Using the same trick used to solve the AC_CONFIG_LINKS problem, 
  stop using a separate header file for direct calling in the
  PML and MTL.  This lets me remove some icky code in ompi_mca.m4
  that was more fragile than I really liked.

This commit was SVN r10841.
2006-07-16 04:23:52 +00:00
Jeff Squyres
4eb3ee7835 Another project that has been brewing for a week or so...
We have repeatedly seen users inadvertantly try to use a C compiler
for $CXX (e.g., using icc instead of icpc in recent versions of the
Intel compiler).  Unfortunately, this would "sorta work", meaning that
configure would complete successfully and the build would fail much
later in the process (when $CXX was used to try to link a C++
compiler).  This was further compounded by the fact that many C
compilers will switch into "C++ mode" when they compile files that end
in .cc -- meaning that they'll *compile* C++ codes properly, but they
won't *link* properly.  Hence, users would get all the way down to
compiling the C++ MPI bindings or ompi_info (i.e., very late in the
build process) before the problem became evident.

We already have a test in configure that tries to compile, link, and
run a sample C++ program.  This helped ensure that $CXX was a valid
compiler, but it did not catch if the user accidentally supplied a C
compiler instead of a C++ compiler because the test program was simply
"return 0".  This commit updates the test program to use some
C++-specific constructs (std::string) so that if the user supplies a C
compiler in $CXX, the program may *compile*, but it will definitely
fail to *link*.

Hence, the process will fail early in configure (with a descriptive
message about how the compiler failed to work properly) rather than
late in the build.

This commit was SVN r10829.
2006-07-15 10:27:09 +00:00
Dan Lacher
94d5c9eed5 Defect 166: configure fails to crops libtool extras
Reviewed by: jsquyres, brbarret

This fix allows for support of LT2.0

This commit was SVN r10752.
2006-07-11 23:39:17 +00:00
Brian Barrett
27d9e26721 Fix for ticket #179. Print a reasonable error message if we fail to parse
the compiler data file.  Also, actually fix the bug by expanding out
datarootdir before letting it get in install_dirs.h.

This commit was SVN r10643.
2006-07-04 03:00:01 +00:00
Brian Barrett
47725c9b02 * Add new PML (CM) and network drivers (MTL) for high speed
interconnects that provide matching logic in the library.
  Currently includes support for MX and some support for
  Portals
* Fix overuse of proc_pml pointer on the ompi_proc structuer, 
  splitting into proc_pml for pml data and proc_bml for
  the BML endpoint data
* bug fixes in bsend init code, which wasn't being used by
  the OB1 or DR PMLs...

This commit was SVN r10642.
2006-07-04 01:20:20 +00:00
Brian Barrett
56a86c89b1 * Fix for bug #152. Make --with-FOO-libdir=DIR only check DIR, and not the
DIR/lib and DIR/lib64, which really never made sense.

This commit was SVN r10535.
2006-06-28 03:33:30 +00:00
Brian Barrett
03cc22842c fix error message typo and correct the flag that should be provided to gcc
to force v8+ ABI

This commit was SVN r10438.
2006-06-20 16:25:31 +00:00
Brian Barrett
d96554a482 * Fix for issue #144. With the opal_atomic_lifo code, we can no longer build
on platforms without a 32-bit compare and swap implementation.  There isn't
  such a thing on Sparc v8 chips, so we can't support those platforms right
  now.  Should be possible to make opal_atomic_lifo less atomic on these
  platforms, but not in the time allotted.

This commit was SVN r10407.
2006-06-17 18:45:29 +00:00
Sushant Sharma
428d81bc78 No need to look for xcpu libraries now. If user specifies --with-xcpu=yes, xcpu component will be compiled. Default is do not compile xcpu component.
This commit was SVN r10344.
2006-06-13 23:28:26 +00:00
George Bosilca
85b60cf2bd Having access to the full power of the prefetch is way more interesting. There
are 3 arguments: the pointer to the memory location to prefetch, the type of
operation that will be done on the memory (read or write) and the expected
locality.

This commit was SVN r10294.
2006-06-11 20:10:36 +00:00
Brian Barrett
0e6cf49341 * fix tests for __builtin_expect to not use NULL
This commit was SVN r10282.
2006-06-10 00:32:39 +00:00
Brian Barrett
4c80624fb3 * As promised to George and per #93, add macros for hinting to the compiler
whether an if statement is likely to be taken and for prefetching memory.
  Current macros:

    OPAL_LIKELY(expression)
    OPAL_UNLIKELY(expression)
    OPAL_PREFETC(address)

This commit was SVN r10278.
2006-06-09 19:50:51 +00:00
Jeff Squyres
d4b5c98247 Add check for <sysfs/libsysfs.h> since it's needed by OpenIB.
This commit was SVN r10213.
2006-06-05 22:02:40 +00:00
Brian Barrett
5163f2b296 Fix for bug #36. The MX, MVAPI, and OpenIB components don't have
support for progress threads, so we shouldn't build them or try to use
them when support for progress threads has been requested.  The TCP, GM,
SELF, and SM BTLs should have progress thread support, so they aren't
disabled.  The Portals BTL isn't compiled on platforms with threads,
so it doens't need to be updated.

This commit was SVN r10156.
2006-06-01 01:30:16 +00:00
Brian Barrett
0125bdb94d * add missing " that somehow slipped into the commit last night.
This commit was SVN r10140.
2006-05-31 13:57:38 +00:00
George Bosilca
2f4f49c7ba Check for the mx_register_unexp_callback availability (starting from MX 1.1.1).
This commit was SVN r10134.
2006-05-31 06:29:16 +00:00
Brian Barrett
7bbdad2821 * The (undocumented!) Autoconf variable $ac_configure_args needs
to be evaluated, to account for the quoting done.


Submitted by: Ralf Wildenhues
Reviewed by: Brian Barrett

This commit was SVN r10132.
2006-05-31 03:41:57 +00:00
Brian Barrett
f4a7e9be78 * Fix shell quoting to be more consistent with what AC does
Submitted by: Ralf Wildenhues
Reviewed by: Brian Barrett

This commit was SVN r10130.
2006-05-31 03:40:26 +00:00
Brian Barrett
7e1befaab8 * Fix M4 quoting so that AC 2.60 won't complain
Submitted by: Ralf Wildenhues
Reviewed by: Brian Barrett

This commit was SVN r10128.
2006-05-31 03:37:31 +00:00
Brian Barrett
0b09ba928c Fix for bug #17. Solaris provides stubs (who knows why, but they do) for
the pthreads library that don't do anything but are there when no special
options are given.  Both the GNU compiler and the Sun compiler could
sometimes ignore the -K* options, causing badness when building with
posix threads.  Don't try those options ;).

We still try -pthread and -pthreads because the compilers *do* error
when they see those options and some versions of the GNU compiler do
understand those flags (and do all the right things in that case).

This commit was SVN r10126.
2006-05-31 00:23:49 +00:00
Jeff Squyres
5f356edb64 Bring over changes from the /tmp/fortran-stuff series:
- Make the F90 bindings compile and link properly with gfortran 4.0,
  4.1, Intel 9.0, PGI 6.1, Sun (don't know version offhand -- the most
  current as of this writing, I think), and NAG 5.2, although some
  have limitations (e.g., NAG can't seem to handle the medium and
  large sizes)
- Building the F90 "small" module size is now the default, even for
  developers
- Split up mpif.h into multiple files because parts of it were toxic
  to the F90 bindings
- Properly specify unsized/unshaped arrays to make the bindings work
  on all known compilers
- Make ompi_info show Fortran 90 bindings size
- XML somewhat lags the generated scripts as of this commit, but
  functionality was my main goal -- the XML can be updated later (if
  at all).

This commit was SVN r10118.
2006-05-30 14:37:41 +00:00
Rainer Keller
772bba620d - Allow --enable-mca-direct for VPATH builds.
This commit was SVN r10007.
2006-05-22 14:24:30 +00:00
George Bosilca
1fbccda986 -g3 is definitively not a standard gcc option, at least not on anything
else than a quite recent version. Using this option prevent gdb from accessing
the contents of some of the structures. The error message is:
Unexpected type (0) encountered for integer constant.

This commit was SVN r9994.
2006-05-19 22:09:29 +00:00
Jeff Squyres
8e26fd653d Torque changed the name of their library from libpbs to libtorque; this
commit updates our configure test to check for both names.

This commit was SVN r9976.
2006-05-18 21:03:38 +00:00
Jeff Squyres
4080646606 Fix some variable names that are generated via m4 macros.
Sorry for committing configure changes during the day, but this is
necessary for some testing via multiple people at different sites.

This commit was SVN r9926.
2006-05-15 19:33:06 +00:00
Jeff Squyres
0d092abb81 Clarify help string, per change to 1.0 branch.
This commit was SVN r9906.
2006-05-12 03:06:54 +00:00
Andrew Friedley
5ba264d854 -ldapl isn't needed on all uDAPL platforms, so don't use it unless it is needed.
This commit was SVN r9866.
2006-05-09 20:02:38 +00:00
Brian Barrett
52369307f8 Add a feature to the build system that Terry from Sun and I talked about
in San Jose.  Allow the configure option --disable-binaries to build OMPI,
but not build or install the support binaries (so basically, just build
the libraries).

This commit was SVN r9777.
2006-04-29 02:16:41 +00:00
Jeff Squyres
2a2b27bf57 Forgot to remove f90_get_alignment.m4 from Makefile.am.
This commit was SVN r9725.
2006-04-26 12:07:26 +00:00
Jeff Squyres
79a3678924 Fix typo
This commit was SVN r9723.
2006-04-26 11:52:25 +00:00
Brian Barrett
5bd1be7ac4 * clean up some configure --help output as reported on OMPI mailing list.
This should probably go to 1.1...

This commit was SVN r9722.
2006-04-26 02:07:19 +00:00
Jeff Squyres
c6a753f41b Finish the rest of r9698:
- Add a lengthy comment explaining why we don't get F90 data type
  alignments
- Remove config/f90_check.m4 and its entry in acinclude.m4

This commit was SVN r9707.

The following SVN revision numbers were found above:
  r9698 --> open-mpi/ompi@e57300da4c
2006-04-25 10:45:06 +00:00
Jeff Squyres
e57300da4c Don't bother to get the alignmnet of an f90 type -- the DDT engine
only uses the F77 alignments anyway.  Plus, it is currently unknown
how to reliably get the F90 alignments because compilers *may* reorder
things and/or give different alignments than the f77 tests.

This commit was SVN r9698.
2006-04-24 14:28:51 +00:00
Brian Barrett
2ad29df0a1 * Add option to disable the adding of -g to CFLAGS/CXXFLAGS when --enable-debug
is given.  Generally not useful, unless you're on a platform without a
  debugger...

This commit was SVN r9684.
2006-04-22 19:23:26 +00:00
Rainer Keller
990496bc80 - Small bugfix to get lib-directory checking correct
(prevented orte/mca/pls/tm from detecting libpbs).

This commit was SVN r9657.
2006-04-19 15:22:55 +00:00
Brian Barrett
6617d48e00 * fix small issue with cross-compiling - we don't need
to run the working test when cross-compiling, so just
  ignore it for now..

This commit was SVN r9653.
2006-04-18 18:22:00 +00:00
Brian Barrett
d5012bf485 Two patches from Ralf Wildenhues to improve configure:
- include stdlib.h for tests that call exit(), as AC no longer
    prototypes exit in 2.60
  - Fix a compile issue in our cross-compiling test for C/C++
    alignment checks, matching what AC did for 2.60.

This commit was SVN r9634.
2006-04-14 15:33:51 +00:00
Jeff Squyres
f8e634d6ca Bring over /tmp/f90-stuff branch to the trunk.
svn merge -r 9453:9609 https://svn.open-mpi.org/svn/ompi/tmp/f90-stuff .

Several improvements over the current F90 MPI bindings:

- The capability to make 4 sizes of the F90 bindings:
  - trivial: only the F90-specific MPI functions (sizeof and a few
    others)
  - small: (this is the default) all MPI functions that do not take
    choice buffers
  - medium: small + all MPI functions that take one choice buffer
    (e.g., MPI_SEND)
  - large: all MPI functions, but those that take 2 choice buffers
    (e.g., MPI_GATHER) only allow both buffers to be of the same type
- Remove all non-standard MPI types (LOGICAL*x, CHARACTER*x)
- Remove use of selected_*_kind() and only use MPI-defined types
  (INTEGER*x, etc.)
- Decrease complexity of the F90 configure and build system

This commit was SVN r9610.
2006-04-11 03:33:38 +00:00
Sushant Sharma
8d5289b2b8 Corrected Makefile.am files for pls and soh xcpu-components as per Brian's suggestion.
This commit was SVN r9519.
2006-04-03 17:14:47 +00:00
Sushant Sharma
46f84b1e8e Added xcpu component in pls and soh.
This commit was SVN r9491.
2006-03-31 02:19:52 +00:00
George Bosilca
99ba9bea10 Correct the CRAY define (here is a interesting webpage with all the compilers defines
http://predef.sourceforge.net/precomp.html).

This commit was SVN r9472.
2006-03-30 00:20:43 +00:00
Brian Barrett
ae85aae6e5 * add some debugging if conftestval the file doesn't exist
* Try fclose()ing the file to see if that helps with the errors reported
  with Absoft 8.2

This commit was SVN r9439.
2006-03-28 13:55:39 +00:00
Brian Barrett
06e61ea03b * have to use same case for creating a function name as using it in the
Fortran tests or the mixed case (*caugh* Absoft *cough*) compilers
  don't compile the tests too well...

This commit was SVN r9406.
2006-03-24 02:34:13 +00:00
George Bosilca
aef1358808 First import or peruse. As it look like SVN doesn't like to import simultaneously
2 directories having the same name I have to split the import in 2. I start with
the test and the configure.

This commit was SVN r9372.
2006-03-23 04:54:10 +00:00
Brian Barrett
9bd236e1f0 * need to expand out $prefix if it is NONE as well
This commit was SVN r9346.
2006-03-21 00:21:12 +00:00
Brian Barrett
db5bc19785 * work around bumm assembly result on linux ppc32, which was claiming
support for 64 bit opcodes

This commit was SVN r9284.
2006-03-15 03:33:46 +00:00
Brian Barrett
1f6e85af4c Let's try this again, this time with less suck.
* Don't do the .in -> .tmp -> header thing for the prefixes and versions.
  It causes some severe cleanup issues all to save 4 files from rebuilding
  when configure is run.
* Clean up some makefiles so it's clear what is being installed/disted

This commit was SVN r9260.
2006-03-12 17:56:58 +00:00
Brian Barrett
ea7b9cfc81 * Only enable SLURM support in ORTE if on a platform currently supported by
SLURM.  Currently, this includes AIX and Linux.  If the user wants to build
  SLURM on another platform, they can specify --with-slurm.
* Enable/disable the SLURM sds component using the same logic as the PLS and
  RDS components.

This commit was SVN r9259.
2006-03-12 05:32:35 +00:00
Brian Barrett
c42da09796 * Fix a small bug George noticed - if you change the prefix (or any of the
installation directories) in configure, the files that depend on this
  information are not properly rebuilt.  If you need this information,
  don't setup a -D in the Makefile.am - instead, include 
  opal/install_dirs.h.
* Use the : option in AC_CONFIG_FILES to avoid needing to expose that
  we are playing around with temporary files with our headers to avoid
  rebuilding
* Clean up the version file information a bit, and like the install 
  directory stuff, make sure that there is a dependency so that 
  ompi_info gets rebuilt properly when a version number changes.

This commit was SVN r9256.
2006-03-12 04:35:01 +00:00
Brian Barrett
710bca2df4 * properly enable threading support inside ptmalloc2=. Thanks to Tim for
figuring out that ptmalloc2 was borked.

This commit was SVN r9251.
2006-03-11 02:37:55 +00:00
Brian Barrett
b57a6b4a62 * PGI 6.1 kind of (but not completely) supports GCC inline assembly. Previous
versions didn't even make an attempt.  Disable the not-quite-right issues
  inline assembly support with PGI 6.1.

This commit was SVN r9240.
2006-03-10 02:11:41 +00:00
George Bosilca
c604c5da2f -g3 is a GNU gcc specific flag. We are using the gnu compiler only if
the vendor is gnu. Otherwise, if GCC is set for all the compilers who
impersonate gcc like icc.

This commit was SVN r9217.
2006-03-08 17:17:17 +00:00
Jeff Squyres
fc2d95d263 Also recognize -g1, -g2, and -g3 as debugging flags so that the
now-default GNU debug flags (-g3) don't accidentally cause the
configure system to add -O3 to the build flags (because it didn't
recognize that -g3 was a debugging flag).

This commit was SVN r9207.
2006-03-06 17:32:51 +00:00
Rainer Keller
42f4a6fe03 - use AC_C_BIGENDIAN instead of deprecate AC_WORDS_BIGENDIAN
- set the highest debugging levels for macro debug support on gcc/gdb

This commit was SVN r9197.
2006-03-04 13:59:14 +00:00
Brian Barrett
c2fded586a * Andrew F. pointed out I can't spell...
This commit was SVN r9186.
2006-03-01 03:13:22 +00:00
Brian Barrett
7fa1c0eeb2 * if the default compile mode is 64bit, config.guess will call a MIPS
machine mips64

This commit was SVN r9185.
2006-03-01 02:25:09 +00:00
Brian Barrett
ee73cbb25c * remove unused F90 range and precision tests
This commit was SVN r9162.
2006-02-27 05:19:13 +00:00
George Bosilca
426c587dcc Dont use exit(0) when we try to run a simple C++ program. Use return instead
to avoid having problems on Windows with the C++ mangling scheme.

This commit was SVN r9161.
2006-02-27 05:14:35 +00:00
George Bosilca
f4b853d038 Allow Windows absolute prefix which start with a letter followed by :
This commit was SVN r9143.
2006-02-25 21:23:14 +00:00
George Bosilca
454e133ae2 Move all the Microsoft related checks outside the configure.ac
This commit was SVN r9100.
2006-02-21 07:42:00 +00:00
George Bosilca
890e2ec06e Accept Windows friendly paths for --prefix.
This commit was SVN r9099.
2006-02-21 07:41:07 +00:00
Jeff Squyres
e7528cad6f Remove AC_FC_SRCEXT(f95) because a) we don't have any files in the
source tree that are named .f95, and b) it sets the future file
extension for Fortran AC tests to be .f95.  This is not a problem for
gfortran, but other compilers (e.g., ifort) don't like that.

This commit was SVN r9040.
2006-02-14 20:28:18 +00:00
Jeff Squyres
65161c1dfe Fix the fortran 90 checks in two ways:
- Make the F90 checks use the identical types to the F77 checks (e.g.,
  INTEGER*4, as opposed to potential selected_int_kind() equivalents)
- Comment out the F77 and F90 alignment check failure -- there is some
  confusion here; some vendors apparently told Craig R. yesterday that
  they change the alignments of types based on whether the instance is
  a standalone variable, in an array, or a member of a struct.  

More investigation is needed (and potentially clarification for MPI
users -- this could be quite problematic!), but this alignment test is
otherwise hosing the nightlies, so it needs to be taken out for the
moment.

This commit was SVN r9031.
2006-02-14 13:05:37 +00:00
Jeff Squyres
681d46ac56 Fix problem with the AC_DEFINE's for the F90 check. Must use m4
mutilations in AC_DEFINE or autoheader will not pick up the symbols
and add them to opal_config.h.in.

This commit was SVN r9026.
2006-02-14 05:22:49 +00:00
Brian Barrett
74860649bc * skip some F90 tests if we aren't compilng F90
* Make sure to invalidate the cache on a couple of tests when we don't
  want F77/F90

This commit was SVN r8994.
2006-02-12 16:59:56 +00:00
Jeff Squyres
bc47a24bee Bring the f90 configuration up to speed with the f77 configuration
changes.  The two Big Changes are elegance (much more re-use of code
rather than cut-n-pasting the same code over and over and over and...)
and enabling cross-compilation for F77 and F90 (because we actually
have to *run* some compiled F77 and F90 programs for some of the
tests, which obviously won't work in a cross-compilation environment
-- so enable the use of config.cache to load such values in
cross-compiling environments).

This commit was SVN r8991.
2006-02-12 15:11:36 +00:00
Brian Barrett
566a050c23 Next step in the project split, mainly source code re-arranging
- move files out of toplevel include/ and etc/, moving it into the
    sub-projects
  - rather than including config headers with <project>/include, 
    have them as <project>
  - require all headers to be included with a project prefix, with
    the exception of the config headers ({opal,orte,ompi}_config.h
    mpi.h, and mpif.h)

This commit was SVN r8985.
2006-02-12 01:33:29 +00:00
Brian Barrett
d751d3bacf * Try to execute a simple application with a compiler (in non-cross-compile
situations) before going on to tests that run executables with the
  compiler.  Print a friendly error message if it fails.  Hopefully, this
  will help people with borked compilers.

This commit was SVN r8898.
2006-02-05 01:28:05 +00:00
Brian Barrett
c1390278ad * Look for the static version of the mpi F90 library, as it is always built
statically without libtool (so there is no .la file)

This commit was SVN r8896.
2006-02-04 23:30:20 +00:00
Brian Barrett
b1d2424013 Merge in present work on the MPI-2 onesided chapter. The current code is not
complete, but stable enough that it will have no impact on general development,
so into the trunk it goes.  Changes in this commit include:

 - Remove the --with option for disabling MPI-2 onesided support.  It
   complicated code, and has no real reason for existing
 - add a framework osc (OneSided Communication) for encapsulating
   all the MPI-2 onesided functionality
 - Modify the MPI interface functions for the MPI-2 onesided chapter
   to properly call the underlying framework and do the required
   error checking
 - Created an osc component pt2pt, which is layered over the BML/BTL
   for communication (although it also uses the PML for long message
   transfers).  Currently, all support functions, all communication
   functions (Put, Get, Accumulate), and the Fence synchronization
   function are implemented.  The PWSC active synchronization
   functions and Lock/Unlock passive synchronization functions are
   still not implemented

This commit was SVN r8836.
2006-01-28 15:38:37 +00:00
Brian Barrett
dc088d0023 * Generate ompi_get_version.sh from ompi_get_version.m4, removing a bunch of
duplicated logic that wasn't being duplicated all that well.  Thanks goes
  to Ralf Wildenhues for the bulk of the patch.

This commit was SVN r8779.
2006-01-21 22:53:16 +00:00
Brian Barrett
22c50c2cca * allow loading of configure options from an external file, for use in
cross-compile environment

This commit was SVN r8706.
2006-01-16 23:38:42 +00:00
Brian Barrett
17d2c907fc Some changes to better support cross-compiling OMPI:
- fall back to compile test for windows paffinity component
    when cross compiling
  - fall back to platform guess when checking for threads having
    different pids with pthreads (yes on linux, no elsewhere)
  - pass the proper host, target, and build flags to the
    ROMIO configure script

With these changes, cross-compiling should be possible with the exception
of the Fortran 77 and Fortran 90 bindings.  Fortran 77 can be cross-
compiled if cache values are provided for type sizes and alignment.

This commit was SVN r8702.
2006-01-16 04:00:44 +00:00
Andrew Friedley
a4abe3bdbe Checkpoint:
- Borrow configure.m4 from the mvapi btl.  One of the uDAPL headers emits a
   warning when -pedantic is enabled, so strip it out.
 - Change function check in ompi_check_dapl.m4 from dat_ia_open to
   dat_registry_list_providers.. dat_ia_open wasn't working right
 - Make the references to prepare_dst, put, and get NULL for now
 - Add opal_output() calls in all the udapl interface functions for debugging
 - Add evd_qlen component parameter to control event dispatcher queue length
 - First stab at component_init and module_init
 - Misc cleanups - whitespace, dead code removal
 - Update copyrights to 2006

This commit was SVN r8701.
2006-01-16 03:01:12 +00:00
Brian Barrett
c96f870674 * Merge of wrapper compiler updates from the bwb-wrapper-fix branch (r8690 -
r8698), with changes below:

  - Split wrapper flags into those required for each of the three projects,
    and cleaned up some cruft (including the LIBMPI_EXTRA_*FLAGS) through-
    out the build system
  - Added opal_init_util and opal_finalize_util to allow init / cleanup
    of all the opal code that doesn't require the MCA system
  - Create standalone key=value file parser, based on the one that used
    to be in the mca param parser, so that it can be shared in multiple
    places
  - Add wrapper datafiles for opal, orte, and ompi wrappers, and add
    wrapper compiler with support for all the old features

This commit was SVN r8699.

The following SVN revisions from the original message are invalid or
inconsistent and therefore were not cross-referenced:
  r8690
  r8698
2006-01-16 01:48:03 +00:00
George Bosilca
5f37949b10 Correct few typos and make the "no fortran" a valid choice.
This commit was SVN r8689.
2006-01-14 00:20:13 +00:00