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.
MPI_Offset
- Make the ROMIO IO component use MPI_Offset for the back-end type for
ADIO_Offset
- Removed some extra verbage from configure warnings
- Add some logic to configure to deduce an MPI datatype that
corresponds to MPI_Offset (because ROMIO needs it). This is a bit
of an abuse (i.e., ROMIO's configure should figure this out), but
it's not too gratuitous because a) the ROMIO component is included
in Open MPI, and b) other io components to be defined in the future
could also use this information
- Rename MCA: MPI Component Architecture -> Modular Component
Architecture
This commit was SVN r3742.
that the C compiler may support bool with no help from <stdbool.h>.
So add another configure test and adjust ompi_config_bottom.h as
appropriate. Since the #if logic in ompi_config_bottom.h got a little
complicated w.r.t. bool, I indented to make the conditionals clear.
This commit was SVN r3291.
that's good. Go ahead -- commit that." But then as soon as you read
the diff on the mailing list, you realize how borked it was. [sigh]
- add MPI_INTEGER16 at George's request
- don't forget to commit acinclude.m4
- correctly name the REAL checks (accidentally had 2 sets of INTEGER
checks)
This commit was SVN r2936.
only be used if the RTE init functions have been called. Not quite as
flexible as the real waitpid() function (no -1 support), but all I need
for the SSH / BProc / RMS pcms. This code is not yet turned on by
default (need to add the init / finalize calls to ompi_rte_init?? and
ompi_rte_finalize()
This commit was SVN r2860.
Ensure that OMPI_F77_* are always defined, even if a) a f77 compiler
is not found, or b) the user disables the f77 MPI bindings.
This commit was SVN r2618.
that was generated by it (i.e., if you're in a developer checkout or
if you're in a distribution tarball). If you don't have the .c file
and lex/flex, error.
This commit was SVN r2312.
- added shell detection code
- start of bootproxy start code
- infrastructure to make search life better.
NOTE NOTE NOTE: You will have to autogen and all that because I had to add
some header file checks to the configure script. Sorry!
This commit was SVN r2239.
In order to get consistent behaviour on linux with various gcc versions,
I am defining _GNU_SOURCE in ompi_config.h and changing the definition
of asprintf, etc.
Problems:
1) autoconf was defining _GNU_SOURCE for its tests, but we were not
setting it
2) g++ sets it by default (I think)
3) some version of gcc set it by default
If somebody knows a consistent solution for these problems then we can
revert to not setting it.
This commit was SVN r2230.
* add env pcmclient, which builds client data out of environment variables
* improved rsh infrastructure a little bit - almost able to get to calling
fork()
* Removed instance information for llm - it should be burried in the pcm,
not exposed
*** YOU MUST RUN AUTOGEN / CONFIGURE / etc AFTER UPDATING ***
This commit was SVN r2191.
or rsh/ssh stdin/stdout, even includes a test case
* add base function for use when PCMs can't provide uniqueness strings, so
that we all have the same value
This commit was SVN r2082.
abstraction a little clearer.
* Include mpiruntime.h instead of runtime.h in errhandler.h since only the
MPI stuff was needed - speeds compile times greatly when working on the
RTE...
This commit was SVN r1948.
horizontal integration
- Move the mpool_sm_mmap.[ch] files to a new sm common code area, and
rename to common_sm_mmap.[ch]
- update sm ptl and mpool to refer to the sm common code area for the
mmap code
This commit was SVN r1930.
* Add hostfile component for the LLM (reads hostfiles, returns array of
node identifiers
NOTES:
- This will require the full autogen / configure / make.
- You now need flex to build Open MPI from Subversion. The versions
available on most Linux boxen and OS X is more than new enough. You
do *not* need flex to build from a nightly or release tarball.
This commit was SVN r1890.
(e.g., Portland compilers don't have/know about <stdbool.h>, but
AC_CHECK_HEADERS will typically find the GNU/gcc <stdbool.h>).
Reviewed by Brian.
This commit was SVN r1889.
-in some cases failed to call complete function when the message
was sent.
-was freeing the wrong iovec in the base recv function
-added a first cut of a oob test
This commit was SVN r1849.
code base.
- many (most) mca type names have "component" or "module" in them,
as relevant, just to further distinguish the difference between
component data/actions and module data/actions. All developers
are encouraged to perpetuate this convention when you create
types that are specific to a framework, component, or module
- did very little to entire framework (just the basics to make it
compile) because it's just about to be almost entirely replaced
- ditto for io / romio
- did not work on elan or ib components; have to commit and then
convert those on a different machine with the right libraries and
headers
- renamed a bunch of *_module.c files to *_component.c and *module*c
to *component*c (a few still remain, e.g., ptl/ib, ptl/elan, etc.)
- modified autogen/configure/build process to match new filenames
(e.g., output static-components.h instead of static-modules.h)
- removed DOS-style cr/lf stuff in ns/ns.h
- added newline to end of file src/util/numtostr.h
- removed some redundant error checking in the top-level topo
functions
- added a few {} here and there where people "forgot" to put them in
for 1 line blocks ;-)
- removed a bunch of MPI_* types from mca header files (replaced with
corresponding ompi_* types)
- all the ptl components had version numbers in their structs; removed
- converted a few more elements in the MCA base to use the OBJ
interface -- removed some old manual reference counting kruft
This commit was SVN r1830.
- Updated autogen.sh and friends to be more flexible and allow
components to be configured and built outside of the Open MPI tree
- Removed $(LIBOMPI_LA) from all component Makefile.am's -- it's
unnecessary
This commit was SVN r1566.
real commit of the collectives. MPI_SCAN and MPI_EXSCAN are still not
implemented, but lots of other things are in the critical path and
holding up other people, so it's ok to commit without them:
- better checks for sizes in configure, and add defaults for fortran
sizes if we don't have a fortran compiler
- fix some logic that was accidentally broken for size checks for the
file type offset_t
- add some C equivalent types for fortran's complex and double complex
(for use in internal reduction/op functions)
- additionals and slight reorganization of ompi_mpi_init()
ompi_mpi_finalize()
- fully implement all top-level MPI collective calls, including all
param checking for both intra- and inter-communicators (woof)
- change the communicator_t type for stuff that we need in coll, and
update all references throughout the code base to match
- all kinds of updates to the coll framework base
- next cut of the basic coll module -- has all intracommunicator
collectives implemented except scan and exscan (see note above).
All intercommunicator functions return ERR_NOT_IMPLEMENTED.
- MPI_Op is a fixed implementation -- not component-ized yet. So
there are generic C loops for all implementations.
This commit was SVN r1491.
- moved mem/free_list.h to class/ompi_free_list.h
- moved mem/malloc.h to util/malloc.h
- added src/mca/mpool component type
This commit was SVN r1274.
flags to LAM_WANT_F77_BINDINGS and LAM_WANT_F90_BINDINGS. Also
changed the compiler flag for the Fortran 90/95/whatever compiler to
FCFLAGS to match what AC was already doing.
This commit was SVN r996.
- Add THREAD_*FLAGS to all the relevant places
- Propagate THREAD_*FLAGS to the wrappers
- Add src/mpi/win/Makefile to AC_OUTPUT
This commit was SVN r868.
speed of autogen.sh and configure: find modules that don't need to have
a separate configure script during autogen.sh and set them up to be
part of LAM's build process. This means that we don't have to run the GNU
tools nearly as much during autogen.sh and that we don't have to run
nearly as many sub-configure scripts during configure.
This works fine for statically-built MCA modules, but doesn't seem to work
properly yet for dynamically-built modules. More coming soon, but I wanted
to get this in for others to use.
This commit was SVN r756.