- 14 Jun, 2015 2 commits
-
-
When win resource is used up, the current code frees OPs before completion only if flush_remote is ordered. However, we can always free them even on out-of-order network. Because remote completion is waited by ack counter, and local completion (flush_local) is translated to remote completion (flush). Signed-off-by:
Xin Zhao <xinzhao3@illinois.edu> Signed-off-by:
Pavan Balaji <balaji@anl.gov>
-
The outstanding_acks counter was increased at each sync call (such as fence and flush). However, the counter had to be decreased again if flush ack is not required. It is more straightforward if increasing it only when the flush packet is issued (FLUSH flag piggyback or a separate flush message). Signed-off-by:
Xin Zhao <xinzhao3@illinois.edu> Signed-off-by:
Pavan Balaji <balaji@anl.gov>
-
- 12 Jun, 2015 32 commits
-
-
Pavan Balaji authored
-
Signed-off-by:
Pavan Balaji <balaji@anl.gov>
-
Signed-off-by:
Pavan Balaji <balaji@anl.gov>
-
Here we make check_and_switch_target/window_state to return a flag indicating if the current window/target states are OK for issuing operations. Signed-off-by:
Pavan Balaji <balaji@anl.gov>
-
check_window_state ---> check_and_switch_window_state check_target_state ---> check_and_switch_target_state Both of those two functions are used to check and switch (if possible) RMA state. Here we change their name to proper ones. Signed-off-by:
Pavan Balaji <balaji@anl.gov>
-
When GACC/FOP is used with MPI_NO_OP, the operation is essentially an atomic GET. Originally MPICH implemented this by converting GACC/FOP to GET, which lost the atomicity of that operation. In this patch, we modify the implementation of GACC/FOP to support atomic GET. Main modifications are listed below: (1) When streaming GACC operation, originally we use origin data size to calculate the stream unit size. Since origin data is zero in atomic GET, here we use target data size instead to calculate the stream unit size. (2) On the origin side, if it is atomic GET, CH3 just issues packet header and metadata for derived datatypes (if needed) and does not try to issue from origin buffer; on the target side, after packet header and metadata for derived datatypes (if needed) are received, the final request handler is triggered, CH3 does not try to receive any data from origin. Signed-off-by:
Pavan Balaji <balaji@anl.gov>
-
Signed-off-by:
Pavan Balaji <balaji@anl.gov>
-
Originally MPICH check datatype of FOP by judging if it is a BUILTIN type, this prohibits all pair types. This patch fix this issue. Signed-off-by:
Pavan Balaji <balaji@anl.gov>
-
Signed-off-by:
Pavan Balaji <balaji@anl.gov>
-
Originally, when op is MPI_REPLACE, MPICH does the related work in a separate IF branch different with other OPs in MPIR_Op_table[], which is unnecessary, since MPI_REPLACE has already been implemented in MPIR_Op_table[] (in the same way with the code in that IF branch). Here we delete the redundant IF branch but just trigger MPI_REPLACE from MPIR_Op_table[]. Signed-off-by:
Pavan Balaji <balaji@anl.gov>
-
Originally before do_accumulate_op() is called, there is a separate IF branch to deal with MPI_NO_OP, which is gross. Here we modify do_accumulate_op() to make sure it works correctly for MPI_NO_OP, and delete those IF branches. Signed-off-by:
Pavan Balaji <balaji@anl.gov>
-
Signed-off-by:
Pavan Balaji <balaji@anl.gov>
-
Signed-off-by:
Pavan Balaji <balaji@anl.gov>
-
In this patch, we move the judgement of local/remote completion out of GC function to separate macros, so that GC function only does the garbage collection work. Signed-off-by:
Pavan Balaji <balaji@anl.gov>
-
Signed-off-by:
Pavan Balaji <balaji@anl.gov>
-
Signed-off-by:
Pavan Balaji <balaji@anl.gov>
-
Originally in GACC/GET, we use 'data_sz' for origin data size and 'len/orig_len' for target data size. Here we change them to 'orig_data_sz' for origin data size and 'target_data_sz' for target data size to make it clearer. Signed-off-by:
Pavan Balaji <balaji@anl.gov>
-
Since both "data_sz" and "len" store the same data (the length of the entire origin data), here we delete "len" but just use "data_sz". Signed-off-by:
Pavan Balaji <balaji@anl.gov>
-
The original code of going over all issued operation lists and cleaning up operations is gross, this patches simplifies the related code. Signed-off-by:
Pavan Balaji <balaji@anl.gov>
-
Rename "disable_flush_local" to "upgrade_flush_local", which indicates that we upgrade FLUSH_LOCAL to FLUSH. Signed-off-by:
Pavan Balaji <balaji@anl.gov>
-
"read_op_list", "write_op_list" and "dt_op_list" are used to store RMA operations that are issued but not completed. Here we add prefix to make it clearer. Signed-off-by:
Pavan Balaji <balaji@anl.gov>
-
Signed-off-by:
Pavan Balaji <balaji@anl.gov>
-
Originally we use is_dt flag stored in op structure to track if derived datatypes are involved in the current RMA operation. The flag is actually not needed and we can directly check datatypes in the current operation. Here we remove is_dt flag from the op structure. Signed-off-by:
Pavan Balaji <balaji@anl.gov>
-
have_remote_incomplete_ops is not actually used in the code, we remove it here. Signed-off-by:
Pavan Balaji <balaji@anl.gov>
-
Signed-off-by:
Pavan Balaji <balaji@anl.gov>
-
Signed-off-by:
Pavan Balaji <balaji@anl.gov>
-
Signed-off-by:
Pavan Balaji <balaji@anl.gov>
-
Originally 'new_ptr' is used for pointer to RMA operation. Here we change it from 'new_ptr' to 'op_ptr' to make the name clearer. Signed-off-by:
Pavan Balaji <balaji@anl.gov>
-
We already drop the code that uses those macros when re-implementing RMA, here we just delete those macros. Signed-off-by:
Pavan Balaji <balaji@anl.gov>
-
Signed-off-by:
Pavan Balaji <balaji@anl.gov>
-
In this test, two messages are sent with the same rank, comm, and tag, and one of them is cancelled before it gets matched. If the destination does not differentiate between the messages, e.g. by using sequence numbers or the origin request handle, the wrong message might be canceled. Signed-off-by:
Ken Raffenetti <raffenet@mcs.anl.gov>
-
Kenneth Raffenetti authored
Signed-off-by:
Halim Amer <aamer@anl.gov>
-
- 11 Jun, 2015 6 commits
-
-
Sangmin Seo authored
To specify the MPI version to use in runtests, -mpiversion option and the environment variable MPITEST_MPIVERSION were added to runtests. If neither -mpiversion nor MPITEST_MPIVERSION is set, the default MPI version, which has been detected by configure, is used for testing. Signed-off-by:
Pavan Balaji <balaji@anl.gov>
-
Halim Amer authored
Signed-off-by:
Ken Raffenetti <raffenet@mcs.anl.gov>
-
Xin Zhao authored
Originally we allocate the lock entry queue in Win_create/allocate (if no_locks is not set), and free the queue in Win_free (if no_locks is not set). This is not correct because no_locks may be set after Win_create/allocate and before Win_free. In this patch, we free the queue in Win_free if the queue was allocated in Win_create/allocate. Thanks to Lisandro Dalcin [dalcinl@gmail.com] for reporting this bug. Fix #2273 Signed-off-by:
Pavan Balaji <balaji@anl.gov>
-
Xin Zhao authored
Thanks to Lisandro Dalcin [dalcinl@gmail.com] for reporting this bug. Signed-off-by:
Pavan Balaji <balaji@anl.gov>
-
Xin Zhao authored
Signed-off-by:
Pavan Balaji <balaji@anl.gov>
-
Charles J Archer authored
* Fix 32-bit integer overflow * Add non-contig support for contig *Msg functions when OFI permits * Remove asserts for better error handling in out of memory condition Change-Id: I0eaa848c9919b7f4b3088b64b9fef79fd5ad2406 Signed-off-by:
Charles J Archer <charles.j.archer@intel.com>
-