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

55 Коммитов

Автор SHA1 Сообщение Дата
Gilles Gouaillardet
299a6f8d7c configury: auto-detect armhf and armel architectures on Debian
Thanks Alastair McKinstry for the patch

Fixes open-mpi/ompi#2514

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

Fixes open-mpi/ompi#2515

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

Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2016-12-06 14:49:37 +09:00
Gilles Gouaillardet
5bb3efdc74 configury: check the existence of perl
perl is required by ompi/mpi/man/make_manpage.pl, that is even used in opal.
so simply aborts at configure time if perl is not available

Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2016-12-05 10:31:51 +09:00
Nathan Hjelm
795833bfac config: re-enable GCC inline ASM check for PGI
We disabled this support a long time ago. Probably safe to assume
whatever bug we were working around no longer exists.

Closes open-mpi/ompi#2044

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2016-09-02 12:44:08 -06:00
Nathan Hjelm
109389dce2 Merge pull request #1634 from hjelmn/cma
cma: add support for MIPS and ARM
2016-06-11 09:20:28 -06:00
Nathan Hjelm
0084ad0d1b opal: add armv8 support
This commit adds assembly support for aarch64.

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

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

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

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

* atomic: add support for transactional memory

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

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2016-06-01 21:23:47 -04:00
Nathan Hjelm
b2f33bc076 opal/asm: fall back on inline asm atomics in some cases
This commit changes the asm configure logic to fall back on inline asm
atomics on systems that 1) have __sync atomics, 2) do not have 64-bit
__sync atomics, and 3) support 64-bit asm.

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

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

Fixes #1487

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2016-04-12 10:02:39 -06:00
Nathan Hjelm
e1cace0b02 configure: only enable sync builtin atomics if they link
This commit fixes the check for sync builtin atomics.
AC_COMPILE_IFELSE is insufficient to check for the builtins. Need to
use AC_LINK_IFELSE.

Fixes open-mpi/ompi#1487

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2016-03-29 16:57:15 -06:00
Nathan Hjelm
664ecc8f84 configure: re-enable built-in atomic support
This commit removes an erroneous else statement from the OSX built-in
atomics check. The else branch sets the built-in atomics support to
BUILTIN_NO if either opal_cv_asm_builtin is not BUILTIN_NO or OSX
atomics support is disabled.

Signed-off-by: Nathan Hjelm <hjelmn@me.com>
2016-03-16 20:46:09 -06:00
Gilles Gouaillardet
fec973efda configury: test portability
replace test ... -o ... with test ... || test ...
and test ... -a ... with test ... && test ...
2015-12-28 13:58:45 +09:00
bosilca
984b35b860 Merge pull request #633 from bosilca/topic/enable_atomics
Enable by default the _sync version of atomic operations on OS X.
2015-09-28 12:03:08 -04:00
Nathan Hjelm
551c2ea480 opal/asm: remove alpha support
This commit removes alpha asm support. No current processor
manufacturer makes chips compatible with DEC alpha and no
participating organization has alpha processors. This makes it
difficult to support alpha via assembly.

This doesn't mean Open MPI will no longer build/work on alpha
processors. It should continue to work with gcc's builtin sync
atomics.

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2015-08-18 09:11:38 -06:00
George Bosilca
277269b641 Have the __sync atomics the default. Remove spurious checking and
result messages
2015-08-17 18:08:25 -04:00
George Bosilca
5aadf39545 Clean-up the OS X selection logic. 2015-08-17 18:08:16 -04:00
George Bosilca
3eaefd790c Enable by default the _sync version of atomic operations on OS X. 2015-08-17 18:08:03 -04:00
Ralph Castain
869041f770 Purge whitespace from the repo 2015-06-23 20:59:57 -07:00
Jeff Squyres
7d870c8b9e Merge pull request #550 from jsquyres/pr/turn-down-for-WHAT
RFC: opal_config_asm.m4: enable inline assembly on little-endian POWER
2015-04-25 06:25:11 -04:00
Jeff Squyres
0afda878a2 opal_config_asm: remove support for OS X Leopard
We haven't supported OS X Leopard (10.5) for a long time.  So remove
this dead code.
2015-04-24 03:43:56 -07:00
Jeff Squyres
f7b8c11027 opal_config_asm.m4: enable inline assembly on little endian POWER
Suggested by Paul Hargrove,
http://www.open-mpi.org/community/lists/devel/2015/04/17323.php,
amended by Nysal Jan for 32 bit, too.
2015-04-23 05:43:24 -07:00
Nathan Hjelm
81502fafa8 Merge pull request #379 from hjelmn/remove_enable_smp_locks
Per-RFC: remove the --disable-smp-locks configure option
2015-04-15 10:02:23 -06:00
Nathan Hjelm
ac82d1a6be Per-RFC: remove the --disable-smp-locks configure option
Use of this configuration option can cause crashing, hanging, and
(worse) incorrect results when btl/sm, btl/scif, or btl/vader are
in use. We discussed this at the January 2015 developers meeting
and it was decided to remove the option entirely. This commit does
just that. All usage of OPAL_WANT_SMP_LOCKS has been removed.
2015-03-04 11:31:43 -07:00
Gilles Gouaillardet
b42e344129 configury: force OPAL_HAVE_CMPXCHG16B=0 on buggy compilers
per several reports on the devel ML, the opal_lifo test hangs
with intel icc 14.0.0.080 (aka 2013sp1) and intel icc 14.0.1.106 (aka 2013sp1u1).
/* older and more recents compilers work fine
 * buggy compilers work also fine but only with -O0 */
2015-02-05 13:24:12 +09:00
Gilles Gouaillardet
b4c333fe9b config/opal_*: portability fixes
convert "test ... -o" to "test ... ||"
convert "test ... -a" to "test ... &&"
2015-02-03 15:19:22 +09:00
Nathan Hjelm
79d8f6e54d Check if the processor supports compare-and-exchange on 128-bit values.
Before this commit we checked if the compiler supported compare-and-exchange
on 128-bit values. This turned out to be insufficient. This commit strengthens
the check to see if the processor supports the instruction (or built-in). This
check will not work when cross-compiling (will always disable the 128-bit
atomic) so overrides have been added for this case.
2014-12-17 23:34:12 -07:00
Nathan Hjelm
ccbb869274 Use AC_TRY_LINK not AC_TRY_COMPILE when testing for __sync_bool_compare_and_swap on 128-bit values 2014-12-09 18:56:21 -07:00
Nathan Hjelm
0efe6baf64 Add check for -mcx16 flag for 128-bit compare and swap
Some versions of gcc require this flag to be set before the __sync
builtin atomic compare and swap will support 128-bit values. If the
flag is required this check adds the flag to the CFLAGS.
2014-12-04 14:25:53 -07:00
Nathan Hjelm
fe787512d8 Add support for __sync builtin compare and swap on 128-bit values 2014-12-04 09:23:51 -07:00
Nathan Hjelm
b2b58b31a2 Add support for 128-bit compare and swap on x86_64 when available.
A 128-bit compare-and-swap will enable a better atomic lifo implementation
that uses the pointer + counter method to avoid ABA issues. This commit
adds configury to check for the instruction (cmpxchg16b) and adds an
implementation that uses the __int128 type available in C99.
2014-12-04 08:53:28 -07: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
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
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
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
883fce4cba Per RFC, continue the build system renaming
This commit was SVN r31662.
2014-05-06 20:30:37 +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
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
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
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
a4b6fb241f Remove all remaining vestiges of the Windows integration
This commit was SVN r28137.
2013-02-28 17:31:47 +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
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