support is included because ROMIO is inherently thread-unsafe.
One possible way to have true asynchronous progress would be to use a
progress thread that wakes up and polls at some frequency when there
are non-blocking IO requests pending. This is pretty icky, though --
it should definitely have an MCA parameter to enable/disable this
functionality, as well as another to control the polling frequency.
This also strengthens the argument that we need a v2 of the io
framework -- one that is not designed to exclusively support ROMIO --
one that does something unimaginably "better" for the parallel MPI-2
IO interface. :-)
This commit was SVN r3786.
included by ompi_config_bottom.h, so it's redundant to include
ompi_config.h in it.
- Add OMPI_DEBUG_ZERO macro for zeroing out memory while debugging so
that valgrind (et al.) don't complain about uninitialized memory
when we know it's safe.
- correct a comment in ompi_config_bottom.h to make it have the
correct filename
This commit was SVN r3662.
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.
1. header file and source file protections using #ifdef WIN32
2. new files and directories to support windows functionality
3. appropritate linkage symbols added (OMPI_DECLSPEC) for windows
4. some functions are unimplemented on the windows side. this is mostly
because there might not be need to implement it in windows land. eg., forking
a daemon off
5. Introduced locking mechanisms for windows
This commit was SVN r3286.
alignment. Right now, we only check for char, short, and int. If we
ever run across a platform where one of those three don't work, we'll
need to extend ompi_config_bottom.h. :-)
This commit was SVN r3271.
ompi_config_bottom.h -- it's already in src/mpi/runtime/params.h.
- Add /src/mpi/runtime/params.h to a small number of places.
- Remove some useless run-time checks in MPI fortran functions
This commit was SVN r3177.
c2f MPI_Status translation along the way. This should enable Fortran
MPI apps that use non-blocking communication to start working.
This commit was SVN r2996.
table in my last commit. This commit fixes that, and then re-patches
up mpif.h.in to match.
I'm not sure that we need *all* of the datatypes in there (e.g., do we
really need the C datatypes?), but since George isn't around, I
followed the "when in doubt, it doesn't hurt to add more entries to
the table" rule. Following up with a detailed message to George...
This commit was SVN r2900.
Better memory handling, faster it adapt it's behaviour to the low level driver and to the
datatype representation. However, only the TCP driver has been modified to fit the new engine.
For Fortran the MPI_DATATYPE_NULL is now registered at index 0 in the translation table.
This commit was SVN r2757.
- move the attribute init section in ompi_mpi_init() down below where
communicators are setup (we need MPI_COMM_WORLD to be setup before
attributes and keyvals are setup)
- removed confusing extra wrapper class around ompi_hash_table_t;
looks like it was a victim of slow eroding of members so I put took
it out back and put it out of its misery
- added preliminary definitions for all the pre-defined keyvals.
Still need more work here to assign their initial values, but I
think Edgar was running into an atrribute problem and it may have
been that the pre-defined attrs didn't yet exist.
- removed some LAM-specific predefined keyvals from mpi.h
This commit was SVN r2695.
includes the romio component. Only blocking operations are supported
-- non-blocking stuff is pending some changes in the top-level
progression engine, and some threaded issues need to be worked out.
This commit was SVN r2655.
- added src/mpi/f77/strings.[ch] for f<-->c string conversions
- added src/mpi/f77/constants* for instiantiating and providing macros
to check for the various fortran address "constants" (read the
comments in this file -- it's quite complicated, unfortunately :-\ ):
- MPI_BOTTOM
- MPI_ARGV_NULL
- MPI_ARGVS_NULL
- MPI_ERRCODES_IGNORE
- MPI_STATUS_IGNORE
- MPI_STATUSES_IGNORE
- updated fortran MPI_COMM_SET_NAME and MPI_COMM_GET_NAME to check
string handling
- updated fortran MPI_RECV to check MPI_STATUS_IGNORE handling
- updated fortran MPI_COMM_SPAWN to check string and MPI_ARGV_NULL and
MPI_ERRCODES_IGNORE handling
- partially modified src/mpi/f77/prototypes_mpi.h to account for
string length parameters passed by the fortran compiler; more work to
be done there
- backed out a silly previous change in send_f.c by me (duh)
- updated fortran MPI_COMM_DUP and MPI_COMM_FREE to check int<-->fint
macros
This commit was SVN r2512.
Second level commit log: "The Great and Powerful Jeff Squyres figured out and fixed this bug remotely. All praise Jeff." ;) yup yup
This commit was SVN r2304.
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.
somewhat tied together and I'd rather have a consistent commit rather
than several smaller commits that individually break the tree:
- first cut of src/file/file.c: MPI_File handling. More to come here.
- tweaked MPI_Info handling a bit: cause MPI_Info_f2c to invoke error
handler if provided index is out of range (vs. returing
MPI_INFO_NULL without invoking an error handler)
- moved general MPI MCA params off into their own .h and .c file (so
that ompi_info can call it and therefore display MPI MCA params)
- first [abbreviated] cut of src/mca/io/base/* -- much more to come
here; stripped down to basics for this commit
- filled in a small number of MPI_File* functions for testing purposes
- updated a bunch of doxygen docs
--> Unresolved questions about MPI_ERRORS_RETURN, MPI_ERRORS_ABORT,
and MPI::ERRORS_THROW_EXCEPTIONS because of vagueness in MPI
standard -- Edgar and I are discussing what to do here
--> Unresolved questions about what to do in a case like this:
MPI_File_open(..., &file);
MPI_File_close(&file);
MPI_File_read(..., &file);
because MPI-2:9.7 says that the default error handler on MPI_File
handles is MPI_ERRORS_RETURN -- we can't even print a warning
here! This certainly violates the Law of Least Astonishment for
MPI users (who certainly expect MPI functions that fail to
complain loudly and to abort by default).
This commit was SVN r2136.
- fix a few bugs
- convert/add doxygen comments for internal info functions in
src/info/info.h (some comments were originally in src/info/info.c)
- make it thread safe
- make MPI_INFO_NULL be a real object (vs ((struct ompi_info_t*) 0))
- add error checking into top-level MPI functions
- add support in MPI_Info for "never freeing MPI handles" as a form of
debugging i.e., check if see if you accidentally use a freed handle)
- add support for "print out a list of un-freed MPI_Info handles
during MPI_FINALIZE"
This commit was SVN r2089.
from the "LAM/MPI" -> "Open MPI" name change that didn't convert
properly. So this commit fixes all instances of "OMPI/MPI" to "Open
MPI".
This commit was SVN r1924.
(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 src/datatype/dt_module.c. Now we can easily test for all the correct
flags on send and receive (like datatype commit ...)
This commit was SVN r1768.
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.
entry in the f_to_c translation table for this object. We still wanted
to be MPI_COMM_WORLD zero and MPI_COMM_SELF 1.
Reviewed and agreed by Jeff.
This commit was SVN r1146.
if we're going to suport non-ANSI compilers (in which case we would
need a corresponding #else block with a set of non-ANSI typedefs),
which we're not going to do. :-)
This commit was SVN r1102.