This macro is a wrapper around OMPI_SETUP_PACKAGE, and provides common
functionality that I found myself doing in multiple components.
Someone may want to convince me that we should just wrap this all in
OMPI_SETUP_PACKAGE, but I did it first as a separate macro because so
many other places are already using OMPI_SETUP_PACKAGE and I didn't
want to update all of them.
This macro does the following:
* Assumes that this component should be built by default if all
headers and libraries can be found
* Adds --with-<name> and --with-<name>-libdir options to configure
* Sanity checks directory names given to the above options (i.e., look
for a token file in each, but only if the directory argument is
given)
* Assumes that if --with-<name> is supplied and we can't build the
component, it's a fatal error.
* Assumes that if --with-<name> is NOT supplied and we can't build the
component, it's NOT a fatal error.
* Run OMPI_CHECK_PACKAGE (check for the specific presence of header
files and/or libraries) to determine if the package is available
* Set <framework>_<component>_WRAPPER_EXTRA_LDFLAGS
* Set <framework>_<component>_WRAPPER_EXTRA_LIBS
* Set and AC_SUBST <framework>_<component>_CPPFLAGS
* Set and AC_SUBST <framework>_<component>_CFLAGS
* Set and AC_SUBST <framework>_<component>_LDFLAGS
* Set and AC_SUBST <framework>_<component>_LIBS
This commit was SVN r20746.
However, there is a bug in the config/ompi_check_pcie.m4 that I found this morning which causes those components to always attempt to build. This fixes it so the trunk will build again.
This commit was SVN r20737.
* Significantly improve the check to see if REAL*16 === the back-end
C type (i.e., not just in size, but also in representation)
* Add a check to see if Intel compiler's _Quad type === REAL*16
* Ensure that on the Sun SPARC with the Sun compilers, we get long
double === REAL*16
This commit was SVN r20513.
The following Trac tickets were found above:
Ticket 1603 --> https://svn.open-mpi.org/trac/ompi/ticket/1603
explicitly specified. This bug has escaped for a long time because
OMPI_CHECK_WITHDIR wasn't working properly until recently (r20289);
the fact that the wrong header file was specified was irrelevant
because OMPI_CHECK_WITHDIR was broken and the wrong header filename
was effectively ignored.
This commit was SVN r20301.
The following SVN revision numbers were found above:
r20289 --> open-mpi/ompi@ebaf6d5e61
versions of config.guess and config.sub right now due to some git
vulnerability. So make the script a bit more resilient to ensure that
what we get from ftp.gnu.org is actually runnable.
This commit was SVN r20300.
MCA m4 macro in configure.params (or, more likely, you copied the
configure.params file from another component and forgot to change the
m4 macro name in the file) instead of just aborting with a cryptic
message.
This commit was SVN r20181.
and components from the home directory for platforms that are bad at
reading in files from home directory at scale (like Red Storm)
This commit was SVN r20069.
If someone specifies a directory for a config option, then we should respect that designation and error out if the directory isn't found. Implemented first for the --with-openib options.
This commit was SVN r20045.
* Use the (undocumented) `solaris_use_stlport4` libtool variable to
turn off any Cstd/stlport4 linkage. This allows Open MPI to be C++
STL agnostic.
* Patch `config/libtool.m4` in autogen.sh for a bug in Libtool's
detection of the Sun Studio Fortran compiler. See the below e-mail
thread for more details:
http://www.open-mpi.org/community/lists/devel/2008/11/4920.php
This commit was SVN r20036.
* Add OMPI_F77_CHECK_REAL16_C_EQUV test whether REAL*16 is bit
equivalent to long double. AC_DEFINE OMPI_REAL16_MATCHES_C with
result (0 or 1).
* Update ompi_info to only show real16 support if
OMPI_REAL16_MATCHES_C is 1.
* Update DDT to only support REAL16 and COMPLEX32 if
1==OMPI_REAL16_MATCHES_C.
* MPI Op function pointer tabls will have NULL for the REAL16 and
COMPLEX32 entries if 0==OMPI_REAL16_MATCHES_C.
* Slightly cleaned up OMPI_F77_GET_ALIGNMENT and OMPI_F77_CHECK m4
tests (use OMPI_VAR_SCOPE_PUSH/POP).
This commit was SVN r19948.
The following Trac tickets were found above:
Ticket 1603 --> https://svn.open-mpi.org/trac/ompi/ticket/1603
<infiniband/driver.h> cannot be included because it will fail to
compile. So per advice from Roland, in that case, just put manually
include the one ibv_*() prototype that we need. Use an undocumented
feature of AC_CHECK_HEADERS to check for <infiniband/driver.h> that I
was told on the autoconf mailing list (see the comment for more
details).
This commit was SVN r19857.
svn merge -r 19823:19821 https://svn.open-mpi.org/svn/ompi/trunk ./
I copied the config directory in another location, and the original
.svn directory was replaced by the Open MPI one ... As a result my
first commit, applied the changes on the Open MPI trunk instead of
the other project.
This commit was SVN r19824.
(this was missed in #1585). Also, fix a long-standing problem that
the F90 wrapper compilers were using the F77 wrapper compiler flags.
This commit was SVN r19819.
compilers as well. Not doing this was causing problems with
MPI::ERRORS_THROW_EXCEPTIONS with gcc in 32 bit (but not 64 bit!).
* Ensure that the C and Fortran compilers actually like the C++
exceptions flags. If not, currently just abort. Let's see if
anyone complains about this -- I doubt they will because a) C++
exception support is not enabled by default, and b) I think C++
exceptions really only make sense within the same compiler family.
This commit was SVN r19783.
Commit from a long-standing Mercurial tree that ended up incorporating a lot of things:
* A few fixes for CPC interface changes in all the CPCs
* Attempts (but not yet finished) to fix shutdown problems in the IB CM CPC
* #1319: add CTS support (i.e., initiator guarantees to send first message; automatically activated for iWARP over the RDMA CM CPC)
* Some variable and function renamings to make this be generic (e.g., alloc_credit_frag became alloc_control_frag)
* CPCs no longer post receive buffers; they only post a single receive buffer for the CTS if they use CTS. Instead, the main BTL now posts the main sets of receive buffers.
* CPCs allocate a CTS buffer only if they're about to make a connection
* RDMA CM improvements:
* Use threaded mode openib fd monitoring to wait for for RDMA CM events
* Synchronize endpoint finalization and disconnection between main thread and service thread to avoid/fix some race conditions
* Converted several structs to be OBJs so that we can use reference counting to know when to invoke destructors
* Make some new OBJ's have opal_list_item_t's as their base, thereby eliminating the need for the local list_item_t type
* Renamed many variables to be internally consistent
* Centralize the decision in an inline function as to whether this process or the remote process is supposed to be the initiator
* Add oodles of OPAL_OUTPUT statements for debugging (hard-wired to output stream -1; to be activated by developers if they want/need them)
* Use rdma_create_qp() instead of ibv_create_qp()
* openib fd monitoring improvements:
* Renamed a bunch of functions and variables to be a little more obvious as to their true function
* Use pipes to communicate between main thread and service thread
* Add ability for main thread to invoke a function back on the service thread
* Ensure to set initiator_depth and responder_resources properly, but putting max_qp_rd_ataom and ma_qp_init_rd_atom in the modex (see rdma_connect(3))
* Ensure to set the source IP address in rdma_resolve() to ensure that we select the correct OpenFabrics source port
* Make new MCA param: openib_btl_connect_rdmacm_resolve_timeout
* Other improvements:
* btl_openib_device_type MCA param: can be "iw" or "ib" or "all" (or "infiniband" or "iwarp")
* Somewhat improved error handling
* Bunches of spelling fixes in comments, VERBOSE, and OUTPUT statements
* Oodles of little coding style fixes
* Changed shutdown ordering of btl; the device is now an OBJ with ref counting for destruction
* Added some more show_help error messages
* Change configury to only build IBCM / RDMACM if we have threads (because we need a progress thread)
This commit was SVN r19686.
The following Trac tickets were found above:
Ticket 1210 --> https://svn.open-mpi.org/trac/ompi/ticket/1210
(related to the presence of posix threads and ptmalloc2) is now a
little outdated: since we don't build ptmalloc2 as part of libopal
anymore, the openib BTL's requirements are not directly tied to
ptmalloc2's anymore. Specifically, I altered the test to:
1. At compile time, if no threads are found, the ptmalloc2 component
is going to be built, '''and the ptmalloc2 component is going to be
inside libopal,''' then refuse to build the openib BTL.
1. At run time, if no threads were available at compile time and the
ptmalloc2 component is part of the process, then refuse to use the
openib BTL.
Fixes trac:1537.
This commit was SVN r19652.
The following Trac tickets were found above:
Ticket 1537 --> https://svn.open-mpi.org/trac/ompi/ticket/1537
versions, dates and build names.
Fixes trac:1387
Big thanks to Jeff and Brian for help and oversight.
This commit was SVN r19120.
The following Trac tickets were found above:
Ticket 1387 --> https://svn.open-mpi.org/trac/ompi/ticket/1387
Update the ESS API so we can update the stored arch's should the modex include that info. Update ompi/proc to check/set the arch for remote procs, and add that function call to mpi_init right after the modex is done.
Setup to allow other grpcomm modules to decide whether or not to add the arch to the modex, and to detect if other entries have been made. If not, then the modex can just fall through. Begin setting up some logic in the "basic" module to handle different arch situations.
For now, default to the "bad" module so we will work in all situations, even though we may be sending around more info than we really require.
This fixes ticket #1340
This commit was SVN r18673.
Some minor changes to help facilitate debugger support so that both mpirun and yod can operate with it. Still to be completed.
This commit was SVN r18664.
is still to use the C based wrapper compilers (which have many more features
and are more well tested). The Perl compilers are enabled with the option
--enable-script-wrapper-compilers, which also ignores the option
--disable-binaries (ie --enable-script-wrapper-compilers --disable-binaries
will result in perl-based wrapper compilers being installed, but no other
binaries being installed).
This commit was SVN r18655.
Reviewed by Jeff Squyres
This change fixes trac:1316.
This commit was SVN r18548.
The following Trac tickets were found above:
Ticket 1316 --> https://svn.open-mpi.org/trac/ompi/ticket/1316
time, 27 May 2008 -- not web archived as of this commit), do the
following:
* move libtoolize earlier in the process
* remove most of acinclude.m4; instead, use "aclocal -I config" at
the top-level to have it automatically pull in any relevant .m4
file
* add patch for ifort shared library support for LT 2.2.4
(http://lists.gnu.org/archive/html/bug-libtool/2008-05/msg00049.html);
will likely be unnecessary in future LT versions
This commit was SVN r18515.
to allow explicit grouping of hot functions into similar code
sections upon link-time. Should decrease TLB misses (iff the code-
section is really too large)...
Candidates for __opal_attribute_hot__ are MPI_Isend MPI_Irecv,
MPI_Wait, MPI_Waitall
Candidates for __opal_attribute_cold__ are MPI_Init, MPI_Finalize and
MPI_Abort...
This commit was SVN r18421.
compiler warnings starting with -Wno- to recognize (if there are no
other warnings.
Try it with Your favorite warning, such as -Wno-britney will not
fail, while it will be recognized as faulty, if You also pass on with
-Wno-britney -Wspears....
This commit was SVN r18070.
Greatly reduce the number of "foo" -> "opal_foo" symbol renames in the
libevent source, and instead greatly expand the event_rename.h file
that uses preprocessor macros to make all public symbols be
"opal_foo".
This commit was SVN r17923.
Some MPI C interface files saw some spacing changes to conform to the coding standards of Open MPI.
Changed MPI C interface files to use {{{OPAL_CR_ENTER_LIBRARY()}}} and {{{OPAL_CR_EXIT_LIBRARY()}}} instead of just {{{OPAL_CR_TEST_CHECKPOINT_READY()}}}. This will allow the checkpoint/restart system more flexibility in how it is to behave.
Fixed the configure check for {{{--enable-ft-thread}}} so it has a know dependance on {{{--enable-mpi-thread}}} (and/or {{{--enable-progress-thread}}}).
Added a line for Checkpoint/Restart support to {{{ompi_info}}}.
Added some options to choose at runtime whether or not to use the checkpoint polling thread. By default, if the user asked for it to be compiled in, then it is used. But some users will want the ability to toggle its use at runtime.
There are still some places for improvement, but the feature works correctly. As always with Checkpoint/Restart, it is compiled out unless explicitly asked for at configure time. Further, if it was configured in, then it is not used unless explicitly asked for by the user at runtime.
This commit was SVN r17516.
* Include all the stuff that is necessary for running autogen.sh in a
distribution tarball.
* Remove from config/Makefile.am's EXTRA_DIST that which is
automatically included in the tarball in recent versions of
Automake (i.e., all the m4 files that are acincluded).
* Make ROMIO's configure script look for something that is actually
included in the tarball.
Fixes trac:1025.
This commit was SVN r17505.
The following Trac tickets were found above:
Ticket 1025 --> https://svn.open-mpi.org/trac/ompi/ticket/1025
for dynamic selection of cpc methods based on what is available. It
also allows for inclusion/exclusions of methods. It even futher allows
for modifying the priorities of certain cpc methods to better determine
the optimal cpc method.
This patch also contains XRC compile time disablement (per Jeff's
patch).
At a high level, the cpc selections works by walking through each cpc
and allowing it to test to see if it is permissable to run on this
mpirun. It returns a priority if it is permissable or a -1 if not. All
of the cpc names and priorities are rolled into a string. This string
is then encapsulated in a message and passed around all the ompi
processes. Once received and unpacked, the list received is compared
to a local copy of the list. The connection method is chosen by
comparing the lists passed around to all nodes via modex with the list
generated locally. Any non-negative number is a potentially valid
connection method. The method below of determining the optimal
connection method is to take the cross-section of the two lists. The
highest single value (and the other side being non-negative) is selected
as the cpc method.
svn merge -r 16948:17128 https://svn.open-mpi.org/svn/ompi/tmp-public/openib-cpc/ .
This commit was SVN r17138.
<prog>`}}} in `configure`. It is preferable to simply using {{{`which
<prog>`}}} because backticks (`) (aka backquotes) invoke a sub-shell
which may source a "noisy" `~/.whatever` file, and we do not want the
error messages to be part of the assignment in {{{foo=`which
<prog>`}}}.
This commit was SVN r16955.