MPI informations stored in args (the MPI_COMBINER stuff). This function
print only one level of information but it expand the name of the
datatype if the data is a predefined one.
This commit was SVN r9090.
Note, the checksums are not enabled currently, setting to zero as the
convertor is not ready for checksums yet.
Also, we can't call unpack/pack on convertor with 0 bytes, otherwise it
crashes.
This commit was SVN r9062.
- Add more checks on the params to ensure that the user conformed to
MPI-2 (i.e., can have MPI_UNDEFINED for p *or* r in the real/complex
functions, but not both)
- Always return MPI_ERR_ARG, not MPI_ERR_OTHER -- seems to make a
little more sense here, since any errors that are returned are
solely because of the arguments that were passed into the function
This commit was SVN r9037.
counterparts, the reset to MPI_REQUEST_NULL of the upper
struct ompi_request_t was broken. Nightly mpi_test_suite
failed, e.g.
mpirun -np 2 ./mpi_test_suite -t "Ring Isend"
This commit was SVN r9028.
The following SVN revision numbers were found above:
r8945 --> open-mpi/ompi@83f83e5730
progress function in the mca_pml to the BML progress one, avoid having a cascade of
call to the progress function and speed up a little bit the execution.
This commit was SVN r9007.
run-time support, as it appears to be doing bad things to memory. Update
the hack to get the local nid to match the recent TCP nal changes, and
update the P3RT api useage
This commit was SVN r9005.
support for Fortran 90 module flags in the wrapper compilers when I
re-wrote them to be less project-specific. Re-add that support and drop
the ugly install in include hack I had done.
This commit was SVN r9003.
data, if the packed data is contiguous and the unpacked one is not. The
problem was that the unpack function did not update the bConverted value
to the real number of bytes extracted from the iovecs, but limit the update
to the number of bytes moved into the user buffers. So, if there were some
bytes copied in the internal pending buffer, they were lost because the next
convertor instead of using the correct bConverted (with the total number of
bytes) has only the transfered number. The result of this bug, is a shift to
left by few bytes of the values in the user buffers.
Add a protection against such kind of errors in the new_position.c.
This commit was SVN r8997.
as needed for the modified source tree layout. Since we don't include
anything but mpi.h in the ROMIO build, we don't need most of the flags
anyway...
This commit was SVN r8995.
changes. The two Big Changes are elegance (much more re-use of code
rather than cut-n-pasting the same code over and over and over and...)
and enabling cross-compilation for F77 and F90 (because we actually
have to *run* some compiled F77 and F90 programs for some of the
tests, which obviously won't work in a cross-compilation environment
-- so enable the use of config.cache to load such values in
cross-compiling environments).
This commit was SVN r8991.
- move files out of toplevel include/ and etc/, moving it into the
sub-projects
- rather than including config headers with <project>/include,
have them as <project>
- require all headers to be included with a project prefix, with
the exception of the config headers ({opal,orte,ompi}_config.h
mpi.h, and mpif.h)
This commit was SVN r8985.
- Start filling in the progress function, focusing on connection establishment.
- Initialize udapl mpool and free lists
- Create/destroy a protection zone with each IA
- Misc organization as I learn how things work
This commit was SVN r8969.
Correct the problem introduced by the commit 8933 (thanks Tim). In order to avoid to much
trafic on the bus we do not compute the bytes_delivered (require an atomic size_t add)
we have to set it in the begining or otherwise we will report the wrong count in the
MPI status.
This commit was SVN r8968.
1. remove all useless macros from the proc header file
2. merge 2 of the match macros (they share the same logic except one list)
This commit was SVN r8946.
of request we are playing with (send or receive). Therefore, it's useless to have another
switch inside this macro and make the code bigger. Now, we have 2 versions
MCA_PML_OB1_SEND_REQUEST_FREE and MCA_PML_OB1_RECV_REQUEST_FREE.
This commit was SVN r8945.
and add a new macro that can be used for both sends and receives.
Move to atomic operations to manage the length of the sended or received
status. There is one instance where the atomic operation is not required
as the code can cannot be executed in same time by 2 differents threads.
This commit was SVN r8933.
* Implement win_lock and win_unlock in the pt2pt component. Not well
tested, but appears to move bits if properly motivated...
This commit was SVN r8922.
* rework the thread locking so that it at least makes sense to me. Still
need to do a bunch of testing before I'm happy with it, but it's a tad
bit closer...
This commit was SVN r8918.
second instance of the ompi_proc from the send and receive request. This
information is already available on the base request, so there is no
need for duplication. The drawback is that now (in order to avoid a
second lookup in the communicator array of procs) we have to set the base
proc in the PML's _ALLOC macro.
This commit was SVN r8900.
It appears that some compilers look in the library paths and others in
the include paths, so just have both available and save ourselves the
trouble.
This commit was SVN r8897.
Granger for bringing this to our attention.
This needs to be modified slightly to go to the v1.0 branch. Will
submit patch via e-mail.
This commit was SVN r8872.
be locally completing. for now using synchronous calls until the new functionality is available. then will change
the code to use the new PML send flags.
This commit was SVN r8867.
* Implement fortran handle -> c handle tracking
* Remove some unneeded locking around free lists (the free list
macros do their own locking)
* Try to be a bit more memory friendly with the w_mode setting /
checking
This commit was SVN r8865.
a subset of win's group, so this should never happen. But users have
been known to screw up before, so return a reasonable error.
This commit was SVN r8855.
some point, I realized having a variable name "new" might cause some
problems for those people using a C++ compiler to compile C code ;).
This commit was SVN r8846.
complete, but stable enough that it will have no impact on general development,
so into the trunk it goes. Changes in this commit include:
- Remove the --with option for disabling MPI-2 onesided support. It
complicated code, and has no real reason for existing
- add a framework osc (OneSided Communication) for encapsulating
all the MPI-2 onesided functionality
- Modify the MPI interface functions for the MPI-2 onesided chapter
to properly call the underlying framework and do the required
error checking
- Created an osc component pt2pt, which is layered over the BML/BTL
for communication (although it also uses the PML for long message
transfers). Currently, all support functions, all communication
functions (Put, Get, Accumulate), and the Fence synchronization
function are implemented. The PWSC active synchronization
functions and Lock/Unlock passive synchronization functions are
still not implemented
This commit was SVN r8836.
It's still not very clean as we still lock the mvapi_btl mutex inside a critical section
protected by the endpoint mutex ...
This commit was SVN r8810.
- Remove printing of CFLAGS in configure.m4
- Set MCA_BTL_FLAGS_SEND flag
- Improved error handling during module initialization
- Extract the address of each interface with dat_ia_query
- Start playing around with fragment stuff - probably wrong
- Misc code cleanup (removal of GM-specific code)
This commit was SVN r8801.
if-clause, getting rid of local schedule variable.
This commit was SVN r8778.
The following SVN revision numbers were found above:
r8771 --> open-mpi/ompi@2fadddebc8
new wrapper compilers for the OMPI layer. This should require no changes
at all for anyone (other than running autogen, of course)
This commit was SVN r8772.
know that the request is inactive we don't have to call fini). Remove if's from
the critical path. Change a do in while to make sure we do the minimum in all cases.
All in all it decrease the latency for mvapi by something between 0.15 and 0.20
micro-seconds. But it's just a first step ...
This commit was SVN r8770.
increased the datatype ref count, and there is no way to have a convertor without a valid
request, so there is no need for the convertor to increase the reference count of the datatype
again. Therefore, if one want to use the datatype for something else than MPI request, one
has to manage the reference counts outside the datatype layer.
This commit was SVN r8769.
thread finish a request between the moment when we check the request status and the moment
when we acquire the lock, and if there are no more pending request on the pipe we will be
stuck foreverr as nobody have any reason to broadcast the request condition. I check the
req_any and it doesn't contain the same bug.
This commit was SVN r8760.
the descriptors to vanish. The PML was thinking that they are in the btl_cache when they
weren't ... It lead to memory consumption on most environments when compiled with
thread enabled. After modification the latency went down by nearly 0.5 microseconds.
Simple way to trigger the bug: limit the number of maximum items in the free list and run
any communication intensive application (like Netpipe).
This commit was SVN r8741.
- Move mca_btl_udapl_error/mca_btl_module_init to mca_btl_udapl.c and rename it
- White space cleanups
- Free the uDAPL evd and ia handles in mca_btl_udapl_finalize
This commit was SVN r8705.
- fall back to compile test for windows paffinity component
when cross compiling
- fall back to platform guess when checking for threads having
different pids with pthreads (yes on linux, no elsewhere)
- pass the proper host, target, and build flags to the
ROMIO configure script
With these changes, cross-compiling should be possible with the exception
of the Fortran 77 and Fortran 90 bindings. Fortran 77 can be cross-
compiled if cache values are provided for type sizes and alignment.
This commit was SVN r8702.
- Borrow configure.m4 from the mvapi btl. One of the uDAPL headers emits a
warning when -pedantic is enabled, so strip it out.
- Change function check in ompi_check_dapl.m4 from dat_ia_open to
dat_registry_list_providers.. dat_ia_open wasn't working right
- Make the references to prepare_dst, put, and get NULL for now
- Add opal_output() calls in all the udapl interface functions for debugging
- Add evd_qlen component parameter to control event dispatcher queue length
- First stab at component_init and module_init
- Misc cleanups - whitespace, dead code removal
- Update copyrights to 2006
This commit was SVN r8701.
r8698), with changes below:
- Split wrapper flags into those required for each of the three projects,
and cleaned up some cruft (including the LIBMPI_EXTRA_*FLAGS) through-
out the build system
- Added opal_init_util and opal_finalize_util to allow init / cleanup
of all the opal code that doesn't require the MCA system
- Create standalone key=value file parser, based on the one that used
to be in the mca param parser, so that it can be shared in multiple
places
- Add wrapper datafiles for opal, orte, and ompi wrappers, and add
wrapper compiler with support for all the old features
This commit was SVN r8699.
The following SVN revisions from the original message are invalid or
inconsistent and therefore were not cross-referenced:
r8690
r8698
this was implemented using a chain (tree followed with pipeline) by setting the chain fanout to a factor of size etc but the chain datastructure was fixed in length and if exceeded the topo create returned a null which isn't helpfull in cid next function of comdup...
Anyway two fixes, first we do have a real linear function so changed the decision function and second altered the
topo chain create to force chain fanouts of less than 1 to 1 and fanouts bigger than max to max.
next check in will change chain to dynamically allocd array (reallocable) but we shouldn't ever use a chain fanout for a linear tree anyway.
(lession must rerun all tests for all data sizes when changing decision functions)
This commit was SVN r8662.
As the common part is the one that create the shred memory file it seems
logical to make it destroy the file as well. Therefore, the code for
unmapping the file is in a common place.
This commit was SVN r8622.
On some systems (like windows) qsort can modify the order of modules when the
comparaison function return 0. As we expect to have the
mca_btl_sm_add_procs_same_base_addr called before mca_btl_sm_add_procs we have
force the qsort to return the SM modules in the correct order. Giving to the
same_addr module a slightly higher priority solve this problem.
This commit was SVN r8620.
(windows). Instead use the LN_S variable exported by the Makefile (set to
"ln -s" on all Unixes and to "cp -p" on windows).
When we remove an executable use the correct extension for its name
(add $(EXEEXT) to the name).
This commit was SVN r8616.
implementation was not thread safe). See lengthy comment in
ompi/mpi/cxx/intercepts.cc::ompi_mpi_cxx_op_intercept() for a full
explanation.
This commit was SVN r8606.
(apparently we've been doing this in opal and orte, but not in ompi
yet). All public symbols begin with "ompi_coll_tuned_" (not
mca_coll_tuned_) except the component struct. Now this component
passes the illegal symbol report with no hits.
This commit was SVN r8589.
testing. Note that this effectively replaces the "basic" component as
the baseline collective component. Please report any problems with
this component.
If you run into problems with this component, you can disable it with:
--mca coll_tuned_priority 0
This commit was SVN r8575.
confuses the Lahey compiler (because it doesn't want to name a module
mpi_kinds.ompi_module). We shouldn't need this because we're already
touching a sentinel file (mpi_kinds.ompi_module) for make
dependencies; we don't need the compiler-generated module to be named
that.
This commit was SVN r8571.
- Copied the template BTL and renamed everything
- Compiles and shows up correctly in ompi_info, not tested past that
- Should be ignored for everyone but me
This commit was SVN r8544.
deallocation came from the allocator (malloc, fee, etc) or somewhere
else (the user calling mmap/munmap, etc). Going to be used by Galen
to determine if it is worth searching the allocations tree
Set flag if it is possible to intercept mmap (not always possible
due to a circular dependency between mmap, dlsym, and calloc)
This commit was SVN r8521.
- Fix some typos from last commit
- Add collectives of intercommunicators
- Move the static current_op member from Intracomm to Comm
--> this is still a remaining problem: the global variable
current_op is not thread safe!
This commit was SVN r8520.
the same algorithm as in the zlib library, as it is supposed to be the fastest
one and still give good error detection. For those who want to activate the
checksum, there is a define at the bottom of the datatype_internal.h file.
This commit was SVN r8509.
Get the diff down as close as possible, so only whitespace and a few
rearrangements of code (in mca_pml_teg_add_procs, uniq is nicer to
read), so awked diff of both is minimal.
This commit was SVN r8489.
- Test for MPI_REQUEST_NULL within the often executed loop not
necessary, but left as a comment
- The req_fini may potentially return an error, do check for it in
req_wait.
This commit was SVN r8488.
- remove windows socket initialization (it's already in the TCP component)
- protect all used header files
- remove the unused ones.
This commit was SVN r8434.
empty for non threaded builds, but somehow just by moving the code a
little bit around and removing 2 call to lock/unlock the latency for TCP
went down by 2 micro-seconds ...
This commit was SVN r8426.
number of recv system call by caching the data. Each endpoint has a buffer
(the size is an MCA parameter) that can be use as a cache. Before each receive
operation this buffer is added at the end of the iovec list. All data that are
not expected by the fragment will go in this cache. If the cache contain data
all subsequent receive will just memcpy the data into the BTL buffers.
The only drawback is that we will spin around the receive_handle until all the
cached data is readed by the PML layer. This limitation come from the fact that
the event library is unable to call us if there is no events on the socket.
Therefore we are unable to keep the data in the cache until the next loop
into the progress engine.
This commit was SVN r8398.
the script did not complete successfully
- ROMIO likes to default to using the system compiler if no compiler is
specified. This can lead to using a different compiler for ROMIO as
for Open MPI, which is not always a good thing. Reset the default to
behave the same way Open MPI does.
This commit was SVN r8380.
- when processing out of order list - reset match to null on each iteration
- check matched request type and if probe - complete probe and queue fragment
on unexpected list
This commit was SVN r8339.
the page address three situations:
1. if the array of requests are all REQUEST_NULL, set flag=true and
index=MPI_UNDEFINED
2. if the array of requests are not all REQUEST_NULL, if any of them
finished, set flag=true and index=whatever_the_index_was
3. if the array of requests are not all REQUEST_NULL, if none of them
finished, set flag=false and index=MPI_UNDEFINED
With regards to the index value, we are currently doing 1 and 2, but
not 3. More specifically, index should be set to MPI_UNDEFINED if no
requests are found to have completed (regardless of whether they are
REQUEST_NULL or not).
This patch fixes this problem.
This commit was SVN r8319.
functionality. This is a global registration, so all components have to be made
aware of the registration -- therefore, do things at the component level, not the
module level.
This commit was SVN r8314.