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.
- 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.
- 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.
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.
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.
Still to do:
- make the CID allocation routine thread safe
- add the ACK in lam_comm_free
- fix a bug in lam_comm_split for inter-communicators ( in this
case we can not have allgather_intra and allgather_inter at the
same time at this communicators, that's however what
the current implemention assumes).
Reviewed by Jeff, Rich and Tim.
This commit was SVN r1148.