* 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
1. completely and cleanly separates responsibilities between the HNP, orted, and tool components.
2. removes all wireup messaging during launch and shutdown.
3. maintains flow control for stdin to avoid large-scale consumption of memory by orteds when large input files are forwarded. This is done using an xon/xoff protocol.
4. enables specification of stdin recipients on the mpirun cmd line. Allowed options include rank, "all", or "none". Default is rank 0.
5. creates a new MPI_Info key "ompi_stdin_target" that supports the above options for child jobs. Default is "none".
6. adds a new tool "orte-iof" that can connect to a running mpirun and display the output. Cmd line options allow selection of any combination of stdout, stderr, and stddiag. Default is stdout.
7. adds a new mpirun and orte-iof cmd line option "tag-output" that will tag each line of output with process name and stream ident. For example, "[1,0]<stdout>this is output"
This is not intended for the 1.3 release as it is a major change requiring considerable soak time.
This commit was SVN r19767.
This fixes trac:1477.
Help provided by Jeff and Terry.
This commit was SVN r19533.
The following Trac tickets were found above:
Ticket 1477 --> https://svn.open-mpi.org/trac/ompi/ticket/1477
Don't include it in LIBS if it doesn't actually contain the symboles we're
looking for. Darwin's won't, LInux's will, so things will work out right.
This commit was SVN r19283.
* Make the results of the top-level configure.ac test for
_SC_NPROCESSORS_ONLN be cached so that we can check for it
elsewhere (e.g., opal/mca/paffinity/posix/configure.m4)
* Update top-level configure.ac test for _SC_NPROCESSORS_ONLN: stamp
out another AC_TRY_COMPILE
* Ensure paffinity:posix doesn't even try to compile if we don't
have _SC_NPROCESSORS_ONLN
* Minor style updates
This commit was SVN r19118.
but not anything in libc. Which causes an incorrect answer for
AC_CHECK_FUNCS. Work around that by also checking for the
#define.
This commit was SVN r18730.
be the last piece of code that requires compile and link
tests. Therefore, the visibility detection should happens
before or it will fail.
This commit was SVN r17773.
methods (in order of precedence):
1. #pragma ident <ident string> (e.g., Intel and Sun)
1. #ident <ident string> (e.g., GCC)
1. static const char ident[] = <ident string> (all others)
By default, the ident string used is the standard Open MPI version string. Only
the following libraries will get the embedded version strings (e.g., DSOs will
not):
* libmpi.so
* libmpi_cxx.so
* libmpi_f77.so
* libopen-pal.so
* libopen-rte.so
* Added two new configure options:
* `--with-package-name="STRING"` (defaults to "Open MPI username@hostname
Distribution"). `STRING` is displayed by `ompi_info` next to the "Package"
heading.
* `--with-ident-string="STRING"` (defaults to the standard Open MPI version
string - e.g., X.Y.Zr######). `%VERSION%` will expand to the Open MPI
version string if it is supplied to this configure option.
This commit was SVN r16644.
was brought in. This supercedes the GLOBL patch that we had been using
with Libtool 2.1a versions prior to the lt_dladvise code. Autogen
tries to figure out which version you're on, so either will now work with
the trunk.
This commit was SVN r15903.
* General TCP cleanup for OPAL / ORTE
* Simplifying the OOB by moving much of the logic into the RML
* Allowing the OOB RML component to do routing of messages
* Adding a component framework for handling routing tables
* Moving the xcast functionality from the OOB base to its own framework
Includes merge from tmp/bwb-oob-rml-merge revisions:
r15506, r15507, r15508, r15510, r15511, r15512, r15513
This commit was SVN r15528.
The following SVN revisions from the original message are invalid or
inconsistent and therefore were not cross-referenced:
r15506
r15507
r15508
r15510
r15511
r15512
r15513
Cleanup ALL instances of output involving the printing of orte_process_name_t structures using the ORTE_NAME_ARGS macro so that the number of fields and type of data match. Replace those values with a new macro/function pair ORTE_NAME_PRINT that outputs a string (using the new thread safe data capability) so that any future changes to the printing of those structures can be accomplished with a change to a single point.
Note that I could not possibly find outputs that directly print the orte_process_name_t fields, but only dealt with those that used ORTE_NAME_ARGS. Hence, you may still have a few outputs that bark during compilation. Also, I could only verify those that fall within environments I can compile on, so other environments may yield some minor warnings.
This commit was SVN r15517.
It solve the problem with the MPI_Aint alignment that showed up on Solaris
Sparc and on heterogeneous environments when dealing with the data-type description.
The solution is to move the displacement array from the packed array if we
detect that the local architecture required MPI_Aint to be aligned to an
MPI_Aint boundary (which is not the case for x86 architectures if MPI_Aint
is a 64 bits type).
This commit was SVN r15395.
VxWorks. Still some issues remaining, I'm sure.
Refs trac:1010
This commit was SVN r15320.
The following Trac tickets were found above:
Ticket 1010 --> https://svn.open-mpi.org/trac/ompi/ticket/1010
to make checks for MPI-implementations fail in the right way ,-]
- check in configure.ac
- BINARY INCOMPATIBLE change to mpif-common.h
(if implemented the *right* way)
Actually OMPI_F90_CHECK takes two arguments, not three.
- Only have corresponding C-Type, if the opt. Fortran
type is really supported,
Otherwise pass ompi_mpi_unavailable to DECLARE_MPI_SYNONYM_DDT;
- Reviewed by George and Jeff
This commit was SVN r15133.
Changes paffinity interface to use a cpu mask for available/preferred cpus
rather than the current coarse grained paffinity that lets the OS choose
which processor.
Macros for setting and clearing masks are provided.
Solaris and windows changes have not been made. Solaris subdirectory has some
suggested changes - however the relevant man pages for the Solaris 10 APIs
have some ambiguity regarding order in which one create and sets a processor
set. As we did not have access to a solaris 10 machine we could not test to
see the correct way to do the work under solaris.
This commit was SVN r14887.
symbols in them and environ is defined only in the final application
(probably in crt1.o). Apple provides a function for getting at the
environment, so use that instead if it's available.
This commit was SVN r14857.
an issue on Solaris where /usr/bin/grep doesn't understand -q. The
grep that AC_PROG_GREP finds (/usr/xpg4/bin/grep), which is POSIX
compliant and understands -q. Also fix one instance where egrep was
used instead of $EGREP.
This commit was SVN r14829.
* Move ipv6comat.h code into opal_config_bottom.h and change into some
more intelligent testing of structures
* Change opal's if interface to use sockaddr instead of sockaddr_storage,
as the RFCs suggest we do
* Move the networking code in opal that isn't directly related to if
detection into net.h
* Add quicky function to get the port out of either a sockaddr_in
or sockaddr_in6, saving a bunch of code in the oob.
* Update TCP oob and btl with new interface
This commit was SVN r14679.
* Require Autoconf 2.60 or higher and remove some cruft
required for AC 2.59 or the AC 2.59 / AC 2.60 mix
* Remove a bunch of now unnecessary AC_SUBST calls
* Use the libtool-provided variables for the -I and
library to use when compiling against ltdl
Fixes trac:1000
This commit was SVN r14652.
The following Trac tickets were found above:
Ticket 1000 --> https://svn.open-mpi.org/trac/ompi/ticket/1000
via the visibility feature that is provided by some compilers.
Per default this feature is disabled, to enable it you need to
configure with --enable-visibility and obviously you need a compiler
with visibility support. Please refer to the wiki for more information.
https://svn.open-mpi.org/trac/ompi/wiki/Visibility
This commit was SVN r14582.
finally brings in functionality that is already on the 1.2 branch, and
was developed and tested in the v1.2ofed branch (and other places).
Short version of new features:
* Support for ibv_fork_init()
* Automatically fill in the openib BTL bandwidth value by
querying the HCA port
* Installdirs functionality
* Fixes to always use -I in the Fortran wrapper compilers (#924)
* Gleb's mpool updates
* Remove some kruft in btl/openib/configure.m4, therefore
fixing the harmless warnings noted in #665
* Bunches of updates to the Linux RPM spec file
I.e., effectively the same thing that r14411 brought to the v1.2
branch.
Also effectively brought in r14432 and r14433 (some fixes on top of
the original r14411 commit to v1.2). Still need to bring in the moral
equivalent of r14445 after this commit (fixes to installdirs).
This commit was SVN r14449.
The following SVN revision numbers were found above:
r14411 --> open-mpi/ompi@83b31314ae
r14432 --> open-mpi/ompi@a48f160595
r14433 --> open-mpi/ompi@68f346d2bc
r14445 --> open-mpi/ompi@13d366b827
VXWorks, for example). Checked with George before committing this to
ensure that nothing broke on Windows -- he said it was ok.
This commit was SVN r14388.
This merge adds Checkpoint/Restart support to Open MPI. The initial
frameworks and components support a LAM/MPI-like implementation.
This commit follows the risk assessment presented to the Open MPI core
development group on Feb. 22, 2007.
This commit closes trac:158
More details to follow.
This commit was SVN r14051.
The following SVN revisions from the original message are invalid or
inconsistent and therefore were not cross-referenced:
r13912
The following Trac tickets were found above:
Ticket 158 --> https://svn.open-mpi.org/trac/ompi/ticket/158
- mca_base_param_file_prefix
(Default: NULL)
This is the fullname of the "-am" mpirun option. Used to specify a ':'
separated list of AMCA parameter set files.
- mca_base_param_file_path
(Default: $SYSCONFDIR/amca-param-sets/:$CWD)
The path to search for AMCA files with relative paths. A warning will be
printed if the AMCA file cannot be found.
* Added a new function "mca_base_param_recache_files" the re-reads the file
configurations. This is used internally to help bootstrap the MCA system.
* Added a new orterun/mpirun command line option '-am' that aliases for the
mca_base_param_file_prefix MCA parameter
* Exposed the opal_path_access function as it is generally useful in other
places in the code.
* New function "opal_cmd_line_make_opt_mca" which will allow you to append a
new command line option with MCA parameter identifiers to set at the same
time. Previously this could only be done at command line declaration time.
* Added a new directory under the $pkgdatadir named "amca-param-sets" where all
the 'shipped with' Open MPI AMCA parameter sets are placed. This is the first
place to search for AMCA sets with relative paths.
* An example.conf AMCA parameter set file is located in
contrib/amca-param-sets/.
* Jeff Squyres contributed an OpenIB AMCA set for benchmarking.
Note: You will need to autogen with this commit as it adds a configure param.
Sorry :(
This commit was SVN r13867.
- Set ompi-specific autoconf cache-variables
- Implement one function to check for availability of an
attribute with the possibility for a cross-check.
- Do cross-checks for
__attribute__(format)
__attribute__(nonnull)
__attribute__(sentinel)
__attribute__(warn_unused_result)
- Grep the compilers warnings for keywords regarding ignored
attributes.
- Include also the no_instrument_function
This commit was SVN r13556.
Add new function opal_get_num_processors() that will return the number
of processors on the local host. Does the Right thing in POSIX
environments (to include a special case for OS X), and will shortly do
the Right Thing for Windows (this commit includes a change to
configure, so I wanted to get that in before the US workday -- the
Windows code can some shortly because it won't involve configury
changes).
This commit was SVN r13506.
The following Trac tickets were found above:
Ticket 853 --> https://svn.open-mpi.org/trac/ompi/ticket/853
remote nodes. It will also kill off rogue orteds and orterun
processes. The killing of processes is ifdef'ed out for Windows
since I do not know how to do it there. Note that this change
will requite an autogen.
This commit was SVN r13477.
Sorry for the configure change -- hopefully it's early enough in the
morning that it won't affect people... (new approach won't have a
configure change).
Refs trac:739.
This commit was SVN r13080.
The following Trac tickets were found above:
Ticket 739 --> https://svn.open-mpi.org/trac/ompi/ticket/739
been fixed in the 7.0 PGI series, but is unlikely to be fixed in the
6.2 series:
* Add a configure test looking for the bad behavior (the PGI compiler
chokes on C code where structs containing bool's are copied by
value)
* Set OMPI_BOOL_STRUCT_COPY to 1 if it's ok, 0 if it's not (i.e., PGI
6.2 series will have this value set to 0)
* In two places in the code base -- orte-clean and btl_openib_ini.h,
we have a struct that contains a bool that is copied by value. In
these two places, check OMPI_BOOL_STRUCT_COPY and if it's 1, use
the "int" type instead of "bool".
Fixes trac:739
This commit was SVN r13076.
The following Trac tickets were found above:
Ticket 739 --> https://svn.open-mpi.org/trac/ompi/ticket/739
* Have darwin backtrace code return an error when buffer() is
called, since it is not imnplemented
* Print out hostname & pid when giving signal information
* If backtrace_buffer() is implemented, use that instead of
backtrace_print() and prefix stacktrace with the hostname
* Make the signal information printed be more user friendly
* If we're using the backtrace_buffer() code, don't print
the last two functions (which will be show_stackframe()
then backtrace_buffer()) so that users won't keep thinking
the error occurred inside Open MPI (sneaky, yes...)
Refs trac:538
This commit was SVN r12883.
The following Trac tickets were found above:
Ticket 538 --> https://svn.open-mpi.org/trac/ompi/ticket/538
* Check that the C++, Fortran 77, and Objective C comilers emit code
that can link against object files emitted by the C compiler.
Moves some built / run time errors to configure time, which is
nice and should help with the debugging
* Remove unneeded -F option when building the XGrid components,
which started causing problems with LT 2.0.
* Try to use the XGridFoundation library, rather than just seeing
if we can give -framework XGridFoundation. Should make the
test slightly more accurate
* Don't assume XGrid is unavailable on 64 bit platforms, as that
won't be true on Leopard
* Require AM 1.10 or newer if using AC 2.60 or newer, so that
we don't have a split of AC supporting Objective C and AM
not doing so
This commit was SVN r12701.
Add placeholders for the new orte tools. These don't actually do anything yet - in fact, I have set the .ompi_ignore so that you won't compile them (I have set a .ompi_unignore for me). Please let me know if you encounter any trouble with this - the ompi_ignore's should protect everyone.
This commit was SVN r12616.
provide one for the internals of Open MPI. For mpi.h, typedef MPI_Aint
either to ptrdiff_t or whatever we used as ptrdiff_t if that type doesn't
actually exist.
This commit was SVN r12212.
The following SVN revision numbers were found above:
r12146 --> open-mpi/ompi@8852c00c36
8 bytes. Adjust the configure tests to allow for this case.
Refs trac:427
This commit was SVN r11859.
The following Trac tickets were found above:
Ticket 427 --> https://svn.open-mpi.org/trac/ompi/ticket/427
DIST_SUBDIRS in test/Makefile.am
This should fix this nightly tarball builds.
Rolling back part of r11542
This commit was SVN r11553.
The following SVN revision numbers were found above:
r11542 --> open-mpi/ompi@2becfbf650
to cause them to miscompile TCP-related code.
refs trac:276
This commit was SVN r11258.
The following Trac tickets were found above:
Ticket 276 --> https://svn.open-mpi.org/trac/ompi/ticket/276
Other changes:
1. Remove the old xcpu components as they are not functional.
2. Fix a "bug" in orterun whereby we called dump_aborted_procs even when we normally terminated. There is still some kind of bug in this procedure, however, as we appear to be calling the orterun job_state_callback function every time a process terminates (instead of only once when they have all terminated). I'll continue digging into that one.
This will require an autogen/configure, I'm afraid.
This commit was SVN r11228.
libevent-1.1a.
svn merge -r10917:11006 https://svn.open-mpi.org/svn/ompi/tmp/libevent-update
This commit was SVN r11022.
The following SVN revisions from the original message are invalid or
inconsistent and therefore were not cross-referenced:
r10917
r11006
This moves the logic to create the symbolic links for:
- mpirun
- mpiexec
- ompi-ps
- ompi-clean
and their respective man pages to the ompi level from
the orte layer.
This is a bit pedantic, but orte shouldn't be doing the
work of ompi since that is a bit of an abstraction break.
Note: need to autogen.sh to get this. Sorry :(
This commit was SVN r10602.
per a request.
Currently it is not working well. That will soon change
as it just needs a bit of attention and testing to
make it lots-mo-betta.
This commit was SVN r10556.
per a request for its functionality into the main trunk.
This command provides basic information about a running job. It
needs a bit of attention, but works fine in its current iteration.
Please play with it, and lets try to work out all the left over bugs.
Pending action for this tool:
It has been requested that the tool be changed slightly to allow
it to be called via a function call from internal libraries
(e.g. orteconsole).
This commit was SVN r10554.
cannot include the PMPI_WTIME|WTICK functions in the external and
double precision statements because some compilers complain about
this. Instead, we need to use the macro that is defined by
configure.ac (MPIF_H_PMPI_W_FUNCS). This unfortunately means that we
need to generate mpif.h (in addition to mpif-config.h) because the
"external" statement is toxic to F90 compilers.
This commit was SVN r10464.
- Make the F90 bindings compile and link properly with gfortran 4.0,
4.1, Intel 9.0, PGI 6.1, Sun (don't know version offhand -- the most
current as of this writing, I think), and NAG 5.2, although some
have limitations (e.g., NAG can't seem to handle the medium and
large sizes)
- Building the F90 "small" module size is now the default, even for
developers
- Split up mpif.h into multiple files because parts of it were toxic
to the F90 bindings
- Properly specify unsized/unshaped arrays to make the bindings work
on all known compilers
- Make ompi_info show Fortran 90 bindings size
- XML somewhat lags the generated scripts as of this commit, but
functionality was my main goal -- the XML can be updated later (if
at all).
This commit was SVN r10118.
- split mpif.h into mpif.h and mpif-common.h[.in]
- mpif-common.h is included by various f90 things and contains output
from configure
- mpif.h defines some f77-specific stuff and then includes
mpif-common.h
This commit was SVN r9997.
svn merge -r 9453:9609 https://svn.open-mpi.org/svn/ompi/tmp/f90-stuff .
Several improvements over the current F90 MPI bindings:
- The capability to make 4 sizes of the F90 bindings:
- trivial: only the F90-specific MPI functions (sizeof and a few
others)
- small: (this is the default) all MPI functions that do not take
choice buffers
- medium: small + all MPI functions that take one choice buffer
(e.g., MPI_SEND)
- large: all MPI functions, but those that take 2 choice buffers
(e.g., MPI_GATHER) only allow both buffers to be of the same type
- Remove all non-standard MPI types (LOGICAL*x, CHARACTER*x)
- Remove use of selected_*_kind() and only use MPI-defined types
(INTEGER*x, etc.)
- Decrease complexity of the F90 configure and build system
This commit was SVN r9610.
still need to coordinate some Makefile.am changes with george tomorrow, but
this is the stuff that will require re-autogening
This commit was SVN r9285.
installation directories) in configure, the files that depend on this
information are not properly rebuilt. If you need this information,
don't setup a -D in the Makefile.am - instead, include
opal/install_dirs.h.
* Use the : option in AC_CONFIG_FILES to avoid needing to expose that
we are playing around with temporary files with our headers to avoid
rebuilding
* Clean up the version file information a bit, and like the install
directory stuff, make sure that there is a dependency so that
ompi_info gets rebuilt properly when a version number changes.
This commit was SVN r9256.
- Make the F90 checks use the identical types to the F77 checks (e.g.,
INTEGER*4, as opposed to potential selected_int_kind() equivalents)
- Comment out the F77 and F90 alignment check failure -- there is some
confusion here; some vendors apparently told Craig R. yesterday that
they change the alignments of types based on whether the instance is
a standalone variable, in an array, or a member of a struct.
More investigation is needed (and potentially clarification for MPI
users -- this could be quite problematic!), but this alignment test is
otherwise hosing the nightlies, so it needs to be taken out for the
moment.
This commit was SVN r9031.
changes. The two Big Changes are elegance (much more re-use of code
rather than cut-n-pasting the same code over and over and over and...)
and enabling cross-compilation for F77 and F90 (because we actually
have to *run* some compiled F77 and F90 programs for some of the
tests, which obviously won't work in a cross-compilation environment
-- so enable the use of config.cache to load such values in
cross-compiling environments).
This commit was SVN r8991.
- move files out of toplevel include/ and etc/, moving it into the
sub-projects
- rather than including config headers with <project>/include,
have them as <project>
- require all headers to be included with a project prefix, with
the exception of the config headers ({opal,orte,ompi}_config.h
mpi.h, and mpif.h)
This commit was SVN r8985.
new wrapper compilers for the OMPI layer. This should require no changes
at all for anyone (other than running autogen, of course)
This commit was SVN r8772.
r8698), with changes below:
- Split wrapper flags into those required for each of the three projects,
and cleaned up some cruft (including the LIBMPI_EXTRA_*FLAGS) through-
out the build system
- Added opal_init_util and opal_finalize_util to allow init / cleanup
of all the opal code that doesn't require the MCA system
- Create standalone key=value file parser, based on the one that used
to be in the mca param parser, so that it can be shared in multiple
places
- Add wrapper datafiles for opal, orte, and ompi wrappers, and add
wrapper compiler with support for all the old features
This commit was SVN r8699.
The following SVN revisions from the original message are invalid or
inconsistent and therefore were not cross-referenced:
r8690
r8698
determine values like Fortran alignment (which can only be determined by
running a program) when cross-compiling. By providing cache values, the
programs will not be run at all, and life will be good. Also clean up
some macro interfaces so that they are a bit easier to use, at the cost
of horrid internals ;).
This commit was SVN r8684.
- don't fail to configure if threads aren't found, since
we don't have thread support on windows
- rather than setting the asm file name to none in asm-data,
special case windows w/ CL in the ompi_config_asm macros.
Otherwise, there were some warnings during make dist and
configure that didn't need to be there.
This commit was SVN r8502.
- add the right asm format
- add checks for some constants / fields that cygwin
doesn't have in the stacktrace code
- fix for slightly more verbose libtool 2 betas that
have multiple lines for link output
This commit was SVN r8501.
- since we now have three places where we need to add a -l<foo> if
and only if it isn't already in something in LIBS that provides
symbol bar...
This commit was SVN r8370.
ability at this point to roll back and build without libltdl if we thought we
we going to have libltdl (we can configure without libltdl if we know from
the start it won't be there, from --disable-dlopen).
This commit was SVN r8336.
following for the rationale:
http://www.open-mpi.org/community/lists/users/2005/11/0391.php
Note that mpi.h only receives AC_DEFINE's (not AC_SUBST's), so we
still have to AC_DEFINE to get the value in there -- so we AC_DEFINE
something that we give to a typedef.
This commit was SVN r8326.
case of:
sizeof(MPI_Flogical) != sizeof (int)
and
Fortran value of .TRUE. != 1
as is often the case.
- Check in configure the value of .TRUE., the C-type coresponding to
logical and check, that fortran compiler does not do something strange
with arrays of logicals
- Convert all occurrences of logicals in the fortran wrappers, only
in case it is needed.
*Please note* Implementation of MPI_Cart_sub needed special treatment.
- Output these value in ompi_info -a
- Clean up the prototypes_mpi.h to just have a single definition and
thereby deleting the necessity for prototypes_pmpi.h
- configured, compiled and tested with F90-program, which uses
MPI_Cart_create and MPI_Cart_get:
linux ia32, gcc (no testing, as no f90)
linux ia32, gcc --disable-mpi-f77 --disable-mpi-f90 (had a bug there)
linux ia32, icc-8.1
linux opteron, gcc-3.3.5, pgcc, pathccx/pathf90 (tested just
pgi-compiler)
linux em64t, gcc, icc-8.1 (tested just icc)
This commit was SVN r8254.
it doesn't support it -- the compiler will automatically convert the
unsupported type to a type that it *does* support. For example, if
you try to use INTEGER*16 and the compiler doesn't support it, it may
well automatically convert it to INTEGER*8 for you (!). So we have to
check the actual size of the type once we determine that the compiler
doesn't error if we try to use it (i.e,. the compiler *might* support
that type). If the size doesn't match the expected size, then the
compiler doesn't really support it.
The F77 configure code actually handled this properly. The F90 code
did not quite do it right. This patch brings the F90 code up to the
same structure as the F77 code, albiet not m4-ized properly. I also
added a comment to config/f77_check.m4 that explains *why* we do this
extra size check (because no explanation was given).
The impetus for this was that xlf* on OS X 10.3 was not recognizing
that INTEGER*16 was not supported, and mpi-f90-interfaces.h was being
assembled incorrectly. This patch fixes this problem.
There is still one more problem, but waiting for some help from Craig
R on that (function pointers in F90 declarations).
This commit was SVN r8107.
originally suggested by Ralf Wildenhues, to try to speed autogen, configure,
and make (and possibly even make install). Use automake's include directive
to drastically reduce the number of Makefile files (although the number of
Makefile.am files is the same - most are just included in a top-level
Makefile.am). Also use an Automake SUBDIRs feature to eliminate the
dynamic-mca tree, which was no longer really needed. This makes adding
a framework easier (since you don't have to remember the dynamic-mca
tree) and makes building faster (as make doesn't have to recurse through
the dynamic-mca tree)
This commit was SVN r7777.
a random string of characters as part of the version number (the really
soon to happen 1.0lanl release and the 1.1sc2005 release that we've
talked about). So rather than having alpha and beta fields that must
be numeric values, have a general field that can be any alphanumeric
value.
This commit was SVN r7511.
C / C++ tests now use the caching scheme. Only exception is C++ exception
handling code, which is disabled by default, so I'm not too worried about making
that configure faster :)
This commit was SVN r7403.
AM_INIT_AUTOMAKE, instead of the deprecated version.
* Work around dumbness in modern AC_INIT that requires the version
number to be set at autoconf time (instead of at configure time, as
it was before). Set the version number, minus the subversion r number,
at autoconf time. Override the internal variables to include the r
number (if needed) at configure time. Basically, the right thing
should always happen. The only place it might not is the version
reported as part of configure --help will not have an r number.
* Since AM_INIT_AUTOMAKE taks a list of options, no need to specify
them in all the Makefile.am files.
* Addes support for subdir-objects, meaning that object files are put
in the directory containing source files, even if the Makefile.am is
in another directory. This should start making it feasible to
reduce the number of Makefile.am files we have in the tree, which
will greatly reduce the time to run autogen and configure.
This commit was SVN r7211.
add a -I to find the included ltdl.h (vs. a system-installed ltdl.h)
- Clean up kruft in a bunch of Makefile.am's to remove now-unnecessary
AM_CPPFLAGS settings to get static-components.h for each framework
- Move the component_repository API functions out of opal/mca/base/base.h
and into opal/mca/base/mca_base_component_repository.h in order to
decrease unnecessary dependencies (e.g., before this, almost
everything in the tree depended on ltdl.h, which is unnecessary --
only a small number of files really need ltdl.h)
This commit was SVN r7127.
include any optimization flags
- Use these flags to always compile ompi/debuggers/* and orterun so
that parallel debuggers (such as Totalview) can always see the
debugging symbols (see comments in ompi/debuggers/Makefile.am and
orte/tools/orterun/Makefile.am)
- Remove some obsolete LAM-named variables from configure.ac
This commit was SVN r7125.
friendly #defines to be included in mpi.h (even for users), such as
_GNU_SOURCE, which can have some really big consequences on Linux.
Instead, add mpi.h to AC_CONFIG_HEADERS and just include the #defines
we have to have for mpi.h and the C++ bindings.
This commit was SVN r7022.
not to build to not be added to the ALL_COMPONENTS list and therefore
not distributed in a tarball
* add some of the contrib/ stuff to the dist tarball (the stuff to
make binary packages and the "--with-platform" files)
This commit was SVN r6955.
callbacks to be triggered when memory is about to leave the current
process. The system is designed to allow a variety of interfaces,
hopefully including whole-sale replacement of the memory manager,
ld preload tricks, and hooks into the system memory manager. Since
some of these may or may not be available at runtime and we won't know
until runtime, there is a query funtion to look for availability of
such a setup.
* Added ptmalloc2 memory manager replacement code. Not turned on by
default, can be enabled with --with-memory-manager=ptmalloc2.
Only tested on Linux, not even compiled elsewhere. Do not use
on OS X, or you will never see your process again.
* Added AM_CONDITIONAL for threads test to support ptmalloc2's build
system
This commit was SVN r6790.
load a set of arguments to build OMPI. So you can do something like:
./configure --with-platform=redstorm
and automagically have all 10,000 arguments to configure required
for Red Storm magically set
* change all instances of sinclude to m4_include so that autogen
will properly fail if an .m4 file isn't included properly
This commit was SVN r6648.
- Fix up the F90 void * sizeof detection, and ensure that we
AC_MSG_ERROR if we can't support OMPI_MPI_ADDRESS_KIND (highly
unlikely, but...)
This commit was SVN r6639.
- only call sched_yield if it exists
- don't fail out if modex doens't work in ob1
- bunch of fixes for Portals BTL
- add cnos rml component
- add NULL gpr component (should only be used if replica AND proxy
fail to load)
This commit was SVN r6629.
* Add ability to completely disable libltdl (the dlopen code to load
dynamic shared objects) to configure: --disable-dlopen
* Added MCA param (component_disable_dlopen) to disable DSO loading
at runtime
* Made the event library behave in some not-completely-erroneous way
on platforms where it has absolutely no eventops support (ie, no
select, poll, or epoll)
* Disabled orte_wait, opal_few, and opal_daemon_init code on
platforms without fork, waitpid support. All non-init functions
will return OPMI_ERR_NOT_SUPPORTED
* Disable orteprobe tool when fork or pipe aren't supported
This commit was SVN r6490.
Red Storm. Add stub functions to ompi_config_bottom.h when they are
around
* Add protection for a bunch of #include <netinet/in.h>s
* Fix up the Portals BTL so that it compiles on Red Storm and has the
right mojo for initialization on Red Storm
* Add some important comments to ompi_check_package and mvapi configures
* Add support for platforms without getpwuid() (aka, Red Storm).
This commit was SVN r6478.
sockaddr_in - seems to be a good indicator)
* disable util/if code if no inet devices (again, no sockaddr_in)
* add enable/disable flag to disable stacktrace pretty-print code
(defaults to enabled). Seems there's something funky going on with
the preprocessor on Red Storm that was causing problems - this was
the easiest fix
* clean up a bunch of the configure.m4 files to remove bogus comments,
properly comment them, fix the dumb logic for happy/unhappy
* Create a macro for testing both header and library for a package,
since we seem to do this kind of test quite often. Handles the
-I and -L search paths properly (including stripping out /usr and
/usr/local if not needed)
* Converted mvapi components to configure.m4, using the nice new
ompi_check_package macro (above)
This commit was SVN r6454.
frameworks, and components without configure scripts instead of
hard-coded shell variables (for projects and frameworks) and
shell variable building (for components).
* Add 3rd category of component configuration (in addition to configure
scripts and no-configured components): configure.m4 components. These
components can only be built as part of OMPI (like no-configure), but
can provide an m4 file that is run as part of the main configure
script. These macros can set whether the component should be built,
along with just about any other configuration wanted. More care must
be taken compared to configure components, as doing things like setting
variables or calling AC_MSG_ERROR now affects the top-level configure
script (so calling AC_MSG_ERROR if your component can't configure
probably isn't what you want)
* Added support to autogen.sh for the configure.m4-style components,
as well as building up the m4_define lists ompi_mca.m4 now expects
* Updated a number of macros to be more config.cache friendly (both
so that config.cache can be used and so the test can be quickly
run multiple times in the same configrue script):
- ompi_config_asm
- c_weak_symbols
- c_get_alignment
* Added new macros to be shared when configuring components:
- ompi_objc.m4 (this actually provides AC_PROG_OBJC - don't ask...)
- ompi_check_xgrid
- ompi_check_tm
- ompi_check_bproc
* Updated a number of components to use configure.m4 instead of
configure.stub
- btl portals
- io romio
- tm ras and pls
- bjs, lsf_bproc ras and bproc_seed pls
- xgrid ras and pls
- null iof (used by tm)
This commit was SVN r6412.
- After long discussions and ruminations on how we run components in
LAM/MPI, made the decision that, by default, all components included
in Open MPI will use the version number of their parent project
(i.e., OMPI or ORTE). They are certaint free to use a different
number, but this simplification makes the common cases easy:
- components are only released when the parent project is released
- it is easy (trivial?) to distinguish which version component goes
with with version of the parent project
- removed all autogen/configure code for templating the version .h
file in components
- made all ORTE components use ORTE_*_VERSION for version numbers
- made all OMPI components use OMPI_*_VERSION for version numbers
- removed all VERSION files from components
- configure now displays OPAL, ORTE, and OMPI version numbers
- ditto for ompi_info
- right now, faking it -- OPAL and ORTE and OMPI will always have the
same version number (i.e., they all come from the same top-level
VERSION file). But this paves the way for the Great Configure
Reorganization, where, among other things, each project will have
its own version number.
So all in all, we went from a boatload of version numbers to
[effectively] three. That's pretty good. :-)
This commit was SVN r6344.
so that I can next rename all the files under mca/btl using "svn mv" which is
not possible until after the initial "svn mv bmi btl" is checked in.
This commit was SVN r6220.
* If we are on solaris, don't use the system qsort(), as it appears to be
broken in 64 bit mode on Solaris 8 (there are bugs about this in
SunSolve). Instead, use ompi_qsort(), which is taken from FreeBSD.
A #define in ompi_config_bottom.h makes this invisible to most of the
OMPI source tree.
* Fix memory badness in ompi_progress_register where we were reallocing the
array to be number of elements long instead of number of elements *
sizeof(element). Found while using bcheck to track down our problems in
64 bit on big endian machines.
* The debugging output code in session_dir.c could pass NULL as a value for a %s,
which will turn into "(null)" automagically on glibc, but causes segfaults for
older libcs (like those on Solaris). Check for this case in session_dir.c and
don't pass NULL as a %s value into ompi_output().
* Fix missing header file in convertor.c
This commit was SVN r6186.
I'm contributing patches for configure.ac and f90_check_type.m4.
The problem was that f90_check_type returned an exit code
and not all compilers actually do this. The fix tries to compile the
type and fails if it can't. The problem is that some compilers will
happily return a default kind if the particular kind is not supported.
So the real test is whether the size of the datatype is as expected.
This commit was SVN r6101.
- Fully support REAL*N, INTEGER*N, and COMPLEX*N in the MPI_Op
reduction operations.
- Update ddt to fully support these types as well, to include using
the results of sizes and alignments determined by configure
- Discover the goodness of m4 and consolidate a LOT of configure code
(i.e., remove a lot of essentially duplicated code and
m4-subroutine-ize it). The big kicker was figuring out how to
parameterize AC_DEFINE_UNQUOTED, which you can do if you use m4
properly.
- If we don't support a given INTEGER*N, REAL*N, or COMPLEX*N, don't
error. Just set the right flags so that we don't support them in
the MPI layer.
This commit was SVN r5788.
1. Added a new function to launch head node processes on remote nodes.
2. Added new tool "orteprobe" that checks to see if a daemon is running on a node. If so, it reports the contact info back to the requestor. If not, it will (eventually - but not now) fork/exec a daemon on the node, report the contact info back to requestor, and then die.
3. Modified orted to handle universe name parameters, and added separate command line flags for debugging the daemon and saving daemon debugging output in a file. The "debug" flag now turns on the runtime debug info instead of the daemon debug - thus, you can now just get daemon debug info if you like.
4. Fix the dps to handle zero length strings correctly.
5. Modify the fork and rsh launchers to pass required environmental variables to the daemons and processes
6. Pulled the redirection of stdin/stdout/stderr for the daemon out of orted and put it into the daemon_init function to simplify orted logic.
7. Modified sys_info to correctly deal with passed mca param
8. Modified univ_info to parse incoming universe location information.
This commit was SVN r5705.
- Check for icc-8.1 segfaulting with varargs.
- Add check for size of REAL*4,8,16 types and purge,
if smaller
- Fix configure-output with regard to checking for c-types
for the REAL*-types.
This commit was SVN r5661.
for the size. If it does not fit, purge from the list, i.e. reset all
values to zero.
Fixes pgf90 problem, which silently accepts INTEGER*16, but internally
using INTEGER...
This commit was SVN r5594.
Merged in from:
svn merge -r5506:5553 https://svn.open-mpi.org/svn/ompi/tmp/hetero .
This commit was SVN r5552.
The following SVN revisions from the original message are invalid or
inconsistent and therefore were not cross-referenced:
r5506
r5553
Merged in from:
svn merge -r5448:5496 https://svn.open-mpi.org/svn/ompi/tmp/hetero .
This commit was SVN r5550.
The following SVN revisions from the original message are invalid or
inconsistent and therefore were not cross-referenced:
r5448
r5496
from:
svn merge -r5440:5448 https://svn.open-mpi.org/svn/ompi/tmp/hetero .
This commit was SVN r5549.
The following SVN revisions from the original message are invalid or
inconsistent and therefore were not cross-referenced:
r5440
r5448
MPI_COMPLEX*x, and some optional C datatypes in MPI reduction
operations. These types are not technically supported by the letter
of the MPI standard, but are implied by the spirit of it (and there
are definitely users that use them in real applications)
- Add checks in configure for back-end C types for MPI_INTEGER*x and
MPI_REAL*x
- Create C data structs for MPI_COMPLEX*x
- Fixed typo for MPI_INTEGER8 in mpi.h
- Updated configure macros to create MPI_FORTRAN_INTEGER* defines, as
opposed to MPI_FORTRAN_INT, which was causing [me] lots of confusion
(between C "*_INT" names and Fortran "*_INT" names). This caused
some trivial updates in ddt, ompi_info, and the MPI layer to match.
- Update ompi_info to show whether we have each MPI_INTEGER*x,
MPI_REAL*x, and MPI_COMPLEX*x
- Extended reduction operations for optional datatypes:
- "C integer" now includes long long int, long long, and unsigned
long long
- "Fortran integer" now includes MPI_INTEGER*x
- "Floating point" now includes MPI_REAL*x
- "Complex" now includes MPI_COMPLEX*x
This commit was SVN r5511.
we are part of the source tree and not defined otherwise, we are going
with an always defined if ompi_config.h is included policy. If
ompi_config.h is included before mpi.h or before OMPI_BUILDING is set,
it will set OMPI_BUILDING to 1 and enable all the internal code that
is in ompi_config_bottom.h. Otherwise, it will only include the
system configuration data (enough for defining the C and C++ interfaces
to MPI, but not perturbing the user environment).
This should fix the problems with bool and the like that the Eclipse
folks were seeing. It also cleans up some build system hacks that
we had along the way.
Also, don't use int64_t as the default size of MPI_Offset, because it
requires us including stdint.h in mpi.h, which is something we really
shouldn't be doing.
And finally, fix a ROMIO Makefile that didn't set -DOMPI_BUILDING=1,
as ROMIO includes mpi.h, but not ompi_config.h
This commit was SVN r5430.
having it in config/ompi_setup_cxx.m4
2. Adding --enable-coverage option. This will add teh flags -ftest-coverage
and -fprofile-arcs to the flags. Also, one needs to compile with
debug and static only to enable code coverage
3. Adding the coverage flag options to WRAPPER_*_FLAGS so that mpicc and co.,
will add these to teh executables when they are compiled
This commit was SVN r5416.
Monday with Craig:
- split two f90 modules into two separate .f90 files so that
dependencies can be satisfied properly in parallel builds (i.e.,
mpi_kinds.f90 can be compiled and its f90 module can be generated
before any others are compiled, because it is needed by all of the
other f90 source files).
- rename mpi.i.h* to be mpi-f90-interfaces.h, just to be a little more
clear and less name-confusing with mpi.h and mpif.h
- update the build process in src/mpi/f90, including printing out a
warning that compiling mpi.f90 may take quite a while :-\
- update the wrapper compilers to add in the Right Things for
compiling F90 MPI applications
- add a check in configure to find what flag the F90 compiler uses to
identify where f90 module files live
This commit was SVN r5297.
- remove all tabs from source code (replace with spaces)
- use size of size_t and int to determine some equivalent ORTE types
in a header file so that it's always done consistently (at compile
time)
- be consistent about using size_t for number of elements that are
packed
- don't assume that size_t is uint32_t (it is uint64_t on some
platforms)
- simplify some logic
- implement packing/unpacking for INT64 and UINT64 (so that we can do
size_t on platforms where it's 64 bits)
This commit was SVN r5172.
- the dirent.dt_type field is non-portable. Use stat() if there isn't
a dt_type field in the dirent struct
- Make sure -laio is added to LIBS in the romio component configure
script so that static builds don't result in missing symbols
- Add missing header file for the signal constants in pls_fork_module
This commit was SVN r5152.
more obvious (and documented)
- VERSION now has lots of comments in it
- separate out whether we want the SVN r number in the version and
what the SVN r number is
- clearly describe the process for building the full version number
string
- make ompi info have a separate line item specifically for the SVN r
number, regardless of what the version number is
- update "make dist" process to substitute in the SVN r version
This commit was SVN r5022.
build / run. Only things that actually build / run right now are the
asm and class tests. The mca tests probably will with a static build
but that hasn't been verified
This commit was SVN r4979.
* SPARC Assembly fixes:
- Use SPARC assembly type only when not able to use the SPARC v9
instruction set (instead of previous whenever sizeof(void*) == 4
- Use SPARCV9_32 (aka sparc v8plus) and SPARCV9_64 (aka sparc v9) when
possible. Already were doing so for the 64bit, but on 32bit we
were falling back to SPARC.
- Implemented SPARCV9_32 atomic operations
- Emit warning if user is going to get SPARC atomic, as that probably
isn't what the user wants for best performance.
* Started shell of MIPS assembly. Does not work, but wanted something
so that everyone would only have to re-autogen once today....
This commit was SVN r4465.
- Use fcntl.h, not sys/fcntl.h (man pages on every platform I could find
say fcntl.h and solaris/AIX don't provide sys/fcntl.h)
- Make timeradd macro available on platforms where sys/time.h exists but
timeradd macro doesn't (Solaris)
- Include util/printf.h from ompi_config_bottom.h so that ompi_asprintf
and friends are always available.
This commit was SVN r4441.
* Make sure the update.sh scripts all use OMPI_WANT_SMP_LOCKS
* Add sparc (32bit) assembly
- Memory barriers
- spinlocks
- emulate add/sub using the spinlock table with hashed lookups, as
suggested by the linux kernel folk (better than the other option,
requiring the counters only use 24 bits)
This commit was SVN r4429.
script in components and distributes them as appropriate throughout
the tree (previously, we only did WRAPPERS_* flags). These flags are
*only* used when libmpi is being build statically (--disable-shared
--enable-static).
I also added another classification of flags -- LIBMPI_ALWAYS_* and
WRAPPERS_ALWAYS_* for flags that should always be added to the libmpi
/ wrapper linker lines, not just when compiling libmpi statically.
This commit was SVN r4322.
- Fix up the checks for selected_[int|real]_kind so that we only check
for their sizes/alignment if the compiler actually supports them
This commit was SVN r4279.
during testing. In particular, we can't have a cmpset macro that can
deal with pointers without some really evil voodoo. So have a
different macro for pointers
* Add more detailed testing of the atomics using AM's test framework.
More to come...
This commit was SVN r4191.
of assembler format
* Fix minor bugs in AMD64, PPC, and IA32 assembly for atomic operations
* Clean up the #defines to look for when examining level of atomic operation
support
This commit was SVN r4183.
after MPI-startup.
For this a new mpirun-parameter "mpi_signal" is added, one may specify a
comma-separated list of signals to grab, e.g. mpirun --mca mpi_signal 8,11
will check for SIGFPE and SIGSEGV.
It only finds the first fault (SA_ONESHOT), as after the return the same
fault will occur again.
As printout, the data provided by siginfo_t is printed to STDOUT (yes,
it calls printf ,-]).
Additionally, with glibc, it uses backtrace and backtrace_symbols to
print the calling stack up to the function in which the signal was raised:
(Rank:0) Going to write to RD_ONLY mmaped shared mem
Signal:11 info.si_errno:0(Success) si_code:2(SEGV_ACCERR)
Failing at addr:0x4020c000
[0] func:/home/rusraink/ompi-gcc/lib/libmpi.so.0 [0x40121afe]
[1] func:./t0 [0x42029180]
[2] func:./t0(__libc_start_main+0x95) [0x42017589]
[3] func:./t0(__libc_start_main+0x49) [0x8048691]
This commit was SVN r4170.
Note: in bringing this across, I have obeyed the mca-prefix-rule in defining functions and variables. However, I left the name of the component call as "orte_errmgr.xxx" so that any use of the code will directly "merge" with the new RTE branch without changes.
This commit was SVN r4099.
the src/mca/soh/base/*.c files out of the default build because
they're uncompilable right now -- don't want to step on any of Ralph's
local changes.
This commit was SVN r3837.