1
1

1055 Коммитов

Автор SHA1 Сообщение Дата
Artem Polyakov
d5adb0fa82 Fix libltdl VPATH configuration. 2014-10-17 22:40:32 +07:00
Artem Polyakov
f12ed3efa3 Fix building system: correct libltdl check for advise capability. 2014-10-17 12:59:44 +07:00
Devendar Bureddy
cbb3e95ce9 OSHMEM: Fix application abort
register on_exit() hook to know exit status inorder to
skip shmem_finalize destructor in case of non-zero exit status
2014-10-14 21:07:28 +03:00
Nathan Hjelm
083a659217 Correct some typos in Cray PMI detection 2014-10-14 10:28:36 -06:00
Nathan Hjelm
169a1866b8 Modify Cray PMI check to detect PMI on older systems 2014-10-09 17:01:31 -06:00
Ralph Castain
b1a58726ac Cleanup the PMI m4 syntax with respect to -a, and look for libpmi* so we can pickup both .a, .la, and whatever other extensions that particular system might use. 2014-10-09 14:04:43 -07:00
Nadezhda Kogteva
ffa8674e01 Fix bugs in PMI configure: set correct include path, fix test command with multiple conditions. 2014-10-09 17:23:56 +03:00
Ralph Castain
9c027e6def Update the PMI configure logic to handle the oddball case where both lib and lib64 may exist, and the required files may be in one or the other of them. 2014-10-07 10:20:46 -07:00
Gilles Gouaillardet
399fc1bb3e configury: remove unneeded assignments 2014-10-06 16:36:03 +09:00
Jeff Squyres
413e775dbf version configury: make dist now works
Update the VERSION file scheme:

* Remove "want_repo_rev".
* Add "tarball_version".

All values are now always included (major, minor, release, greek,
repo_rev).  However, configure.ac now runs "opal_get_version.sh
... --tarball", which will return the value of tarball_version (if it
is non-empty) or the "full" version string (i.e.,
"major.minor.releasegreek").
2014-10-02 11:32:54 -07:00
Jeff Squyres
8468424f45 distscript: remove configure.params and autogen.subdirs kruft
Remove configure.params support: configure.params hasn't been used in
years.

Also remove autogen.subdirs support; those should really be handled by
their respective Makefile.am's.
2014-10-02 11:32:54 -07:00
Jeff Squyres
cfcf3fa42d distscript: whitespace cleanup, remove ancient kruft
There was some (almost) wholly-commented out code in here that reaches
back to the beginning of the project.  Just delete it.
2014-10-02 11:32:54 -07:00
Jeff Squyres
99c39991cd infrastructure: first cut at updates for git
This is a first cut at updating various infrastructure for git.  There
will definitely be more commits; some of the scripts require
committed/pushed code (e.g., the various make-tarball scripts).  So
it's not possible to know if we got it right without committing/pushing.
2014-10-01 16:32:52 -07:00
Ralph Castain
9e35f80ab6 Don't multiply define WANT_PMI_SUPPORT and friends. Turns out they weren't being used anywhere anyway, so no point in defining them at all
This commit was SVN r32822.
2014-09-30 20:43:25 +00:00
Jeff Squyres
d4e2809531 version: always use all 3 version numbers
In all previous releases, the version number would be "A.B.C" unless C
was 0, in which case it would be "A.B".  This commit changes that
scheme to always be "A.B.C", even if C==0.

Hence, v1.9.0 will be the first release where this new scheme is evident.

This commit was SVN r32816.
2014-09-30 15:54:18 +00:00
Rolf vandeVaart
16d6e82ed2 Fix issue repored on User list. Error out when --with-cuda and --disable-dlopen are together.
This commit was SVN r32808.
2014-09-29 13:25:17 +00:00
Jeff Squyres
91114c22d4 fortran: strengthen the storage_size() check
It's not enough to AC_COMPILE_IFELSE, do AC_LINK_IFELSE to really make
sure the compiler suite supports it.

Refs trac:4917

This commit was SVN r32802.

The following Trac tickets were found above:
  Ticket 4917 --> https://svn.open-mpi.org/trac/ompi/ticket/4917
2014-09-26 18:17:55 +00:00
Rolf vandeVaart
399dc3db43 Code to check for managed memory. Configure support also.
This commit was SVN r32801.
2014-09-26 16:24:45 +00:00
Gilles Gouaillardet
b1c4daa956 configury: silence warning on Solaris
* remove config/ompi_config_solaris_threads.m4 which was dead code
 * check if pthreads work "as is" on all platforms including Solaris
   (FWIW, the test should have been skipped if Solaris threads are used
    and not if configure is ran on a Solaris box)

Refs trac:4911

This commit was SVN r32792.

The following Trac tickets were found above:
  Ticket 4911 --> https://svn.open-mpi.org/trac/ompi/ticket/4911
2014-09-25 07:26:16 +00:00
Gilles Gouaillardet
5d0e65085f configury: silence warning on Solaris
revert r32501

Refs trac:4911

This commit was SVN r32791.

The following SVN revision numbers were found above:
  r32501 --> open-mpi/ompi@0afed999cd

The following Trac tickets were found above:
  Ticket 4911 --> https://svn.open-mpi.org/trac/ompi/ticket/4911
2014-09-25 07:17:58 +00:00
Jeff Squyres
d13034d0b0 fortran: add configury to check for storage_size()
gfortran 4.8 does not support storage_size() on all relevant types
that we need.  So add a configure test to check and see if the
compiler's storage_size() intrinsic supports enough types for us to do
MPI_SIZEOF.

Also remove an accidentally redundant check for fortran INTERFACE.

Refs trac:4917

This commit was SVN r32790.

The following Trac tickets were found above:
  Ticket 4917 --> https://svn.open-mpi.org/trac/ompi/ticket/4917
2014-09-25 00:17:29 +00:00
Artem Polyakov
f2e586980b Fix timing framework:
1. Fixes according to (http://www.open-mpi.org/community/lists/devel/2014/09/15869.php)
2. Force mpisync:rank0 to gather results. Now sync info is written by rank0 to the output file.
3. Improve mpirun_prof: 1) adopt to the environment (SLURM/TORQUE); 2) recognize some noteset-related mpirun options.

This commit was SVN r32772.
2014-09-23 12:59:54 +00:00
Jeff Squyres
d7eaca83fa Fortran: Fix MPI_SIZEOF. What a disaster. :-(
What started as a simple ticket ended up reaching the way up to the
MPI Forum.
    
It turns out that we are supposed to have MPI_SIZEOF for all Fortran
interfaces: mpif.h, the mpi module, and the mpi_f08 module.
    
It further turns out that to properly support MPI_SIZEOF, your Fortran
compiler *has* support the INTERFACE keyword and ISO_FORTRAN_ENV.  We
can't use "ignore TKR" functionality, because the whole point of
MPI_SIZEOF is that the implementation knows what type was passed to it
("ignore TKR" functionality, by definition, throws that information
away).  Hence, we have to have an MPI_SIZEOF interface+implementation
for all intrinsic types, kinds, and ranks.

This commit therefore adds a perl script that generates both the
interfaces and implementations for MPI_SIZEOF in each of mpif.h, the
mpi module, and mpi_f08 module (yay consolidation!).

The perl script uses the results of some new configure tests:

* check if the Fortran compiler supports the INTERFACE keyword
* check if the Fortran compiler supports ISO_FORTRAN_ENV
* find the max array rank (i.e., dimension) that the compiler supports

If the Fortran compiler supports both INTERFACE and ISO_FORTRAN_ENV,
then we'll build the MPI_SIZEOF interfaces.  If not, we'll skip
MPI_SIZEOF in mpif.h and the mpi module.  Note that we won't build the
mpi_f08 module -- to include the MPI_SIZEOF interfaces -- if the
Fortran compiler doesn't support INTERFACE, ISO_FORTRAN_ENV, and a
whole bunch of ther modern Fortran stuff.

Since MPI_SIZEOF interfaces are now generated by the perl script, this
commit also removes all the old MPI_SIZEOF implementations (which were
laden with a zillion #if blocks).

cmr=v1.8.3

This commit was SVN r32764.
2014-09-19 13:44:52 +00:00
Jeff Squyres
0c98cf709e opal_get_version.m4: use better "git log" command
For when you have a git repository, this is a bit more succinct form
of getting a git hash of the HEAD.

This commit was SVN r32758.
2014-09-18 21:03:31 +00:00
Jeff Squyres
cf56a369c2 fortran: configure test for "optional" keyword was too aggressive
After discussions with Craig, it looks like the check in this
configure test was too aggressive and based on a prior mpi_f08
implementation model.  We don't use "value" any more, and we also
don't pass optional parameters back to C code, so this test was
checking far more than it needed to... in a non-standard way (which
breaks in the Intel 2015 Fortran compiler).  All we ''really'' need is
to check whether the compiler supports the "optional" keyword.  So
make the test ''much'' simpler and just check whether ''optional''
compiles successfull or not.

Reviewed by Craig Rasmussen

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

This commit was SVN r32752.
2014-09-17 22:10:11 +00:00
Ralph Castain
dfb952fa78 [Contribution from Artem - moved it to svn from git for him]
Replace our old, clunky timing setup with a much nicer one that is only available if configured with --enable-timing. Add a tool for profiling clock differences between the nodes so you can get more precise timing measurements. I'll ask Artem to update the Github wiki with full instructions on how to use this setup.

This commit was SVN r32738.
2014-09-15 18:00:46 +00:00
Jeff Squyres
66aeadacff opal_search_libs: correctly AC_DEFINE results of search
1. It is not sufficient to put the result of m4_toupper() in a
variable and use that variable as the variable name in
AC_DEFINE_UNQUOTED.  Instead, just use m4_toupper() directly in
AC_DEFINE_UNQUOTED.  Also, save the result value in a "permanent"
variable that isn't erased, just in case autoconf decides to be lazy
about instantiating the body AC_DEFINE_UNQUOTED and move it later
(this is probably overkill :-) ).
1. Use the OMPI Way of always defining macros (to 0 or 1).  Then also
slightly change the logic in util/basename.c to just check
OPAL_HAVE_DIRNAME (because it will always be defined).

Refs trac:4894

This commit was SVN r32723.

The following Trac tickets were found above:
  Ticket 4894 --> https://svn.open-mpi.org/trac/ompi/ticket/4894
2014-09-13 00:28:30 +00:00
Jeff Squyres
01e62b1994 orte_check_lsf.m4: improve the search for LSF libraries
Based on a patch from Joshua Randall, improve the search for LSF
libraries in orte_check_lsf.m4.  This improvement theorhetically
allows the LSF libraries to work in a variety of OSs by properly
searching for its dependent libraries using a variety of library
names.

Fixes trac:4889.

This commit was SVN r32722.

The following Trac tickets were found above:
  Ticket 4889 --> https://svn.open-mpi.org/trac/ompi/ticket/4889
2014-09-12 23:52:18 +00:00
Jeff Squyres
2024d28a65 opal_search_libs.m4: remove redundant AC_MSG_CHECKING/RESULT
The AC_MSG_CHECKING/AC_MSG_RESULT in OPAL_SEARCH_LIBS_CORE were
generating recursive redundant output (i.e., AC_SEARCH_LIBS already
outputs "checking for library containing X... -lY".

Also add the "uppername" logic to OPAL_SEARCH_LIBS_COMPONENT so that
these two macros stay symmetrical.

Refs trac:4894.

This commit was SVN r32721.

The following Trac tickets were found above:
  Ticket 4894 --> https://svn.open-mpi.org/trac/ompi/ticket/4894
2014-09-12 23:27:33 +00:00
Ralph Castain
ec51cbab9f We are failing to use the system dirname function because we are not correctly flagging that we found it. Modify opal_search_libs_core to set an "opal_have_foo" flag to indicate that we found the specified function, and then modify the have_dirname check to look for it.
cmr=v1.8.3:reviewer=jsquyres

This commit was SVN r32669.
2014-09-04 16:10:38 +00:00
Ralph Castain
1c4870357b Per patch submitted by J. Randall, add missing library to LSF integration
cmr=v1.8.3:reviewer=rhc

This commit was SVN r32661.
2014-09-02 00:38:07 +00:00
Howard Pritchard
51c73f116b switch check for ugni to use pkg-config
deprecate with-ugni in lanl/cray_xe6 platform file

This commit was SVN r32625.
2014-08-28 22:03:41 +00:00
Gilles Gouaillardet
d440ee80a4 oshmem configury: fix a test
Fix a test in r32590

Refs trac:4868

This commit was SVN r32594.

The following SVN revision numbers were found above:
  r32590 --> open-mpi/ompi@36b315db2d

The following Trac tickets were found above:
  Ticket 4868 --> https://svn.open-mpi.org/trac/ompi/ticket/4868
2014-08-25 06:57:30 +00:00
Gilles Gouaillardet
df8baf685f oshmem configury: fix a typo
Fix a typo in r32590

Refs trac:4868

This commit was SVN r32593.

The following SVN revision numbers were found above:
  r32590 --> open-mpi/ompi@36b315db2d

The following Trac tickets were found above:
  Ticket 4868 --> https://svn.open-mpi.org/trac/ompi/ticket/4868
2014-08-25 04:41:56 +00:00
Jeff Squyres
36b315db2d oshmem configury: tighten up the pshmem checks
Make the checks for macro weak symbols be equivalent to the checks for
weak symbols.

Also fix up several OSHMEM configure checks:

* fix an errant AC_MSG_REQUEST
* don't check for profiling ability during configure options checks.
  Instead, defer it to later, when we have weak symbol check results.
* don't directly call _FOO macros from the top level
* make setting up OSHMEM profiling similar to MPI profiling: create
  OSHMEM_SETUP_PROFILING macro
* cache the results of checking for macro weak symbols (for parity
  with the weak symbol check -- although we should really
  revisit/audit the whole cache-checking scheme throughout all m4
  code; it may well be inconsistently used)
* add some more [] m4 quoting, even in the original C weak symbols test
* style: fix some whitespace errors

Refs trac:4868

This commit was SVN r32590.

The following Trac tickets were found above:
  Ticket 4868 --> https://svn.open-mpi.org/trac/ompi/ticket/4868
2014-08-23 10:50:14 +00:00
Ralph Castain
aec5cd08bd Per the PMIx RFC:
WHAT:    Merge the PMIx branch into the devel repo, creating a new
               OPAL “lmix” framework to abstract PMI support for all RTEs.
               Replace the ORTE daemon-level collectives with a new PMIx
               server and update the ORTE grpcomm framework to support
               server-to-server collectives

WHY:      We’ve had problems dealing with variations in PMI implementations,
               and need to extend the existing PMI definitions to meet exascale
               requirements.

WHEN:   Mon, Aug 25

WHERE:  https://github.com/rhc54/ompi-svn-mirror.git

Several community members have been working on a refactoring of the current PMI support within OMPI. Although the APIs are common, Slurm and Cray implement a different range of capabilities, and package them differently. For example, Cray provides an integrated PMI-1/2 library, while Slurm separates the two and requires the user to specify the one to be used at runtime. In addition, several bugs in the Slurm implementations have caused problems requiring extra coding.

All this has led to a slew of #if’s in the PMI code and bugs when the corner-case logic for one implementation accidentally traps the other. Extending this support to other implementations would have increased this complexity to an unacceptable level.

Accordingly, we have:

* created a new OPAL “pmix” framework to abstract the PMI support, with separate components for Cray, Slurm PMI-1, and Slurm PMI-2 implementations.

* Replaced the current ORTE grpcomm daemon-based collective operation with an integrated PMIx server, and updated the grpcomm APIs to provide more flexible, multi-algorithm support for collective operations. At this time, only the xcast and allgather operations are supported.

* Replaced the current global collective id with a signature based on the names of the participating procs. The allows an unlimited number of collectives to be executed by any group of processes, subject to the requirement that only one collective can be active at a time for a unique combination of procs. Note that a proc can be involved in any number of simultaneous collectives - it is the specific combination of procs that is subject to the constraint

* removed the prior OMPI/OPAL modex code

* added new macros for executing modex send/recv to simplify use of the new APIs. The send macros allow the caller to specify whether or not the BTL supports async modex operations - if so, then the non-blocking “fence” operation is used, if the active PMIx component supports it. Otherwise, the default is a full blocking modex exchange as we currently perform.

* retained the current flag that directs us to use a blocking fence operation, but only to retrieve data upon demand

This commit was SVN r32570.
2014-08-21 18:56:47 +00:00
Gilles Gouaillardet
2df0ede613 configury: disable pshmem if buggy compiler is detected
PGI compilers older that 2013 have a buggy preprocessor
that does not support pragma defined in a macro called
itself called from an other macro

cmr=v1.8.2:reviewer=jsquyres

This commit was SVN r32551.
2014-08-19 05:52:34 +00:00
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