- Formalize the Windoze output
- The facilities for lazy opening of files were already included in
here (yay foresight!); so just don't open the file aggressively when
we ompi_output_open(); instead, let the first ompi_output() open the
file. This allows the session directory to stay empty (and
therefore removable) if the file is never written to.
This commit was SVN r3800.
--------
1. malloc casts to the right pointers
2. function parameter casts in the components (eg., recv requires a (char *) typecast
else cL compiler barfs)
3. added my own errno indirection. this is only in oob/tcp module. ompi_errno is #defined
ro errno in unix land and to a function ompi_get_error which returns the equivalent
error code.
4. implemented our own fcntl to prevent spaghetti coding. this currently only takes
F_GETFL and F_SETFL arguments, does nothing on F_GETFL and sets the nonblocking
option on F_SETFL
5. Moved some extern declarations to global scope since the CL compiler does not do
the right things if they are declared and used in static inline functions.
6. Protection around some header files. changed sys/errno to errno.
7. defined in_proto_t (unsigned uint16_t) to DWORD ... comments are welcome
This commit was SVN r3394.
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.
- Add #include "ompi_config.h" to all .c files, and ensure that it's
the first #included file
- remove a few useless #if HAVE_CONFIG_H checks
This commit was SVN r3229.
IMPORTANT NOTE: when sendout ompi_output() strings to files, note that
the file goes into the session directory. If the session directory
does not exist yet when you call ompi_output() and you are sending the
string to a file, THE STRING WILL BE DROPPED (in terms of the file --
it will still be sent to all other locations that were specified).
This should really only be a factor for a fairly small portion of
things during initialization of a process -- basically, until the
session directory exists, nothing will be written to a file.
ompi_output() will automatically take care of creating the file and
writing to it once the session directory has been created. So it is
valid to:
id = ompi_output(...something with file set...)
ompi_output(id, "blah!");
/* ... process session directory is created ... */
ompi_output(id, "wazzlebort!");
In this case, the output file will be:
-----
[WARNING: 1 lines lost because the Open MPI process session directory did
not exist when ompi_output() was invoked]
wazzlebort!
-----
This commit was SVN r2637.
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.