overhead to the critical path - but ensures buffer reference counts are released
when requests are not released by the application
This commit was SVN r5311.
linked into libmpi
* add --enable-mca-direct to specify components that should be directly
called (instead of going through component structs and the like). The
components and component frameworks must explicitly support this.
Currently, only the TEG PML does so.
* Updated all the calls to the PML to use a macro so that they can either
be direct called or called through function pointer interfaces (aka
the component infrastructure)
This commit was SVN r5291.
ompi_mpi_init(): we no longer *query* the components to see what they
can support -- instead, we *tell* the components what they need to
support (if they can't support it, they should disqualify themselves
from selection).
This involved a bunch of things:
- pass the configure-time-decided OMPI_ENABLE_PROGRESS_THREADS and
OMPI_ENABLE_MPI_THREADS constants to each framework selection
function
- eliminate mca_base_init_select_components()
- eliminate all "allow_multi_user_threads" and "have_hidden_threads"
kinds of arguments and aggregation from various framework selection
and component/module functions
- correctly determine the max MPI thread level that we can support and
limit the final MPI thread level as appropriate during
ompi_mpi_init()
As a side effect, while editing nearly every MPI component I also did
the following:
- found 2 places (gm and ib ptls) where ompi_set_using_threads() was
erroneously being called (I think this is left over kruft from
misunderstandings by the original authors). I removed these.
This commit was SVN r5055.
- DO NOT call matched when we match a probe/iprobe as it's not the real request. This function should be
called only when we match the request that will get the data from the fragment(s).
- DO NOT remove the fragment when we match a probe/iprobe request. The data should be available for the
real receive ...
The others modifs are just for speedup and indentation.
This commit was SVN r4425.
MCA_PML_BASE_RECV_REQUEST_RETURN (as we call the MCA_PML_BASE_RECV_REQUEST_INIT) in order to decrease
the ref count of the communicator and datatype.
This commit was SVN r4421.
on communicators and datatypes. Now the management is done on the PML base and the others PML's just
have to use the corresponding macros from the base.
This commit was SVN r4406.
One warning on my list was left unfixed: the "mca_ptl_tcp_peer_dump" function is defined but not used. It is commented in the file as a diagnostic, so I left it alone since someone may choose to use it for debugging purposes. For now, it is uncalled anywhere in the code.
This commit was SVN r3703.
- change mca_ptl_base_header_t definition to decrease the
header size for small messages. note that this requires
all ptls to be updated. tcp/self/sm/mx have been changed,
gm/ib/quadrics will be broken by this commit. george and
mitch have volunteered to make the required changes to gm/ib
- revised matching logic to reduce function call overhead
- changes to tcp/self/sm/mx ptls to support the revised headers
This commit was SVN r3602.
--------
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.