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

1594 Коммитов

Автор SHA1 Сообщение Дата
Brian Barrett
70b154f7ff oshmem: Update config code to match OMPI usage
enable_oshmem holds the result of a customer decision and, like
most user options, can have the values "yes" (user wants us to
build feature), "no" (user wants us not to build feature),
"" (user wants us to figure it out), and "<something>" (user
wants us to build feature, with <something> turned on).

This change updates oshmem to not lose this data by not overwriting
enable_oshmem with a yes/no and leaving the original customer
intent in place.  Aside from fixing one bug (below) there are no
customer visible changes in this patch, but it makes it possible
to do the right thing in the upcoming work to allow oshmem to be
disabled based on test results.

There was a cosmetic bug in the existing code where specifying
a feature argument (like --enable-oshmem=awesome) would result
in the "checking if want oshmem" test reporting no, but oshmem
being built anyway.  With this cleanup, the "checking if want
oshmem" test, the final output summary, and what actually happens
will all match.

Signed-off-by: Brian Barrett <bbarrett@amazon.com>
2018-05-25 08:48:50 -07:00
Ben Menadue
53fda14680 configure: use AC_LINK_IFELSE instead of AC_COMPILE_IFELSE when testing for C11 features to prevent e.g. _Static_assert being treated as an implicitly-defined function.
Signed-off-by: Ben Menadue <ben.menadue@nci.org.au>
2018-05-23 15:25:47 +10:00
Jeff Squyres
9f21ea437c java: clean up MPI Java configury
The Java configury is split into two parts:

1. Determine if we want MPI Java bindings.
2. Find the Java compiler (and related).

This commit does a few things:

- Move the "Find the Java compiler" step from OPAL to OMPI (because
  there is no Java in OPAL, and there doesn't appear to be any
  immanent danger that there will be).
  - As a direct consequence, remove the --enable-java CLI option
    (--enable-mpi-java still remains).  Enabling the MPI Java bindings
    and enabling Java are now considered the same thing (since there
    is no Java elsewhere in the code base, the different was
    meaningless).
- Only invoke the "Find the Java compiler" step if we actually want
  the MPI Java bindings.
- A few miscellaneous Java-related cleanups in configury (E.g., change
  testing "$foo" == "1" to $foo -eq 1, etc.

This commit is mostly s/opal/ompi/gi in many places in configury and
shifting code around.  But it looks bigger than it actually is because
of two reasons:

1. Some files were renamed:
   * ompi_setup_java.m4 -> ompi_setup_mpi_java.m4 (setup MPI Java bindings)
   * opal_setup_java.m4 -> ompi_setup_java.m4 (setup Java compiler)
2. Indenting level changed in (the new) ompi_setup_java.m4.

Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
2018-05-15 15:15:22 -07:00
Bryce Glover
4a05c7e29f config/opal_setup_java.m4: Fix #5015.
That PR accidentally changed Open MPI's build configuration infrastruc-
ture's Java toolchain detection logic so that it would, as reported by @bosilca
in https://github.com/open-mpi/ompi/pull/5001#issuecomment-387803012 and tracked down by me in https://github.com/open-mpi/ompi/pull/5001#issuecomment-387851005, abort your entire
in-progress Open MPI build when it failed to find an OS X/macOS JDK instead of
simply falling back to checking for a JDK in locations where it would be found
on other platforms.  _Oops…!_

Signed-off-by: Bryce Glover <RandomDSdevel@gmail.com>
2018-05-09 17:37:33 -04:00
Bryce Glover
8c32cd8970 config/opal_setup_java.m4: Improve JDK tool path resolution on OS X/macOS.
Also avoid picking up Apple's Java shims via the sym. links to them in
`/usr/bin` on systems where any one of them could possibly exhibit behavior
that is erratic and, to some extent, likely to be incorrect nowadays (cf.:

- https://www.mail-archive.com/devel@lists.open-mpi.org/msg20551.html
- https://github.com/open-mpi/ompi/pull/5015#issuecomment-379324639
- the last part  of
  https://github.com/open-mpi/ompi/pull/5015#discussion_r184187064
- https://github.com/open-mpi/ompi/pull/5015#issuecomment-384136871

for more detailed context.)

Works alongside #5001 to close #5000.

Signed-off-by: Bryce Glover <RandomDSdevel@gmail.com>
2018-04-26 17:14:07 -04:00
Edgar Gabriel
26e0894f24 config/ompi_check_pvfs2.m4: respect the --without-pvfs2 flag
similar patch to the lustre version, abandon the configure
macro for the pvfs2 components if the user explicitely told you
to do that.

Signed-off-by: Edgar Gabriel <egabriel@central.uh.edu>
2018-04-25 14:39:18 -05:00
Edgar Gabriel
aec2b9845a config/ompi_check_lustre.m4: respect the --without-lustre flag
make sure we actually respect if the user set the --without-lustre
flag (instead of continuing in the m4 macro as was the case until now).

Signed-off-by: Edgar Gabriel <egabriel@central.uh.edu>
2018-04-25 14:39:18 -05:00
KAWASHIMA Takahiro
a01d4654c8 configure: Fix typo in configure --help
This affects only output of `configure --help`.

Signed-off-by: KAWASHIMA Takahiro <t-kawashima@jp.fujitsu.com>
2018-04-12 21:33:49 +09:00
luz.paz
06b121eb70 Misc. trivial typos
Found via `codespell -q 3`

Signed-off-by: luz paz <luzpaz@users.noreply.github.com>
2018-04-09 11:45:58 -04:00
Gilles Gouaillardet
5370586d98 configury: use javac vs javah whenever possible
javah is no more available from Java 10, so try
javac -h first (available since Java 8) and fallback on javah

Refs. open-mpi/ompi#5000

Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2018-04-05 10:37:35 +09:00
Themos Tsikas
a8fc30f95a configury: Make more robust in finding NAG Fortran Compiler
The NAG Fortran check only matched "nagfor" exactly, and failed if a
path to nagfor was provided.  Also change "-pthread" into
"-Wl,-pthread".

Signed-off-by: Themos Tsikas <themos.tsikas@nag.co.uk>
Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
2018-03-02 10:50:37 -08:00
Gilles Gouaillardet
83dd8cd3fc configury: look for PMI header in DIR provided by --with-pmi=DIR
Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2018-02-26 09:46:26 +09:00
Gilles Gouaillardet
b86e0f04bf configury: fix PMI detection
and do not end up with -L/usr/lib[64] when PMI libraries
are installed in the default location.

Thanks Davide Vanzo for the report.

Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2018-02-24 01:16:12 +09:00
Jeff Squyres
ff31da6f74 opal_check_attributes: fix __extension__ test
Per
https://gcc.gnu.org/onlinedocs/gcc/Alternate-Keywords.html#index-_005f_005fextension_005f_005f,
use __extension__ in a C statement that will actually verify if the
compiler supports it or not.

Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
2018-01-23 13:44:43 -08:00
Ralph Castain
01e6539127 Revert "Filter /usr[/local]/include from opal CPPFLAGS when used explictly --with-package=DIR"
This reverts commit c4fe4ecfb9.

Revert "Fix  DIR, DIR/include search for --with-pmix"

This reverts commit 2e3f401763.

Signed-off-by: Ralph Castain <rhc@open-mpi.org>
2018-01-17 16:02:19 -08:00
Alex Mikheev
640e945b9c ompi: pml/ucx: blocking send using ucp_tag_send_nbr
Signed-off-by: Alex Mikheev <alexm@mellanox.com>
2018-01-17 15:54:18 +02:00
Philip Kovacs
c4fe4ecfb9 Filter /usr[/local]/include from opal CPPFLAGS when used explictly --with-package=DIR
Signed-off-by: Philip Kovacs <pkdevel@yahoo.com>
2018-01-16 16:45:20 -05:00
Philip Kovacs
2e3f401763 Fix DIR, DIR/include search for --with-pmix
Signed-off-by: Philip Kovacs <pkdevel@yahoo.com>
2018-01-10 17:17:48 -05:00
Ralph Castain
db8ebd33ad Fix the optnone attribute, add extension attribute
See how the various compilers handle these

Signed-off-by: Ralph Castain <rhc@open-mpi.org>
2017-12-18 19:18:53 -08:00
Ralph Castain
5c4185abd8 Add the __optnone__ attribute to help avoid optimizing out MPIR_Breakpoint
Thanks to @kiranchandramohan for the suggestion

Signed-off-by: Ralph Castain <rhc@open-mpi.org>
2017-12-14 13:14:21 -08:00
Nathan Hjelm
1e630f4a46 configure: check for C11 and atomic types
This commit updates the configure code for Open MPI to check for C11
support. The features requested are: atomics and thread local
storage.

References #3879

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2017-12-11 15:27:12 -07:00
Ralph Castain
3906aaf41a Silence warnings
Signed-off-by: Ralph Castain <rhc@open-mpi.org>
2017-11-25 11:50:18 -08:00
Gilles Gouaillardet
48a39e34f2 configury: misc fixes in zlib detection
- push extra local variables
 - remove unnecessary AC_MSG_RESULT

Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2017-10-30 16:19:37 +09:00
Gilles Gouaillardet
5a816a98df configury: fix handling of --with-zlib=DIR and --with-zlib-libdir=DIR option
- if --with-zlib=DIR --with-zlib-libdir=LIBDIR are given, do not search
   libs in DIR/lib[64], and do not abort if libs are not there
 - if --with-zlib=DIR is given but not --with-zlib-libdir, then do append
   -LDIR/lib[64] to LDFLAGS

Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2017-10-27 14:47:47 +09:00
Gilles Gouaillardet
af03f55aa8 configury: revamp ucx detection
- when --with-ucx=DIR is not set, try the default path and fallback to /opt/ucx
 - when --with-ucx-libdir is not set, try lib64 and then lib directories
 - do not handle --with-ucx-libdir (this is a user mistake, no need to over-complicate our logic)

Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2017-10-24 09:27:57 +09:00
Gilles Gouaillardet
db2f3643d7 configury: enhance external PMIx detection - add the --with-pmix-libdir=DIR option look for libpmix.* libs in DIR, DIR/lib64 and DIR - if --with-pmix=DIR is given, look for libpmix.* in DIR/lib64 and DIR/lib
Fixes open-mpi/ompi#4347

Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2017-10-17 17:03:01 +09:00
Jeff Squyres
fba6990328 Merge pull request #4330 from jsquyres/pr/configure-option-for-show-load-errors
configure: add --en|disable-show-load-errors-by-default
2017-10-12 10:42:33 -04:00
Nathan Hjelm
1c52d9dffe opal/asm: clean up no longer supported architectures
We no longer officially support MIPS or ARM before v6. This commit
updates the configury to check for sync builtins on these
architectures and removes the MIPS and IA64 assembly from
opal/include/opal/sys.

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2017-10-11 13:09:29 -06:00
Jeff Squyres
5705192151 configure: add --en|disable-show-load-errors-by-default
Give packagers a configure CLI option to set the value of the MCA
variable mca_base_component_show_load_errors.

The --disable form of this option is intended for Open MPI packagers
who tend to enable support for many different types of networks and
systems in their packages.  For example, consider a packager who
includes support for both the FOO and BAR networks in their Open MPI
package, both of which require support libraries (libFOO.so and
libBAR.so).  If an end user only has BAR hardware, they likely only
have libBAR.so available on their systems -- not libFOO.so.  Disabling
load errors by default will prevent the user from seeing potentially
confusing warnings about the FOO components failing to load because
libFOO.so is not available on their systems.

Conversely, system administrators tend to build an Open MPI that is
targeted at their specific environment, and contains few (if any)
components that are not needed.  In such cases, they might want their
users to be warned that the FOO network components failed to load
(e.g., if libFOO.so was mistakenly unavailable), because Open MPI may
otherwise silently failover to a slower network path for MPI traffic.

Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
2017-10-11 11:02:21 -07:00
Jeff Squyres
60a810c88b Merge pull request #4016 from jsquyres/pr/libnl-you-win-again
opal_check_libnl: it's not a fatal error if libnl check fails
2017-09-25 11:53:38 -04:00
Jeff Squyres
0568f4a820 opal_check_libnl: remove abort on libnl check failure
Per https://github.com/open-mpi/ompi/issues/3995, it should not be a
fatal error if the libnl checks fail.  Instead, just fail the check
and let the upper layer decide what to do.  In this case,
OPAL_CHECK_PACKAGE will mark this library as no good, and then
propagate that upward.

E.g., if libfoo fails the libnl check, and the user had specified
--with-libfoo, this will eventually cause configure to fail (because
the libnl check will fail with libfoo, which will cause
OPAL_CHECK_PACKAGE to fail with libfoo, which will ultimately cause
some upper-level logic to realize "a human asked for libfoo but we
could not provide it -- abort!").

However, if libfoo fails the libnl check and the user did *not*
specify --with-libfoo, then this will cause the upper layer to
silently skip libfoo (because the libnl check will fail libfoo, which
will cause OPAL_CHECK_PACKAGE to fail libfoo, but then the upper-level
logic will realize "oh, we can't use libfoo, but a human didn't ask
for it -- so just skip libfoo support.").

Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
2017-09-25 07:49:43 -07:00
Gilles Gouaillardet
e28cc8c986 configury: reset all flags if libnl v3 cannot be used
Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2017-09-25 17:21:47 +09:00
Ralph Castain
5fed7330e7 Update the configure logic to separate the emitting of a libpmix library from with-devel-headers. Instead, we create a new --enable-install-libpmix expressly for that
purpose. Continue to link the new library back to libopen-pal to resolve the renamed symbols.

Update opal configure logic to set disable_dlopen when disable_mca_dso is given. Fix typos in disable_dlopen when setting variables (incorrect inclusion of quotes)

Signed-off-by: Ralph Castain <rhc@open-mpi.org>
2017-09-22 16:02:57 -07:00
Gilles Gouaillardet
94747a1d28 configury: do not use libnl-3 when it is half broken
Refs. open-mpi/ompi#4211

Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2017-09-21 15:27:59 +09:00
Gilles Gouaillardet
b9315edb85 configury: remove the --disable-mpi-io option
Fixes open-mpi/ompi#2185

Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2017-09-20 14:39:09 +09:00
Ralph Castain
08c93091f7 Merge pull request #4223 from rhc54/topic/stale
Remove stale tools
2017-09-18 09:43:06 -07:00
Josh Hursey
5cb5eb68f5 Merge pull request #4204 from jjhursey/fix/master/without-lsf
Fix --without-lsf and LSF in default search path
2017-09-18 11:04:02 -05:00
Ralph Castain
ed508010b4 Remove stale tools
Signed-off-by: Ralph Castain <rhc@open-mpi.org>
2017-09-18 07:30:47 -07:00
Ralph Castain
bbd83fd4c0 Add a new launcher "prun" for starting applications against the ORTE DVM.
Unlike "orterun", "prun" is a PMIx-only program that discovers the DVM connection instead of requiring that we explicitly provide it. Only build "prun" if PMIx v2.x is available.

This gets the DVM working again, but still is showing problems for multiple executions. I'll detail those in a separate issue. Thus, the DVM should still be considered "broken".

Signed-off-by: Ralph Castain <rhc@open-mpi.org>
2017-09-12 21:40:41 -07:00
Joshua Hursey
24a8b5c574 config/lsf: Fix case where --without-lsf and LSF in CFLAGS/LDFLAGS seach path
* Reference Issue #3546
 * If the user specified `--without-lsf` then do not check for it
   on the system, even if it is there. This can lead to the build
   failure identified in the issue above.

Signed-off-by: Joshua Hursey <jhursey@us.ibm.com>
2017-09-12 21:17:37 -04:00
Joshua Hursey
fe97d3ef5a config/withdir: Make case for --without-X more clear
* Will display a message acknowledging the configure setting
   instead of 'simple ok' which is misleading.

Signed-off-by: Joshua Hursey <jhursey@us.ibm.com>
2017-09-12 21:17:07 -04:00
Joshua Hursey
39a83a25c1 config/lsf: Adjust whitespace
* Spaces not tabs, and indent properly
 * No functional changes here

Signed-off-by: Joshua Hursey <jhursey@us.ibm.com>
2017-09-12 21:16:33 -04:00
Jeff Squyres
89c860b4fc Merge pull request #4154 from ggouaillardet/topic/opal_setup_wrappers
configury: revamp opal_setup_wrappers.m4
2017-09-01 10:03:46 -04:00
Gilles Gouaillardet
d1740a679c oshmem: add C++ wrappers
though there are no C++ bindings for oshmem, we need C++ wrappers
since a C compiler might not be able to compile a C++ source.
the C++ wrappers are :
- shmemc++ / oshc++
- shmemcxx / oshcxx
- shmemCC / oshCC (on case sensitive filesystems)

also add the examples/hello_oshmem_cxx.cc example

Thanks Bert Wesarg for bringing this to our attention

Fixes open-mpi/ompi#2097

Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2017-09-01 13:24:34 +09:00
Gilles Gouaillardet
cf2a80d215 configury: fix indentation in opal_setup_wrappers.m4
Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2017-09-01 09:09:01 +09:00
Gilles Gouaillardet
0fe7757097 configury: revamp opal_setup_wrappers.m4
Define OPAL_EVAL_LIBTOOL() macro and factorize some code

Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2017-09-01 09:08:26 +09:00
Gilles Gouaillardet
d8c795e312 configury: revamp opal_setup_wrappers.m4
Define OPAL_EVAL_LIBTOOL() macro and factorize some code

Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2017-09-01 08:59:56 +09:00
Josh Hursey
e0931714ea Merge pull request #4090 from jjhursey/config/old-xl-ppc-support
config: Remove support for big endian PPC, XL compiler older than 13.1
2017-08-16 15:31:35 -05:00
Joshua Hursey
12a015d90f config: Remove support for big endian PPC, XL compiler older than 13.1
* Removes support for big endian PPC
 * Removes support for XL compiler older than 13.1
 * Fixes Issue #4053

Signed-off-by: Joshua Hursey <jhursey@us.ibm.com>
2017-08-15 17:01:36 -04:00
Jeff Squyres
0414c0c9d7 Merge pull request #3757 from ggouaillardet/topic/enable_builtin_atomics
configury: abort when builtin atomics cannot be built and configure'd…
2017-08-14 15:22:18 -04:00
Jeff Squyres
791bcee6c0 ompi/fortran: remove proof-of-concept mpi_f08 module
This module was always intended to be a proof of concept, and was far
from complete.  If/when someone implemented F08 descriptor support for
the mpi_f08 module, this commit can either be restored or used as
reference material.

Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
2017-08-10 06:19:17 -07:00
Gilles Gouaillardet
344f000841 configury: enable Fortran 2008 subarray prototype
so Open MPI can be configure'd with --enable-mpi-f08-subarray-prototype

Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2017-08-09 13:33:33 +09:00
Gilles Gouaillardet
2c71c27882 fortran2008: fix mpiext example
in order to solve an egg and the chicken problem,  in which mpiext need mpi-f08-types.mod
and/but use-mpi-f08[-desc] needs mpiext, add an extra step
- build fortran 2008 modules only
- build fortran 2008 mpi extensions
- and then build fortran 2008 bindings

Fixes open-mpi/ompi#3605

Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2017-08-09 13:19:22 +09:00
Howard Pritchard
8223d4cba0 btl/openib: disable XRC by default
Change the default enable configure option XRC to disabled.  If a user want's
to give it a try they have to explicitly ask for it.

Modify the configury help message to indicate it is not enabled by default.

Related to #3890
Fixes #3969

Signed-off-by: Howard Pritchard <howardp@lanl.gov>
2017-08-04 09:42:12 -06:00
Ralph Castain
f128b4c546 Fix incorrect usage of '==' in test comparisons
Signed-off-by: Ralph Castain <rhc@open-mpi.org>
2017-08-03 21:21:26 -07:00
Joshua Ladd
c27beea3a1 Merge pull request #3962 from karasevb/ucx_detect
configure: detect UCX support by default
2017-08-03 16:33:57 -04:00
Nathan Hjelm
ebce88b7ad opal: remove generated asm code
Every modern compiler supports either inline assembly or builtin atomic
operations. Because of this it is time to delete all the code associated
with pre-built atomics.

This commit also clean out the DEC and XLC asm checks. Neither check
does anything and the XLC compiler supports GCC ASM.

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2017-08-03 09:18:58 -06:00
Nathan Hjelm
35c9b93754 config: remove erroneous define
This removes a copy-and-paste error where we were setting the
OPAL_ASM_SYNC_HAVE_64BIT more than once.

References #3993. Close when on master and v3.0.x.

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2017-08-01 14:53:35 -06:00
Boris Karasev
cc348fdb40 configure: adds detect UCX by pkg-config
Signed-off-by: Boris Karasev <karasev.b@gmail.com>
2017-07-26 17:58:24 +06:00
Boris Karasev
d917d54ddc configure: detect UCX support by default
Adds detecting UCX from following paths: "/usr /usr/local /opt/ucx"

Signed-off-by: Boris Karasev <karasev.b@gmail.com>
2017-07-25 23:48:49 +03:00
Edgar Gabriel
bc8f642211 fs/lustre: update lustre header file used in the component
liblustreapi.h is at this point deprecated. Switch to lustreapi.h instead

fixes issue #3223

Signed-off-by: Edgar Gabriel <egabriel@central.uh.edu>
2017-07-17 10:33:52 -05:00
Gilles Gouaillardet
f99667372f Merge pull request #3848 from ggouaillardet/topic/pbspro_libcrypto
configury: fix PBS Pro support
2017-07-12 21:01:58 +09:00
Gilles Gouaillardet
c36b9e8888 Revert "Remove --enable-heterogeneous until fix is ready"
This reverts commit open-mpi/ompi@8e25733760.

Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2017-07-12 10:27:30 +09:00
Gilles Gouaillardet
275f31e6aa configury: fix PBS Pro support
recent versions of PBS Pro requires libcrypto.so, but libpbs.so
does not (yet) depend on it, so manually add -lcrypto if -lpbs alone fails.

Thanks Petr Hanousek for bringing this to our attention

Refs PBSPro/pbspro#331

Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2017-07-12 10:01:56 +09:00
Joshua Hursey
20ac03c063 config/fortran: Add note about why we reverted PR #3822
* This should be enough of a breadcrumb for when we get to fixing the
   `INTERFACE` check to be strong enough to kick out gfortran 4.8

Signed-off-by: Joshua Hursey <jhursey@us.ibm.com>
2017-07-11 11:09:27 -05:00
Joshua Hursey
c81795cbda Revert "Fix MPI_SIZEOF for gfortran 4.8"
This reverts commit 5de3d5dde6.

 Signed-off-by: Joshua Hursey <jhursey@us.ibm.com>
2017-07-11 11:09:17 -05:00
Ralph Castain
c632784ca3 Merge pull request #3835 from rhc54/topic/hetero
Remove --enable-heterogeneous until fix is ready
2017-07-07 10:57:12 -07:00
Ralph Castain
8e25733760 Remove --enable-heterogeneous until fix is ready
Signed-off-by: Ralph Castain <rhc@open-mpi.org>
2017-07-07 10:09:30 -07:00
Chris Ward
5de3d5dde6 Fix MPI_SIZEOF for gfortran 4.8
Add copyrights.

Revise the README to take out the 'most notably' statement about GNU Fortran 4.8

Signed-off-by: Chris Ward <tjcw@uk.ibm.com>
2017-07-07 13:47:35 +01:00
Gilles Gouaillardet
e77874bbaf configury: fix gcc builtin atomic detection
test for both 32 and 64 bits.
clang only support 32 bits builtin atomics when -m32 is used

Thanks Paul Hargrove for reporting this.

Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2017-07-04 09:47:45 +09:00
Gilles Gouaillardet
409a3bfdbd configury: abort when builtin atomics cannot be built and configure'd with --enable-builtin-atomics
Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2017-06-26 11:42:51 +09:00
Nathan Hjelm
bc54c99e12 configure: add builtin asm check for s390/s390x
We accepted a change that enabled CMA on s390 and s390x. This change
had the side-effect that we were no longer using the builtin atomics
for these systems. This is a problem since we do not have ASM for
s390 and s390x. This commit restores the atomics.

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2017-06-23 08:27:48 -06:00
Gilles Gouaillardet
72c7329462 configury: use 'uname -n' when 'hostname' is not available
the 'hostname' command might not be available on some platforms
such as Fedora Core 26, so mimick config/libtool.m4 and fallback
to 'uname -n' if needed

Refs. #3680

Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2017-06-12 15:04:32 +09:00
KAWASHIMA Takahiro
63f0945dcc java: Detect the path of javadoc in configure
Without this change, the directory of `javadoc` command must be
included in the `PATH` environment variable at `make`-time.
Paths of `javac`, `javah`, and `jar` commands are detected in
`configure`. So the path of `javadoc` also should be detected.

Signed-off-by: KAWASHIMA Takahiro <t-kawashima@jp.fujitsu.com>
2017-05-31 14:26:14 +09:00
Howard Pritchard
de92d1b9ce Merge pull request #3506 from hppritcha/topic/fix_issue_1089
configury: add option to disable enable-new-dtags
2017-05-30 19:56:14 -06:00
Howard Pritchard
ebb30c15f2 configury: add option to disable enable-new-dtags
The --enable-new-dtags option for the compiler wrappers is
often great, but for some particular install/usage scenarios
causes issues.

This commit provides a new configury option to use of rpath
in the compiler wrappers, but disables the
use of --enable-new-dtags in the link line.

The new configury option is

--enable-wrappers-runpath

To disable use of --enable-new-dtags in the wrappers, add

--disable-wrappers-runpath

to the Open MPI configury line.

Fixes #1089

Signed-off-by: Howard Pritchard <howardp@lanl.gov>
2017-05-22 17:45:18 -05:00
Jeff Squyres
7185567d50 Merge pull request #3455 from jsquyres/pr/fix-lustre-configure
Lustre configure fixes
2017-05-08 16:49:23 -04:00
Ralph Castain
a143800bce Enable full operations under SLURM on Cray systems by co-locating a daemon with mpirun when mpirun is executing on a compute node in that environment. This allows local application procs to inherit their security credential from the daemon as it will have been launched via SLURM
Signed-off-by: Ralph Castain <rhc@open-mpi.org>
2017-05-06 19:08:50 -07:00
Nicolas Morey-Chaisemartin
b4d9d5ee0f opal: add support for s390 and s390x architectures
Signed-off-by: Nicolas Morey-Chaisemartin <NMoreyChaisemartin@suse.com>
2017-05-05 17:23:42 +02:00
Jeff Squyres
c11975947b ompi_check_lustre.m4: abort if Lustre requested and not found
Follow the OMPI bias: if a human requests feature X and configure
can't deliver feature X, abort and let the human figure it out.

Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
2017-05-05 05:42:26 -07:00
Jeff Squyres
eb89712b3e ompi_check_lustre.m4: trivial updates
Minor style updates; nothing of real consequence.

Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
2017-05-05 05:39:58 -07:00
Jeff Squyres
8604273a7e ompi_check_lustre.m4: ensure --with-lustre isn't harmful
Make sure the default Autoconf "yes" value for $with_lustre when the
user specifies --with-lustre on the command line (without a value)
does not propagate down into the directory logic.

Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
2017-05-05 05:29:40 -07:00
Howard Pritchard
462342d148 Merge pull request #3311 from hppritcha/topic/libfabric_moves_to_ofi
common/libfabric: move libfabric to ofi
2017-04-21 07:50:38 -06:00
Howard Pritchard
841192645b common/libfabric: move libfabric to ofi
This PR renames the common library for OFI libfabric from
libfabric to ofi.  There are a number of reasons this
is good to do:

1) its shorter and replaces 9 characters with three for
   function names for what may eventually be a fairly extensive interface
2) OFI is the term used for MTL and RML components that use
   the OFI libfabric interface
3) A planned OSC component will also use the OFI term.
4) Other HPC libraries that can use OFI libfabric tend to use
   the term "ofi" internally and also in their configure options
   relevant to OFI libfabric (i.e. MPICH/CH4, Intel MPI, Sandia SHMEM)

There seem to be comments in places in the Open MPI source
code that indicate that this common library will be going away.
Far from it as we will want to be able to share things like
AV objects between OMPI and possibly OSHMEM components that
use the OFI libfabric interface.

This PR also adds a synonym to the --with-libfabric(-libdir)
configury options: --with-ofi and with-ofi-libdir.

Signed-off-by: Howard Pritchard <howardp@lanl.gov>
2017-04-20 13:07:16 -06:00
Gilles Gouaillardet
cc8a655fe6 configury: remove now obsolete reference to OPAL_PTRDIFF_TYPE
since Open MPI now requires a C99, and ptrdiff_t type is part of C99,
there is no more need for the abstract OPAL_PTRDIFF_TYPE type.

Thanks George, Nathan and Paul for the help.

Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2017-04-19 13:42:45 +09:00
Howard Pritchard
3918b7a796 Merge pull request #3213 from hppritcha/topic/remove_loadleveer
orte/ras: remove loadleveler support
2017-04-18 09:18:54 -06:00
Nathan Hjelm
4146ef9725 Merge pull request #3272 from hjelmn/cma_fix
cma: restore --with-cma=no configure option
2017-04-10 12:17:01 -06:00
Brian Barrett
ab3ac6d0ea build: Fix platform detection on FreeBSD
Look for amd64 in addition to x86_64 as the platform
type for x86_64 assembly.  The FreeBSD-packaged
Autoconf package has a patch to return
amd64-unknown-freebsd11.0 instead of the
x86_64-unknown-freebsd11.0 that a stock Autoconf
package would return.  Since we want to run Jenkins
builds on FreeBSD, working around the FreeBSD patch
is probably the easiest thing.

Signed-off-by: Brian Barrett <bbarrett@amazon.com>
2017-04-06 20:27:22 -07:00
Aurélien Bouteiller
6ef6a3fb18 Fix the Fortran mpiext building system
Signed-off-by: Aurélien Bouteiller <bouteill@icl.utk.edu>
2017-04-03 13:46:32 -04:00
Nathan Hjelm
533a8e6dae cma: restore --with-cma=no configure option
This support broke when we enabled CMA by default. Addreses the issue
raised by #3270.

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2017-04-03 10:42:34 -06:00
Howard Pritchard
9350aa5d71 orte/ras: remove loadleveler support
Remove loadleveler as it is obsolescent and is no longer supported.

Fixes #3167

We'll wait for final check of whether or not loadleveler even
compiles/functions before merging this.

Signed-off-by: Howard Pritchard <howardp@lanl.gov>
2017-03-21 10:32:28 -06:00
Howard Pritchard
db2e1298fb OSx: remove built-in atomics support
It was decided to remove support for os-x builtin atomics

Fixes #2668

Signed-off-by: Howard Pritchard <howardp@lanl.gov>
2017-03-15 12:45:33 -06:00
Ralph Castain
c6bc3ccb76 Sync to latest PMIx master and PMIx reference server
Signed-off-by: Ralph Castain <rhc@open-mpi.org>
2017-03-11 12:50:38 -08:00
Thomas Naughton
74f8c2ae30 orte-clean: fix bad username/uid usage, add orte-dvm
This fixes a mismatch between PS listing that returned
USERNAME but code was pruning based on UID.

This changes the OPAL_PS_FLAVOR_CHECK format to return
'uid' instead of 'user'.  (Note: Avoiding call to
getlogin_r() but assuming UID is uniform on system,
same assumption exists for session dir anyway.)

Note, still maintains behavior from man page for root
running orte-clean on node (kills all orteds).

Adds 'orte-dvm' to list of procnames that will be checked/killed.

Signed-off-by: Thomas Naughton <naughtont@ornl.gov>
2017-02-28 08:00:06 -05:00
Gilles Gouaillardet
af0b5cffb4 asm: rename the AMD64 into X86_64
in this context, AMD64 really means amd64 or em64t, so let's
rename this into X86_64 in order to avoid any confusion

Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2017-02-27 15:10:50 +09:00
Gilles Gouaillardet
2f4013ce33 configury: fix asm atomic detection
there is no need to look for an assembly file when BUILTIN_GCC is used

Fixes open-mpi/ompi#3032
Refs open-mpi/ompi#3036

Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2017-02-27 10:42:50 +09:00
Ralph Castain
668421b6ec Compress the xcast message if bigger than a defined size to further improve launch performance at scale
Signed-off-by: Ralph Castain <rhc@open-mpi.org>
2017-01-19 22:08:02 -08:00
Jeff Squyres
fb74c80e4b configury: fix OMPI_UNIQUE -> OMPI_FLAGS_UNIQUE
Looks like we missed one place where we needed to swap OMPI_UNIQUE for
OMPI_FLAGS_UNIQUE.  Thanks to Phil Tooley (@Telemin) for reporting the
issue.

Fixes #2635.

Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
2016-12-27 13:36:53 -08:00
Jeff Squyres
678e314c0e opal_configure_options: remove stale option help
--with-libltdl is now added (via AC_ARG_WITH) in
opal/mca/dl/libltdl/configure.m4 -- it no longer belongs up here in
this top-level m4 file.  Plus, the help string in this stale entry is
also stale/incorrect.

Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
2016-12-21 07:28:31 -08:00
Gilles Gouaillardet
299a6f8d7c configury: auto-detect armhf and armel architectures on Debian
Thanks Alastair McKinstry for the patch

Fixes open-mpi/ompi#2514

Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2016-12-06 14:49:54 +09:00
Gilles Gouaillardet
596613c0aa configury: add support for x32 architecture
Thanks Alastair McKinstry for the patch

Fixes open-mpi/ompi#2515

Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2016-12-06 14:49:37 +09:00
Gilles Gouaillardet
c8b51a2d3b configury: remove some dead code
perl is now mandatory to build Open MPI,
so there is no need to check for it

Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2016-12-06 14:49:37 +09:00
Joshua Ladd
59f40e7cc5 Merge pull request #2500 from vspetrov/hcoll_ctx_free_detection
Detect hcoll_context_free at config
2016-12-05 22:39:40 -05:00
Gilles Gouaillardet
5bb3efdc74 configury: check the existence of perl
perl is required by ompi/mpi/man/make_manpage.pl, that is even used in opal.
so simply aborts at configure time if perl is not available

Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2016-12-05 10:31:51 +09:00
Ralph Castain
1a0bccb536 Now that PMIx has settled on its release strategy and numbering, update the OPAL pmix framework to track
Signed-off-by: Ralph Castain <rhc@open-mpi.org>
2016-12-02 15:44:43 -08:00
Valentin Petrov
e13e264185 Detect hcoll_context_free at config
Needed for better flexibility with versioning

Signed-off-by: Valentin Petrov <valentinp@mellanox.com>
2016-12-02 22:09:20 +02:00
Ralph Castain
1e2019ce2a Revert "Update to sync with OMPI master and cleanup to build"
This reverts commit cb55c88a8b.
2016-11-22 15:03:20 -08:00
Ralph Castain
cb55c88a8b Update to sync with OMPI master and cleanup to build
Signed-off-by: Ralph Castain <rhc@open-mpi.org>
2016-11-22 14:24:54 -08:00
Howard Pritchard
2cbc0e8472 pmix/cray: fix disable-dlopen problem
PR open-mpi/ompi#2432 introduced a regression where configure
and build with --disable-dlopn caused build failure owing
to unresolved alps lli symbols in the libopal-pal shared library.

This commit fixes this problem.

Signed-off-by: Howard Pritchard <howardp@lanl.gov>
2016-11-21 13:45:10 -06:00
Ralph Castain
188880be3f Since static ports are only used by ORTE if the runtime option is given,
there is no need for a configure option as well - so remove the
--enable-orte-static-ports configure option. When decoding the daemon
nidmap, mark new daemons as ALIVE by default - we will discover dead
ones as we go.

Signed-off-by: Ralph Castain <rhc@open-mpi.org>
2016-11-04 05:01:42 -07:00
Jeff Squyres
c54dc87f71 README: add --enable-mca-no-build explanation
Also update the configure.ac help message for --enable-mca-no-build to
avoid using a framework name that does not exist any more.

Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
2016-11-03 06:11:51 -07:00
Gilles Gouaillardet
f2a80dc09f configury: check libnl version and abort in case of conflict
libnl and libnl-3 are known to conflict with each other, so detect
and abort if these two libs are both used directly (e.g. Open MPI
uses libnl-3) or indirectly (e.g. libibverbs.so might depend on libnl)
2016-10-25 09:23:59 +09:00
Ralph Castain
a2919174d0 Bring the RML modifications across. This is the first step in a revamp of the ORTE messaging subsystem to support fabric-based communications during launch and wireup phases. When completed, the grpcomm and plm frameworks will each have their own "conduit" for communication - each conduit corresponds to a particular RML messaging transport. This can be the active OOB-based component, or a provider from within the RML/OFI component. Messages sent down the conduit will flow across the associated transport.
Multiple conduits can exist at the same time, and can even point to the same base transport. Each conduit can have its own characteristics (e.g., flow control) based on the info keys provided to the "open_conduit" call. For ease during the transition period, the "legacy" RML interfaces remain as wrappers over the new conduit-based APIs using a default conduit opened during orte_init - this default conduit is tied to the OOB framework so that current behaviors are preserved. Once the transition has been completed, a one-time cleanup will be done to update all RML calls to the new APIs and the "legacy" interfaces will be deleted.

While we are at it: Remove oob/usock component to eliminate the TMPDIR length problem - get all working, including oob_stress
2016-10-11 16:01:02 -07:00
Gilles Gouaillardet
bc6724567f README: document --disable-io-romio and --disable-io-ompio configure options 2016-10-05 09:14:32 +09:00
Joshua Hursey
fc3cf994db build: Custom libmpi_FOO name fix for wrapper compilers
* In open-mpi/ompi@f6f24a4f67 I missed
   updating the library references for the wrapper compilers.
 * Fixes the CXX wrapper compiler and CXX library is renamed as needed.
 * Fixes the Java wrapper compiler and the Java library is renamed as needed.
2016-09-30 16:40:56 -05:00
Joshua Hursey
f6f24a4f67 build: Custom libmpi(_FOO) name option in configure
* Add a configure time option to rename libmpi(_FOO).*
   - `--with-libmpi-name=STRING`
 * This commit only impacts the installed libraries.
   Internal, temporary libraries have not been renamed to limit the
   scope of the patch to only what is needed.

For example:
```shell
shell$ ./configure --with-libmpi-name=wookie
...
shell$ find . -name "libmpi*"
shell$ find . -name "libwookie*"
./lib/libwookie.so.0.0.0
./lib/libwookie.so.0
./lib/libwookie.so
./lib/libwookie.la
./lib/libwookie_mpifh.so.0.0.0
./lib/libwookie_mpifh.so.0
./lib/libwookie_mpifh.so
./lib/libwookie_mpifh.la
./lib/libwookie_usempi.so.0.0.0
./lib/libwookie_usempi.so.0
./lib/libwookie_usempi.so
./lib/libwookie_usempi.la
shell$
```
2016-09-29 21:47:24 -05:00
Gilles Gouaillardet
6b57b77ecb configury: add the --disable-io-ompio option
--disable-io-ompio is a shortcut that disable the following
frameworks and components
- fbtl
- fcoll
- sharedfp
- common/ompio
- io/ompio

Fixes open-mpi/ompi#1934
2016-09-23 09:41:09 +09:00
Gilles Gouaillardet
c3f4b7bd46 configury: fix --disable-mpi-io
- move the mpi-io configury option into config/ompi_configure_options.m4
 - add ompi/mca/common/ompio/configure.m4 so this component is not built when
   Open MPI is configure'd with --disable-mpi-io

Fixes open-mpi/ompi#2009
2016-09-21 14:29:37 +09:00
Gilles Gouaillardet
5a14907afa configury: get rid of trailing slashes in _OPAL_CHECK_PACKAGE_HEADER
so /usr/ or /usr/// gets treated just like /usr

Refs open-mpi/ompi#2069
2016-09-13 10:31:19 +09:00
Nathan Hjelm
795833bfac config: re-enable GCC inline ASM check for PGI
We disabled this support a long time ago. Probably safe to assume
whatever bug we were working around no longer exists.

Closes open-mpi/ompi#2044

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2016-09-02 12:44:08 -06:00
Jeff Squyres
c33aaa5604 Merge pull request #1997 from jsquyres/pr/make-cma-configury-better
opal_check_cma: make consistent with rest of configury
2016-08-31 09:50:24 -04:00
Jeff Squyres
1b9e165a4c opal_setup_wrappers.m4: fix typo in Fortran rpath detection
Add missing space in Libtool command for runpath detection.

Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
2016-08-30 16:48:05 -07:00
Ralph Castain
af67f16422 Update configury to support multiple PMIx versions, rename pmix2x component to pmix3x for support of PMIx master
Update support for external v1.1.x and v2.x libraries. Minor corrections to the v3.x component
2016-08-25 18:19:05 -07:00
Jeff Squyres
997431696a opal_check_cma: make consistent with rest of configury
Split the CMA test into two parts so that the back-end test only has
to be run once.  Fail with --with-cma is specified and cannot be
provided.  Remove a few useless quotes.  Change
$ompi_check_cma_need_defs and $ompi_check_cma_happy to be numeric
values.  Finally, remove a bunch of tabs.

Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
2016-08-23 07:26:47 -07:00
Ralph Castain
639dbdb7ea For maintainability, fold the external PMIx 2.x integration into the internal PMIx 2.x library component. This ensures that we always stay in sync with the two as that is becoming a problem. 2016-08-22 13:28:55 -07:00
Gilles Gouaillardet
50966673a9 configury: fix sed expression in libtool's patch for NAG compiler 2016-08-09 11:02:46 +09:00
Gilles Gouaillardet
273e56096b configury: capture configury command line
configury command line is quoted and made available via the OPAL_CONFIGURE_CLI macro.
it can be retrieved via {orte-info,ompi_info,oshmem_info} -c, or
{orte-info,ompi_info,oshmem_info} --all --parseable | grep ^config:cli:
2016-07-29 09:14:09 +09:00
Gilles Gouaillardet
1b3be0ac8c configury + btl/openib: fix a typo
test for existence of struct ibv_exp_device_attr.exp_atomic_cap.
That was previously mistyped struct ibv_exp_device_attr.ext_atomic_cap
2016-07-22 09:26:33 +09:00
Gilles Gouaillardet
3a32c7d8b6 configury: fix autogen-sh --no-ompi
This fixes a regression from open-mpi/ompi@dc5adc5a91

Fortran is only required by ompi, so m4_ifdef([project_ompi],...) protect Fortran related stuff in opal

Fixes open-mpi/ompi#1884
2016-07-20 12:23:46 +09:00
Ralph Castain
19a1837713 Revert "configury: fix autogen-sh --no-ompi"
This reverts commit f3d3633e74.
2016-07-19 20:09:56 -07:00
Gilles Gouaillardet
f3d3633e74 configury: fix autogen-sh --no-ompi
This fixes a regression from open-mpi/ompi@dc5adc5a91

Fortran is only required by ompi, so m4_ifdef([project_ompi],...) protect Fortran related stuff in opal

Fixes open-mpi/ompi#1884
2016-07-20 09:25:14 +09:00
Rainer Keller
997a00c06f Correct "configure --help" output and amend the default setting if user
provides a wrong input value, like "runtime"
(which works for MPI, but not for OSHMEM)
2016-07-13 11:23:07 +02:00
Gilles Gouaillardet
a27ced0966 configury: fix typos in {ompi,opal}_setup_cxx 2016-07-12 10:09:32 +09:00
Nathan Hjelm
109389dce2 Merge pull request #1634 from hjelmn/cma
cma: add support for MIPS and ARM
2016-06-11 09:20:28 -06:00
Nathan Hjelm
4a2bd83302 opal/cma: improve Linux CMA detection
This commit improves the CMA detection when the installed glibc doesn't
have support for CMA. In this case we need to verify that the syscall
numbers in opal/include/opal/sys/cma.h are valid for the architecture.
This verification is done by attempting to use CMA while including the
internal header.

Signed-off-by: Nathan Hjelm <hjelmn@me.com>
2016-06-05 22:29:07 -06:00
Gilles Gouaillardet
dc5adc5a91 configury: pass -Wl,-Wl,,--enable-new-dtags when NAG compiler is used for linking
Thanks Paul Hargrove for the report
2016-06-06 11:54:25 +09:00
Gilles Gouaillardet
11b3bc962b configury: add the nagfor NAG compiler to the default Fortran compilers 2016-06-06 11:54:25 +09:00
Gilles Gouaillardet
1ce5393fa4 configury: add the -mismatch flag to NAG compiler
NAG compiler is too picky about naming convention and cannot build
OpenMPI unless the -mismatch flag is used
2016-06-06 11:54:25 +09:00
Gilles Gouaillardet
20bfc6b3d1 autogen: patch config/ltmain.sh in order to make NAG compiler pass the -pthread option to the linker 2016-06-06 11:54:24 +09:00
Gilles Gouaillardet
544a2f1631 configury: fix mpifort and oshmemfort wrapper data
NAG compiler use gcc (and not ld) as a linker, so in order to pass an option to the linker,
the flag is -Wl,-Wl,,<option> and not -Wl,<option>

Thanks Paul Hargrove for the report
2016-06-06 11:54:12 +09:00
Gilles Gouaillardet
bbed1d4a5f configury: append LIBS to OMPI_WRAPPER_EXTRA_LIBS
This is required so NAG compiler can build static OpenMPI

Thanks Paul Hargrove for the report.
2016-06-06 11:53:42 +09:00
Nathan Hjelm
0084ad0d1b opal: add armv8 support
This commit adds assembly support for aarch64.

Signed-off-by: Nathan Hjelm <hjelmn@me.com>
2016-06-03 10:32:21 -06:00
Nathan Hjelm
d86e41ea13 atomic/gcc: add check for 128-bit CAS being lock-free
Compiler implementations are free to include support for atomics that
use locks. Unfortunately lock-free and lock atomics do not mix. Older
versions of llvm on OS X use locks to provide
__atomic_compare_exchange on 128-bit values but are lock-free on
64-bit values. This screws up our lifo implementation which mixes
64-bit and 128-bit atomics on the same values to improve
performance. This commit adds a configure-time check if 128-bit
atomics are lock free. If they are not then the 128-bit __atomic CAS
is disabled and we check for the __sync version as a fallback.

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2016-06-02 15:59:05 -06:00
Nathan Hjelm
f33bbfd381 atomic: add support for __atomic builtins (#1735)
* atomic: add support for __atomic builtins

This commit adds support for the gcc __atomic builtins. The __sync
builtins are deprecated and have been replaced by these atomics. In
addition, the new atomics support atomic exchange which was not
supported by __sync.

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>

* atomic: add support for transactional memory

This commit adds support for using transactional memory when using
opal atomic locks. This feature is enabled if the __HLE__ feature is
available and the gcc builtin atomics are in use.

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2016-06-01 21:23:47 -04:00
Ralph Castain
12ecf972af Split the pmix external component into one for the 1.1.4 release, and another for the upcoming 2.0 release. Clean up the configury so the components look for a series-specific function instead of running a program.
NOTE: the changes for the 2.0 series are not yet in the PMIx master.
2016-06-01 14:15:24 -07:00
Ralph Castain
7b115a9e0b Patch from Gilles - modify detection of PMIx version for external libraries 2016-05-30 14:30:10 -07:00
Ralph Castain
55923eacd3 Stealing some pieces of Josh Hursey's PR #1583 and modifying a bit, allow the opal/pmix external component to handle both PMIx 1.1.4 and PMIx 2.0 versions. Automatically detect the version of the target external library and adjust the only two APIs that changed (PMIx_Init and PMIx_Finalize)
Rename temp vars in .m4 to avoid conflict with Travis
2016-05-27 08:06:31 -07:00
Nathan Hjelm
d25b846c01 Merge pull request #1704 from hpcraink/pr/configure_framework
Fix configure for FreePGI on OSX
2016-05-26 17:01:08 -06:00
Nathan Hjelm
8c2086995d config: fix typo in mxm configury
A 1 was missing when setting $1_LDFLAGS leading to erroneous items in
the wrapper cflags.

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2016-05-26 10:28:07 -06:00
Rainer Keller
3727cba9bb Fix compilation for FreePGI on OSX
Our checks and the ones of libevent are somewhat flawed.
If adding multiple "-framework" to CXXFLAGS or CFLAGS, we strip
the keyword from the command-line, not good.
libevent however assumes plain gcc without testing properly
that the compiler supports -Wno-deprecated-declarations.
2016-05-25 09:12:39 +02:00
Nathan Hjelm
f6938868bd Merge pull request #1659 from hjelmn/sync_64
sync_builtin: check for 64-bit atomic support
2016-05-17 05:40:04 -07:00
rhc54
4d026e223c Merge pull request #1661 from matcabral/master
PSM and PSM2 MTLs to detect drivers and link
2016-05-11 17:43:17 -07:00
Matias A Cabral
40717198c6 add glob.h check fro psm and psm2 mtls 2016-05-11 13:05:43 -07:00
Ralph Castain
9a5ef60602 Ensure we fail to configure if external PMIx was requested and is not found. 2016-05-11 07:59:05 -07:00
Nathan Hjelm
b2f33bc076 opal/asm: fall back on inline asm atomics in some cases
This commit changes the asm configure logic to fall back on inline asm
atomics on systems that 1) have __sync atomics, 2) do not have 64-bit
__sync atomics, and 3) support 64-bit asm.

Signed-off-by: Nathan Hjelm <hjelmn@me.com>
2016-05-10 04:27:58 -06:00
Nathan Hjelm
d99a9786b6 sync_builtin: check for 64-bit atomic support
This commit adds an additional check for 64-bit atomic support for __sync
builtins. If 64-bit support is not available the opal_atomic_*_64 atomics
are disabled.

Signed-off-by: Nathan Hjelm <hjelmn@me.com>
2016-05-09 03:17:51 -06:00
Nathan Hjelm
4a740e9f27 Merge pull request #1619 from hjelmn/ext_verbs_fix
btl/openib: fix check for exp verbs struct members
2016-05-03 14:16:17 -06:00
Jeff Squyres
cd6ab54fdf opal_mca.m4: fix help message typo
Thanks to Paul Hargrove for reporting.

Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
2016-05-03 07:24:06 -07:00
Nathan Hjelm
a65af6d079 btl/openib: fix check for exp verbs struct members
This commit fixes a compilation issue with some versions of exp
verbs. In some cases struct ibv_exp_device_attr does not have either
the exp_atom or exp_atomic_cap fields. It is fine to drop one check
and fall back to the non-exp attribute check on the other.

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2016-05-02 17:13:33 -06:00
Jeff Squyres
f3e3b800e9 opal_check_pmi.m4: remove stale code and comments
Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
2016-05-02 12:51:01 -04:00
Gilles Gouaillardet
08d91b9a03 pmix/external: revamp external pmix package detection 2016-05-02 16:23:31 +09:00
Gilles Gouaillardet
cdac9e813d configury: fix MPI Java bindings message in summary 2016-05-02 16:21:52 +09:00
Ralph Castain
6ac7929bd0 Extend the schizo framework to allow definition of CLI options by environment. Refactor orterun to mesh with the orted_submit code, thus improving code reuse. Eliminate the orte-submit tool as orterun can now meet that need.
Cleanups per @jjhursey review
2016-05-01 11:30:25 -07:00
Gilles Gouaillardet
529ab559d4 configury: consider double _Complex as a candidate for the C equivalent of Fortran COMPLEX
this is necessary when -d8 flag is passed to Fortran compiler
2016-04-27 10:55:35 +09:00
Nathan Hjelm
ae0ffbb67f Merge pull request #1397 from hjelmn/enable_thread_multiple
ompi: always enable MPI_THREAD_MULTIPLE support
2016-04-23 08:40:22 -06:00
Jeff Squyres
6800ef9ec0 m4: rename OMPI_SUMMARY_* macros to OPAL_SUMMARY_*
These macros should really be named OPAL_SUMMARY_*; they're used in
all projects, and therefore should be in the lowest later project (OPAL).

Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
2016-04-20 08:40:00 -07:00
Nathan Hjelm
1e6b4f2f55 Merge pull request #1495 from hjelmn/new_hooks
Add new patcher memory hooks
2016-04-13 18:19:23 -06:00
Nathan Hjelm
7aa03d66b3 opal/memory: add support for patch based memory hooks
This commit adds support for runtime binary patching. The support is
broken down into two parts: util/opal_patcher.[ch] which contains the
functionality for runtime patching of symbols, and mca/memory/patcher
which patches the various symbols needed to provide support for memory
hooks. This work is preliminary and is based off work donated by IBM.

The patcher code is disabled if dlopen is disabled.

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2016-04-13 17:14:31 -06:00
Nathan Hjelm
98ce659e0b config: check for more __sync builtins
This commit updates the check for __sync builtin atomics to see if the
compiler supports both __sync_bool_compare_and_swap and
__sync_add_and_fetch. If either of these functions are not available
then we can't use the __sync builtins.

Fixes #1487

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2016-04-12 10:02:39 -06:00
Nathan Hjelm
985a3b35f3 Merge pull request #1508 from hjelmn/builtin_atomics
configure: only enable sync builtin atomics if they link
2016-03-29 20:09:08 -06:00
Nathan Hjelm
e1cace0b02 configure: only enable sync builtin atomics if they link
This commit fixes the check for sync builtin atomics.
AC_COMPILE_IFELSE is insufficient to check for the builtins. Need to
use AC_LINK_IFELSE.

Fixes open-mpi/ompi#1487

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2016-03-29 16:57:15 -06:00
Jeff Squyres
bd3c15cef0 opal_summary: no tabs!
* Replace all tabs with spaces
* Remove extraneous extra blank line at the end (in some cases, we
  were getting *2* blank lines at the end)
* Use `echo " "` instead of `echo` (which may not be portable)

Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
2016-03-28 09:20:31 -07:00
Jeff Squyres
ccdc10dda3 opal_check_libfabric: correctly check for user intent
If the user asked for libfabric and we can't build for it, abort.

Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
2016-03-28 08:32:03 -07:00
Jeff Squyres
cb1837e595 Merge pull request #1417 from jsquyres/rfc/mpirun-warn-if-debug-build
RFC: change default build to always be optimized (even for developers)
2016-03-17 17:03:07 -04:00
Nathan Hjelm
f0e374096a Merge pull request #1465 from hjelmn/re_enable_builtin_atomics
configure: re-enable built-in atomic support
2016-03-17 08:21:59 -06:00
Nathan Hjelm
664ecc8f84 configure: re-enable built-in atomic support
This commit removes an erroneous else statement from the OSX built-in
atomics check. The else branch sets the built-in atomics support to
BUILTIN_NO if either opal_cv_asm_builtin is not BUILTIN_NO or OSX
atomics support is disabled.

Signed-off-by: Nathan Hjelm <hjelmn@me.com>
2016-03-16 20:46:09 -06:00
Igor Ivanov
7bd12dc1a4 config: Fix wrong variable name
Changed $project_shmem with $project_oshmem
2016-03-16 17:48:51 +02:00
Jeff Squyres
54687d0155 opal_configure_options.m4: clarify some help messages
Make the help messages for --enable-mem-debug and --enable-mem-profile
the same as other help messages.
2016-03-15 19:50:19 -04:00
Jeff Squyres
7c29ceb911 opal_configure_options: disable debug-by-default builds for devs
After 11 years, it's probably ok to say that we're no longer in "early
development" -- disable the "build a debug version of Open MPI by
default if we find a .git directory" behavior.

However, we are keeping the "use compiler picky flags if we find a
.git directory" behavior.  That's useful behavior for developers, and
has no effect on performance.
2016-03-15 19:50:14 -04:00
Gilles Gouaillardet
a93b849f13 configury: UCX uses CPPFLAGS (instead of CFLAGS) 2016-03-14 11:42:16 +09:00
Jeff Squyres
48c650c47a configury: minor updates to config summary output 2016-03-10 13:02:52 -08:00
Nathan Hjelm
d2f5fca82a configure: add a summary section at the end of configure output
This commit adds two m4 macros: OPAL_SUMMARY_ADD, OPAL_SUMMARY_PRINT.
OPAL_SUMMARY_ADD adds an item to a section in the summary. For example
OPAL_SUMMARY_ADD([[Transports]],[[Foo]],...,[yes]) will add the
following to the summary:

Transports
-----------------------
Foo: yes

With this commit two sections are added: Transports, Resource Managers.

The OPAL_SUMMARY_PRINT macro is called after AC_OUTPUT and prints out
some information about the build (version, projects, etc) and then
the summarys sections. It will additionally print a warning if
internal debugging is enabled.

Example output:

Open MPI configuration:
-----------------------
Version: 3.0.0 a1
Build Open Platform Abstration project: yes
Build Open Runtime project: yes
Build Open MPI project: yes
Build Open SHMEM project: no
MPI C++ bindings (deprecated): no
MPI Fortran bindings: mpif.h, use mpi, use mpi_f08
Debug build: yes

Transports
-----------------------
Cray uGNI (Gemini/Aries): no
Intel Omnipath (PSM2): no
KNEM Shared Memory: no
Linux CMA IPC: no
Mellanox MXM: no
Open UCX: no
OpenFabrics libfabric: no
OpenFabrics Verbs: no
portals4: no
QLogic Infinipath (PSM): no
tcp: yes
XPMEM Shared Memory: no

Resource Managers
-----------------------
Cray Alps: no
Grid Engine: no
LSF: no
Slurm: yes
Torque: yes

INTERNAL DEBUGGING IS ENABLED. DO NOT USE THIS BUILD FOR PERFORMANCE MEASUREMENTS!

Signed-off-by: Nathan Hjelm <hjelmn@me.com>
2016-03-08 10:04:15 -07:00
Nathan Hjelm
230d04327e ompi: always enable MPI_THREAD_MULTIPLE support
This commit removes the --with-mpi-thread-multiple option and forces
MPI_THREAD_MULTIPLE support. This cleans up an abstration violation
in opal where OMPI_ENABLE_THREAD_MULTIPLE determines whether the
opal_using_threads is meaningful. To reduce the performance hit on
MPI_THREAD_SINGLE programs an OPAL_UNLIKELY is used for the
check on opal_using_threads in OPAL_THREAD_* macros.

This commit does not clean up the arguments to the various functions
that take whether muti-threading support is enabled. That should be
done at a later time.

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2016-02-23 10:02:14 -07:00
Ralph Castain
aa9e5a1a27 Add support for Singularity containers, including a .m4 file for checking if Singularity is available and an orte/schizo component for setting the proper support if a container was given as the executable
Cleanup the configury so we properly check for Singularity under the various typical use-cases

Bring the Singularity support online. We have to turn "off" the sm BTL as it segfaults from inside the container - root cause remains unclear. Also turned "off" the various OPAL shmem components in case they are involved and someone else tries to use them. Happily, the vader BTL works just fine!
2016-02-13 04:40:22 -08:00
Edgar Gabriel
9c93df5a47 revampt the pvfs2 configure logic 2016-01-25 12:03:01 -06:00
Jeff Squyres
655b4be97c find_common_syms: update for OS X symbol naming
OS X tends to prefix its symbols with "_".
2016-01-20 16:18:43 -05:00
Jeff Squyres
6c96cb1ad0 find_common_syms: arrgh -- re-add the x bit
Previous commit accidentally removed the x bit from this script.  This
commit puts it back.
2016-01-16 03:53:43 -08:00
Jeff Squyres
c43d4fd915 find_common_syms: trivial updates
Look for "common_sym_whitelist.txt" files (not
"common_sym_whitelist").  Also, skip blank lines in the
whitelistfiles, too.
2016-01-16 03:53:14 -08:00
Gilles Gouaillardet
713e3ea2e5 configury: fix pthread_join() call in OPAL_INTL_PTHREAD_TRY_LINK_FORTRAN 2016-01-07 10:20:20 +09:00
Ralph Castain
ddf0f272e1 Fix typo 2015-12-29 07:04:28 -08:00
Gilles Gouaillardet
55ae6768d3 configury: use --with-pmix option instead of --with-external-pmix 2015-12-28 23:14:59 +09:00
Gilles Gouaillardet
fec973efda configury: test portability
replace test ... -o ... with test ... || test ...
and test ... -a ... with test ... && test ...
2015-12-28 13:58:45 +09:00
Gilles Gouaillardet
e918d75fae java: try do dlopen libmpi with the full path
Since OS X 10.11 (aka El Capitan) DYLD_LIBRARY_PATH is no more
propagated to children, so try to dlopen libmpi with the full path
using the directory of libmpi_java

Fixes open-mpi/ompi#1220

Thanks Alexander Daryin for reporting this
2015-12-22 11:09:46 +09:00
Gilles Gouaillardet
862b12acf9 configury: fix uninitialized variable in OMPI_FORTRAN_CHECK_USE_ONLY
Thanks Paul Hargrove for pointing this issue
2015-12-21 09:56:35 +09:00
Gilles Gouaillardet
985154eee6 configury: revamp the fortran_check_use_only test
split the test into three source files in order to avoid a false positive when using old XCode version and gcc 5
2015-12-17 13:12:07 +09:00
Ralph Castain
3a56f0d34b Create the pmix external component. Fix a few places where opal/util/argv.h were required when building with an external pmix (go figure).
NOTE: Building with external pmix *requires* that you also build with external libevent and hwloc libraries. Detect this at configure and error out with large message if this requirement is violated.

Closes #1204  (replaces it)
Fixes #1064
2015-12-15 15:26:13 -08:00
Howard Pritchard
7a82174747 Merge pull request #1195 from hppritcha/topic/wlm_detect
support Cray nativized slurm environment
2015-12-15 07:58:53 -07:00
Ralph Castain
03eb1a80bf Update the PMIx native component to release v1.1.1, with addition of one bug-fix commit beyond the official release
Rename the pmix1xx component to pmix111 so it reflects the actual release it includes

Resolve the problem of PMIx being passed a bogus --with-platform argument when configuring the PMIx tarball code. There is no reason we should be passing --with-platform arguments to any internal subdirectory, so just leave that out when constructing the opal_subdir_args variable.

Update the PMIx code and continue attempting to debug direct modex

Fix a problem in the ORTE PMIx server - there was an early intent to optimize the direct modex by fetching data for all procs from the target job on the remote node, instead of fetching the data one proc at a time. However, this was never completely implemented, and so we would hang if we had multiple overlapping requests for data from more than one proc on the node.

Update PMIx to v1.1.2
2015-12-12 18:46:38 -08:00
Jeff Squyres
e80f5681f3 orte_setup_java.m4: remove unused file 2015-12-10 11:59:57 -08:00
Nathan Hjelm
f692576f1e btl/openib: add check for IBV_EXP_QP_INIT_ATTR_ATOMICS_ARG
Mofed 2.2 does not have the IBV_EXP_QP_INIT_ATTR_ATOMICS_ARG attribute
flag. Add a check to fix compilation for mofed 2.2. This commit only
fixes complilation with the older mofed. It will not allow an Open MPI
compiled with mofed 2.3 or newer to work on a machine with mofed 2.2.

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2015-12-09 17:02:36 -07:00