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.
removing the warning in comm_split_f pointed out be the 64bit architecture. Actually, I wonder why g77 did not detect that, since this was a real bug and not just a warning :-)
This commit was SVN r2113.
- removed send_hton/recv_ntoh routines as we now have send_packed/recv_packed
- removed constness from apis
- adding flag (in work) to allow recv to allocate and return recv buffer
- updated edgars communicator code to use pack routines rather than ntoh routines
This commit was SVN r2095.
purposes (although it did not cause any problems) we memset the
c_coll structure to zero as well.
enabling comm_create for inter-communicators
This commit was SVN r1919.
- because we had the scenario, that fragments for a communicator, which was not
not yet set up on all procs, arrived and caused problem, we introduced
a comm_activate function call, which executes a kind of barrier (using
the allreduce functions used for the comm_cid allocation).
Setting up the coll-component has moved *after* this barrier, since
some coll-modules (e.g. the MagPIe component) might want to communicate
using this communicator already (e.g. a comm_split).
- adding a new file comm_dyn.c, which basically abstracts the required functionality
for connect-accept, and therefore is the 'magic' code (from the MPI point of view)
for all dynamically created communicators.
This commit was SVN r1900.
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.
vpid directly. Instead, use the ompi_name_server.get_vpid() (and
friends) accessor functions from the selected ns module.
This fixes compile issues, but still leaves linker issues -- Ralph
will be committing a fix for those shortly.
This commit was SVN r1592.
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.
- for threaded case - cleanup event libraries progress thread
- cleanup of request handling for persistent sends
- added support for buffered sends
This commit was SVN r1461.
The reason is, that we had to pass four arguments to comm_sdet, which were just passed to comm_cid. However, for the dynamic case, even these four arguments are not enough. So I extracted it. A typical sequence for a comm-creation will therefore be:
newcomm = ompi_comm_set (...);
ompi_comm_nextcid (newcomm, oldcomm,...);
This commit was SVN r1312.
- added a function for implementing an allgather on the local_comm for inter-communicators. Will just be used from MPI_Comm_split for inter-communicators
This commit was SVN r1283.
Modification of lam_comm_destruct and lam_comm_finalize.
Tested with some simple pt2pt tests, and it seems to work.
Since just some very minor modifications, code has been reviewed locally by George.
This commit was SVN r1185.