- 03 Nov, 2014 8 commits
-
-
We were duplicating information in the operation structure and in the packet structure when the message is actually issued. Since most of the information is the same anyway, this patch just embeds a packet structure into the operation structure, so that we eliminate unnessary copy. Signed-off-by:
Pavan Balaji <balaji@anl.gov>
-
The packet type MPIDI_CH3_PKT_PT_RMA_DONE is used for ACK of FLUSH / UNLOCK packets. Here we rename it to MPIDI_CH3_PKT_FLUSH_ACK and modify the related functions and data structures. Signed-off-by:
Pavan Balaji <balaji@anl.gov>
-
We were adding an unnecessary dependency on VC structure declarations in the mpidpkt.h file. The required information in RMA lock queue is only the rank, but not actual VC. Here we replace VC with rank. Signed-off-by:
Pavan Balaji <balaji@anl.gov>
-
Signed-off-by:
Pavan Balaji <balaji@anl.gov>
-
Split RMA functionality into smaller files, and move functions to where they belong based on the file names. Signed-off-by:
Pavan Balaji <balaji@anl.gov>
-
Because we are going to rewrite the RMA infrastructure and many PVARs will no longer be used, here we temporarily remove all PVARs and will add needed PVARs back after new implementation is done. Signed-off-by:
Pavan Balaji <balaji@anl.gov>
-
Wesley Bland authored
Rather than having a static value for the initial size of the RTS queue, have a CVAR to define it. Signed-off-by:
Huiwei Lu <huiweilu@mcs.anl.gov>
-
Wesley Bland authored
When the RTS queue fills up the first time, print out a warning to let the user know that they've done it and FT won't be provided anymore. Signed-off-by:
Huiwei Lu <huiweilu@mcs.anl.gov>
-
- 01 Nov, 2014 3 commits
-
-
Xin Zhao authored
req->dev.user_buf points to the data sent from origin process to target process, and for FOP sometimes it points to the IMMED area in packet header when data can be fit in packet header. In such case, we should not free req->dev.user_buf in final request handler since that data area will be freed by the runtime when packet header is freed. In this patch we initialize user_buf to NULL when creating the request, and set it to NULL when FOP is completed, and avoid free a NULL pointer in final request handler. Signed-off-by:
Min Si <msi@il.is.s.u-tokyo.ac.jp>
-
Igor Ivanov authored
Signed-off-by:
Devendar Bureddy <devendar@mellanox.com> Signed-off-by:
Igor Ivanov <Igor.Ivanov@itseez.com>
-
The original implementation includes an optimization which allows Win_unlock for exclusive lock to return without waiting for remote completion. This relys on the assumption that window memory on target process will not be accessed by a third party until that target process finishes all RMA operations and grants the lock to other processes. However, this assumption is not correct if user uses assert MPI_MODE_NOCHECK. Consider the following code: P0 P1 P2 MPI_Win_lock(P1, NULL, exclusive); MPI_Put(X); MPI_Win_unlock(P1, exclusive); MPI_Send (P2); MPI_Recv(P0); MPI_Win_lock(P1, MODE_NOCHECK, exclusive); MPI_Get(X); MPI_Win_unlock(P1, exclusive); Both P0 and P2 issue exclusive lock to P1, and P2 uses assert MPI_MODE_NOCHECK because the lock should be granted to P2 after synchronization between P2 and P0. However, in the original implementation, GET operation on P2 might not get the updated value since Win_unlock on P0 return without waiting for remote completion. In this patch we delete this optimization. In Win_free, since every Win_unlock guarantees the remote completion, target process no longer needs to do additional counting works to detect target-side completion, but only needs to do a global barrier. Signed-off-by:
Pavan Balaji <balaji@anl.gov>
-
- 31 Oct, 2014 6 commits
-
-
Antonio Pena Monferrer authored
-
Min Si authored
In reqops.c, the ring communication test assumes remote completion after MPI_RPut/MPI_Racc + MPI_Wait, which is not correct. MPI_Wait only guarantees local completion. Here we fixed it by replace MPI_Rput/MPI_Racc + MPI_Wait with MPI_Put/MPI_Acc + MPI_Win_flush. Signed-off-by:
Xin Zhao <xinzhao3@illinois.edu>
-
Sangmin Seo authored
Used discuss@mpich.org instead of mpich-discucc@mcs.anl.gov in the installers' guide. Signed-off-by:
Junchao Zhang <jczhang@mcs.anl.gov>
-
Wesley Bland authored
RTS messages (the first part of the LMT sequence) had no way of being cancelled if an error occurred. This adds a small queue that keeps track of these messages. If a failure is detected, the message is removed from the queue and the associated request is cancelled to get out of the progress engine. See #1945 Signed-off-by:
Huiwei Lu <huiweilu@mcs.anl.gov>
-
Wesley Bland authored
Added another send call to this test to take out the race condition. Now, the test should fail under any circumstances if the send request isn't being cleaned up correctly. Signed-off-by:
Huiwei Lu <huiweilu@mcs.anl.gov>
-
Wesley Bland authored
The default --enable-error-checking (used when no additional value is included) value ended up getting set to "yes" instead of "default". This ended up preventing configure from passing under certain conditions. This changes the default to "all" and fixes the check for "yes". Signed-off-by:
Ken Raffenetti <raffenet@mcs.anl.gov>
-
- 30 Oct, 2014 4 commits
-
-
Xin Zhao authored
No reviewer.
-
Kenneth Raffenetti authored
If the testsuite is configured with --disable-rma, ensure that rma tests in the threads directory do not still run. Signed-off-by:
Wesley Bland <wbland@anl.gov>
-
Min Si authored
There are two request handlers used when receiving data: (1) OnDataAvail, which is triggered when data is arrived; (2) OnFinal, which is triggered when receiving data is finished; When receiving large derived datatype, the receiving iov can be divided into multiple iovs. The OnDataAvail handler is set to iov load function when still waiting for remaining data. However, such handler should be set to OnFinal when starting receiving the last iov. The original code does not set OnDataAvail handler to OnFinal at end. This patch fixes this bug. Note that this bug only appears in RMA calls, because only the RMA packet handers need to specify OnFinal. Resolve #2189. Signed-off-by:
Xin Zhao <xinzhao3@illinois.edu>
-
Pavan Balaji authored
This patch is a workaround for an issue with older HPC-X machines. Once we are comfortable upgrading to the latest HPC-X version, the default value of the CVAR should be changed to true. Signed-off-by:
Xin Zhao <xinzhao3@illinois.edu>
-
- 29 Oct, 2014 5 commits
-
-
Junchao Zhang authored
No review since F08 binding is experimental now.
-
Junchao Zhang authored
No review since F08 binding is experimental now.
-
Junchao Zhang authored
This is needed since we pass these arguments by value No review since F08 binding is experimental now.
-
Kenneth Raffenetti authored
Set reasonable limits for maximum unexpected headers and EQs at init time. We accomplish this with a pre-init stage where we fill in a limits struct with the system defaults, increase certain values (if they are not set already in the environment), then do the real init. If the "desired" limits structure had a way to allow default values for limits we don't care about, the pre-init stage could go away. Signed-off-by:
Antonio J. Pena <apenya@mcs.anl.gov>
-
Kenneth Raffenetti authored
Out previous increase consumed too much memory. 8MB should be enough given the maximum put size and number of headers. Signed-off-by:
Antonio J. Pena <apenya@mcs.anl.gov>
-
- 28 Oct, 2014 3 commits
-
-
For files that are less than the size of a gpfs block there seems to be an issue if successive MPI_File_write_at_all are called with proceeding offsets. Given the simple case of 2 aggs, the 2nd agg/fd will be utilized, however the initial offset into the 2nd agg is distorted on the 2nd call to MPI_File_write_at_all because of the negative size of the 1st agg/fd because the offset info the 2nd agg/fd is influenced by the size of the first. Simple solution is to reverse the default large block assignment so in the case where only 1 agg/fd will be used it will be the first. By chance in the 2 agg situation this is what the GPFSMPIO_BALANCECONTIG optimization does and it does not have this problem. Signed-off-by:
Rob Latham <robl@mcs.anl.gov>
-
PE users may manually specify the MP_IOTASKLIST for explicit aggregator selection. Code needed to be added to verify that the user specification of aggregators were all valid. Do our best to maintain the old PE behavior of using as much of the correctly specified MP_IOTASKLIST as possible and issuing what it labeled error messages but were really warnings about the incorrect portions and functionally just ignoring it, unless none of it was usable in which case it fell back on the default. Signed-off-by:
Rob Latham <robl@mcs.anl.gov>
- 27 Oct, 2014 1 commit
-
-
Kenneth Raffenetti authored
This code did not account for the fact that the first part of the message is already sent in a PtlPut. Signed-off-by:
Pavan Balaji <balaji@anl.gov>
-
- 26 Oct, 2014 1 commit
-
-
Pavan Balaji authored
The defaults used by MXM might not be fully appropriate for mpich. So we automatically initialize it to our preferred defaults unless the user is trying to override it. Signed-off-by:
Xin Zhao <xinzhao3@illinois.edu>
-
- 25 Oct, 2014 2 commits
-
-
Do not block in mxm for blocking sends. Instead , set req pointer let MPICH mpi layer to block on it. This will allow progress go to through MPIDI_CH3I_Progress(), which can release the global mutex in thread multiple case. Signed-off-by:
Pavan Balaji <balaji@anl.gov>
- 24 Oct, 2014 2 commits
-
-
Rob Latham authored
"native", "internal", and "external32" are the only valid values for datarep, but if a user passes null (http://stackoverflow.com/questions/26548398/segmentation-fault-while-using-mpi-file-read-at/ ) then strcmp will segfault. Signed-off-by:
Wesley Bland <wbland@anl.gov>
-
Pavan Balaji authored
The defaults used by MXM might not be fully appropriate for mpich. So we automatically initialize it to our preferred defaults unless the user is trying to override it. Signed-off-by:
Xin Zhao <xinzhao3@illinois.edu>
-
- 23 Oct, 2014 5 commits
-
-
Kenneth Raffenetti authored
Set the unpexected message header limit to 2 million and allocate 512MB of buffer space. Signed-off-by:
Pavan Balaji <balaji@anl.gov>
-
Wesley Bland authored
Unmark sendalive, isendalive, multi_isendalive, recvdead, irecvdead, gather
-
Wesley Bland authored
-
Wesley Bland authored
Back in the 3.1 series, we made the FT versions of all of the MPIC functions default. However, we never changed the names of all of the states. This removes the extra state names. No reviewer.
-
Signed-off-by:
Devendar Bureddy <devendar@mellanox.com> Signed-off-by:
Igor Ivanov <Igor.Ivanov@itseez.com>
-