for prefetch and branch prediction work. A non-happy compiler could
just think these were functions and we wouldn't get the error, because
we didn't try to link.
Refs trac:287
This commit was SVN r11333.
The following Trac tickets were found above:
Ticket 287 --> https://svn.open-mpi.org/trac/ompi/ticket/287
before checking if we are able to compile the test program. This is required
for windows as the C++ conftest.c file generated by configure cannot be
compiled with the Microsoft cl.exe compiler (because of the exit function
prototype). So if we detect a vendor equal to microsoft we will assume
that the compiler is correctly installed (which is true on Windows most
of the time anyway).
This commit was SVN r11268.
releases on Linux and OS X) don't handle const_cast<> of 2-dimensional
arrays properly. If we're using one of the compilers that isn't friendly
to such casts, fall back to a standard C-style cast.
refs: #271
This commit was SVN r11263.
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
on almost all platforms (except OS X... sigh...). This is the merge
of r10846 - 10894 from the tmp/f90-shared branch to the trunk.
This commit was SVN r11103.
The following SVN revisions from the original message are invalid or
inconsistent and therefore were not cross-referenced:
r10846
.proc/.endp-declarations for functions in order to be able to
link successfully.
Currently used in configure, only.
There has not been found another arch, where this is necessary.
So asm-data.txt and base/default.conf has not been changed.
This commit was SVN r11068.
of send/receives outstanding.
Use ibv_cq_resize if available after initial creation of completion queue if
cq_size is too small (based on number of peers).
This commit was SVN r11053.
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
than $(LN_S). This causes problems with with Windows and probably
elsewhere (re: #200). So use a slightly different trick to get the
right header selected for the MEMCPY and TIMER components.
* Using the same trick used to solve the AC_CONFIG_LINKS problem,
stop using a separate header file for direct calling in the
PML and MTL. This lets me remove some icky code in ompi_mca.m4
that was more fragile than I really liked.
This commit was SVN r10841.
We have repeatedly seen users inadvertantly try to use a C compiler
for $CXX (e.g., using icc instead of icpc in recent versions of the
Intel compiler). Unfortunately, this would "sorta work", meaning that
configure would complete successfully and the build would fail much
later in the process (when $CXX was used to try to link a C++
compiler). This was further compounded by the fact that many C
compilers will switch into "C++ mode" when they compile files that end
in .cc -- meaning that they'll *compile* C++ codes properly, but they
won't *link* properly. Hence, users would get all the way down to
compiling the C++ MPI bindings or ompi_info (i.e., very late in the
build process) before the problem became evident.
We already have a test in configure that tries to compile, link, and
run a sample C++ program. This helped ensure that $CXX was a valid
compiler, but it did not catch if the user accidentally supplied a C
compiler instead of a C++ compiler because the test program was simply
"return 0". This commit updates the test program to use some
C++-specific constructs (std::string) so that if the user supplies a C
compiler in $CXX, the program may *compile*, but it will definitely
fail to *link*.
Hence, the process will fail early in configure (with a descriptive
message about how the compiler failed to work properly) rather than
late in the build.
This commit was SVN r10829.
interconnects that provide matching logic in the library.
Currently includes support for MX and some support for
Portals
* Fix overuse of proc_pml pointer on the ompi_proc structuer,
splitting into proc_pml for pml data and proc_bml for
the BML endpoint data
* bug fixes in bsend init code, which wasn't being used by
the OB1 or DR PMLs...
This commit was SVN r10642.
on platforms without a 32-bit compare and swap implementation. There isn't
such a thing on Sparc v8 chips, so we can't support those platforms right
now. Should be possible to make opal_atomic_lifo less atomic on these
platforms, but not in the time allotted.
This commit was SVN r10407.
are 3 arguments: the pointer to the memory location to prefetch, the type of
operation that will be done on the memory (read or write) and the expected
locality.
This commit was SVN r10294.
whether an if statement is likely to be taken and for prefetching memory.
Current macros:
OPAL_LIKELY(expression)
OPAL_UNLIKELY(expression)
OPAL_PREFETC(address)
This commit was SVN r10278.
support for progress threads, so we shouldn't build them or try to use
them when support for progress threads has been requested. The TCP, GM,
SELF, and SM BTLs should have progress thread support, so they aren't
disabled. The Portals BTL isn't compiled on platforms with threads,
so it doens't need to be updated.
This commit was SVN r10156.
the pthreads library that don't do anything but are there when no special
options are given. Both the GNU compiler and the Sun compiler could
sometimes ignore the -K* options, causing badness when building with
posix threads. Don't try those options ;).
We still try -pthread and -pthreads because the compilers *do* error
when they see those options and some versions of the GNU compiler do
understand those flags (and do all the right things in that case).
This commit was SVN r10126.
- 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.
else than a quite recent version. Using this option prevent gdb from accessing
the contents of some of the structures. The error message is:
Unexpected type (0) encountered for integer constant.
This commit was SVN r9994.
Sorry for committing configure changes during the day, but this is
necessary for some testing via multiple people at different sites.
This commit was SVN r9926.
in San Jose. Allow the configure option --disable-binaries to build OMPI,
but not build or install the support binaries (so basically, just build
the libraries).
This commit was SVN r9777.
- Add a lengthy comment explaining why we don't get F90 data type
alignments
- Remove config/f90_check.m4 and its entry in acinclude.m4
This commit was SVN r9707.
The following SVN revision numbers were found above:
r9698 --> open-mpi/ompi@e57300da4c
only uses the F77 alignments anyway. Plus, it is currently unknown
how to reliably get the F90 alignments because compilers *may* reorder
things and/or give different alignments than the f77 tests.
This commit was SVN r9698.
- include stdlib.h for tests that call exit(), as AC no longer
prototypes exit in 2.60
- Fix a compile issue in our cross-compiling test for C/C++
alignment checks, matching what AC did for 2.60.
This commit was SVN r9634.
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.
* Don't do the .in -> .tmp -> header thing for the prefixes and versions.
It causes some severe cleanup issues all to save 4 files from rebuilding
when configure is run.
* Clean up some makefiles so it's clear what is being installed/disted
This commit was SVN r9260.
SLURM. Currently, this includes AIX and Linux. If the user wants to build
SLURM on another platform, they can specify --with-slurm.
* Enable/disable the SLURM sds component using the same logic as the PLS and
RDS components.
This commit was SVN r9259.
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.
now-default GNU debug flags (-g3) don't accidentally cause the
configure system to add -O3 to the build flags (because it didn't
recognize that -g3 was a debugging flag).
This commit was SVN r9207.
source tree that are named .f95, and b) it sets the future file
extension for Fortran AC tests to be .f95. This is not a problem for
gfortran, but other compilers (e.g., ifort) don't like that.
This commit was SVN r9040.
- 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.
situations) before going on to tests that run executables with the
compiler. Print a friendly error message if it fails. Hopefully, this
will help people with borked compilers.
This commit was SVN r8898.
complete, but stable enough that it will have no impact on general development,
so into the trunk it goes. Changes in this commit include:
- Remove the --with option for disabling MPI-2 onesided support. It
complicated code, and has no real reason for existing
- add a framework osc (OneSided Communication) for encapsulating
all the MPI-2 onesided functionality
- Modify the MPI interface functions for the MPI-2 onesided chapter
to properly call the underlying framework and do the required
error checking
- Created an osc component pt2pt, which is layered over the BML/BTL
for communication (although it also uses the PML for long message
transfers). Currently, all support functions, all communication
functions (Put, Get, Accumulate), and the Fence synchronization
function are implemented. The PWSC active synchronization
functions and Lock/Unlock passive synchronization functions are
still not implemented
This commit was SVN r8836.
- fall back to compile test for windows paffinity component
when cross compiling
- fall back to platform guess when checking for threads having
different pids with pthreads (yes on linux, no elsewhere)
- pass the proper host, target, and build flags to the
ROMIO configure script
With these changes, cross-compiling should be possible with the exception
of the Fortran 77 and Fortran 90 bindings. Fortran 77 can be cross-
compiled if cache values are provided for type sizes and alignment.
This commit was SVN r8702.
- Borrow configure.m4 from the mvapi btl. One of the uDAPL headers emits a
warning when -pedantic is enabled, so strip it out.
- Change function check in ompi_check_dapl.m4 from dat_ia_open to
dat_registry_list_providers.. dat_ia_open wasn't working right
- Make the references to prepare_dst, put, and get NULL for now
- Add opal_output() calls in all the udapl interface functions for debugging
- Add evd_qlen component parameter to control event dispatcher queue length
- First stab at component_init and module_init
- Misc cleanups - whitespace, dead code removal
- Update copyrights to 2006
This commit was SVN r8701.
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
the failure wasn't being properly propogated up from ompi_find_type and
resulting in bad #define values in ompi_config.h
* Fix issue where we could emit illegal sh code if we were checking for a
type with no corresponding C types listed. Thanks to Ralf for tracking
this one down.
* Fix a couple more messages to match all the others.
This commit was SVN r8685.
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.
information on Windows with the CL compiler. We don't use it, and we
were running into trouble with the compiler on some tests
This commit was SVN r8558.
* Make sure --without-BTL works for all BTLs
* Fix copy-n-paste error in aix timer configrue help string
This should go to the v1.0 branch
This commit was SVN r8554.
- 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.
value that is not internally translated). In order to make all the version
of libtool happy, the simplest way is to have the source file at the end of
the command line.
This commit was SVN r8451.
is a short name usually the one that the compiler have. If we are using
wrappers around a compiler the flavor will be the real name of the compiler.
The vendor is a short name for the maker of the compiler. The GNU compilers
get gnu and the microsoft one get microsoft.
These 2 macros provide a simple way to check for specific brand of compilers
and to generate the correct code to test with the autoconf macros. They are
not yet completed, I add just some of the compilers/vendors but feel free to
add more if you need/want.
This commit was SVN r8417.
x86_64 as most opterons do. So add test to see how many bytes a long is,
and if it's 8 bytes, assume we're on an AMD64 instead of an IA32 for the
purposes of assembly.
This commit was SVN r8384.
- 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.
features. Now it works with gfortran as well.
The problem was that the cast between LOGICAL and INTEGER is not a Fortran language feature. The easiest solution around this problem is to have a C function that print the value. We set the value in fortran and then call the C function to print it out.
This commit was SVN r8266.
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.
component/base Makefile.am files, reducing the time configure spends
stamping out Makefiles at the end
* Install base_impl.h file when devel-headers are being installed
This commit was SVN r8200.
options as part of the --with-wrapper-{*flags,libs} options to configure,
we'll eat one of them, which can have unintended issues. For example,
--with-wrapper-ldflags="-Wl,-rpath -Wl,pathA -Wl,-rpath -Wl,pathB"
will result in us removing the second -Wl,-rpath, which will result
in wrapper ldflags of -Wl,-rpath -Wl,pathA -Wl,pathB which doesn't
really do what the user intended. We now always pass the user-
specified flags completely unmodified, bypassing the OMPI_UNIQ
routine
This commit was SVN r8193.
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.
the component's LIBS if the library was found in the default search paths.
However, it would also add -Is for default search paths and other nasty things,
so it seemed best to convert it to the OMPI_CHECK_PACKAGE macro so that it
behaved like all the other packages out there.
This commit was SVN r8007.
--enable-mpi-{cxx,f77,f90} so that people aren't confused about what
they are actually disabling.
This should go to the 1.0 branch
This commit was SVN r7851.
really crappy job of trying to emulate the inline assembly mode of GCC (and will
completely rewite the assembly, which seems to be bad in my opinion). GCC and
the AIX assembler don't see eye-to-eye on what GCC emits when doing inline
assembly. That's two compilers and no actual working support. So just punt and
fall back to XLC inline assembly or non-inlined assembly.
This commit was SVN r7800.
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.
Brooks Davis. Now handle everything as hex, and we don't have to
worry about signed/unsigned implementations of integers in shell and
expr.
This commit was SVN r7729.
a VPATH tree. Fix that problem, as well as some potential shell escaping badness
if a version number or path ever had a space in it.
This commit was SVN r7586.
Try to detect which form this version of Open IB uses, defaulting to the 5
version if we can't figure it out (the new version has 5 params)
* Only add -lcm if it exists on the system - some versions of Open IB
apparently don't need it.
This commit was SVN r7542.
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.
automagically don't build on platforms without such things
* Fix for mistaken use of cache variable in assembly setup
* one more cached test hits the books
This commit was SVN r7404.
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.
the way we use weak symbols (you have to use the actual symbol in the
.o file or the weak symbol isn't generated). It worked for our test
case, but not for libmpi. Make our test case look more like what we
do in libmpi by generating a .o file with a weak symbol and attempting
to use it from another object file.
This commit was SVN r7360.
- fix the first test
- make the #define's always have a value (0 or 1)
- prefix them with OMPI
- remove the extra "__"'s in the names, since they're now
OMPI-specific #define names
This commit was SVN r7339.
They can be used to give additional knowledge to the compiler about the behaviour of a
function so it can optimize further. In the begining we just need it for the alias weak
a better way to create function aliases.
The problem was that the intel compiler version 8 to 9 support pragma weak but do not include
the function in the .o file if it's not used at least once in the same .c file. With the
alias weak this problem is solved as even intel support it correctly.
This commit was SVN r7330.
- Add --enable-trace which turns on some internal tracing and dumps a
file per process in the session directory tree. Meant for internal
developer tracing, *not* for tracing MPI applications in the
traditional sense.
This commit was SVN r7229.
should speed up autogen.sh on platforms with really slow svnversion searches,
as we only need the base version for autogen, which means we don't need the
r number.
* Since I can't type, add an error message if an invalid argument is given
This commit was SVN r7224.
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.
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.
- Setup OMPI_CC_ORIGINAL in preparation for AM subdir-objects (so that
we can snarf libtool objects properly if $CC has been switched to
the "compile" script)
This commit was SVN r7073.
which case, skip it, since it takes so bloody long to compile)
* Dsiable the XGrid PLS when compiling in 64 bit mode, as Tiger only
ships with XGrid libraries for 32bit apps
* ompi_config.h and orte_config.h (and supporting headers) are now only
installed if --with-devel-headers is enabled. Since they are no
longer needed for MPI applications, it doesn't make sense to install
them if we are only installing mpi.h and mpif.h.
Also, since we are no longer including ompi_config.h in mpi.h, there
is no longer a need to do the dumb sed trick on install
This commit was SVN r7042.
- fix the --with-f90-max-array-dim configure switch
- fix configure test to find the supported f90 linker switch to find
fortran modules
- Unbelievably, some versions of sh (cough cough Solaris 9 cough
cough) actually seem to internally perform a "cd" into a
subdirectory when you run "./foo/bar", such that if you try to
source a script in the top-level directory in the bar script (i.e.,
". some_script" in the bar script), it will try to run it in the
"foo" subdirectory, rather than the top-level directory! #$@#$%#$%
So we have to pass in the pwd to the scripts so that they know where
some_script is.
- Reworked much of ompi/mpi/f90/Makefile.am for lots of reasons. See
the internal comments (mostly having to do with dependency stuff --
Libtool does not apparently support F90, so we can only build the
F90 library statically.
This commit was SVN r6993.
* make sure LIBS contains -lpmapi before checking for pm_cycles()
* reorder aix functions so that we don't use get_usecs() before we
define it
This commit was SVN r6970.
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.
of flags to configure. Now don't need to specify the contrib/platform
part of the path if you don't want to
* Add "optimized" platform setting that will undo all the performance-
affecting things that a developer build sets up.
This commit was SVN r6946.
to opal_progress() to use the timers instead of a tick count for deciding
whether to call the event loop or not. Currently supported platforms are:
- solaris (x86 / sparc)
- Linux (x86 / x86_64 / IA64)
- Mac OS X (x86 / Power PC)
This commit was SVN r6922.
be compiled, as well as the ability for components to prioritize
the order in which they should be compiled so that the "right"
first one is selected. Make autogen.sh do all the hard sorting
work, so that the m4_defined lists of components are in the
prioritized order. From there, it's just forcing components
to fail after the first one succeeds (if we are in the "only one
compnent can build" mode).
This commit was SVN r6895.
* Add base to memory framework so that we can do something sane with
ompi_info
* Updated ompi_info to print components for memory framework and
show whether we have memory hooks active or not.
This commit was SVN r6861.
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.
support in OMPI. Currently only enables/disables the architecture
sharing modex in ob1 pml.
* Add sds framework to ompi_info
* Figure out table ids to use for Portals BTL at configure time, since
we should use 30 & 31 on Red Storm, but the reference implementation
only supports 0-8.
* Some bug fixes in Portals UTCP sds
This commit was SVN r6650.
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.
the MX BTL and MX PTL, so I decide to have short common options on the "configure --help".
--with-mx = for the base MX directory and
--with-mx-libdir = for the library path.
This commit was SVN r6631.
- 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.
threads (basically, same as before, but we now link the right thread
libraries).
* Add disable-io-romio flag to disable compiling ROMIO
* Migrathe mvapi btl from configure.stub to configure.m4
This commit was SVN r6453.
components to succeed with --enable-dist. Instead, just add them to
all_components and make dist will still work - we're going to stamp out
the Makefiles no matter what
* Add missing header to ob1 pml for make dist
* Clean up the Portals BTL configure code
This commit was SVN r6413.
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.
function names with the GSYM (like we should be)
* Add support for PPC64/Linux in atomics
This should go to the beta branch.
This commit was SVN r6163.
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.
[10.4] with gfortran 4.0) who need to be able to add flags to compile
simple Fortran executables that use libc routines.
Notably, for Tiger with gfortran 4.0 installed, you'll need to:
./configure F77=gfortran FC=gfortran LIBS=-lSystemStubs
This commit was SVN r5909.
- 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.
- 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.
biggie), so we gain nothing there. On 10.4, it's implemented directly,
but doesn't support devices (which messes up pty support and IO
forwarding).
This commit was SVN r5621.
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.
linked into libmpi
* add --enable-mca-direct to specify components that should be directly
called (instead of going through component structs and the like). The
components and component frameworks must explicitly support this.
Currently, only the TEG PML does so.
* Updated all the calls to the PML to use a macro so that they can either
be direct called or called through function pointer interfaces (aka
the component infrastructure)
This commit was SVN r5291.
dimensions the f90 MPI bindings should support (they are strongly
typed, and the number of dimensions of choice arguments must be
specified -- it cannot be arbitrary). The default is four.
Note that even though increasing this value has essentially a linear
effect on the code, the multiplier constant is fairly large (only a
small number of functions have 2 choice buffers, so the exponential
factor is relatively small). Increasing this value increases the
amount of time f90 compilers will spend compiling src/mpi/f90/mpi.f90
(some compilers will crash if it is too big).
This commit was SVN r5268.