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

1081 Коммитов

Автор SHA1 Сообщение Дата
Ralph Castain
6287d43c47 If someone specifically asks for knem support and we can't do it, then we really should abort. 2014-12-01 09:47:47 -08:00
Gilles Gouaillardet
9d9d05b22d configury: fix opal_config_pthreads when -lrt is set
the test program was successful without -pthread if -lrt is used.
-pthread *is* required in order to correctly handle
the pthread_atfork function.
2014-12-01 19:02:31 +09:00
Ralph Castain
f4aa94dddf Keep trying changes to lsf configury 2014-11-30 11:50:30 -08:00
George Bosilca
6772b07792 Only use RDTSCP if supported by the processor.
Conflicts:
	opal/include/opal/sys/amd64/timer.h
2014-11-27 11:29:47 -05:00
Nathan Hjelm
1b564f62bd Revert "Merge pull request #275 from hjelmn/btlmod"
This reverts commit ccaecf0fd6, reversing
changes made to 6a19bf85dd.
2014-11-19 23:22:43 -07:00
Nathan Hjelm
bf7daac388 btl/openib: add atomic operation support 2014-11-19 11:33:04 -07:00
Ralph Castain
0338bc80b7 Add the LSF libraries as required for static build 2014-11-19 09:38:49 -08:00
Jeff Squyres
225c684ccc opal_check_portals.m4: remove this unused file
It looks like OPAL_CHECK_PORTALS is not used anywhere; it looks like
it has been completely replaced by opal_check_portals4.m4
(OPAL_CHECK_PORTALS4).
2014-11-16 12:44:14 -08:00
Howard Pritchard
07263889d5 Delete old gni config file
Delete a legacy ompi_check_gni m4 file.  No longer used.
2014-11-04 16:20:35 -07:00
Howard Pritchard
67b0f8de7f separate out cray pmi config
The mixing of the Slurm PMI and Cray PMI configure was getting
messy and dangerous - developers working on Slurm PMI often don't
have access to Cray PMI, etc.

This mod pulls out the Cray PMI configure into a separate m4 file.
Cray pmi is now configured as follows:

1) on Cray CLE 5 and higher, Cray PMI is auto detected.  pkg-config
   is used to resolve the necessary CPP flags, link flags and libs,
   etc.  Nothing needs to be added to the configure line to pick up
   Cray PMI.

2) on legacy Cray CLE 4 systems with PMI 4.X, Cray PMI is also
   auto detected.

3) on legacy Cray CLE 4 systems with PMI 5.X Cray PMI can't be auto-detected
   owing to changes in the PMI pkg-config file which result in pkg-config
   returning an error owing to a dependency of PMI on newer versions of ALPS
   installs that are not present on CLE 4. So, for those falling in to this
   situation, the --with-cray-pmi=(DIR) method needs to be used.

   DIR specifies the Cray PMI install directory.  The configure file looks
   for required alps libraries first in /usr/lib/alps, then in
   /opt/cray/xe-sysroot/default/usr/lib/alps.
2014-11-04 15:25:25 -07:00
Jeff Squyres
6164dc4960 fortran: fix linking with Fortran sentinel values
In OMPI 1.8 and 1.8.1, we didn't allow gfortran to use the ignore-TKR
style "mpi" Fortran module (which is written in Fortran).  Instead,
gfortran used the TKR style "mpi" module, which is written in C.

In OMPI 1.8.2, we removed the gfortran restriction (for suitably
modern gfortran -- i.e., >= 4.9).  This allowed gfortran to use the
ignore-TKR style "mpi" module, but exposed a bug where MPI Fortran
sentinel values wouldn't be linked properly on OS X.  The solution is
to use ```-Wl,-flat_namespace``` (see the OS X ld(1) man page for
details) when both building the libraries and in the wrapper
compilers.

Thanks to Github user yafshar for rasising the issue.

Fixes #259.
2014-11-04 14:30:28 -05:00
Ralph Castain
c2454e7fbe Require -D_REENTRANT flag for both CFLAGS and CPPFLAGS if building under Solaris 2014-11-03 21:14:02 -08:00
Jeff Squyres
8c3fb41eb7 opal_check_ident.m4: make the test match what we do in the code base
Per #257, the configure test used to check:

```c
```

But out in the code base, we actually do this:

```c
// ...
```

This commit updates the configure test to ```#define``` a string and
then use that with the various ident strategies.

Fixes #257
2014-11-03 12:17:19 -08:00
Jeff Squyres
81dafbdba1 opal_check_pmi.m4: trivial whitespace cleanup; no code changes 2014-11-01 04:02:23 -07:00
Jeff Squyres
b7e64757be pkg.m4: "Open MPI", not "OpenMPI" :-) 2014-11-01 03:52:41 -07:00
Howard Pritchard
9e382d634d add new function to pkg.m4 to help static linking
There is a continued interest in being able to do static
linking of executables.  When using pkg-config to determine
linking requirements, the default behavior is to only
specify libraries required for dynamic linking.

In many cases, it suffices even for static linking to
use

pkg-config --libs package

to obtain the linkage string required for ld.  However, for
libraries that have dependencies on non-standard libraries,
this may not be the case.  The cray PMI library is such a case.

On a Cray CLE 5.X system, for example

pkg-config --libs cray-pmi

returns a string like

-L/opt/cray/pmi/5.0.2-1.0000.9906.117.2.ari/lib64 -lpmi

whereas

pkgconfig --static --libs cray-pmi

returns a string (modified for git commits) like

-L/opt/cray/pmi/5.0.2-1.0000.9906.117.2.ari/lib64
-L/opt/cray/ugni/5.0-1.0000.8563.255.10.ari/lib64
-L/opt/cray/alps/6.0.0-2.0000.8544.102.21.ari/lib64
-L/opt/cray/wlm_detect/1.0-1.0000.48964.8.2.ari/lib64
-L/opt/cray/rca/1.0.0-2.0000.49383.133.60.ari/lib64
-lpmi -lpthread -lalpslli -lpthread -lwlm_detect
-lugni -lpthread -lalpsutil -lpthread -lrca

Unfortunately the pkg.m4 does not contain a function for adding
the --static option to PKG_CHECK_MODULES. This commit defines
a new function, PKG_CHECK_MODULES_STATIC, which in addition to
defining the $1_CFLAGS and $1_LIBS variables defined by PKG_CHECK_MODULES,
also defines a $1_STATIC_LIBS.
2014-10-31 14:17:23 -06:00
Jeff Squyres
491830b7b5 configury: remove deprecated --with-openib* configure options
These were deprecated in the v1.7/v1.8 series; they are being removed
for the v1.9 series.
2014-10-29 06:02:33 -07:00
Jeff Squyres
aefe3f2edd configury: fixes for OPAL|ORTE_SET_LIB_PREFIX
We must also set the static library filenames properly (i.e., obey the
$FRAMEWORK_LIB_PREFIX that was set).  Hence, set the prefixes earlier
in configure.ac, and update OPAL_MCA to set the static library names
properly.
2014-10-28 17:13:14 -07:00
Ralph Castain
4f0c1ae8d9 Continue cleanup of the PMI config code. Eliminate the multiple calls to check for pmi1 and pmi2 - we must check it only once to get the pmix components to build only in the correct situations. Ensure we set the wrapper flags so we handle static builds correctly. 2014-10-27 20:37:33 -07:00
Ralph Castain
aa207ad2f3 Per Gilles, we really should set the reentrant flags when building Java support 2014-10-24 10:20:42 -07:00
Gilles Gouaillardet
8da6c14e06 configury: fix a typo in config/opal_check_pmi.m4 2014-10-24 13:31:36 +09:00
Ralph Castain
75d8a7f25b Refactor the PMI configure check logic to be a lot cleaner and simpler. 2014-10-23 18:35:18 -07:00
Ralph Castain
894acb0aa8 configury: new OPAL_SET_MCA_PREFIX/ORTE_SET_MCA_CMD_LINE_ID macros
These two macros set the MCA prefix and MCA cmd line id,
   respectively.  Specifically, MCA parameters will be named
   PREFIX<foo> in the environment, and the cmd line will use
   -ID foo bar.

   These macros must be called during configure.ac and a value
   supplied. In the case of Open MPI, the values given are
   PREFIX=OMPI_MCA_ and ID=mca.

   Other projects (such as ORCM) will call these macros with
   their own unique values.  For example, ORCM uses PREFIX=ORCM_MCA_
   and ID=omca

   This scheme is necessary to allow running Open MPI applications under
   systems that use their own versions of ORTE and OPAL.  For example,
   when running OMPI applications under ORCM, we need the MCA params passed
   to the ORCM daemons to be separated from those recognized by the OMPI application.
2014-10-22 18:57:40 -07:00
Jeff Squyres
c22e1ae33b configury: new OPAL_SET_LIB_PREFIX/ORTE_SET_LIB_PREFIX macros
These two macros set the prefix for the OPAL and ORTE libraries,
respectively.  Specifically, the OPAL library will be named
libPREFIXopen-pal.la and the ORTE library will be named
libPREFIXopen-rte.la.

These macros must be called, even if the prefix argument is empty.

The intent is that Open MPI will call these macros with an empty
prefix, but other projects (such as ORCM) will call these macros with
a non-empty prefix.  For example, ORCM libraries can be named
liborcm-open-pal.la and liborcm-open-rte.la.

This scheme is necessary to allow running Open MPI applications under
systems that use their own versions of ORTE and OPAL.  For example,
when running MPI applications under ORTE, if the ORTE and OPAL
libraries between OMPI and ORCM are not identical (which, because they
are released at different times, are likely to be different), we need
to ensure that the OMPI applications link against their ORTE and OPAL
libraries, but the ORCM executables link against their ORTE and OPAL
libraries.
2014-10-22 10:32:19 -07:00
Artem Polyakov
ce7102cb54 One more fix for libltdl configuration.
Remove unneeded "-I" statements from conftest compilation command.
2014-10-21 21:06:28 +07:00
Nathan Hjelm
13643f5b6e btl/vader: improved single-copy support
This commit makes the folowing changes:

 - Add support for the knem single-copy mechanism. Initially vader will only
   support the synchronous copy mode. Asynchronous copy support may be added
   int the future.

 - Improve Linux cross memory attach (CMA) when using restrictive ptrace
   settings. This will allow Open MPI to use CMA without modifying the system
   settings to support ptrace attach (see /etc/sysctl.d/10-ptrace.conf).

 - Allow runtime selection of the single copy mechanism. The default behavior
   is to use the best available. The priority list of single-copy mehanisms is
   as follows: xpmem, cma, and knem.

 - Allow disabling support for kernel-assisted single copy.

 - Some tuning and bug fixes.
2014-10-20 11:44:52 -06:00
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