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

1218 Коммитов

Автор SHA1 Сообщение Дата
Jeff Squyres
7a8c3ed0d1 opal_config_asm.m4: fix typo in output message
Thanks to Paul Hargrove for spotting the typo.

cmr=v1.8.3:reviewer=rhc

This commit was SVN r32505.
2014-08-11 13:28:17 +00:00
Gilles Gouaillardet
0afed999cd silence warnings
on solaris 10 with gcc 3.4.3, no link flags is required
to use pthreads. First try to link without any flags.

This commit was SVN r32501.
2014-08-11 07:41:54 +00:00
Jeff Squyres
a741406ad6 opal_search_libs.m4: improvements from Dave Goodell's review
Unfortunately, I didn't see Dave's review until CMR #4841 went in.
Oops.

This commit is a handful of minor m4 improvements to that original
r32447 commit.  It can go to v1.8.3, just to minimize drift between
trunk and v1.8.

Reviewed by Dave Goodell.

cmr=v1.8.3:reviewer=ompi-rm1.8

This commit was SVN r32477.

The following SVN revision numbers were found above:
  r32447 --> open-mpi/ompi@c6d9bf906e
2014-08-08 22:22:03 +00:00
Jeff Squyres
c6d9bf906e configury: ensure wrapper static LIBS is filled properly
In core library portions of the configury (e.g., top-level
configure.ac itself), we were calling AC_CHECK_LIB and
OPAL_CHECK_FUNC_LIB to check for various libraries.

'''SIDENOTE:''' It turns out that modern Autoconf has AC_SEARCH_LIBS,
which does just about exactly what OPAL_CHECK_FUNC_LIB does.  So this
commit effectively replaces OPAL_CHECK_FUNC_LIB with AC_SEARCH_LIBS.

However, we never bothered to add these found libraries to the wrapper
compiler list of libraries used for static linking (doh!).  We've been
getting lucky for quite a while that components were adding the same
libraries to their wrapper compiler LIBS list.  

This is problematic, however, if we don't build some of these
components.  For example, Paul Hargrove noticed that if he configured
with --disable-shared --enable-static --disable-io-romio, ROMIO was no
longer adding some libraries to the wrapper LIBS list -- libraries
that just happened to also be needed by core OPAL/ORTE/OMPI layers.

The solution is not to use AC_CHECK_LIB or OPAL_CHECK_FUNC_LIB, but
use a pair of new macros:

 * OPAL_SEARCH_LIBS_CORE: a wrapper around AC_SEARCH_LIBS.  If we add
   something to $LIBS, then also add it to the wrapper list of static
   libraries.  This is the main piece of functionality that was
   wrong/missing.
 * OPAL_SEARCH_LIBS_COMPONENT: similar to OPAL_SEARCH_LIBS_CORE, but
   instead of directly adding it to the wrapper list of static
   libaries, add it to <framework>_<component>_LIBS (which eventually
   gets slurped up into the wrapper list of static libraries.  See the
   lengthy comment in config/opal_setup_wrappers.m4 near the beginning
   of OPAL_SETUP_WRAPPER_INIT() for a more detailed explanation).
   Most components did this correctly already, but one or two weren't
   right, so I implemented this second macro quite similar to the
   first and put it everywhere we already used AC_SEARCH_LIBS or
   OPAL_CHECK_FUNC_LIB.

This needs to soak for a day or two on the trunk before moving to the
v1.8 branch.

Refs trac:4834

cmr=v1.8.2:reviewer=ggouaillardet

This commit was SVN r32447.

The following Trac tickets were found above:
  Ticket 4834 --> https://svn.open-mpi.org/trac/ompi/ticket/4834
2014-08-07 23:54:45 +00:00
Howard Pritchard
52362876b6 add pkg.m4 for PKG_CHK_MODULES, etc. macro
This commit was SVN r32435.
2014-08-05 21:43:58 +00:00
Ralph Castain
adeecad274 Clarify when oshmem is enabled/disabled. Thanks to Paul Hargrove for the language
cmr=v1.8.3:reviewer=jsquyres

This commit was SVN r32431.
2014-08-05 14:52:18 +00:00
Ralph Castain
1e93e85403 Cleanup some autoconf messages - thanks to Paul Hargrove for noting them
cmr=v1.8.3:reviewer=jsquyres

This commit was SVN r32429.
2014-08-05 14:48:42 +00:00
Ralph Castain
747c585c39 Move the OPAL_ENABLE_PROGRESS_THREADS definition to opal_configure_options.m4
This commit was SVN r32405.
2014-08-01 18:11:36 +00:00
Ralph Castain
4ba599a3ad And one more...
This commit was SVN r32404.
2014-08-01 17:12:35 +00:00
Ralph Castain
9633c917a4 Rename the .m4 files to reflect the move to opal so non-MPI projects properly see them
This commit was SVN r32403.
2014-08-01 17:03:34 +00:00
Jeff Squyres
295016c869 fortran: Revert r32354
r32354 breaks gfortran if you --enable-mpi-fortran, because it assumes
the value "all", when then errors out of configure because gfortran
can't currently build the mpi_f08 bindings.

Need to think about what the Right solution is here...

This commit was SVN r32369.

The following SVN revision numbers were found above:
  r32354 --> open-mpi/ompi@6a44eb6c82
2014-07-30 22:48:49 +00:00
Gilles Gouaillardet
6a44eb6c82 Fortran: abort configure is requested binding cannot be built
as pointed by Paul Hargrove, abort configure is the fortran
bindings explicitly requested with --enable-mpi-fortran=...
cannot be built

cmr=v1.8.2:reviewer=jsquyres

This commit was SVN r32354.
2014-07-30 07:14:56 +00:00
Ralph Castain
552c9ca5a0 George did the work and deserves all the credit for it. Ralph did the merge, and deserves whatever blame results from errors in it :-)
WHAT:    Open our low-level communication infrastructure by moving all necessary components (btl/rcache/allocator/mpool) down in OPAL

All the components required for inter-process communications are currently deeply integrated in the OMPI layer. Several groups/institutions have express interest in having a more generic communication infrastructure, without all the OMPI layer dependencies.  This communication layer should be made available at a different software level, available to all layers in the Open MPI software stack. As an example, our ORTE layer could replace the current OOB and instead use the BTL directly, gaining access to more reactive network interfaces than TCP.  Similarly, external software libraries could take advantage of our highly optimized AM (active message) communication layer for their own purpose.  UTK with support from Sandia, developped a version of Open MPI where the entire communication infrastucture has been moved down to OPAL (btl/rcache/allocator/mpool). Most of the moved components have been updated to match the new schema, with few exceptions (mainly BTLs where I have no way of compiling/testing them). Thus, the completion of this RFC is tied to being able to completing this move for all BTLs. For this we need help from the rest of the Open MPI community, especially those supporting some of the BTLs.  A non-exhaustive list of BTLs that qualify here is: mx, portals4, scif, udapl, ugni, usnic.

This commit was SVN r32317.
2014-07-26 00:47:28 +00:00
Jeff Squyres
4da3c85b54 fortran: revert Absoft-based fixes
Rever r32246, r32254, and 32255 -- they were fixing side-effects of
the real bug.  Real fix coming after this one.

This commit was SVN r32286.

The following SVN revision numbers were found above:
  r32246 --> open-mpi/ompi@08d2a1a48d
  r32254 --> open-mpi/ompi@232d4dbb7b
2014-07-22 21:49:22 +00:00
Gilles Gouaillardet
08d2a1a48d fortran: fix compile issue with ABSoft compilers
ABSoft compilers cannot compile a fortran subroutine
with the BIND(C, NAME="name") modifier *and* argument(s)
with the OPTIONAL modifier

This patch detects this unsupported feature and use
adhoc wrappers if it is missing

cmr=v1.8.2:reviewer=jsquyres

This commit was SVN r32246.
2014-07-15 10:41:11 +00:00
Ralph Castain
2cea8a279a Remove stale orcm reference
This commit was SVN r32221.
2014-07-11 19:00:28 +00:00
Jeff Squyres
0089ac20af Fortran: put type(c_ptr) interfaces in a separate file in the TKR mpi module
Older gfortran compilers (e.g., the gfortran that ships in RHEL5) do
not support ISO_C_BINDING, and therefore do not support the
TYPE(C_PTR) type.  As such, they cannot support the overloaded
interfaces for MPI_WIN_ALLOCATE_SHARED and MPI_SHARED_QUERY that are
mandated in MPI-3.

So we separate those interfaces out into a separate .F90 file that is
#include'd in the tkr mpi.F90 file.  In this separate .F90 file, we
use an #if to determine whether the compiler supports ISO_C_BINDING or
not.

Also re-jiggered the order of testing in ompi_setup_mpi_fortran.m4: we
now need to test whether the compiler supports ISO_C_BINDING even when
we're only building the mpi module (not strictly when we're building
the mpi_f08 module).

Finally, tweaked the use-mpi-tkr/Makefile.am to:

* Add some proper dependencies for mpi.F90
* Allow the general AM compilation to be used instead of supplying a
  specific rule for compiling mpi.F90

cmr=v1.8.2:ticket=trac:4736

This commit was SVN r32204.

The following Trac tickets were found above:
  Ticket 4736 --> https://svn.open-mpi.org/trac/ompi/ticket/4736
2014-07-10 19:10:03 +00:00
Mike Dubman
1b51e472ac MXM: update min required version for mxm as 2.1+
This commit was SVN r32193.
2014-07-10 13:16:57 +00:00
Ralph Castain
f3cb124e50 Revert r32082 and r32070 - the developer's conference has decided to go a different direction on the threaded progress effort. This will involve some degree of prototyping to understand the tradeoffs prior to making a final design decision, and so we'll hold off on the final change until that is completed.
This commit was SVN r32089.

The following SVN revision numbers were found above:
  r32070 --> open-mpi/ompi@12d92d0c22
  r32082 --> open-mpi/ompi@aa6438ef7a
2014-06-25 20:43:28 +00:00
Ralph Castain
12d92d0c22 Per the OMPI developer conference, remove the last vestiges of OMPI_USE_PROGRESS_THREADS
This commit was SVN r32070.
2014-06-24 17:05:11 +00:00
Jeff Squyres
f33cc84ac6 Fortran: disable the descriptor-based mpi_f08 prototype
It will come back someday.

cmr=v1.8.2:ticket=trac:4736

This commit was SVN r32044.

The following Trac tickets were found above:
  Ticket 4736 --> https://svn.open-mpi.org/trac/ompi/ticket/4736
2014-06-19 13:39:56 +00:00
Jeff Squyres
9ae8b44a44 ompi_fortran_check_bind_c.m4: Fix comment in existing .m4 file
cmr=v1.8.2:ticket=trac:4736

This commit was SVN r32043.

The following Trac tickets were found above:
  Ticket 4736 --> https://svn.open-mpi.org/trac/ompi/ticket/4736
2014-06-19 13:39:11 +00:00
Jeff Squyres
555073630e Fortran: remove the scripts from the use-mpi-tkr implementation
This is part one of several Fortran improvements and fixes.  This
first part removes the now-defunct scripts that are used to generate
the .f90 files in the use-mpi-tkr implementation, and just commits the
output from those scripts.  This makes long-term maintenance of the
use-mpi-tkr implementation simpler.

cmr=v1.8.2:reviewer=jsquyres:subject=Various Fortran fixes/improvements

This commit was SVN r32040.
2014-06-19 13:35:30 +00:00
Oscar Vega-Gisbert
cdf0bcc6d1 Java - define macro OSHMEM_SETUP_JAVA_BINDINGS
This commit was SVN r31983.
2014-06-11 21:49:31 +00:00
Ralph Castain
6f1320d5cd Cleanup the mess from r31810 - no way that could compile or avoid breaking the trunk. The Makefile's had to be added to oshmem_config_files.m4, and the Makefile.am's had not been updated to the new srcdir/builddir conventions. Also add svn:ignores
This commit was SVN r31811.

The following SVN revision numbers were found above:
  r31810 --> open-mpi/ompi@83bdebbf81
2014-05-19 04:14:54 +00:00
Ralph Castain
11faab1091 The final step of the RFC: convert the <foo>libdir and friends to fit their respective code areas, and equate them all at the top. Note that we can't entirely separate things as the opal_install_dirs framework can't handle separated locations for the various trees.
This commit was SVN r31679.
2014-05-08 02:01:35 +00:00
Ralph Castain
a8e2d6c3a6 The bulk of the remaining renaming changes, in one final glorious "blob". Thanks to Jeff for some help chasing down a few spots. Per chat with Jeff, we decided to cleanup a few things that were historical in nature:
top_ompi_srcdir  ->  OMPI_TOP_SRCDIR
top_ompi_builddir -> OMPI_TOP_BUILDDIR

We also split the srcdir/builddir flags according to their local tree (e.g., OPAL_TOP_SRCDIR), and tied them all together in configure.ac. Renamed ompi_ignore and ompi_unignore to be opal_<foo> as these are agnostic markers.

Only thing left is ompilibdir being treated similar to what we dif for srcdir/builddir. Coming soon.

This commit was SVN r31678.
2014-05-07 21:48:53 +00:00
Ralph Castain
2dbeb671d0 Fix typo impacting assembly support that came in during renaming
This commit was SVN r31676.
2014-05-07 16:22:11 +00:00
Ralph Castain
70ebf2efea One more level of subsubsubsubsubtitle...
This commit was SVN r31675.
2014-05-07 15:51:20 +00:00
Ralph Castain
74983c9002 Continue the renaming, fix ompi_show_subsubtitle
This commit was SVN r31674.
2014-05-07 15:45:47 +00:00
Ralph Castain
c6d2ff368d Per RFC, continue with renaming
This commit was SVN r31671.
2014-05-07 04:51:45 +00:00
Ralph Castain
a2bf976029 Per RFC, another round of changes
This commit was SVN r31669.
2014-05-07 03:16:59 +00:00
Ralph Castain
f4c31cae9b Per RFC, another round in the renaming game - nearly complete
This commit was SVN r31668.
2014-05-07 03:01:47 +00:00
Ralph Castain
a54dbb17d2 Per RFC, continue renaming project
This commit was SVN r31667.
2014-05-07 01:00:06 +00:00
Ralph Castain
4501285c26 Per RFC, continue the naming conversion
This commit was SVN r31665.
2014-05-06 23:34:33 +00:00
Ralph Castain
839c0eb55c Per RFC, continue the renaming effort
This commit was SVN r31664.
2014-05-06 21:16:29 +00:00
Ralph Castain
fdfb331e13 Per RFC, continue the renaming process
This commit was SVN r31663.
2014-05-06 20:53:55 +00:00
Ralph Castain
883fce4cba Per RFC, continue the build system renaming
This commit was SVN r31662.
2014-05-06 20:30:37 +00:00
Ralph Castain
8a0d6b4aa6 Per RFC, continue the joyous fun of the renaming exercise
This commit was SVN r31661.
2014-05-06 20:13:37 +00:00
Ralph Castain
bdf9aace69 Per RFC, continue with build system renaming
This commit was SVN r31658.
2014-05-06 19:37:10 +00:00
Ralph Castain
4f4d9dcd28 Per RFC, continue with build system renaming
This commit was SVN r31657.
2014-05-06 19:22:27 +00:00
Ralph Castain
deb0c6bb9a Per RFC, continue cleanup with minor changes to one file
This commit was SVN r31656.
2014-05-06 18:37:52 +00:00
Ralph Castain
3fd7cee70c Per RFC, continue cleanup with minor change to one file
This commit was SVN r31655.
2014-05-06 18:30:55 +00:00
Ralph Castain
9b88ec7cde Per RFC, continue cleaning up the build system
OMPI_C_WEAK_SYMBOLS  ->  OPAL_C_WEAK_SYMBOLS
  ompi_cv_c_weak_symbols  ->  opal_cv_c_weak_symbols

This commit was SVN r31654.
2014-05-06 18:03:08 +00:00
Jeff Squyres
9d19dec80a [ompi|opal]_setup_cxx.m4: ensure to use the C++ compiler (!)
We didn't AC_LANG_PUSH(C++) before checking to see if the compiler
supports -finline-functions, meaning that configure used the C
compiler for these checkes, not the C++ compiler.

Due to #2999, we have to fix both opal_setup_cxx.m4 and
ompi_setup_cxx.m4.

cmr=v1.8.2:reviewer=rolfv

This commit was SVN r31651.
2014-05-06 17:42:51 +00:00
Ralph Castain
ab83b9425a Complete the cleanup of this file
This commit was SVN r31650.
2014-05-06 16:57:34 +00:00
Ralph Castain
aaf2969e9b Fix comment and add copyright
This commit was SVN r31649.
2014-05-06 16:51:30 +00:00
Ralph Castain
002cd34013 Per RFC, continue the build system renaming
OMPI_C_GET_ALIGNMENT  -> OPAL_C_GET_ALIGNMENT
   ompi_cv_c_align_  ->  opal_cv_c_align_

This commit was SVN r31648.
2014-05-06 16:50:27 +00:00
Ralph Castain
2b7a3ae601 Per RFC, continue pecking away at the build system renaming
OMPI_CONFIG_SUBDIR  -> OPAL_CONFIG_SUBDIR
   OMPI_CONFIG_SUBDIR_ARGS  ->  OPAL_CONFIG_SUBDIR_ARGS

This commit was SVN r31647.
2014-05-06 16:27:38 +00:00
Ralph Castain
390d29733f Per RFC, continue renaming of build tools:
ompi_c_vendor  ->  opal_c_vendor
ompi_cv_c_compiler_vendor  ->  opal_cv_c_compiler_vendor

This commit was SVN r31646.
2014-05-06 15:01:34 +00:00
Ralph Castain
f60aadd989 Sigh - forgot to change name in Makefile.am
This commit was SVN r31645.
2014-05-06 14:35:14 +00:00
Ralph Castain
9d320c55dd Missed one file to be renamed
This commit was SVN r31642.
2014-05-06 03:47:18 +00:00
Ralph Castain
fdd35f301a Per RFC, next major step in cleaning up the build system naming patterns: rename files containing things used by the OPAL layer to be opal_foo.m4 instead of ompi_foo.m4. The ALPS plm is currently checking UGNI, so shift the check_ugni.m4 to orte for now.
This commit was SVN r31641.
2014-05-06 03:20:16 +00:00
Ralph Castain
29609577d5 Per RFC:
ompi_show_title  -> opal_show_title
    ompi_show_subtitle -> opal_show_subtitle

This commit was SVN r31638.
2014-05-05 22:35:23 +00:00
Ralph Castain
a1ae20fddb Per RFC: OMPI_CFLAGS_BEFORE_PICKY -> OPAL_CFLAGS_BEFORE_PICKY
- This line, and those below, will be ignored--

M    opal/mca/event/libevent2021/configure.m4
M    opal/mca/hwloc/hwloc172/configure.m4
M    configure.ac
M    config/opal_setup_libltdl.m4
M    config/opal_check_visibility.m4
M    config/opal_setup_cc.m4

This commit was SVN r31637.
2014-05-05 22:22:33 +00:00
Ralph Castain
425d4b9e81 Per RFC: OMPI_ENSURE_CONTAINS_OPTFLAGS -> OPAL_ENSURE_CONTAINS_OPTFLAGS
This commit was SVN r31636.
2014-05-05 22:02:39 +00:00
Ralph Castain
4def94900a Per RFC: OMPI_INSTALL_BINARIES -> OPAL_INSTALL_BINARIES
This commit was SVN r31634.
2014-05-05 21:43:05 +00:00
Jeff Squyres
08cf16e14f ompi_setup_mpi_fortran.m4: disable mpi_f08 if PROCEDURE isn't supported
Per https://svn.open-mpi.org/trac/ompi/ticket/4590, if the Fortran
compiler doesn't support PROCEDURE in the way we want/need, disable
the mpi_f08 module.

Refs trac:4590

This commit was SVN r31587.

The following Trac tickets were found above:
  Ticket 4590 --> https://svn.open-mpi.org/trac/ompi/ticket/4590
2014-05-01 18:17:52 +00:00
Ralph Castain
e20dae536c Last step under current RFC: OMPI_CHECK_WITHDIR -> OPAL_CHECK_WITHDIR
This commit was SVN r31585.
2014-05-01 15:38:07 +00:00
Ralph Castain
2749231eb5 Next step in RFC: OMPI_CHECK_COMPILER_WORKS -> OPAL_CHECK_COMPILER_WORKS
This commit was SVN r31584.
2014-05-01 15:25:47 +00:00
Ralph Castain
e11eb15518 Next step of RFC: OMPI_CHECK_FUNC_LIB -> OPAL_CHECK_FUNC_LIB
This commit was SVN r31583.
2014-05-01 14:57:43 +00:00
Ralph Castain
3b64c603b4 First stage of RFC to rename OMPI_foo build system support: change OMPI_CHECK_PACKAGE -> OPAL_CHECK_PACKAGE
This commit was SVN r31582.
2014-05-01 14:24:56 +00:00
Mike Dubman
0cba0b95b8 OSHMEM: fortran profiling API added
for spec compliance 

fixed by Roman, reviewed by Igor/Miked

cmr=v1.8.2:reviewer=ompi-rm1.8

This commit was SVN r31510.
2014-04-23 18:56:37 +00:00
Jeff Squyres
69bb758bca ompi_config_pthreads.m4: fix to compile with Clang 3.4
Clang 3.4 static analysis is now smart enough that it refuses to
compile our POSIX threading tests because we simply passed 0 for
several arguments (the test is checking for the linker presence of
symbols, so the NULL arguments didn't matter).  Specifically, Clang's
anti-NULL compile-time checks now refuse to compile this bogus code.
Hence, these 2 configure test codes now have real variables and
pointers so that clang will compile it properly.

Without this fix, configure determines that there is no POSIX
threading support, and the osc/sm component fails to compile (which is
a different defect I'll be filing shortly).  As such, we need this fix
in 1.8.1.

Also, change from the deprecated AC_TRY_LINK to AC_LINK_IFELSE.

cmr=v1.8.1:reviewer=dgoodell

This commit was SVN r31458.
2014-04-19 13:13:06 +00:00
Nathan Hjelm
99812c8c07 Improve support for Cray's CLE 5
cmr=v1.8.1

This commit was SVN r31426.
2014-04-18 17:49:16 +00:00
Ralph Castain
0f02ba21df Remove --enable-sensors configuration option
This commit was SVN r31404.
2014-04-15 21:58:29 +00:00
Ryan Grant
6d577a2663 Update to atomics selection, fix octal issue and rename defines
This commit was SVN r31396.
2014-04-15 15:40:30 +00:00
Ryan Grant
e67ca81dca Fixing atomics selection issue, to be CMR'd after it passes the nightly tests
This commit was SVN r31393.
2014-04-15 13:17:04 +00:00
Jeff Squyres
d2d28710ba fortran: Remove the gfortran-4.9-disabling configry
The bug in #4157 has now been fixed, so remove the configure test that
disabled mpi_f08 functionality for gfortran 4.9.

Fixes trac:4157

cmr=v1.8.1:ticket=trac:4512

This commit was SVN r31373.

The following Trac tickets were found above:
  Ticket 4157 --> https://svn.open-mpi.org/trac/ompi/ticket/4157
  Ticket 4512 --> https://svn.open-mpi.org/trac/ompi/ticket/4512
2014-04-11 21:04:04 +00:00
Mike Dubman
b20de8ae34 OSHMEM: add support for profiling API
use weak symbols, based on http://www.open-mpi.org/community/lists/devel/2014/03/14429.php
fixed by Roman, reviewed by Igor/Miked

cmr=v1.8.1:reviewer=ompi-rm1.8

This commit was SVN r31330.
2014-04-07 22:55:21 +00:00
Jeff Squyres
50a705f247 Fix #4465: spall Quadrics correctly.
Many thanks to Jeff Hammond for noticing.

cmr=v1.8:reviewer=ompi-rm1.8

This commit was SVN r31256.
2014-03-27 17:52:43 +00:00
Ralph Castain
08fd24f452 Ensure we properly check for sockaddr_in before checking for tcp
This commit was SVN r31166.
2014-03-20 00:17:29 +00:00
Jeff Squyres
412364d66e Change "test ==" to "test =" to be more portable.
This commit was SVN r31159.
2014-03-19 21:38:01 +00:00
Ralph Castain
17d618abd2 As per the thread on ticket #4399, OSHMEM does not support non-Linux platforms. So provide a check for Linux and error out if --enable-oshmem is given on a non-supported platform. If no OSHMEM option is given (enable or disable), then don't attempt to build OSHMEM unless we are on a Linux platform. Default to building if we are on Linux for now, pending the outcome of the Debian situation.
cmr=v1.7.5:reviewer=jsquyres:subject=disable OSHMEM on non-Linux platforms

This commit was SVN r31155.
2014-03-19 20:32:15 +00:00
Ralph Castain
f259d50ed7 Fully fix the PMI2 warning - turned out to be larger than originally thought due to the way the function was being handled across multiple files. Properly resolve the problem by not compiling the file if PMI2 is not desired, and then appropriately setting the visibility of the function within the module
Refs trac:4400

This commit was SVN r31084.

The following Trac tickets were found above:
  Ticket 4400 --> https://svn.open-mpi.org/trac/ompi/ticket/4400
2014-03-17 17:36:37 +00:00
Jeff Squyres
616e62bb9e Fix --enable|disable-oshmem configure switch
* Fixed the AC_ARG_ENABLE for the oshmem option.
* Fixed the AM_CONDITIONALs values for the projects.
* Re-added (and slightly simplified) the use of PROJECT_OSHMEM in
  various Makefile.am's to disable building OSHMEM stuff

Submitted by Jeff, reviewed and approved by Ralph.

cmr=v1.7.5:reviewer=ompi-gk1.7

This commit was SVN r31062.
2014-03-13 21:23:04 +00:00
Ralph Castain
9c66c4f439 Correctly implement --disable-oshmem and --without-orte so we don't build the disabled section of code. Fix a bunch of code rot in the PMI rte component, and add several missing headers when building --without-orte.
NOTE: I transferred the oshmem-disabled-by-default from the 1.7 branch to the trunk to minimize future disruption if/when we change that option.

cmr=v1.8:reviewer=jsquyres

This commit was SVN r31006.
2014-03-11 22:02:40 +00:00
Mike Dubman
a14dda491e OSHMEM: various fixes
- -check-shmem-params is OFF by default. It checks OSHMEM API params and will abort on bad input
- hcoll do not save fallback coll pointers for unsupported collectives.

fixed by Val, Roman, reviewed by Miked/Igor

cmr=v1.7.5:reviewer=ompi-rm1.7

This commit was SVN r30995.
2014-03-11 17:27:33 +00:00
Ralph Castain
96f67507a5 Improve/expand the database configure logic for future use
This commit was SVN r30984.
2014-03-11 03:01:15 +00:00
Mike Dubman
a1044dd517 OSHMEM: fix fortran selection logic
based on offline discussion and agreement with Jeff

fixed by Roman, reviewed by Igor/Mike
cmr=v1.7.5:reviewer=ompi-rm1.7

This commit was SVN r30952.
2014-03-06 11:22:30 +00:00
Nathan Hjelm
9e92c5be53 osc/sm: check for pthread_condattr_setpshared and pthread_mutexattr_setpshared. fall
back on barrier if either function doesn't exist.

cmr=v1.7.5:reviewer=jsquyres

This commit was SVN r30911.
2014-03-03 17:09:09 +00:00
Mike Dubman
33d363e65d OSHMEM: fix fortran binding
based on true story: http://www.open-mpi.org/community/lists/devel/2014/03/14262.php

fixed by Roman, reviewed by Igor/Mike

cmr=v1.7.5:reviewer=ompi-rm1.7

This commit was SVN r30906.
2014-03-03 09:58:11 +00:00
Vasily Filipov
f2014b96e7 OPENIB BTL/CONNECT: Add support for AF_IB addressing in rdmacm.
This commit was SVN r30875.
2014-02-27 11:29:47 +00:00
Dave Goodell
4875f48eaa usnic: enable UDP support
This commit decouples OMPI deployment from the version(s) of the lower
layers of the stack by probing for UDP support.

Verbs applications assume a 40-byte header (there is no current
mechanism for querying payload offset).  So to support a 42-byte UDP
header without causing existing applications like ibv_ud_pingpong or
older versions of OMPI to crash, we must inform libusnic_verbs that we
are aware of the nonstandard payload offset.  We do this by overriding
the `transport_type` field of the device to be 42 before calling
`ibv_open_device`.  If the library resets it to something else, then we
know the lower layers are UDP capable.  Otherwise we use the older
custom-L2 format.

This necessitated some minor ugliness in common_verbs, but it's as tidy
as Jeff and I know how to make it right now.

This commit only adds support for UDP headers and connectivity over the
same L2 network, it does not touch routing or interface pairing.

Reviewed-by: Jeff Squyres <jsquyres@cisco.com>

cmr=v1.7.5:ticket=trac:4253

This commit was SVN r30838.

The following Trac tickets were found above:
  Ticket 4253 --> https://svn.open-mpi.org/trac/ompi/ticket/4253
2014-02-26 07:44:35 +00:00
Jeff Squyres
d07d1864ae Revert r30804.
We're going to be bringing a bunch of usnic code to the SVN trunk
soon, and I basically brought this commit over out of order.  So I'm
reverting it for now; the same functionality will come back shortly.

This commit was SVN r30805.

The following SVN revision numbers were found above:
  r30804 --> open-mpi/ompi@5bedcc15bf
2014-02-24 19:12:49 +00:00
Jeff Squyres
5bedcc15bf Support the IBV_*_USNIC_* verbs constants.
These constants are now upstream (see
https://git.kernel.org/cgit/libs/infiniband/libibverbs.git/commit/?id=f57a9c67eabb9e7f19c624ac3c8c27b7be55796c),
so let's support them properly in Open MPI.

Added bonus: consolidating these checks up in
ompi_check_openfabrics.m4 allowed removing some custom checks and
AC_DEFINE's from the usnic configure.m4 script.

Also change the usnic/configure.m4 check for IBV_EVENT_GID_CHANGE to
use AC_CHECK_DECLS (vs. AC_CHECK_DECL).

cmr=v1.7.5:reviewer=dgoodell

This commit was SVN r30804.
2014-02-24 18:57:04 +00:00
Jeff Squyres
d35019ba19 Add file that was forgotten in r30776. Refs trac:4205.
This commit was SVN r30780.

The following SVN revision numbers were found above:
  r30776 --> open-mpi/ompi@bda840df49

The following Trac tickets were found above:
  Ticket 4205 --> https://svn.open-mpi.org/trac/ompi/ticket/4205
2014-02-20 11:32:57 +00:00
Jeff Squyres
bda840df49 Fixes trac:4205: ensure sizeof(MPI_Count) <= sizeof(size_t)
- Move the ptrdiff_t tests up higher in configure.ac to be with the
  rest of the type tests.
- Create new OMPI_FIND_MPI_AINT_COUNT_OFFSET for finding the
  corresponding types of MPI_Aint, MPI_Count, and MPI_Offset.
  Consolidate all the old C and Fortran tests into this new macro (and
  .m4 file).
- Fix Fortran MPI_*_KIND tests that incorrectly keyed off assumed
  types (e.g., int64_t) rather than whatever the corresponding C
  MPI_Aint, MPI_Count, MPI_Offset types turned out to be.
- Add new logic to ensure that sizeof(MPI_Count) <= sizeof(size_t),
  because our entire PML, BTL, and convertor infrastructure requires
  this.  As a side effect, just like MPI_Offset the same type of
  MPI_Count (because MPI_Count has to be able to hold an MPI_Offset,
  so we can't let MPI_Offset be larger than a MPI_Count).

This commit was SVN r30776.

The following Trac tickets were found above:
  Ticket 4205 --> https://svn.open-mpi.org/trac/ompi/ticket/4205
2014-02-19 23:04:34 +00:00
Ralph Castain
7576d5964a Remove c++ cruft from configure
Refs trac:4247

This commit was SVN r30655.

The following Trac tickets were found above:
  Ticket 4247 --> https://svn.open-mpi.org/trac/ompi/ticket/4247
2014-02-10 19:23:39 +00:00
Ralph Castain
8d04d7408e Sigh - remove the c++ cruft from here too
Refs trac:4247

This commit was SVN r30654.

The following Trac tickets were found above:
  Ticket 4247 --> https://svn.open-mpi.org/trac/ompi/ticket/4247
2014-02-10 17:32:02 +00:00
George Bosilca
32a494e73b When CXX support is disabled don't check if coverage is supported. The
problem is that ompi_cxx_vendor is only defined when MPI CXX support
is enabled.

This commit was SVN r30599.
2014-02-06 21:40:26 +00:00
Nathan Hjelm
4248cb1d9c Fix typo and portability issue in r30555
cmr=v1.7.4:ticket=trac:4223

This commit was SVN r30559.

The following SVN revision numbers were found above:
  r30555 --> open-mpi/ompi@5c35b5ba19

The following Trac tickets were found above:
  Ticket 4223 --> https://svn.open-mpi.org/trac/ompi/ticket/4223
2014-02-04 20:15:32 +00:00
Nathan Hjelm
5c35b5ba19 Fix wrapper ldflags.
cmr=v1.7.4:reviewer=jsquyres

This commit was SVN r30555.
2014-02-04 19:44:08 +00:00
Mike Dubman
3d8c06d1b4 fix min.supported version for mxm check
reviewed by Alex
cmr=v1.7.5:reviewer=ompi-rm1.7

This commit was SVN r30553.
2014-02-04 14:45:47 +00:00
Ralph Castain
fab35dbffa Silence some Solaris warnings reported by Paul Hargrove
cmr=v1.7.4:reviewer=jsquyres:subject=Silence some Solaris warnings

This commit was SVN r30542.
2014-02-03 19:46:08 +00:00
Mike Dubman
7e5031374e OSHMEM: Apply Jeff`s comments to fortran configure logic
Refs trac:3763

This commit was SVN r30530.

The following Trac tickets were found above:
  Ticket 3763 --> https://svn.open-mpi.org/trac/ompi/ticket/3763
2014-02-03 09:47:56 +00:00
Jeff Squyres
87651a1e18 Ensure configure test compiler turds are removed.
This particular test can leave various <foo>.mod files in the OMPI top
build dir, which leads developers to say "what are these .mod files in
my 'svn status' output?".

So make a subdir, run the tests in there, and then remove the subdir.

Reviewed by Dave Goodell.

This is not 100% necessary for OMPI 1.7.4, but it would be nice.  The
goal is to have this test removed by OMPI 1.7.5 (i.e., fix ticket
4157).  So I leave it up to the RM to decide whether this goes into
1.7.4 or not.

cmr=v1.7.4:reviewer=ompi-rm1.7

This commit was SVN r30524.
2014-01-31 16:45:29 +00:00
Jeff Squyres
caaab7e8a3 Fix Fortran delcarations of MPI_SUBARRAYS_SUPPORTED and MPI_ASYNC_PROTECTES_NONBLOCKING
Ensure that these two flags are in all of mpif.h, the mpi module, and
the mpi_f08 module.  Thanks to Rolf Rabenseifner for pointing out the
issue.

cmr=v1.7.4:reviewer=ompi-rm1.7

This commit was SVN r30519.
2014-01-31 15:22:12 +00:00
Brian Barrett
8ab8940e45 Clean up error message about Sparc v8/v8+, since the README now has better
information and the cases are getting too long for an AC_MSG_WARN.

This commit was SVN r30503.
2014-01-30 17:51:13 +00:00
Ralph Castain
edc760434c My bad - do not include any references to "orcm" in configure.ac. However, do properly set the AM_CONDITIONALs based on projects being enabled/disabled
This commit was SVN r30501.
2014-01-30 16:44:57 +00:00
Ralph Castain
b84b8a2d52 Going to need these files to support change to configure.ac
This commit was SVN r30499.
2014-01-30 11:36:44 +00:00
Nathan Hjelm
700e97cf6a btl/vader: add support for SGI's implementation of xpmem and add support
for 32-bit architectures.

This commit also modifies _OMPI_CHECK_HEADER to use AC_CHECK_HEADERS instead
of AC_CHECK_HEADER. This allows components to check for multiple headers
instead of just one. The new semantics of the header check in OMPI_CHECK_PACKAGE
are to return success if at least one of the specified headers exists. The new
semantics will not break current usage.

cmr=v1.7.5:ticket=trac:4053

This commit was SVN r30476.

The following Trac tickets were found above:
  Ticket 4053 --> https://svn.open-mpi.org/trac/ompi/ticket/4053
2014-01-29 18:35:47 +00:00
Jeff Squyres
6adc16081a Add a configure test that mimics what OMPI's current mpi_f08
implementation does (that is not quite adherant to the Fortran
standard).  If a compiler allows this behavior, build the mpi_f08
wrapper.  For example, ifort allows it, but Pathscale/EKOPath 5.0 is
stricter in its Fortran compliance and disallows it.

This test is temporary; the real fix is to make OMPI adhere to Fortran
properly (i.e., see #4157).  Once we fix #4157, this test should be
removed.  The main reason for committing this test is to put it into
v1.7.4 so that we can release, but with the intent to remove it by
1.7.5 (or 1.8.x at the latest!).

Refs trac:4157

cmr=v1.7.4:reviewer=ompi-rm1.7:subject=Add mpi_f08-(non)compliance configure test

This commit was SVN r30440.

The following Trac tickets were found above:
  Ticket 4157 --> https://svn.open-mpi.org/trac/ompi/ticket/4157
2014-01-27 23:37:42 +00:00
Ralph Castain
af4a9a0688 Make clear that --with-pmi can/should be used to specify the path to the pmi installation since at least one person didn't realize it.
cmr=v1.7.4:reviewer=jsquyres

This commit was SVN r30439.
2014-01-27 22:50:37 +00:00
Jeff Squyres
967550b3ac Update the BIND(C, name="foo") test to see if the compiler supports
names longer than 32 characters.

Per discussion on the devel list starting here:
http://www.open-mpi.org/community/lists/devel/2014/01/13799.php we
need a new litmus test to disqualify older Fortran compilers (e.g.,
Pathscale 4.0.12) that *seem* to support all the Right Things, but a)
do not support BIND(C, name="super_long_name") or b) run into an
internal error when compiling our mpi_f08 module.

Testing for b) is sketchy at best.  But OMPI has some BIND(C) names
that are >32 characters, and the same compilers that exhibit b) also
seem to not support BIND(C) names that are >32 characters (i.e., a)).
Hence, the following BIND(C) test checks to ensure that BIND(C,
name="foo") works, where "foo" is actually a name >32 characters.

cmr=v1.7.4:reviewer=rhc:subject=Update Fortran configure test to exclude older pathscale/open64 compilers from mpi_f08

This commit was SVN r30421.
2014-01-24 23:17:14 +00:00
Ralph Castain
e3cb4b4a5b Grant Nathan his wish - add an --disable-getpwuid to the configure options and protect all users of that code so it disappears if disabled.
cmr=v1.7.5:reviewer=hjelmn:subject=disable getpwuid if requested

This commit was SVN r30413.
2014-01-24 19:18:37 +00:00
Mike Dubman
59d4bb662c OSHMEM: rework fortran support detection
fix the case, to enable oshmem-fortran when "with-shmem" was specified and "ompi-fortran" was enabled and happy.

fixed by Roman, reviewed by Miked

Refs trac:3763

This commit was SVN r30391.

The following Trac tickets were found above:
  Ticket 3763 --> https://svn.open-mpi.org/trac/ompi/ticket/3763
2014-01-23 07:49:13 +00:00
Jeff Squyres
22782f6c2a Ensure to protect the "use mpi" build properly
cmr=v1.7.4:ticket=4162

This commit was SVN r30387.

The following Trac tickets were found above:
  Ticket 4162 --> https://svn.open-mpi.org/trac/ompi/ticket/4162
2014-01-23 03:40:38 +00:00
Jeff Squyres
308ab05ea7 Better detection for user-requested Fortran bindings.
As discovered by the nightly build, r30379 broke the case where
configure does not find a fortran compiler, and no form of
--enable-mpi-fortran was specified.

This commit specifically calls out the difference between a user
specifying that they want Fortran bindings and the default "try to
compile all the Fortran bindings" cases.

cmr=v1.7.4:ticket=4162

This commit was SVN r30386.

The following SVN revision numbers were found above:
  r30379 --> open-mpi/ompi@7b28af54bb

The following Trac tickets were found above:
  Ticket 4162 --> https://svn.open-mpi.org/trac/ompi/ticket/4162
2014-01-23 02:27:48 +00:00
Jeff Squyres
1c12e21296 We have no non-wrapper mpi_f08 implementation.
So just take out this useless warning.

cmr=v1.7.5:ticket=4163

This commit was SVN r30383.

The following Trac tickets were found above:
  Ticket 4163 --> https://svn.open-mpi.org/trac/ompi/ticket/4163
2014-01-23 01:34:34 +00:00
Jeff Squyres
7b28af54bb Add ability to selectively enable/disable Fortran bindings
Each Fortran bindings layer builds on the other.  Specifically:

 * You can build just mpif.h support
 * You can build mpif.h and "use mpi" support
 * You can build mpif.h and "use mpi" and "use mpi_f08" support

You cannot build mpif.h and "use mpi_f08" support without also
building "use mpi" support.

This new functionality adds new capabilities to the existing
--enable-fortran-mpi switch.  You can now pass the following values:

 * --enable-fortran-mpi=no or none: synonyms for --disable-fortran-mpi
   (i.e., build no Fortran bindings).
 * --enable-fortran-mpi=mpifh: build only mpif.h support
 * --enable-fortran-mpi=usempi: build mpif.h and "use mpi" support
 * --enable-fortran-mpi=usempif08: build mpif.h, "use mpi", and "use
   mpi_f08" support
 * --enable-fortran-mpi=yes or all: synonyms for --enable-fortran-mpi
   (i.e., no argument), which will attempt to build all 3 Fortran
   bindings

cmr=v1.7.4:ticket=4162

This commit was SVN r30379.

The following Trac tickets were found above:
  Ticket 4162 --> https://svn.open-mpi.org/trac/ompi/ticket/4162
2014-01-23 01:28:55 +00:00
Hadi Montakhabi
8af6b8b4e4 add support for PLFS filesystem
This commit was SVN r30370.
2014-01-22 21:16:15 +00:00
Mike Dubman
34b3718042 revert, need rework.
This commit was SVN r30351.
2014-01-21 17:56:01 +00:00
Mike Dubman
37343574e0 OSHMEM: fix fortran binding
The check to enable shmem fortran was too early, MPI can disable fortran but SHMEM fortran check was already done.
Refs trac:3763

This commit was SVN r30340.

The following Trac tickets were found above:
  Ticket 3763 --> https://svn.open-mpi.org/trac/ompi/ticket/3763
2014-01-21 09:20:51 +00:00
Ralph Castain
abb432aef6 The portable_platform file moved to opal at some point, but this .m4 didn't get updated to match.
Thanks to Paul Hargrove for spotting it and providing a patch!

cmr=v1.7.4:reviewer=jsquyres

This commit was SVN r30320.
2014-01-18 03:19:34 +00:00
Ralph Castain
42b7c4499a Correct a typo to get the right configure option to match the internal logic, thus making --enable-mpi-thread-multiple to actually work
cmr=v1.7.4:reviewer=jladd:subject=fix enable-mpi-thread-multiple

This commit was SVN r30296.
2014-01-15 03:56:29 +00:00
Mike Dubman
9f5abfb233 OSHMEM: fix fortran selection logic and refactoring
refactoring inspired by this thread: http://www.open-mpi.org/community/lists/devel/2014/01/13744.php
fix oshmem fortran selection logic, Thanks to Paul for info
Refs trac:3763

This commit was SVN r30286.

The following Trac tickets were found above:
  Ticket 3763 --> https://svn.open-mpi.org/trac/ompi/ticket/3763
2014-01-14 13:23:44 +00:00
Jeff Squyres
5f17bc3c2c Make the use of PROTECTED in the mpi_f08 module be optional.
Add a configure test to see if the Fortran compiler supports the
PROTECTED keyword.  If it does, use in mpi-f08-types.F90 (via a macro
defined in configure-fortran-output-bottom.h).

This is needed to support the PGI 9 Fortran compiler, which does not
support the PROTECTED keyword.

Note that regardless of whether we want to support the PGI 9 Fortran
compiler + mpi_f08, we need to correctly detect whether PROTECTED
works or not, and then use that determination as a criteria for
building the mpi_f08 module.  Previously, mpi-f08-types.F90 used
PROTECTED unconditionally, and we didn't test for it in configure.  So
if a compiler (e.g., PGI 9) supported everything else but didn't
support PROTECTED, it would try to compile the mpi_f08 stuff and choke
on the use of PROTECTED.

Refs trac:4093

This commit was SVN r30273.

The following Trac tickets were found above:
  Ticket 4093 --> https://svn.open-mpi.org/trac/ompi/ticket/4093
2014-01-13 18:35:42 +00:00
Jeff Squyres
c6c6cbddb2 Missed this one in r30271.
Refs trac:4102

This commit was SVN r30272.

The following SVN revision numbers were found above:
  r30271 --> open-mpi/ompi@23a235d1ef

The following Trac tickets were found above:
  Ticket 4102 --> https://svn.open-mpi.org/trac/ompi/ticket/4102
2014-01-13 18:30:15 +00:00
Jeff Squyres
23a235d1ef Minor configure output consistency updates
Just some minor updates to make some Fortran test outputs be a bit
more consistent with each other.  This can definitely wait until
1.7.5, unless it causes conflicts with other changes that need to come
into 1.7.4.

cmr=v1.7.5:reviewer=dgoodell

This commit was SVN r30271.
2014-01-13 18:28:26 +00:00
Jeff Squyres
cc4440147f Fix typos in Fortran configury: ensure to call the right m4 macros!
Refs trac:4093

This commit was SVN r30258.

The following Trac tickets were found above:
  Ticket 4093 --> https://svn.open-mpi.org/trac/ompi/ticket/4093
2014-01-11 14:34:53 +00:00
Jeff Squyres
69ecf1670c Remove even more dead Fortran configury.
This configure option was only relevant when we were generating TKR
"use mpi" interfaces for MPI subroutines with choice buffers.  Now
that we aren't, the only interface that needs to accept a choice
buffer is MPI_SIZEOF (which we have to provide).  

And since there's now only several dozen interfaces in the "mpi" TKR
module, there's no reason to not generate ''all'' possible array rank
values (when there were thousands of interfaces, generating 4-vs-7
array ranks per interface per type was a big deal).  The default used
to be 4; now we can just hard-code it to 7, the max possible value for
Fortran 2003 (I think the max was raised ?to 11? in F2008, but let's
not go there for now).

cmr=v1.7.5:reviewer=dgoodell:subject=Remove even more dead Fortran configury

This commit was SVN r30257.
2014-01-11 14:06:59 +00:00
Jeff Squyres
b0ffdb3ae5 As noted by Paul Hargrove, older PGI compilers support ''some'' of
BIND(C), but not ''all'' of it.  So expand our configure checks to
look for multiple different forms of BIND(C):

 * ISO_C_BINDING
 * SUBROUTINE ... BIND(C)
 * TYPE, BIND(C)
 * TYPE(foo), BIND(C, name="bar")

If the compiler supports all of these, then declare that we support
BIND(C), and the rest of the mpi_f08 checks can continue.  If we miss
any one of those, don't bother continuing -- we won't build the
mpi_f08 module.

Also push the results of all of these tests down to ompi_info so that
they can be reported easily (e.g., "Hey, why doesn't my OMPI
installation have the mpi_f08 module?").

cmr=v1.7.4:reviewer=jsquyres:subject=Expand Fortran BIND(C) configure checks

This commit was SVN r30247.
2014-01-10 23:44:55 +00:00
Jeff Squyres
18cc164a3b Remove dead Fortran .m4 code.
This should have been part of r30151/#4057.  Oops.

cmr=v1.7.4:reviewer=dgoodell

This commit was SVN r30246.

The following SVN revision numbers were found above:
  r30151 --> open-mpi/ompi@52b5e17d97
2014-01-10 23:40:47 +00:00
Mike Dubman
d9f144d09f fix broken logic for oshmem:bindings:fort
Refs trac:3763

This commit was SVN r30226.

The following Trac tickets were found above:
  Ticket 3763 --> https://svn.open-mpi.org/trac/ompi/ticket/3763
2014-01-10 15:20:19 +00:00
Jeff Squyres
36cca10042 Thanks to a reminder from Tobias Burunus, commit support for the
upcoming GCC/gfortran 4.9's ignore TKR interface.

This was originally committed in a side mercurial repo, but I sadly
completely forgot about it until Tobias reminded me.

cmr=v1.7.5:reviewer=dgoodell:subject=Add support for gfortran 4.9 Fortran ignore TKR

This commit was SVN r30152.
2014-01-08 03:46:27 +00:00
Jeff Squyres
52b5e17d97 Eliminate some dead Fortran configury (these values are not used any
more).

cmr=v1.7.5:reviewer=dgoodell

This commit was SVN r30151.
2014-01-08 03:19:58 +00:00
Nathan Hjelm
e627c91227 btl/vader: add support for traditional shared memory.
This commit adds support for placing the send memory segment in a
traditional shared memory segment when XPMEM is not available. The
current default is to reserve 4MB for shared memory on each process.
The latest benchmarks show vader performing better than sm on both
Intel and AMD CPUs.

For large messages vader will now use CMA if it is available (and
XPMEM is not).

cmr=v1.7.5:reviewer=jsquyres

This commit was SVN r30123.
2014-01-06 19:51:44 +00:00
Ralph Castain
07503d8d6b Add some plumbing for ORCM support to keep the two code repos from diverging.
This commit was SVN r30115.
2014-01-03 22:35:20 +00:00
Ralph Castain
969d39d1af Fix enable-mpi-java - we can't push/pop the opal_java_happy variable in opal_setup_java.m4 as we need it in ompi_setup_java.m4 to determine that the java bindings can be built
cmr=v1.7.4:reviewer=jsquyres:subject=Fix enable-mpi-java

This commit was SVN r30097.
2013-12-28 17:03:59 +00:00
Jeff Squyres
6f6c3cc21c Per http://www.open-mpi.org/community/lists/devel/2013/12/13532.php,
r30016 was not enough to solve the issue.

So properly prefix all the shell variables used in opal_setup_java.m4
(one of them had an orte_ prefix -- oops!).  Now we won't get any
conflicts.

Refs trac:4015

This commit was SVN r30037.

The following SVN revision numbers were found above:
  r30016 --> open-mpi/ompi@35dfd26f9e

The following Trac tickets were found above:
  Ticket 4015 --> https://svn.open-mpi.org/trac/ompi/ticket/4015
2013-12-20 22:42:49 +00:00
Mike Dubman
92fdbbd7b1 Implementing comment #1 from http://www.open-mpi.org/community/lists/devel/2013/12/13523.php
Refs trac:4011

This commit was SVN r30024.

The following Trac tickets were found above:
  Ticket 4011 --> https://svn.open-mpi.org/trac/ompi/ticket/4011
2013-12-20 16:53:28 +00:00
Mike Dubman
d78a9cdd77 add rpath on mca_mtl_mxm.so to point to /path/to/mxm/lib/libmxm.so which was detected at configure time
This *should* fix following situation:

1 mxm.rpm puts /etc/ld.so.conf.d/mxm.conf file during rpm install with libpath to /opt/mellanox/mxm/lib
2 some1 can extract mxm.rpm into $HOME/mxm and compile OMPI with new mxm location
3 during runtime, OMPI from prev step will pick MXM from step (1) instead of from step (2)

cmr=v1.7.4:reviewer=ompi-rm1.7

This commit was SVN r30005.
2013-12-20 11:15:41 +00:00
Jeff Squyres
a7e65df6bc Update the --enable-wrapper-rpath help string to be correct.
Refs trac:3694

This commit was SVN r29903.

The following Trac tickets were found above:
  Ticket 3694 --> https://svn.open-mpi.org/trac/ompi/ticket/3694
2013-12-13 22:20:10 +00:00
Jeff Squyres
a25630c5e7 Fix rpath m4 typo that seeped in at the last minute.
Refs trac:3694

This commit was SVN r29901.

The following Trac tickets were found above:
  Ticket 3694 --> https://svn.open-mpi.org/trac/ompi/ticket/3694
2013-12-13 21:40:03 +00:00
Jeff Squyres
1bc8f41edb This commit combines 3 somewhat-unrelated things, which unfortunately
got linked together (work on one caused work in the other):

 * Clean up a bunch of VAR_SCOPE issues in configure.  This includes:
   * Using VAR_SCOPE_PUSH and VAR_SCOPE_POP in more places
   * Cleaning up the use of some shell variables (e.g., name them better)
 * Add support for external libevent via
   --with-libevent=<dir-to-libevent-install-tree>, as specifically
   asked for by downstream packagers.
 * Revamp how wrapper compiler RPATH (and RUNPATH) support is done.
   The external libevent work exposed weakenesses in how the original
   RPATH/RUNPATH work was done, so we had to re-do it to be a bit more
   robust.

This work has not yet been tested on Solaris.

Refs trac:3694

This commit was SVN r29899.

The following Trac tickets were found above:
  Ticket 3694 --> https://svn.open-mpi.org/trac/ompi/ticket/3694
2013-12-13 21:24:45 +00:00
Brian Barrett
121ca26c59 Per discussion at Develoepr's Meeting, remove Solaris threads support. Solaris
will just fall back to pthreads, which should be no problem.

This commit was SVN r29893.
2013-12-13 20:07:11 +00:00
Brian Barrett
6ef938de3f * Per the Developer's meeting today, restructure the threading in Open MPI a bit
more:
  - Remove OPAL_ENABLE_MULTI_THREADS, since it didn't really do anything
    correctly.  Opal always has threads enabled at this point.
  - Remove OMPI_ENABLE_PROGRESS_THREADS, since this hasn't worked in
    8 years and it has performance issues we'll never be able to
    overcome.  Note that we have plans for re-adding async progress, using
    a hybrid protocol of async and sync sends.
  - OMPI_ENABLE_THREAD_MULTIPLE now determines whether the thread lock
    macros do the check or not.
  - Condition variables are ALWAYS polling right now, which fixes the thread
    live-lock currently found when THREAD_MULTIPLE is turned on.

This commit was SVN r29891.
2013-12-13 19:40:12 +00:00
Jeff Squyres
cc7e121b1c Per thread starting here:
http://www.open-mpi.org/community/lists/users/2013/10/22882.php, fix
the value of MPI_STATUS_SIZE for the -i8 case.  Thanks to Jim Parker
for bringing up the issue and providing the patch.

Separate patches are required for v1.6 and v1.7 (and will be attached
to their respective tickets), because this breaks ABI, so we need a
non-default configure option to fix the issue but knowingly break ABI.

cmr=v1.7.4:reviewer=bosilca:subject=Fix MPI_STATUS_SIZE for -i8 case
cmr=v1.6.6:reviewer=bosilca:subject=Fix MPI_STATUS_SIZE for -i8 case

This commit was SVN r29858.
2013-12-11 17:47:54 +00:00
Jeff Squyres
e45412f5db Addendum to r29847: actually remove the old OPAL_VAR_SCOPE_POP
Refs trac:3694

This commit was SVN r29848.

The following SVN revision numbers were found above:
  r29847 --> open-mpi/ompi@c1ce04ad23

The following Trac tickets were found above:
  Ticket 3694 --> https://svn.open-mpi.org/trac/ompi/ticket/3694
2013-12-09 14:30:01 +00:00
Mike Dubman
c1ce04ad23 revert Jeff`s fix, now hcol can be compiled with it
Refs trac:3694

This commit was SVN r29847.

The following Trac tickets were found above:
  Ticket 3694 --> https://svn.open-mpi.org/trac/ompi/ticket/3694
2013-12-09 11:49:09 +00:00
Jeff Squyres
33fe77b874 Comment out the badness from the hcoll configury, originally from
r29830 -- Jeff will straighten this out with Alexander in person next
week (I can't test this myself because I have no access to libhcoll).
Sorry for the hassle...

Refs trac:3694

This commit was SVN r29842.

The following SVN revision numbers were found above:
  r29830 --> open-mpi/ompi@3bd9c603ff

The following Trac tickets were found above:
  Ticket 3694 --> https://svn.open-mpi.org/trac/ompi/ticket/3694
2013-12-08 14:36:55 +00:00
Mike Dubman
9a65e0d8c6 cosmetic fixed fpr hcol autotools
Refs: #3694

This commit was SVN r29841.
2013-12-08 09:45:13 +00:00
Jeff Squyres
a7f45f2675 Oops! r29830 added a variable into OPAL_VAR_SCOPE that is actually
needed in the global scope ($ompi_check_fca_dir).  This commit removes
it from the OPAL_VAR_SCOPE, so it should be fixed now.

Sorry about that, folks!  :-(

This commit was SVN r29838.

The following SVN revision numbers were found above:
  r29830 --> open-mpi/ompi@3bd9c603ff
2013-12-07 22:54:10 +00:00
Mike Dubman
2e124454b4 cosmitic fix to remove redundant -lfca
use CPP extra flags var which propagated to coll/fca and scoll/fca
Refs: #3694

This commit was SVN r29832.
2013-12-07 15:00:54 +00:00
Jeff Squyres
3bd9c603ff Clean up variables used in configure with OPAL_VAR_SCOPE.
This is helpful in the work for #3694: ensure that many places that
eventually end up in configure don't overly-pollute the global shell
variable space (because debugging accidental shell variable pollution
can be a real pain).

Refs trac:3694

This commit was SVN r29830.

The following Trac tickets were found above:
  Ticket 3694 --> https://svn.open-mpi.org/trac/ompi/ticket/3694
2013-12-06 23:40:34 +00:00
Rolf vandeVaart
d556b60b21 Chnage some CUDA configure code and macro names per review request by jsquyres in ticket #3880.
Functionally, nothing changes.

This commit was SVN r29815.
2013-12-06 14:35:10 +00:00
Mike Dubman
7b7b82ef35 check for mxm API version >= 1.5
Refs: #3947

This commit was SVN r29808.
2013-12-05 12:25:52 +00:00
Oscar Vega-Gisbert
78a65a30e6 Remove pinning check from ompi_setup_java.m4
This commit was SVN r29803.
2013-12-04 23:04:52 +00:00
Mike Dubman
753d630809 libshmem to liboshmem rename voices
Refs: 3763

This commit was SVN r29785.
2013-12-03 13:16:12 +00:00
Mike Dubman
5c7557f11a reverting r29771, duplicates Brian`s fix
This commit was SVN r29772.

The following SVN revision numbers were found above:
  r29771 --> open-mpi/ompi@bc25091b61
2013-11-29 14:28:02 +00:00
Mike Dubman
bd358cb180 Apply Jeff`s patch from ticket: 3145
Refs: 3763

This commit was SVN r29751.
2013-11-25 11:02:42 +00:00
Mike Dubman
826fa635a3 add support for --without-oshmem in configure
This commit was SVN r29733.
2013-11-22 13:51:46 +00:00
Brian Barrett
aa517b09a8 Add option to disable building the OSHMEM interface. This isn't perfect, but should work for the v1.7 timeframe
This commit was SVN r29727.
2013-11-21 17:13:28 +00:00
Jeff Squyres
05f4f62db1 Update -Wno-long-double test to support clang.
This prevents bazillions of warnings from clang tha -Wno-long-double
isn't supported.

The warning that clang issues when it see -Wno-long-double is does not
use any of the words we were looking for, so I added "unknown" to the
list of words to look for.  I also re-indented the two m4 tests so
that they're a bit more readable.

cmr=v1.7.4:reviewer=brbarret:subject=Update -Wno-long-double test to support clang

This commit was SVN r29681.
2013-11-13 15:08:01 +00:00
Mike Dubman
b10bb525f1 fix oshmem_CFLAGS to meet OMPI requirements
Refs: 3763

This commit was SVN r29662.
2013-11-12 07:25:14 +00:00
Mike Dubman
ab796052b4 Applying Jeff`s comments about proper SHMEM fortran organization of files.
Refs: 3870

This commit was SVN r29651.
2013-11-11 14:26:25 +00:00
Brian Barrett
9780043456 re-apply r29608 and fix the broken configure test that broke worse with the
patch.  See ticket #3885, comment 10 for an explination of why calling
_STRINGIFY on something that's not a numerical constant is always a bad idea.

This commit was SVN r29613.

The following SVN revision numbers were found above:
  r29608 --> open-mpi/ompi@b71bd51cdd
2013-11-05 22:41:10 +00:00
Jeff Squyres
337b2f7639 Output the directory where the java files were found.
Useful for debugging / understanding exactly where OMPI will be using
Java header files / libraries from.

This commit was SVN r29596.
2013-11-05 03:31:07 +00:00
Nathan Hjelm
b922cd1583 Add support for OSX builtin atomics.
OSX atomic support is disabled by default. Enable with --enable-osx-builtin-atomics.

Fixes trac:2120

This commit was SVN r29568.

The following Trac tickets were found above:
  Ticket 2120 --> https://svn.open-mpi.org/trac/ompi/ticket/2120
2013-10-30 17:48:15 +00:00
Ralph Castain
74c6b12d67 Don't force "treat warnings as errors" in the OpenSHMEM branch as this prevents building of tarballs on machines with compilers that generate warnings when the system is built with "tarball" settings. Instead, make this a configuration option so that OSHMEM developers can set it when they work on the code, but others don't have to use such restrictions.
Refs trac:3763

This commit was SVN r29538.

The following Trac tickets were found above:
  Ticket 3763 --> https://svn.open-mpi.org/trac/ompi/ticket/3763
2013-10-27 15:35:14 +00:00
Ralph Castain
588e7ce974 Cleanup the Java setup m4's - orte doesn't require java, and we do all compiler checks in opal
This commit was SVN r29530.
2013-10-26 19:43:32 +00:00
Joshua Ladd
2f22329ea4 This commit (hopefully) fully addresses the enabling of oshmem fortran bindings given its dependency on the building of fortran bindings in OMPI. This commit closes trac:3851.
This commit was SVN r29521.

The following Trac tickets were found above:
  Ticket 3851 --> https://svn.open-mpi.org/trac/ompi/ticket/3851
2013-10-25 15:42:10 +00:00
Mike Dubman
5cc1f3803b shmem-fortran fix, naming conventions for shmem option, examples
This commit was SVN r29518.
2013-10-25 05:25:41 +00:00
Dave Goodell
620f40b6c7 fix compile error introduced by r29488
Apologies for the breakage, I did my test build in the wrong window...

No reviewer.

cmr=v1.7.4:ticket=3865

This commit was SVN r29492.

The following SVN revision numbers were found above:
  r29488 --> open-mpi/ompi@25dd719d4d

The following Trac tickets were found above:
  Ticket 3865 --> https://svn.open-mpi.org/trac/ompi/ticket/3865
2013-10-23 16:36:52 +00:00
Dave Goodell
25dd719d4d opal: support __attribute__((__noinline__))
First cut does not attempt any "cross-check".  As we discover compilers
which complain about __noinline__, we will add specific cross checks to
handle those cases.

Reviewed-by: Jeff Squyres <jsquyres@cisco.com>

This commit was SVN r29488.
2013-10-23 15:52:05 +00:00
Mike Dubman
2d76a9be45 add --enable-oshmem-fortran opt to configure
This commit was SVN r29448.
2013-10-17 05:42:43 +00:00
Mike Dubman
14304c299d add globalexit API support.
it is not fully functional yet, but initial version is good enough.
developed by Igor, reviewed by miked

This commit was SVN r29430.
2013-10-12 19:15:36 +00:00
Mike Dubman
2141e9e6b4 tools: Add oshmem_info utility
Reworked ompi_info tool to be close with orte_info implementation.
ompi_info_register_types(), ompi_info_close_components() and
ompi_info_show_ompi_version() are moved to runtime/ompi_info_support.c.

Added runtime/oshmem_info_support layer that exports following api to be
used into oshmem_info tool as
oshmem_info_register_types()
oshmem_info_register_framework_params()
oshmem_info_close_components()
oshmem_info_show_oshmem_version()
These functions call ompi_info_support related interfaces as long as
Oshmem supports Open MPI/SHMEM combination.

Now orte_info/ompi_info/oshmem_info have identical implementation approach.

Possible improvement:
OSHMEM processing of --config option is the same as OMPI`s (code is duplicated).
Probably list of info_support interfaces can be extended by xxx_info_do_config().
developed by Igor, reviewed by miked

This commit was SVN r29429.
2013-10-12 19:03:32 +00:00
Jeff Squyres
dc822de80f Fix typo/misspelling in variable name.
This commit was SVN r29410.
2013-10-09 14:04:25 +00:00
Jeff Squyres
3fb4401dee Remove an unused configure option, and comment that another
seemingly-unused configure option is used by downstream projects.

This commit was SVN r29367.
2013-10-04 14:16:09 +00:00
Mike Dubman
08efe5a338 Adopting shmem configure logic to trunk build system conventions
fixed by Dinar, reviewed by miked
cmr=v1.7.4:reviewer=ompi-rm1.7

This commit was SVN r29328.
2013-10-02 06:59:09 +00:00
Jeff Squyres
7941c81caa The TargetConditionals.h check is specific to Java -- move it to
ompi_setup_java.m4.

This commit was SVN r29261.
2013-09-26 21:34:00 +00:00
Rolf vandeVaart
d67e3077f5 Add a check for the CUDA 6.0 version of the cuda.h header file.
This commit was SVN r29250.
2013-09-26 12:46:06 +00:00
Jeff Squyres
df7654e8cf 1. Per my previous email
(http://www.open-mpi.org/community/lists/devel/2013/09/12889.php), I
renamed all "f77" and "f90" directory/file names to "fortran"
(including removing shmemf77 / shmemf90 wrapper compilers and
replacing them with "shmemfort").

2. Fixed several Fortran coding errors.

3. Removed lots of old/stale comments that were clearly the result of
copying from the OMPI layer and then not cleaning up afterwards (i.e.,
the comments were wholly inaccurate in the oshmem layer).

4. Removed both redundant and harmful code from oshmem_config.h.in.

5. Temporarily slave building the oshmem Fortran bindings to
--enable-mpi-fortran.  This doesn't seem like a good long-term
solution, but at least you can now build all Fortran bindings (MPI +
oshmem) or not. *** SEE MY NOTE IN config/oshmem_configure_options.m4
FOR WORK THAT STILL NEEDS TO BE DONE!

This commit was SVN r29165.
2013-09-15 09:32:07 +00:00
Joshua Ladd
b3f88c4a1d Per the RFC schedule, this commit adds Mellanox OpenSHMEM to the trunk. It does not yet run on OSX or with CM PML for an MTL other than MXM. Mellanox is aware of these issues and is in the process of resolving them. This should be added to \ncmr=v1.7.4:subject=Move OSHMEM to 1.7.4:reviewer=rhc
This commit was SVN r29153.
2013-09-10 15:34:09 +00:00
Brian Barrett
16a1166884 Remove the proc_pml and proc_bml fields from ompi_proc_t and replace with a
configure-time dynamic allocation of flags.  The net result for platforms
which only support BTL-based communication is a reduction of 8*nprocs bytes
per process.  Platforms which support both MTLs and BTLs will not see
a space reduction, but will now be able to safely run both the MTL and BTL
side-by-side, which will prove useful.

This commit was SVN r29100.
2013-08-30 16:54:55 +00:00
Ralph Castain
a200e4f865 As per the RFC, bring in the ORTE async progress code and the rewrite of OOB:
*** THIS RFC INCLUDES A MINOR CHANGE TO THE MPI-RTE INTERFACE ***

Note: during the course of this work, it was necessary to completely separate the MPI and RTE progress engines. There were multiple places in the MPI layer where ORTE_WAIT_FOR_COMPLETION was being used. A new OMPI_WAIT_FOR_COMPLETION macro was created (defined in ompi/mca/rte/rte.h) that simply cycles across opal_progress until the provided flag becomes false. Places where the MPI layer blocked waiting for RTE to complete an event have been modified to use this macro.

***************************************************************************************

I am reissuing this RFC because of the time that has passed since its original release. Since its initial release and review, I have debugged it further to ensure it fully supports tests like loop_spawn. It therefore seems ready for merge back to the trunk. Given its prior review, I have set the timeout for one week.

The code is in  https://bitbucket.org/rhc/ompi-oob2


WHAT:    Rewrite of ORTE OOB

WHY:       Support asynchronous progress and a host of other features

WHEN:    Wed, August 21

SYNOPSIS:
The current OOB has served us well, but a number of limitations have been identified over the years. Specifically:

* it is only progressed when called via opal_progress, which can lead to hangs or recursive calls into libevent (which is not supported by that code)

* we've had issues when multiple NICs are available as the code doesn't "shift" messages between transports - thus, all nodes had to be available via the same TCP interface.

* the OOB "unloads" incoming opal_buffer_t objects during the transmission, thus preventing use of OBJ_RETAIN in the code when repeatedly sending the same message to multiple recipients

* there is no failover mechanism across NICs - if the selected NIC (or its attached switch) fails, we are forced to abort

* only one transport (i.e., component) can be "active"


The revised OOB resolves these problems:

* async progress is used for all application processes, with the progress thread blocking in the event library

* each available TCP NIC is supported by its own TCP module. The ability to asynchronously progress each module independently is provided, but not enabled by default (a runtime MCA parameter turns it "on")

* multi-address TCP NICs (e.g., a NIC with both an IPv4 and IPv6 address, or with virtual interfaces) are supported - reachability is determined by comparing the contact info for a peer against all addresses within the range covered by the address/mask pairs for the NIC.

* a message that arrives on one TCP NIC is automatically shifted to whatever NIC that is connected to the next "hop" if that peer cannot be reached by the incoming NIC. If no TCP module will reach the peer, then the OOB attempts to send the message via all other available components - if none can reach the peer, then an "error" is reported back to the RML, which then calls the errmgr for instructions.

* opal_buffer_t now conforms to standard object rules re OBJ_RETAIN as we no longer "unload" the incoming object

* NIC failure is reported to the TCP component, which then tries to resend the message across any other available TCP NIC. If that doesn't work, then the message is given back to the OOB base to try using other components. If all that fails, then the error is reported to the RML, which reports to the errmgr for instructions

* obviously from the above, multiple OOB components (e.g., TCP and UD) can be active in parallel

* the matching code has been moved to the RML (and out of the OOB/TCP component) so it is independent of transport

* routing is done by the individual OOB modules (as opposed to the RML). Thus, both routed and non-routed transports can simultaneously be active

* all blocking send/recv APIs have been removed. Everything operates asynchronously.


KNOWN LIMITATIONS:

* although provision is made for component failover as described above, the code for doing so has not been fully implemented yet. At the moment, if all connections for a given peer fail, the errmgr is notified of a "lost connection", which by default results in termination of the job if it was a lifeline

* the IPv6 code is present and compiles, but is not complete. Since the current IPv6 support in the OOB doesn't work anyway, I don't consider this a blocker

* routing is performed at the individual module level, yet the active routed component is selected on a global basis. We probably should update that to reflect that different transports may need/choose to route in different ways

* obviously, not every error path has been tested nor necessarily covered

* determining abnormal termination is more challenging than in the old code as we now potentially have multiple ways of connecting to a process. Ideally, we would declare "connection failed" when *all* transports can no longer reach the process, but that requires some additional (possibly complex) code. For now, the code replicates the old behavior only somewhat modified - i.e., if a module sees its connection fail, it checks to see if it is a lifeline. If so, it notifies the errmgr that the lifeline is lost - otherwise, it notifies the errmgr that a non-lifeline connection was lost.

* reachability is determined solely on the basis of a shared subnet address/mask - more sophisticated algorithms (e.g., the one used in the tcp btl) are required to handle routing via gateways

* the RML needs to assign sequence numbers to each message on a per-peer basis. The receiving RML will then deliver messages in order, thus preventing out-of-order messaging in the case where messages travel across different transports or a message needs to be redirected/resent due to failure of a NIC

This commit was SVN r29058.
2013-08-22 16:37:40 +00:00
Jeff Squyres
31283aaffd Revert r29049 because it is incorrectly overriding the results of an
AC config macro.

This commit was SVN r29050.

The following SVN revision numbers were found above:
  r29049 --> open-mpi/ompi@b82f89e78b
2013-08-20 01:21:41 +00:00
Steve Wise
b82f89e78b Define HAVE_IBV_LINK_LAYER_ETHERNET if it is supported in libibverbs.
Commit r27211 missed a config file change which broke ompi over
iwarp transports.  

This fixes trac:3726 and should be added to cmr:v1.7.3:reviewer=jsquyres

This commit was SVN r29049.

The following SVN revision numbers were found above:
  r27211 --> open-mpi/ompi@b27862e5c7

The following Trac tickets were found above:
  Ticket 3726 --> https://svn.open-mpi.org/trac/ompi/ticket/3726
2013-08-19 22:27:51 +00:00
Ralph Castain
e0cfcf376f Okay, fix it so it works both --disable-mpi-profile and --enable-mpi-profile. I'm not sure why mpit's library has to be treated differently, but it seems that it needs some special care to work in both scenarios
Refs trac:3725

This commit was SVN r29043.

The following Trac tickets were found above:
  Ticket 3725 --> https://svn.open-mpi.org/trac/ompi/ticket/3725
2013-08-19 14:48:23 +00:00
Ralph Castain
e6199da2e7 Fixes trac:3486 - prevent opal_check_pmi from bleeding CPPFLAGS
This commit was SVN r28940.

The following Trac tickets were found above:
  Ticket 3486 --> https://svn.open-mpi.org/trac/ompi/ticket/3486
2013-07-24 03:53:23 +00:00
Nathan Hjelm
c6e586a81d MPI-3: fortran support for large counts using derived datatypes
Jeff:
 - Make sure not to go over 72 characters.  Love Fortran!
 - Ensure to include 'mpif-config.h' in Type_size_x.

This commit was SVN r28933.
2013-07-23 15:36:03 +00:00
Rolf vandeVaart
49663fb802 Move CUDA-aware configurary to its own file and other minor changes due to review.
This commit was SVN r28832.
2013-07-17 22:12:29 +00:00
Nathan Hjelm
e6e9f2c6fd Add profiling function definitions for MPI_T and add a missing type into mpi.h
This commit was SVN r28803.
2013-07-16 16:03:33 +00:00
Ralph Castain
5f520e241b Ensure we get both -lpmi and -lpmi2 when the libs are separate
This commit was SVN r28795.
2013-07-16 14:57:18 +00:00
Ralph Castain
10ca1c1b04 Turns out that there was exactly ONE place in all of the OMPI code base that still referred to OPAL_TRACE, though a few places retained the include file for no reason. So no point in letting this sit as it is clearly an unused "feature".
This commit was SVN r28789.
2013-07-14 18:57:20 +00:00
Joshua Ladd
16beaa3878 This fixes the nasty configure.m4 hack that was added long ago and not removed. My fault for not catching earlier. I've also removed the '.ompi_ignore' in coll/hcoll. Throwing this to Nathan for review. Upon successful review, this should be added to cmr:v1.7:reviewer=hjelmn
This commit was SVN r28753.
2013-07-11 09:55:46 +00:00
Jeff Squyres
04da831f04 The gm BTL was removed in June of 2012; there's no need for
ompi_check_gm.m4 any more.

This commit was SVN r28744.
2013-07-09 20:57:12 +00:00
Brian Barrett
ecbbf888d3 * Update Portals 4 MTL's multi-md code to be a bit cleaner (no if statements
in the path) and not create MDs due to boundary crossing
* Add the same logic to the Coll component

This commit was SVN r28733.
2013-07-08 21:27:37 +00:00
Joshua Ladd
e2b53dcf10 Adding the ompi_check_libhcoll.m4 file
This commit was SVN r28695.
2013-07-01 22:45:36 +00:00
Ralph Castain
7331dd9534 Apparently, the alps configury has not been checked since we added the RTE abstraction code. Fix it now.
This commit was SVN r28673.
2013-06-26 07:03:54 +00:00
Ralph Castain
e8340b6339 There is no convention out there as to how OEMs handle PMI2 functions. Some put them in their own -lpmi2 library, and some don't. Some have split the PMI2 definitions into a pmi2.h and keep the PMI-1 definitions in a separate pmi.h, and some don't.
Try to handle cases more generally so at least Slurm and Cray can co-exist in peace.

This commit was SVN r28672.
2013-06-26 00:43:26 +00:00
Ralph Castain
fa943dc6ff Cleanup a few things in the revised PMI configury - we know slurm has both pmi and pmi2 libs, so just auto-detect the presence of them if the user directed us to build with pmi support.
Also cleanup some changed names in the alps code

This commit was SVN r28670.
2013-06-24 02:41:40 +00:00
Joshua Ladd
0b5c1f2ea8 Add 'generic' support for PMI2 (previously, we checked for PMI2 only on Cray systems.) If your resource manager (e.g. SLURM) has support for PMI2, then the --with-pmi configure flag will enable its usage. If you don't have PMI2, then you will fallback to regular old PMI1. This patch was submitted by Ralph Castain and reviewed and pushed by Josh Ladd. This should be added to cmr:v1.7:reviewer=jladd
This commit was SVN r28666.
2013-06-21 15:28:14 +00:00
Rolf vandeVaart
7771857991 Adjust how cuda.h is found. It can be found in the with-cuda dir now.
This commit was SVN r28555.
2013-05-22 22:04:46 +00:00
Jeff Squyres
4d9da92e60 Fixes trac:376: bu default the wrappr compilers will enable rpath support
in generated executables on systems that support it.  Use
--disable-wrapper-rpath to disable this behavior.  See text in
README about --disable-wrapper-rpath for more details.

This commit was SVN r28479.

The following Trac tickets were found above:
  Ticket 376 --> https://svn.open-mpi.org/trac/ompi/ticket/376
2013-05-11 00:49:17 +00:00
Ralph Castain
353c77e659 Re-enable udcm for test purposes - appears to be working, but needs broader exposure to MTT
This commit was SVN r28468.
2013-05-09 16:10:29 +00:00
Ralph Castain
12969cec81 Update orte_progress_threads configure option - no longer need to test for --enable-event-threads
This commit was SVN r28449.
2013-05-05 14:48:35 +00:00
Nathan Hjelm
809db8f6a9 Check for .git directory when checking for developer build
This commit was SVN r28149.
2013-03-06 17:47:27 +00:00
Rolf vandeVaart
ebe63118ac Remove dependency on libcuda.so when building in CUDA-aware support. Dynamically load it if needed.
This commit was SVN r28140.
2013-03-01 13:21:52 +00:00
Ralph Castain
a4b6fb241f Remove all remaining vestiges of the Windows integration
This commit was SVN r28137.
2013-02-28 17:31:47 +00:00
Ralph Castain
cf9796accd Remove the old configure option for disabling full rte support - we now use the OMPI rte framework for such purposes
This commit was SVN r28134.
2013-02-28 01:35:55 +00:00
Ralph Castain
bd9265c560 Per the meeting on moving the BTLs to OPAL, move the ORTE database "db" framework to OPAL so the relocated BTLs can access it. Because the data is indexed by process, this requires that we define a new "opal_identifier_t" that corresponds to the orte_process_name_t struct. In order to support multiple run-times, this is defined in opal/mca/db/db_types.h as a uint64_t without identifying the meaning of any part of that data.
A few changes were required to support this move:

1. the PMI component used to identify rte-related data (e.g., host name, bind level) and package them as a unit to reduce the number of PMI keys. This code was moved up to the ORTE layer as the OPAL layer has no understanding of these concepts. In addition, the component locally stored data based on process jobid/vpid - this could no longer be supported (see below for the solution).

2. the hash component was updated to use the new opal_identifier_t instead of orte_process_name_t as its index for storing data in the hash tables. Previously, we did a hash on the vpid and stored the data in a 32-bit hash table. In the revised system, we don't see a separate "vpid" field - we only have a 64-bit opaque value. The orte_process_name_t hash turned out to do nothing useful, so we now store the data in a 64-bit hash table. Preliminary tests didn't show any identifiable change in behavior or performance, but we'll have to see if a move back to the 32-bit table is required at some later time.

3. the db framework was a "select one" system. However, since the PMI component could no longer use its internal storage system, the framework has now been changed to a "select many" mode of operation. This allows the hash component to handle all internal storage, while the PMI component only handles pushing/pulling things from the PMI system. This was something we had planned for some time - when fetching data, we first check internal storage to see if we already have it, and then automatically go to the global system to look for it if we don't. Accordingly, the framework was provided with a custom query function used during "select" that lets you seperately specify the "store" and "fetch" ordering.

4. the ORTE grpcomm and ess/pmi components, and the nidmap code,  were updated to work with the new db framework and to specify internal/global storage options.

No changes were made to the MPI layer, except for modifying the ORTE component of the OMPI/rte framework to support the new db framework.

This commit was SVN r28112.
2013-02-26 17:50:04 +00:00
Jeff Squyres
7136dbb5b3 Fixes trac:3523. Discussed on the OMPI weekely teleconf today: add a
configure test to ensure that the Fortran compiler supports BIND(C)
with LOGICAL parameters (per
http://lists.mpi-forum.org/mpi-comments/2013/02/0076.php).

This may become moot shortly -- Pathscale tells me that they intend
upgrade their compiler to support BIND(C) with default LOGICAL in the
very near term (this week?).  But we still want this configure test so
that Open MPI won't even try to build the F08 bindings with older
versions of the Pathscale compilers (or any compiler that doesn't
support BIND(C) and LOGICAL parameters).

This commit was SVN r28110.

The following Trac tickets were found above:
  Ticket 3523 --> https://svn.open-mpi.org/trac/ompi/ticket/3523
2013-02-26 17:11:11 +00:00
Brian Barrett
504a6d036f * Rather than use the extra_includes directive, add the extra includes (which is really just -I${includedir}/openmpi/ for devel headers) to CPPFLAGS, since all the other necessary -Is for devel headers (like libevent and hwloc) are added to CPPFLAGS.
* Clean up ${includedir} and ${libdir} for script wrapper compilers
* Update script wrapper compilers to work like the C wrapper compilers w.r.t static and dynamic linking
* Remove the ORTE script wrapper compilers since they didn't support the ${includedir} stuff and Ralph said they weren't used anymore.

This commit was SVN r28052.
2013-02-13 00:33:05 +00:00
Joshua Ladd
70ad711337 Backing out the Open SHMEM project
This commit was SVN r28050.
2013-02-12 17:45:27 +00:00
Mike Dubman
ff384daab4 Added new project: oshmem.
This commit was SVN r28048.
2013-02-12 15:33:21 +00:00
Nathan Hjelm
ab57e2ef38 update lustre configuration to use OMPI_CHECK_PACKAGE and only check for liblustreapi (not liblustre)
This commit was SVN r28036.
2013-02-06 17:22:58 +00:00
Brian Barrett
d80218996f Rather than setting up the direct call stuff in ompi_mca (which requires
modifying ompi_mca for every interface that is direct called), do it in
the framework's .m4 file.

This commit was SVN r28031.
2013-02-04 23:26:42 +00:00
Nathan Hjelm
c28879137d set $1_LIBS correctly on all calls to ORTE_CHECK_ALPS not just the first call
This commit was SVN r28006.
2013-01-31 23:42:28 +00:00
Ralph Castain
576a5ab6f0 Actually, those calls need to be removed as we superceded them with the new opal_setup_ft.m4
This commit was SVN r28000.
2013-01-31 20:46:35 +00:00
Jeff Squyres
da5d093fdc Can't just use "0" in an AM_CONDITIONAL -- you have to use a valid
executable that can be run and returns a false exit status (which,
amusingly, in this case is 1, not 0).

This commit was SVN r27998.
2013-01-31 20:30:30 +00:00
Nathan Hjelm
1b7c2b0ed1 lustreapi.h includes lustre/lustre_user.h so the CPP should include -I$with_lustre/include
This commit was SVN r27996.
2013-01-31 19:19:54 +00:00
Rolf vandeVaart
729caaf0cd Remove any dependency on libcuda.so in opal layer. All changes are within OMPI_CUDA_SUPPORT code.
This commit was SVN r27986.
2013-01-30 23:07:32 +00:00
Brian Barrett
cf0420aaa7 Need the WRAPPER_EXTRA_* defines for orte_info as well.
This commit was SVN r27972.
2013-01-29 23:01:51 +00:00
Ralph Castain
4fdc6f1127 Revise the approach towards the FT options. Include them in a new opal_setup_ft.m4 file. Capture the ft-thread option there as well since it had slipped thru the cracks. Add a detailed comment to configure.ac that describes how to make those options visible, if desired.
This commit was SVN r27969.
2013-01-29 18:30:41 +00:00
Nathan Hjelm
666bd826dc fix alps configury
This commit was SVN r27962.
2013-01-29 15:44:30 +00:00
Jeff Squyres
fc3e45ee5c Minimalistic patch to ARM support, as suggested by Leif. Note that
this patch has already gone into the v1.6 branch.

Leif would like to revamp the ARM support in a different way, and will
submit a patch to do so in the future.

This commit was SVN r27961.
2013-01-29 14:13:55 +00:00
Jeff Squyres
ef8ab5507e Per discussion on the devel list, revert r27882.
Leif would like to revamp the ARM support in a different way, and will
submit a patch to do so in the future.

This commit was SVN r27960.

The following SVN revision numbers were found above:
  r27882 --> open-mpi/ompi@8649b5eece
2013-01-29 14:10:46 +00:00
Ralph Castain
5ff3fdd93b Remove stale ft options.
cmr:v1.7

This commit was SVN r27954.
2013-01-29 01:56:19 +00:00
Brian Barrett
b8442ba505 Revamp the handling of wrapper compiler flags. The user flags, main configure
flags, and mca flags are kept seperate until the very end.  The main configure
wrapper flags should now be modified by using the OPAL_WRAPPER_FLAGS_ADD
macro.  MCA components should either let <framework>_<component>_{LIBS,LDFLAGS}
be copied over OR set <framework>_<component>_WRAPPER_EXTRA_{LIBS,LDFLAGS}.
The situations in which WRAPPER CPPFLAGS can be set by MCA components was
made very small to match the one use case where it makes sense.

This commit was SVN r27950.
2013-01-29 00:00:43 +00:00
Brian Barrett
e5d99a1877 Don't build ORTE stuff if we said --without-orte
This commit was SVN r27936.
2013-01-28 01:29:23 +00:00
Brian Barrett
f42783ae1a Move the RTE framework change into the trunk. With this change, all non-CR
runtime code goes through one of the rte, dpm, or pubsub frameworks.

This commit was SVN r27934.
2013-01-27 23:25:10 +00:00
Jeff Squyres
d65194a97d Fixes trac:3442: ensure that we don't call "basename" on an empty string.
cmr:v1.7

This commit was SVN r27925.

The following Trac tickets were found above:
  Ticket 3442 --> https://svn.open-mpi.org/trac/ompi/ticket/3442
2013-01-26 14:46:08 +00:00
Jeff Squyres
6d3f566f11 This PUSH is never POP'ed. And we don't want this variable to
disappear, anyway.

This commit was SVN r27913.
2013-01-25 22:15:11 +00:00
Jeff Squyres
aa78adea6e Also send the titles/subtitles/etc. to config.log. The line numbers
will be wrong (because it's called via a shell subroutine rather than
an m4 macro... doh!), but it's still helpful for searching around in
config.log.  

This commit was SVN r27912.
2013-01-25 21:59:42 +00:00
Jeff Squyres
6cd56c1e87 Fix an old bug: the project name in these variables should be upper
case.  

Fixing this issue allows the following case to start working again:

./configure --disable-dlopen --with-hwloc=/path/to/some/external/hwloc ...

Without this fix, the wrapper compilers would include -lhwloc, but
would not include -L/path/..., so -lhwloc would not be found.

This commit was SVN r27894.
2013-01-23 22:09:20 +00:00
George Bosilca
8649b5eece The patch from ticket #3469 adapted for the trunk.
This commit was SVN r27882.
2013-01-21 11:45:05 +00:00
Brian Barrett
579cf4adcd After discussion with Jeff, don't do C++ inline assembly (there is a non-inline
version still avaiable for C++).  This is yet another push to try to make
OPAL a C only interface...

This commit was SVN r27828.
2013-01-15 17:04:42 +00:00
Brian Barrett
c01d709315 Fix fortran issues when there's no fortran compiler.
This commit was SVN r27780.
2013-01-09 17:05:49 +00:00
Jeff Squyres
84f1e14b17 As has been discussed for a long time, decided in the December 2012
meeting, and RFCed in mid-December (#3424): we no longer build the MPI
C++ bindings by default.

The C++ bindings are still ''there'' -- starting with 1.9, we'll just
be providing a little encouragement to no longer use them.

There are no definite plans to ''remove'' the C++ bindings yet.  At
the earliest, we would remove them in the next feature series after
1.9. 

This commit was SVN r27755.
2013-01-07 19:58:19 +00:00
Brian Barrett
703edbb0e6 Don't push infiniband CPPFLAGS into CPPFLAGS, but into the component CPPFLAGS
This commit was SVN r27754.
2013-01-07 18:57:03 +00:00
Brian Barrett
559b76a191 Need to include all the IB flags in the check for RDMA CM or the
headers and libraries won't be found if OFED is installed in a
non-standard path...

This commit was SVN r27753.
2013-01-07 17:54:10 +00:00
Ralph Castain
d482c6acc1 Improve the error message a bit
This commit was SVN r27726.
2012-12-28 03:02:07 +00:00
Ralph Castain
fb5079a310 Update the pmi detection to report a more meaningful error message when with-pmi is specified but the pmi.h file cannot be found
This commit was SVN r27725.
2012-12-27 04:57:30 +00:00
Brian Barrett
8231cb62a2 On OpenBSD (and probably others), expr operates on a 32 bit signed integer,
which is the same size as a Fortran or C integer.  This resulted in configure
coming up with Fortran's MAX_INT as -2^31, which obviously isn't a positive
number.  Since we found the MAX_INT using the same broken loop in a couple
places and doing it right is complicated, added a new macro that is much
more careful about sign roll-over.

During the Fortran rework between v1.6 and v1.7, the variable which
indicates whether or not Fortran is being compiled changed, so on platforms
without Fortran compilers, we were trying to determine the max value for
Fortran INTEGERS where we previously didn't.  I believe this is why
bug #3374 appeared as a regression.

Finally, since the OMPI code doesn't cope with OMPI_FORTRAN_HANDLE_MAX
being negative (which was the root cause of the segfault in $3374),
add a check at the end of the OMPI_FORTRAN_GET_HANDLE_MAX macro to
ensure that OMPI_FORTRAN_HANDLE_MAX is always non-negative.

This commit was SVN r27714.
2012-12-22 16:24:36 +00:00
Jeff Squyres
b29b852281 Consolidate all the opal/orte/ompi .m4 files back to the top-level
config/ directory.  We split them apart a while ago in the hopes that
it would simplify things, but it didn't really (e.g., because there
were still some ompi/opal .m4 files in the top-level config/
directory, resulting in developer confusion where any given m4 macro
was defined).

So this commit consolidates them back into the top-level directory for
simplicity.  

There's still (at least) two changes that would be nice to make:

 1. Split any generated .m4 file (e.g., autogen-generated .m4 files)
    into a separate directory somewhere so that a top-level -Iconfig/
    will only get our explicitly defined macros, not the autogen stuff
    (e.g., with libevent2019 needing to get the visibility macro, but
    NOT all the autogen-generated inclusion of component configure.m4
    files).
 1. Change configure to be of the form:
{{{
# ...a small amount of preamble/setup...
OPAL_SETUP
m4_ifdef([project_orte], [ORTE_SETUP])
m4_ifdef([project_ompi], [OMPI_SETUP])
# ...a small amount of finishing stuff...
}}}

I doubt we'll ever get anything as clean as that, but that would be
the goal to shoot for.

This commit was SVN r27704.
2012-12-19 00:00:36 +00:00
Ralph Castain
ef21699635 Since we now strip the path away from the platform file name, you have to indicate that the file is relative when sourcing it - otherwise, you get "file not found"
cmr:v1.7

This commit was SVN r27091.
2012-08-17 21:37:41 +00:00
Jeff Squyres
26217f27d7 Fix "make distclean" when used with MPI extensions. We were
accidentally adding component names to the OMPI_MPIEXT_ALL_SUBDIRS
variable twice; once with mpiext/ and once without.  And then
prefixing all of them with mpiext/ again at the end.  That wasn't
really necessary :-) -- we only need to add it once (without mpiext/)
and then prefix at the end (for consistency with the
OMPI_MPI_EXT_*_SUBDIRS handling).

This commit was SVN r26981.
2012-08-10 02:00:39 +00:00
Nathan Hjelm
3c6e2a2a48 Per RFC enable the use of the source directive (relative path) in platform files. The priority of configure options vs platform file options remains the same.
This commit was SVN r26873.
2012-07-26 16:19:23 +00:00
Josh Hursey
28681deffa Backout the ORCA commit. :(
There is a linking issue on Mac OSX that needs to be addressed before this is able to come back into the trunk.

This commit was SVN r26676.
2012-06-27 01:28:28 +00:00
Josh Hursey
542330e3a7 Commit of ORCA: Open MPI Runtime Collaborative Abstraction
This is a runtime interposition project that sits between the OMPI and ORTE layers in Open MPI.

The project is described on the wiki:
  https://svn.open-mpi.org/trac/ompi/wiki/Runtime_Interposition

And on this email thread:
  http://www.open-mpi.org/community/lists/devel/2012/06/11109.php

This commit was SVN r26670.
2012-06-26 21:42:16 +00:00
Jeff Squyres
a0e3912416 I actually meant to commit this hours ago (and could have sworn that I
did so!).  Previously, I forgot to include the case of not specifying
--with-verbs -- oops!  So now the OPAL_CHECK_VERBS_DIR macro will:

 1. $opal_want_verbs will be set to: "yes" if --with-verbs or
    --with-verbs=DIR was specified "no" if --without-verbs was
    specified) "optional" if neither --with-verbs* nor --without-verbs
    was specified
    '''NOTE:''' --with-openib* are deprecated synonyms for --with-verbs*.
 1. $opal_verbs_dir and $opal_verbs_libdir with either both be set or
    both be empty.

This commit was SVN r26654.
2012-06-25 20:28:45 +00:00
Jeff Squyres
148ae6d6e3 This commit unifies the configury of some verbs-lovin' components.
* Add new configure command line options and deprecate some old ones:
   * --with-verbs replaces --with-openib
   * --with-verbs-libdir replaces --with-openib-libdir
 * If you specify --with-openib[-libdir] without
   --with-verbs[-libdir], you'll get a "these options have been
   deprecated!" warning, but then they'll act just like
   --with-verbs[--libdir]. 

  '''Sidenote:''' Note that we are not renaming any components at this
  time, nor are we renaming the top-level OMPI_CHECK_OPENIB m4 macro
  (which is pretty strongly tied to the openib BTL and is bastaridzed
  by the ofud BTL).  Note that there will likely be more changes in
  this area coming soon (next week?) when some long-standing changes
  move to the SVN trunk: some openib BTL infrastructure will move to
  ompi/mca/common, and its configury gets split up / refactored.

We extend our philosophy of other --with-<foo> configure options of
--with-verbs to ''all'' verbs-lovin components:

 * If you specify --with-verbs, then all verbs-lovin' components must
   configure successfully (or abort).  This currently means: OOB ud,
   BTL ofud, BTL openib.
 * If you specify --with-verbs=DIR, then all verbs-lovin' component
   must configure successfully (or abort), and will use DIR to find
   verbs headers and libraries.
 * If you specify --without-verbs, then all verbs-lovin' components
   will be ignored.

This commit also fixes a problem where the --with-openib=DIR form
would not use DIR for ''all'' verbs-lovin' components (I think only
BTL openib and BTL ofud used that DIR).  Now all of them do, as does
hwloc (because hwloc has some !OpenFabrics helper functions that
require ibv types from verbs.h).

There's a little new m4 infrastructure worth mentioning:

 * If you create a new verbs-lovin' component (i.e., a component that
   need verbs), your configure.m4 should
   AC_REQUIRE([OPAL_CHECK_VERBS_DIR]). 
 * You can then use three global shell variables: $opal_want_verbs,
   $opal_verbs_dir, $opal_verbs_libdir, which will be set as follows:
   * opal_want_verbs will be "yes" and opal_verbs_dir and
     opal_verbs_libdir will both be set to directory values, '''OR'''
   * opal_want_verbs will be "no" and opal_verbs_dir and
     opal_verbs_libdir will both be set empty

This commit was SVN r26640.
2012-06-22 19:53:56 +00:00
Jeff Squyres
8b693b09af Fix long-standing typo -- that line should be a shell comment (!).
This commit was SVN r26639.
2012-06-22 19:30:08 +00:00
Terry Dontje
634fc278d9 Fix issue with sctp config scripts not detecting netinet/in.h dependency. Also removing tabs from sctp m4 file
This commit was SVN r26599.
2012-06-13 10:38:28 +00:00
Jeff Squyres
5d61dffbbc Fix long-standing typo.
This commit was SVN r26598.
2012-06-12 20:49:25 +00:00
Jeff Squyres
f9c685bd5e Fix some fortran flags variable names, and fortran configury C test
problems (i.e., don't return a value from a void() function!).  Thanks
to Eugene for identifying these issues.  Hopefully this will fix up
the problems Oracle is having with compiling the new Fortran stuff.

This commit was SVN r26310.
2012-04-23 15:28:26 +00:00
Jeff Squyres
b9640a582a Fix the case where there is no Fortran compiler found. Possibly fix
the case where we have a really ancient Fortran compiler that does not
support ISO_C_BINDING, but need to test to be sure that the new
configury works.

This commit was SVN r26290.
2012-04-18 19:29:07 +00:00