commits
Threads by month
- ----- 2026 -----
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
June 2014
- 2 participants
- 35 discussions
[mpich] MPICH primary repository branch, master, updated. v3.1.1-43-g283319f
by noreply@mpich.org 30 Jun '14
by noreply@mpich.org 30 Jun '14
30 Jun '14
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "MPICH primary repository".
The branch, master has been updated
via 283319f5d9d1cdbcf016dc0ff8ab284114c0be7e (commit)
via dda458a1234b02a04120c5e06654366cb11396ba (commit)
via 7dbdc413e346dd42121efcbfb7e4fbe2b266dab5 (commit)
via da7700a05be91413a8fb119d0fdf36137dbb739d (commit)
via 73f6a4b3aa9102cd4e06f478e19f9d25df4ff3fc (commit)
via 33b7d251f72bbc82d328f5c8e0c7ede0c0a9c745 (commit)
from 31680ed37675df04df2f234944ff356c0ce80537 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://git.mpich.org/mpich.git/commitdiff/283319f5d9d1cdbcf016dc0ff8ab28411…
commit 283319f5d9d1cdbcf016dc0ff8ab284114c0be7e
Author: Xin Zhao <xinzhao3(a)illinois.edu>
Date: Mon Jun 30 09:51:59 2014 -0500
Add CVAR (# of tested reqs) to control when to stop in RMA GC function
When cleanning up completed requests, the original RMA implementation
keeps traversing the op list until it finds a completed request. This
may cause significant O(N) overhead if there is no completed request
in the list. We add a CVAR to let the user control the number of visited
requests as a fixed value.
Note that the default value is set to (-1) in order to be in accordance
with the performance of orignal implementation.
Note that in garbage collection function, if runtime finds a chain
of completed RMA requests, it will temporarily ignore this CVAR
and try to find continuous completed requests as many as possible,
until it meets an incomplete request.
Signed-off-by: Pavan Balaji <balaji(a)anl.gov>
diff --git a/src/mpid/ch3/src/ch3u_rma_sync.c b/src/mpid/ch3/src/ch3u_rma_sync.c
index d9e8570..216ae1d 100644
--- a/src/mpid/ch3/src/ch3u_rma_sync.c
+++ b/src/mpid/ch3/src/ch3u_rma_sync.c
@@ -62,6 +62,10 @@ cvars:
Threshold for the number of completed requests the runtime finds
before it stops trying to find more completed requests in garbage
collection function.
+ Note that it works with MPIR_CVAR_CH3_RMA_GC_NUM_TESTED as an OR
+ relation, which means runtime will stop checking when either one
+ of its following conditions is satisfied or one of conditions of
+ MPIR_CVAR_CH3_RMA_GC_NUM_TESTED is satisfied.
When it is set to negative value, it means runtime will not stop
checking the operation list until it reaches the end of the list.
When it is set to positive value, it means runtime will not stop
@@ -73,6 +77,36 @@ cvars:
and try to find continuous completed requests as many as possible,
until it meets an incomplete request.
+ - name : MPIR_CVAR_CH3_RMA_GC_NUM_TESTED
+ category : CH3
+ type : int
+ default : (-1)
+ class : none
+ verbosity : MPI_T_VERBOSITY_USER_BASIC
+ scope : MPI_T_SCOPE_ALL_EQ
+ description : >-
+ Threshold for the number of RMA requests the runtime tests before
+ it stops trying to check more requests in garbage collection
+ routine.
+ Note that it works with MPIR_CVAR_CH3_RMA_GC_NUM_COMPLETED as an
+ OR relation, which means runtime will stop checking when either
+ one of its following conditions is satisfied or one of conditions
+ of MPIR_CVAR_CH3_RMA_GC_NUM_COMPLETED is satisfied.
+ When it is set to negative value, runtime will not stop checking
+ operation list until runtime reaches the end of the list. It has
+ the risk of O(N) traversing overhead if there is no completed
+ request in the list. When it is set to positive value, it means
+ runtime will not stop checking the operation list until it visits
+ such number of requests. Higher values may make more completed
+ requests to be found, but it has the risk of visiting too many
+ requests, leading to significant performance overhead. When it is
+ set to zero value, runtime will stop checking the operation list
+ immediately, which may cause weird performance in practice.
+ Note that in garbage collection function, if runtime finds a chain
+ of completed RMA requests, it will temporarily ignore this CVAR and
+ try to find continuous completed requests as many as possible, until
+ it meets an incomplete request.
+
- name : MPIR_CVAR_CH3_RMA_LOCK_IMMED
category : CH3
type : boolean
@@ -5609,6 +5643,7 @@ static inline int rma_list_gc( MPID_Win *win_ptr,
int mpi_errno=0;
MPIDI_RMA_Op_t *curr_ptr;
int nComplete = 0;
+ int nVisit = 0;
MPIR_T_PVAR_TIMER_START_VAR(RMA, list_complete_timer);
@@ -5628,11 +5663,17 @@ static inline int rma_list_gc( MPID_Win *win_ptr,
/* --END ERROR HANDLING-- */
MPID_Request_release(curr_ptr->request);
MPIDI_CH3I_RMA_Ops_free_and_next(ops_list, &curr_ptr);
+ nVisit++;
}
while (curr_ptr && curr_ptr != last_elm &&
MPID_Request_is_complete(curr_ptr->request)) ;
- if (MPIR_CVAR_CH3_RMA_GC_NUM_COMPLETED >= 0 &&
- nComplete >= MPIR_CVAR_CH3_RMA_GC_NUM_COMPLETED) {
+ if ((MPIR_CVAR_CH3_RMA_GC_NUM_TESTED >= 0 &&
+ nVisit >= MPIR_CVAR_CH3_RMA_GC_NUM_TESTED) ||
+ (MPIR_CVAR_CH3_RMA_GC_NUM_COMPLETED >= 0 &&
+ nComplete >= MPIR_CVAR_CH3_RMA_GC_NUM_COMPLETED)) {
+ /* MPIR_CVAR_CH3_RMA_GC_NUM_TESTED: Once we tested certain
+ number of requests, we stop checking the rest of the
+ operation list and break out the loop. */
/* MPIR_CVAR_CH3_RMA_GC_NUM_COMPLETED: Once we found
certain number of completed requests, we stop checking
the rest of the operation list and break out the loop. */
@@ -5642,6 +5683,14 @@ static inline int rma_list_gc( MPID_Win *win_ptr,
else {
/* proceed to the next entry. */
curr_ptr = curr_ptr->next;
+ nVisit++;
+ if (MPIR_CVAR_CH3_RMA_GC_NUM_TESTED >= 0 &&
+ nVisit >= MPIR_CVAR_CH3_RMA_GC_NUM_TESTED) {
+ /* MPIR_CVAR_CH3_RMA_GC_NUM_TESTED: Once we tested certain
+ number of requests, we stop checking the rest of the
+ operation list and break out the loop. */
+ break;
+ }
}
} while (curr_ptr && curr_ptr != last_elm);
http://git.mpich.org/mpich.git/commitdiff/dda458a1234b02a04120c5e06654366cb…
commit dda458a1234b02a04120c5e06654366cb11396ba
Author: Xin Zhao <xinzhao3(a)illinois.edu>
Date: Wed Jun 4 09:50:27 2014 -0500
Add CVAR (# of completed reqs) to control when to stop in RMA GC function
Add a CVAR to let the user specify the threshold for number of
completed requests the runtime finds before it stops trying to
find more completed requests in garbage collection function. It
may make the runtime to find more completed requests, but may also
cause significant overhead due to visiting too many requests.
Note that the default value is set to 1 in order to be in
accordance with the performance of original implementation.
Note that in garbage collection function, if runtime finds a chain
of completed RMA requests, it will temporarily ignore this CVAR
and try to find continuous completed requests as many as possible,
until it meets an incomplete request.
Signed-off-by: Pavan Balaji <balaji(a)anl.gov>
diff --git a/src/mpid/ch3/src/ch3u_rma_sync.c b/src/mpid/ch3/src/ch3u_rma_sync.c
index c64fbe4..d9e8570 100644
--- a/src/mpid/ch3/src/ch3u_rma_sync.c
+++ b/src/mpid/ch3/src/ch3u_rma_sync.c
@@ -51,6 +51,28 @@ cvars:
but may run the risk of exceeding the available number of requests
or other internal resources.
+ - name : MPIR_CVAR_CH3_RMA_GC_NUM_COMPLETED
+ category : CH3
+ type : int
+ default : 1
+ class : none
+ verbosity : MPI_T_VERBOSITY_USER_BASIC
+ scope : MPI_T_SCOPE_ALL_EQ
+ description : >-
+ Threshold for the number of completed requests the runtime finds
+ before it stops trying to find more completed requests in garbage
+ collection function.
+ When it is set to negative value, it means runtime will not stop
+ checking the operation list until it reaches the end of the list.
+ When it is set to positive value, it means runtime will not stop
+ checking the operation list until it finds certain number of
+ completed requests. When it is set to zero value, the outcome is
+ undefined.
+ Note that in garbage collection function, if runtime finds a chain
+ of completed RMA requests, it will temporarily ignore this CVAR
+ and try to find continuous completed requests as many as possible,
+ until it meets an incomplete request.
+
- name : MPIR_CVAR_CH3_RMA_LOCK_IMMED
category : CH3
type : boolean
@@ -5609,10 +5631,13 @@ static inline int rma_list_gc( MPID_Win *win_ptr,
}
while (curr_ptr && curr_ptr != last_elm &&
MPID_Request_is_complete(curr_ptr->request)) ;
- /* Once a request completes, we wait for another
- operation to arrive rather than check the
- rest of the requests. */
+ if (MPIR_CVAR_CH3_RMA_GC_NUM_COMPLETED >= 0 &&
+ nComplete >= MPIR_CVAR_CH3_RMA_GC_NUM_COMPLETED) {
+ /* MPIR_CVAR_CH3_RMA_GC_NUM_COMPLETED: Once we found
+ certain number of completed requests, we stop checking
+ the rest of the operation list and break out the loop. */
break;
+ }
}
else {
/* proceed to the next entry. */
http://git.mpich.org/mpich.git/commitdiff/7dbdc413e346dd42121efcbfb7e4fbe2b…
commit 7dbdc413e346dd42121efcbfb7e4fbe2b266dab5
Author: Xin Zhao <xinzhao3(a)illinois.edu>
Date: Fri Apr 25 16:02:55 2014 -0500
Simplify RMA requests completion function
Originally rma_list_complete() function traverses the
operation list to clean up completed requests, which is
what rma_list_gc() is doing now. So we simplify
rma_list_complete() function by deleting the code of
traversing loop and just invoking rma_list_gc() in
rma_list_complete().
Signed-off-by: Pavan Balaji <balaji(a)anl.gov>
diff --git a/src/mpid/ch3/src/ch3u_rma_sync.c b/src/mpid/ch3/src/ch3u_rma_sync.c
index ffd9a45..c64fbe4 100644
--- a/src/mpid/ch3/src/ch3u_rma_sync.c
+++ b/src/mpid/ch3/src/ch3u_rma_sync.c
@@ -5544,41 +5544,10 @@ static inline int rma_list_complete( MPID_Win *win_ptr,
MPID_Progress_start(&progress_state);
/* Process all operations until they are complete */
while (!MPIDI_CH3I_RMA_Ops_isempty(ops_list)) {
- int loopcount = 0;
+ int nDone = 0;
+ mpi_errno = rma_list_gc(win_ptr, ops_list, NULL, &nDone);
+ if (mpi_errno != MPI_SUCCESS) MPIU_ERR_POP(mpi_errno);
ntimes++;
- curr_ptr = MPIDI_CH3I_RMA_Ops_head(ops_list);
- do {
- if (MPID_Request_is_complete(curr_ptr->request)) {
- /* Once we find a complete request, we complete
- as many as possible until we find an incomplete
- or null request */
- do {
- mpi_errno = curr_ptr->request->status.MPI_ERROR;
- /* --BEGIN ERROR HANDLING-- */
- if (mpi_errno != MPI_SUCCESS) {
- MPID_Progress_end(&progress_state);
- MPIU_ERR_SETANDJUMP(mpi_errno,MPI_ERR_OTHER,"**ch3|rma_msg");
- }
- /* --END ERROR HANDLING-- */
- MPID_Request_release(curr_ptr->request);
- MPIDI_CH3I_RMA_Ops_free_and_next(ops_list, &curr_ptr);
- }
- while (curr_ptr &&
- MPID_Request_is_complete(curr_ptr->request));
- /* Once a request completes, we wait for another
- operation to arrive rather than check the
- rest of the requests. */
- break;
- }
- else {
- /* In many cases, if the list of pending requests
- is long, there's no point in checking the entire
- list */
- if (loopcount++ > 4) /* FIXME: threshold as parameter */
- break; /* wait for an event */
- curr_ptr = curr_ptr->next;
- }
- } while (curr_ptr);
/* Wait for something to arrive*/
/* In some tests, this hung unless the test ensured that
http://git.mpich.org/mpich.git/commitdiff/da7700a05be91413a8fb119d0fdf36137…
commit da7700a05be91413a8fb119d0fdf36137dbb739d
Author: Xin Zhao <xinzhao3(a)illinois.edu>
Date: Fri Apr 25 15:49:41 2014 -0500
Separate progress engine code from garbage collection
Currently the code of poking progress engine to complete
requests and the code of cleanning up completed requests
are mixed up in one function rma_list_gc(), which is not
a clear code structure. We move the code of poking progress
engine out of rma_list_gc() and encapsule the code into
a separate function so that rma_list_gc() only does garbage
collection work.
Signed-off-by: Pavan Balaji <balaji(a)anl.gov>
diff --git a/src/mpid/ch3/src/ch3u_rma_sync.c b/src/mpid/ch3/src/ch3u_rma_sync.c
index 88a4482..ffd9a45 100644
--- a/src/mpid/ch3/src/ch3u_rma_sync.c
+++ b/src/mpid/ch3/src/ch3u_rma_sync.c
@@ -782,6 +782,7 @@ static int do_passive_target_rma(MPID_Win *win_ptr, int target_rank,
MPIDI_CH3_Pkt_flags_t sync_flags);
static int send_lock_put_or_acc(MPID_Win *, int);
static int send_lock_get(MPID_Win *, int);
+static inline int poke_progress_engine(void);
static inline int rma_list_complete(MPID_Win *win_ptr,
MPIDI_RMA_Ops_list_t *ops_list);
static inline int rma_list_gc(MPID_Win *win_ptr,
@@ -1050,6 +1051,8 @@ int MPIDI_Win_fence(int assert, MPID_Win *win_ptr)
if (nRequest > MPIR_CVAR_CH3_RMA_NREQUEST_THRESHOLD &&
nRequest - nRequestNew > MPIR_CVAR_CH3_RMA_NREQUEST_NEW_THRESHOLD) {
int nDone = 0;
+ mpi_errno = poke_progress_engine();
+ if (mpi_errno != MPI_SUCCESS) MPIU_ERR_POP(mpi_errno);
MPIR_T_PVAR_STMT(RMA, list_complete_timer=MPIR_T_PVAR_TIMER_ADDR(rma_winfence_complete));
MPIR_T_PVAR_STMT(RMA, list_complete_counter=MPIR_T_PVAR_COUNTER_ADDR(rma_winfence_complete_aux));
@@ -2334,6 +2337,8 @@ int MPIDI_Win_complete(MPID_Win *win_ptr)
if (nRequest > MPIR_CVAR_CH3_RMA_NREQUEST_THRESHOLD &&
nRequest - nRequestNew > MPIR_CVAR_CH3_RMA_NREQUEST_NEW_THRESHOLD) {
int nDone = 0;
+ mpi_errno = poke_progress_engine();
+ if (mpi_errno != MPI_SUCCESS) MPIU_ERR_POP(mpi_errno);
MPIR_T_PVAR_STMT(RMA, list_complete_timer=MPIR_T_PVAR_TIMER_ADDR(rma_wincomplete_complete));
MPIR_T_PVAR_STMT(RMA, list_complete_counter=MPIR_T_PVAR_COUNTER_ADDR(rma_wincomplete_complete_aux));
mpi_errno = rma_list_gc(win_ptr, ops_list, curr_ptr, &nDone);
@@ -3358,6 +3363,8 @@ static int do_passive_target_rma(MPID_Win *win_ptr, int target_rank,
if (nRequest > MPIR_CVAR_CH3_RMA_NREQUEST_THRESHOLD &&
nRequest - nRequestNew > MPIR_CVAR_CH3_RMA_NREQUEST_NEW_THRESHOLD) {
int nDone = 0;
+ mpi_errno = poke_progress_engine();
+ if (mpi_errno != MPI_SUCCESS) MPIU_ERR_POP(mpi_errno);
MPIR_T_PVAR_STMT(RMA, list_complete_timer=MPIR_T_PVAR_TIMER_ADDR(rma_winunlock_complete));
MPIR_T_PVAR_STMT(RMA, list_complete_counter=MPIR_T_PVAR_COUNTER_ADDR(rma_winunlock_complete_aux));
mpi_errno = rma_list_gc(win_ptr,
@@ -5510,6 +5517,22 @@ int MPIDI_CH3_PktHandler_Flush( MPIDI_VC_t *vc, MPIDI_CH3_Pkt_t *pkt,
/* ------------------------------------------------------------------------ */
/* list_complete_timer/counter and list_block_timer defined above */
+static inline int poke_progress_engine(void)
+{
+ int mpi_errno = MPI_SUCCESS;
+ MPID_Progress_state progress_state;
+
+ MPID_Progress_start(&progress_state);
+ mpi_errno = MPID_Progress_poke();
+ if (mpi_errno != MPI_SUCCESS) MPIU_ERR_POP(mpi_errno);
+ MPID_Progress_end(&progress_state);
+
+ fn_exit:
+ return mpi_errno;
+ fn_fail:
+ goto fn_exit;
+}
+
static inline int rma_list_complete( MPID_Win *win_ptr,
MPIDI_RMA_Ops_list_t *ops_list )
{
@@ -5594,14 +5617,11 @@ static inline int rma_list_gc( MPID_Win *win_ptr,
{
int mpi_errno=0;
MPIDI_RMA_Op_t *curr_ptr;
- MPID_Progress_state progress_state;
int nComplete = 0;
MPIR_T_PVAR_TIMER_START_VAR(RMA, list_complete_timer);
- MPID_Progress_start(&progress_state);
curr_ptr = MPIDI_CH3I_RMA_Ops_head(ops_list);
- MPID_Progress_poke();
do {
if (MPID_Request_is_complete(curr_ptr->request)) {
/* Once we find a complete request, we complete
@@ -5612,7 +5632,6 @@ static inline int rma_list_gc( MPID_Win *win_ptr,
mpi_errno = curr_ptr->request->status.MPI_ERROR;
/* --BEGIN ERROR HANDLING-- */
if (mpi_errno != MPI_SUCCESS) {
- MPID_Progress_end(&progress_state);
MPIU_ERR_SETANDJUMP(mpi_errno,MPI_ERR_OTHER,"**ch3|rma_msg");
}
/* --END ERROR HANDLING-- */
@@ -5633,7 +5652,6 @@ static inline int rma_list_gc( MPID_Win *win_ptr,
} while (curr_ptr && curr_ptr != last_elm);
/* if (nComplete) printf( "Completed %d requests\n", nComplete ); */
- MPID_Progress_end(&progress_state);
MPIR_T_PVAR_COUNTER_INC_VAR(RMA, list_complete_counter, 1);
MPIR_T_PVAR_TIMER_END_VAR(RMA, list_complete_timer);
http://git.mpich.org/mpich.git/commitdiff/73f6a4b3aa9102cd4e06f478e19f9d25d…
commit 73f6a4b3aa9102cd4e06f478e19f9d25df4ff3fc
Author: Xin Zhao <xinzhao3(a)illinois.edu>
Date: Fri Jun 20 13:49:58 2014 -0500
Rename RMA request gc and complete function
Rename RMAListPartialComplete to rma_list_gc
and rename RMAListComplete to rma_list_complete.
Declare both functions as inline function.
Add error handling code for both functions.
Signed-off-by: Pavan Balaji <balaji(a)anl.gov>
diff --git a/src/mpid/ch3/src/ch3u_rma_sync.c b/src/mpid/ch3/src/ch3u_rma_sync.c
index 979c41d..88a4482 100644
--- a/src/mpid/ch3/src/ch3u_rma_sync.c
+++ b/src/mpid/ch3/src/ch3u_rma_sync.c
@@ -782,9 +782,9 @@ static int do_passive_target_rma(MPID_Win *win_ptr, int target_rank,
MPIDI_CH3_Pkt_flags_t sync_flags);
static int send_lock_put_or_acc(MPID_Win *, int);
static int send_lock_get(MPID_Win *, int);
-static int RMAListComplete(MPID_Win *win_ptr,
+static inline int rma_list_complete(MPID_Win *win_ptr,
MPIDI_RMA_Ops_list_t *ops_list);
-static int RMAListPartialComplete(MPID_Win *win_ptr,
+static inline int rma_list_gc(MPID_Win *win_ptr,
MPIDI_RMA_Ops_list_t *ops_list,
MPIDI_RMA_Op_t *last_elm, int *nDone);
@@ -1053,7 +1053,8 @@ int MPIDI_Win_fence(int assert, MPID_Win *win_ptr)
MPIR_T_PVAR_STMT(RMA, list_complete_timer=MPIR_T_PVAR_TIMER_ADDR(rma_winfence_complete));
MPIR_T_PVAR_STMT(RMA, list_complete_counter=MPIR_T_PVAR_COUNTER_ADDR(rma_winfence_complete_aux));
- RMAListPartialComplete(win_ptr, ops_list, curr_ptr, &nDone);
+ mpi_errno = rma_list_gc(win_ptr, ops_list, curr_ptr, &nDone);
+ if (mpi_errno != MPI_SUCCESS) MPIU_ERR_POP(mpi_errno);
/* if (nDone > 0) printf( "nDone = %d\n", nDone ); */
nRequest -= nDone;
nRequestNew = nRequest;
@@ -1078,7 +1079,8 @@ int MPIDI_Win_fence(int assert, MPID_Win *win_ptr)
MPIR_T_PVAR_STMT(RMA, list_complete_timer=MPIR_T_PVAR_TIMER_ADDR(rma_winfence_complete));
MPIR_T_PVAR_STMT(RMA, list_complete_counter=MPIR_T_PVAR_COUNTER_ADDR(rma_winfence_complete_aux));
MPIR_T_PVAR_STMT(RMA, list_block_timer=MPIR_T_PVAR_TIMER_ADDR(rma_winfence_block));
- mpi_errno = RMAListComplete(win_ptr, ops_list);
+ mpi_errno = rma_list_complete(win_ptr, ops_list);
+ if (mpi_errno != MPI_SUCCESS) MPIU_ERR_POP(mpi_errno);
}
MPIU_Assert(MPIDI_CH3I_RMA_Ops_isempty(ops_list));
@@ -2334,7 +2336,8 @@ int MPIDI_Win_complete(MPID_Win *win_ptr)
int nDone = 0;
MPIR_T_PVAR_STMT(RMA, list_complete_timer=MPIR_T_PVAR_TIMER_ADDR(rma_wincomplete_complete));
MPIR_T_PVAR_STMT(RMA, list_complete_counter=MPIR_T_PVAR_COUNTER_ADDR(rma_wincomplete_complete_aux));
- RMAListPartialComplete(win_ptr, ops_list, curr_ptr, &nDone);
+ mpi_errno = rma_list_gc(win_ptr, ops_list, curr_ptr, &nDone);
+ if (mpi_errno != MPI_SUCCESS) MPIU_ERR_POP(mpi_errno);
nRequest -= nDone;
nRequestNew = nRequest;
}
@@ -2403,7 +2406,8 @@ int MPIDI_Win_complete(MPID_Win *win_ptr)
MPIR_T_PVAR_STMT(RMA, list_complete_timer=MPIR_T_PVAR_TIMER_ADDR(rma_wincomplete_complete));
MPIR_T_PVAR_STMT(RMA, list_complete_counter=MPIR_T_PVAR_COUNTER_ADDR(rma_wincomplete_complete_aux));
MPIR_T_PVAR_STMT(RMA, list_block_timer=MPIR_T_PVAR_TIMER_ADDR(rma_wincomplete_block));
- mpi_errno = RMAListComplete(win_ptr, ops_list);
+ mpi_errno = rma_list_complete(win_ptr, ops_list);
+ if (mpi_errno != MPI_SUCCESS) MPIU_ERR_POP(mpi_errno);
}
MPIU_Assert(MPIDI_CH3I_RMA_Ops_isempty(ops_list));
@@ -3356,9 +3360,10 @@ static int do_passive_target_rma(MPID_Win *win_ptr, int target_rank,
int nDone = 0;
MPIR_T_PVAR_STMT(RMA, list_complete_timer=MPIR_T_PVAR_TIMER_ADDR(rma_winunlock_complete));
MPIR_T_PVAR_STMT(RMA, list_complete_counter=MPIR_T_PVAR_COUNTER_ADDR(rma_winunlock_complete_aux));
- RMAListPartialComplete(win_ptr,
+ mpi_errno = rma_list_gc(win_ptr,
&win_ptr->targets[target_rank].rma_ops_list,
curr_ptr, &nDone);
+ if (mpi_errno != MPI_SUCCESS) MPIU_ERR_POP(mpi_errno);
/* if (nDone > 0) printf( "nDone = %d\n", nDone ); */
nRequest -= nDone;
nRequestNew = nRequest;
@@ -3372,7 +3377,8 @@ static int do_passive_target_rma(MPID_Win *win_ptr, int target_rank,
MPIR_T_PVAR_STMT(RMA, list_complete_timer=MPIR_T_PVAR_TIMER_ADDR(rma_winunlock_complete));
MPIR_T_PVAR_STMT(RMA, list_block_timer=MPIR_T_PVAR_TIMER_ADDR(rma_winunlock_block));
MPIR_T_PVAR_STMT(RMA, list_complete_counter=MPIR_T_PVAR_COUNTER_ADDR(rma_winunlock_complete_aux));
- mpi_errno = RMAListComplete(win_ptr, &win_ptr->targets[target_rank].rma_ops_list);
+ mpi_errno = rma_list_complete(win_ptr, &win_ptr->targets[target_rank].rma_ops_list);
+ if (mpi_errno != MPI_SUCCESS) MPIU_ERR_POP(mpi_errno);
}
else if (sync_flags & MPIDI_CH3_PKT_FLAG_RMA_UNLOCK) {
/* No communication operations were left to process, but the RMA epoch
@@ -5504,7 +5510,7 @@ int MPIDI_CH3_PktHandler_Flush( MPIDI_VC_t *vc, MPIDI_CH3_Pkt_t *pkt,
/* ------------------------------------------------------------------------ */
/* list_complete_timer/counter and list_block_timer defined above */
-static int RMAListComplete( MPID_Win *win_ptr,
+static inline int rma_list_complete( MPID_Win *win_ptr,
MPIDI_RMA_Ops_list_t *ops_list )
{
int ntimes = 0, mpi_errno=0;
@@ -5575,17 +5581,13 @@ static int RMAListComplete( MPID_Win *win_ptr,
return mpi_errno;
}
-/* This routine may be used to attempt to complete pending requests during
- the initial processing of the list (to handle the case where the
- communication layer is returning uncompleted requests and may run the
- danger of running out of internal data
-
- Unlike the completion routine, we call this when we expect to need a
- at least a few requests, so rather than stop looking after a few items
- (the loopcount check in the other code), we search through the entire
- list until we find a completable request.
+/* This routine is used to do garbage collection work on completed RMA
+ requests so far. It is used to clean up the RMA requests that are
+ not completed immediately when issuing out but are completed later
+ when poking progress engine, so that they will not waste internal
+ resources.
*/
-static int RMAListPartialComplete( MPID_Win *win_ptr,
+static inline int rma_list_gc( MPID_Win *win_ptr,
MPIDI_RMA_Ops_list_t *ops_list,
MPIDI_RMA_Op_t *last_elm,
int *nDone )
http://git.mpich.org/mpich.git/commitdiff/33b7d251f72bbc82d328f5c8e0c7ede0c…
commit 33b7d251f72bbc82d328f5c8e0c7ede0c0a9c745
Author: Xin Zhao <xinzhao3(a)illinois.edu>
Date: Fri Apr 25 15:37:12 2014 -0500
Rename static functions in RMA code
Static functions should not have name starting with prefix "MPIDI_CH3I_".
We delete those prefix in function names as well as in state names.
Signed-off-by: Pavan Balaji <balaji(a)anl.gov>
diff --git a/src/mpid/ch3/src/ch3u_rma_sync.c b/src/mpid/ch3/src/ch3u_rma_sync.c
index 5a5b942..979c41d 100644
--- a/src/mpid/ch3/src/ch3u_rma_sync.c
+++ b/src/mpid/ch3/src/ch3u_rma_sync.c
@@ -754,37 +754,37 @@ static MPIR_T_pvar_timer_t *list_block_timer; /* Inner; while waiting */
#define SYNC_POST_TAG 100
-static int MPIDI_CH3I_Send_lock_msg(int dest, int lock_type, MPID_Win *win_ptr);
-static int MPIDI_CH3I_Send_unlock_msg(int dest, MPID_Win *win_ptr);
-/* static int MPIDI_CH3I_Send_flush_msg(int dest, MPID_Win *win_ptr); */
-static int MPIDI_CH3I_Wait_for_lock_granted(MPID_Win *win_ptr, int target_rank);
-static int MPIDI_CH3I_Acquire_local_lock(MPID_Win *win_ptr, int lock_mode);
-static int MPIDI_CH3I_Send_rma_msg(MPIDI_RMA_Op_t * rma_op, MPID_Win * win_ptr,
+static int send_lock_msg(int dest, int lock_type, MPID_Win *win_ptr);
+static int send_unlock_msg(int dest, MPID_Win *win_ptr);
+/* static int send_flush_msg(int dest, MPID_Win *win_ptr); */
+static int wait_for_lock_granted(MPID_Win *win_ptr, int target_rank);
+static int acquire_local_lock(MPID_Win *win_ptr, int lock_mode);
+static int send_rma_msg(MPIDI_RMA_Op_t * rma_op, MPID_Win * win_ptr,
MPIDI_CH3_Pkt_flags_t flags,
MPI_Win source_win_handle,
MPI_Win target_win_handle,
MPIDI_RMA_dtype_info * dtype_info,
void ** dataloop, MPID_Request ** request);
-static int MPIDI_CH3I_Recv_rma_msg(MPIDI_RMA_Op_t * rma_op, MPID_Win * win_ptr,
+static int recv_rma_msg(MPIDI_RMA_Op_t * rma_op, MPID_Win * win_ptr,
MPIDI_CH3_Pkt_flags_t flags,
MPI_Win source_win_handle,
MPI_Win target_win_handle,
MPIDI_RMA_dtype_info * dtype_info,
void ** dataloop, MPID_Request ** request);
-static int MPIDI_CH3I_Send_contig_acc_msg(MPIDI_RMA_Op_t *, MPID_Win *,
+static int send_contig_acc_msg(MPIDI_RMA_Op_t *, MPID_Win *,
MPIDI_CH3_Pkt_flags_t flags,
MPI_Win, MPI_Win, MPID_Request ** );
-static int MPIDI_CH3I_Send_immed_rmw_msg(MPIDI_RMA_Op_t *, MPID_Win *,
+static int send_immed_rmw_msg(MPIDI_RMA_Op_t *, MPID_Win *,
MPIDI_CH3_Pkt_flags_t flags,
MPI_Win, MPI_Win, MPID_Request ** );
-static int MPIDI_CH3I_Do_passive_target_rma(MPID_Win *win_ptr, int target_rank,
+static int do_passive_target_rma(MPID_Win *win_ptr, int target_rank,
int *wait_for_rma_done_pkt,
MPIDI_CH3_Pkt_flags_t sync_flags);
-static int MPIDI_CH3I_Send_lock_put_or_acc(MPID_Win *, int);
-static int MPIDI_CH3I_Send_lock_get(MPID_Win *, int);
-static int MPIDI_CH3I_RMAListComplete(MPID_Win *win_ptr,
+static int send_lock_put_or_acc(MPID_Win *, int);
+static int send_lock_get(MPID_Win *, int);
+static int RMAListComplete(MPID_Win *win_ptr,
MPIDI_RMA_Ops_list_t *ops_list);
-static int MPIDI_CH3I_RMAListPartialComplete(MPID_Win *win_ptr,
+static int RMAListPartialComplete(MPID_Win *win_ptr,
MPIDI_RMA_Ops_list_t *ops_list,
MPIDI_RMA_Op_t *last_elm, int *nDone);
@@ -804,7 +804,7 @@ static int create_datatype(const MPIDI_RMA_dtype_info *dtype_info,
case (MPIDI_RMA_PUT): \
case (MPIDI_RMA_ACCUMULATE): \
MPIDI_CH3I_TRACK_RMA_WRITE(op_ptr_, win_ptr_); \
- (err_) = MPIDI_CH3I_Send_rma_msg((op_ptr_), (win_ptr_), (flags_), (source_win_handle_), \
+ (err_) = send_rma_msg((op_ptr_), (win_ptr_), (flags_), (source_win_handle_), \
(target_win_handle_), &(op_ptr_)->dtype_info, \
&(op_ptr_)->dataloop, &(op_ptr_)->request); \
if (err_) { MPIU_ERR_POP(err_); } \
@@ -820,12 +820,12 @@ static int create_datatype(const MPIDI_RMA_dtype_info *dtype_info,
(op_ptr_)->origin_count = (op_ptr_)->result_count; \
(op_ptr_)->origin_datatype = (op_ptr_)->result_datatype; \
\
- (err_) = MPIDI_CH3I_Recv_rma_msg((op_ptr_), (win_ptr_), (flags_), (source_win_handle_), \
+ (err_) = recv_rma_msg((op_ptr_), (win_ptr_), (flags_), (source_win_handle_), \
(target_win_handle_), &(op_ptr_)->dtype_info,\
&(op_ptr_)->dataloop, &(op_ptr_)->request); \
} else { \
MPIDI_CH3I_TRACK_RMA_WRITE(op_ptr_, win_ptr_); \
- (err_) = MPIDI_CH3I_Send_rma_msg((op_ptr_), (win_ptr_), (flags_), (source_win_handle_), \
+ (err_) = send_rma_msg((op_ptr_), (win_ptr_), (flags_), (source_win_handle_), \
(target_win_handle_), &(op_ptr_)->dtype_info,\
&(op_ptr_)->dataloop, &(op_ptr_)->request); \
} \
@@ -833,13 +833,13 @@ static int create_datatype(const MPIDI_RMA_dtype_info *dtype_info,
break; \
case MPIDI_RMA_ACC_CONTIG: \
MPIDI_CH3I_TRACK_RMA_WRITE(op_ptr_, win_ptr_); \
- (err_) = MPIDI_CH3I_Send_contig_acc_msg((op_ptr_), (win_ptr_), (flags_), \
+ (err_) = send_contig_acc_msg((op_ptr_), (win_ptr_), (flags_), \
(source_win_handle_), (target_win_handle_),\
&(op_ptr_)->request ); \
if (err_) { MPIU_ERR_POP(err_); } \
break; \
case (MPIDI_RMA_GET): \
- (err_) = MPIDI_CH3I_Recv_rma_msg((op_ptr_), (win_ptr_), (flags_), \
+ (err_) = recv_rma_msg((op_ptr_), (win_ptr_), (flags_), \
(source_win_handle_), (target_win_handle_), \
&(op_ptr_)->dtype_info, \
&(op_ptr_)->dataloop, &(op_ptr_)->request); \
@@ -848,7 +848,7 @@ static int create_datatype(const MPIDI_RMA_dtype_info *dtype_info,
case (MPIDI_RMA_COMPARE_AND_SWAP): \
case (MPIDI_RMA_FETCH_AND_OP): \
MPIDI_CH3I_TRACK_RMA_WRITE(op_ptr_, win_ptr_); \
- (err_) = MPIDI_CH3I_Send_immed_rmw_msg((op_ptr_), (win_ptr_), (flags_), \
+ (err_) = send_immed_rmw_msg((op_ptr_), (win_ptr_), (flags_), \
(source_win_handle_), (target_win_handle_),\
&(op_ptr_)->request ); \
if (err_) { MPIU_ERR_POP(err_); } \
@@ -1053,7 +1053,7 @@ int MPIDI_Win_fence(int assert, MPID_Win *win_ptr)
MPIR_T_PVAR_STMT(RMA, list_complete_timer=MPIR_T_PVAR_TIMER_ADDR(rma_winfence_complete));
MPIR_T_PVAR_STMT(RMA, list_complete_counter=MPIR_T_PVAR_COUNTER_ADDR(rma_winfence_complete_aux));
- MPIDI_CH3I_RMAListPartialComplete(win_ptr, ops_list, curr_ptr, &nDone);
+ RMAListPartialComplete(win_ptr, ops_list, curr_ptr, &nDone);
/* if (nDone > 0) printf( "nDone = %d\n", nDone ); */
nRequest -= nDone;
nRequestNew = nRequest;
@@ -1078,7 +1078,7 @@ int MPIDI_Win_fence(int assert, MPID_Win *win_ptr)
MPIR_T_PVAR_STMT(RMA, list_complete_timer=MPIR_T_PVAR_TIMER_ADDR(rma_winfence_complete));
MPIR_T_PVAR_STMT(RMA, list_complete_counter=MPIR_T_PVAR_COUNTER_ADDR(rma_winfence_complete_aux));
MPIR_T_PVAR_STMT(RMA, list_block_timer=MPIR_T_PVAR_TIMER_ADDR(rma_winfence_block));
- mpi_errno = MPIDI_CH3I_RMAListComplete(win_ptr, ops_list);
+ mpi_errno = RMAListComplete(win_ptr, ops_list);
}
MPIU_Assert(MPIDI_CH3I_RMA_Ops_isempty(ops_list));
@@ -1204,10 +1204,10 @@ static int create_datatype(const MPIDI_RMA_dtype_info *dtype_info,
#undef FUNCNAME
-#define FUNCNAME MPIDI_CH3I_Send_rma_msg
+#define FUNCNAME send_rma_msg
#undef FCNAME
#define FCNAME MPIDI_QUOTE(FUNCNAME)
-static int MPIDI_CH3I_Send_rma_msg(MPIDI_RMA_Op_t *rma_op, MPID_Win *win_ptr,
+static int send_rma_msg(MPIDI_RMA_Op_t *rma_op, MPID_Win *win_ptr,
MPIDI_CH3_Pkt_flags_t flags,
MPI_Win source_win_handle,
MPI_Win target_win_handle,
@@ -1226,10 +1226,10 @@ static int MPIDI_CH3I_Send_rma_msg(MPIDI_RMA_Op_t *rma_op, MPID_Win *win_ptr,
MPID_Datatype *target_dtp=NULL, *origin_dtp=NULL;
MPID_Request *resp_req=NULL;
MPIU_CHKPMEM_DECL(1);
- MPIDI_STATE_DECL(MPID_STATE_MPIDI_CH3I_SEND_RMA_MSG);
+ MPIDI_STATE_DECL(MPID_STATE_SEND_RMA_MSG);
MPIDI_STATE_DECL(MPID_STATE_MEMCPY);
- MPIDI_RMA_FUNC_ENTER(MPID_STATE_MPIDI_CH3I_SEND_RMA_MSG);
+ MPIDI_RMA_FUNC_ENTER(MPID_STATE_SEND_RMA_MSG);
*request = NULL;
@@ -1493,7 +1493,7 @@ static int MPIDI_CH3I_Send_rma_msg(MPIDI_RMA_Op_t *rma_op, MPID_Win *win_ptr,
fn_exit:
MPIU_CHKPMEM_COMMIT();
- MPIDI_RMA_FUNC_EXIT(MPID_STATE_MPIDI_CH3I_SEND_RMA_MSG);
+ MPIDI_RMA_FUNC_EXIT(MPID_STATE_SEND_RMA_MSG);
return mpi_errno;
/* --BEGIN ERROR HANDLING-- */
fn_fail:
@@ -1516,10 +1516,10 @@ static int MPIDI_CH3I_Send_rma_msg(MPIDI_RMA_Op_t *rma_op, MPID_Win *win_ptr,
* Use this for contiguous accumulate operations
*/
#undef FUNCNAME
-#define FUNCNAME MPIDI_CH3I_Send_contig_acc_msg
+#define FUNCNAME send_contig_acc_msg
#undef FCNAME
#define FCNAME MPIDI_QUOTE(FUNCNAME)
-static int MPIDI_CH3I_Send_contig_acc_msg(MPIDI_RMA_Op_t *rma_op,
+static int send_contig_acc_msg(MPIDI_RMA_Op_t *rma_op,
MPID_Win *win_ptr,
MPIDI_CH3_Pkt_flags_t flags,
MPI_Win source_win_handle,
@@ -1535,9 +1535,9 @@ static int MPIDI_CH3I_Send_contig_acc_msg(MPIDI_RMA_Op_t *rma_op,
MPIDI_VC_t * vc;
MPID_Comm *comm_ptr;
size_t len;
- MPIDI_STATE_DECL(MPID_STATE_MPIDI_CH3I_SEND_CONTIG_ACC_MSG);
+ MPIDI_STATE_DECL(MPID_STATE_SEND_CONTIG_ACC_MSG);
- MPIDI_RMA_FUNC_ENTER(MPID_STATE_MPIDI_CH3I_SEND_CONTIG_ACC_MSG);
+ MPIDI_RMA_FUNC_ENTER(MPID_STATE_SEND_CONTIG_ACC_MSG);
*request = NULL;
@@ -1613,7 +1613,7 @@ static int MPIDI_CH3I_Send_contig_acc_msg(MPIDI_RMA_Op_t *rma_op,
MPIU_ERR_CHKANDJUMP(mpi_errno, mpi_errno, MPI_ERR_OTHER, "**ch3|rmamsg");
fn_exit:
- MPIDI_RMA_FUNC_EXIT(MPID_STATE_MPIDI_CH3I_SEND_CONTIG_ACC_MSG);
+ MPIDI_RMA_FUNC_EXIT(MPID_STATE_SEND_CONTIG_ACC_MSG);
return mpi_errno;
/* --BEGIN ERROR HANDLING-- */
fn_fail:
@@ -1631,10 +1631,10 @@ static int MPIDI_CH3I_Send_contig_acc_msg(MPIDI_RMA_Op_t *rma_op,
* Initiate an immediate RMW accumulate operation
*/
#undef FUNCNAME
-#define FUNCNAME MPIDI_CH3I_Send_immed_rmw_msg
+#define FUNCNAME send_immed_rmw_msg
#undef FCNAME
#define FCNAME MPIDI_QUOTE(FUNCNAME)
-static int MPIDI_CH3I_Send_immed_rmw_msg(MPIDI_RMA_Op_t *rma_op,
+static int send_immed_rmw_msg(MPIDI_RMA_Op_t *rma_op,
MPID_Win *win_ptr,
MPIDI_CH3_Pkt_flags_t flags,
MPI_Win source_win_handle,
@@ -1646,9 +1646,9 @@ static int MPIDI_CH3I_Send_immed_rmw_msg(MPIDI_RMA_Op_t *rma_op,
MPIDI_VC_t *vc;
MPID_Comm *comm_ptr;
MPI_Aint len;
- MPIDI_STATE_DECL(MPID_STATE_MPIDI_CH3I_SEND_IMMED_RMW_MSG);
+ MPIDI_STATE_DECL(MPID_STATE_SEND_IMMED_RMW_MSG);
- MPIDI_RMA_FUNC_ENTER(MPID_STATE_MPIDI_CH3I_SEND_IMMED_RMW_MSG);
+ MPIDI_RMA_FUNC_ENTER(MPID_STATE_SEND_IMMED_RMW_MSG);
*request = NULL;
@@ -1764,7 +1764,7 @@ static int MPIDI_CH3I_Send_immed_rmw_msg(MPIDI_RMA_Op_t *rma_op,
}
fn_exit:
- MPIDI_RMA_FUNC_EXIT(MPID_STATE_MPIDI_CH3I_SEND_IMMED_RMW_MSG);
+ MPIDI_RMA_FUNC_EXIT(MPID_STATE_SEND_IMMED_RMW_MSG);
return mpi_errno;
/* --BEGIN ERROR HANDLING-- */
fn_fail:
@@ -1782,10 +1782,10 @@ fn_fail:
#undef FUNCNAME
-#define FUNCNAME MPIDI_CH3I_Recv_rma_msg
+#define FUNCNAME recv_rma_msg
#undef FCNAME
#define FCNAME MPIDI_QUOTE(FUNCNAME)
-static int MPIDI_CH3I_Recv_rma_msg(MPIDI_RMA_Op_t *rma_op, MPID_Win *win_ptr,
+static int recv_rma_msg(MPIDI_RMA_Op_t *rma_op, MPID_Win *win_ptr,
MPIDI_CH3_Pkt_flags_t flags,
MPI_Win source_win_handle,
MPI_Win target_win_handle,
@@ -1801,10 +1801,10 @@ static int MPIDI_CH3I_Recv_rma_msg(MPIDI_RMA_Op_t *rma_op, MPID_Win *win_ptr,
MPID_Datatype *dtp;
MPID_IOV iov[MPID_IOV_LIMIT];
MPIU_CHKPMEM_DECL(1);
- MPIDI_STATE_DECL(MPID_STATE_MPIDI_CH3I_RECV_RMA_MSG);
+ MPIDI_STATE_DECL(MPID_STATE_RECV_RMA_MSG);
MPIDI_STATE_DECL(MPID_STATE_MEMCPY);
- MPIDI_RMA_FUNC_ENTER(MPID_STATE_MPIDI_CH3I_RECV_RMA_MSG);
+ MPIDI_RMA_FUNC_ENTER(MPID_STATE_RECV_RMA_MSG);
/* create a request, store the origin buf, cnt, datatype in it,
and pass a handle to it in the get packet. When the get
@@ -1917,7 +1917,7 @@ static int MPIDI_CH3I_Recv_rma_msg(MPIDI_RMA_Op_t *rma_op, MPID_Win *win_ptr,
}
fn_exit:
- MPIDI_RMA_FUNC_EXIT(MPID_STATE_MPIDI_CH3I_RECV_RMA_MSG);
+ MPIDI_RMA_FUNC_EXIT(MPID_STATE_RECV_RMA_MSG);
return mpi_errno;
/* --BEGIN ERROR HANDLING-- */
@@ -2334,7 +2334,7 @@ int MPIDI_Win_complete(MPID_Win *win_ptr)
int nDone = 0;
MPIR_T_PVAR_STMT(RMA, list_complete_timer=MPIR_T_PVAR_TIMER_ADDR(rma_wincomplete_complete));
MPIR_T_PVAR_STMT(RMA, list_complete_counter=MPIR_T_PVAR_COUNTER_ADDR(rma_wincomplete_complete_aux));
- MPIDI_CH3I_RMAListPartialComplete(win_ptr, ops_list, curr_ptr, &nDone);
+ RMAListPartialComplete(win_ptr, ops_list, curr_ptr, &nDone);
nRequest -= nDone;
nRequestNew = nRequest;
}
@@ -2403,7 +2403,7 @@ int MPIDI_Win_complete(MPID_Win *win_ptr)
MPIR_T_PVAR_STMT(RMA, list_complete_timer=MPIR_T_PVAR_TIMER_ADDR(rma_wincomplete_complete));
MPIR_T_PVAR_STMT(RMA, list_complete_counter=MPIR_T_PVAR_COUNTER_ADDR(rma_wincomplete_complete_aux));
MPIR_T_PVAR_STMT(RMA, list_block_timer=MPIR_T_PVAR_TIMER_ADDR(rma_wincomplete_block));
- mpi_errno = MPIDI_CH3I_RMAListComplete(win_ptr, ops_list);
+ mpi_errno = RMAListComplete(win_ptr, ops_list);
}
MPIU_Assert(MPIDI_CH3I_RMA_Ops_isempty(ops_list));
@@ -2582,7 +2582,7 @@ int MPIDI_Win_lock(int lock_type, int dest, int assert, MPID_Win *win_ptr)
/* The target is this process itself. We must block until the lock
* is acquired. Once it is acquired, local puts, gets, accumulates
* will be done directly without queueing. */
- mpi_errno = MPIDI_CH3I_Acquire_local_lock(win_ptr, lock_type);
+ mpi_errno = acquire_local_lock(win_ptr, lock_type);
if (mpi_errno) { MPIU_ERR_POP(mpi_errno); }
}
else if (win_ptr->shm_allocated == TRUE) {
@@ -2604,17 +2604,17 @@ int MPIDI_Win_lock(int lock_type, int dest, int assert, MPID_Win *win_ptr)
}
if (win_ptr->create_flavor == MPI_WIN_FLAVOR_SHARED || orig_vc->node_id == target_vc->node_id) {
- mpi_errno = MPIDI_CH3I_Send_lock_msg(dest, lock_type, win_ptr);
+ mpi_errno = send_lock_msg(dest, lock_type, win_ptr);
if (mpi_errno) { MPIU_ERR_POP(mpi_errno); }
- mpi_errno = MPIDI_CH3I_Wait_for_lock_granted(win_ptr, dest);
+ mpi_errno = wait_for_lock_granted(win_ptr, dest);
if (mpi_errno) { MPIU_ERR_POP(mpi_errno); }
}
}
else if (MPIR_CVAR_CH3_RMA_LOCK_IMMED && ((assert & MPI_MODE_NOCHECK) == 0)) {
/* TODO: Make this mode of operation available through an assert
argument or info key. */
- mpi_errno = MPIDI_CH3I_Send_lock_msg(dest, lock_type, win_ptr);
+ mpi_errno = send_lock_msg(dest, lock_type, win_ptr);
MPIU_ERR_CHKANDJUMP(mpi_errno != MPI_SUCCESS, mpi_errno, MPI_ERR_OTHER, "**ch3|rma_msg");
}
@@ -2720,11 +2720,11 @@ int MPIDI_Win_unlock(int dest, MPID_Win *win_ptr)
/* Set the lock granted flag to 1 */
win_ptr->targets[dest].remote_lock_state = MPIDI_CH3_WIN_LOCK_GRANTED;
if (curr_op->type == MPIDI_RMA_GET) {
- mpi_errno = MPIDI_CH3I_Send_lock_get(win_ptr, dest);
+ mpi_errno = send_lock_get(win_ptr, dest);
wait_for_rma_done_pkt = 0;
}
else {
- mpi_errno = MPIDI_CH3I_Send_lock_put_or_acc(win_ptr, dest);
+ mpi_errno = send_lock_put_or_acc(win_ptr, dest);
wait_for_rma_done_pkt = 1;
}
if (mpi_errno) { MPIU_ERR_POP(mpi_errno); }
@@ -2740,19 +2740,19 @@ int MPIDI_Win_unlock(int dest, MPID_Win *win_ptr)
if ((win_ptr->targets[dest].remote_lock_assert & MPI_MODE_NOCHECK) == 0)
{
if (win_ptr->targets[dest].remote_lock_state == MPIDI_CH3_WIN_LOCK_CALLED) {
- mpi_errno = MPIDI_CH3I_Send_lock_msg(dest, win_ptr->targets[dest].remote_lock_mode,
+ mpi_errno = send_lock_msg(dest, win_ptr->targets[dest].remote_lock_mode,
win_ptr);
if (mpi_errno) { MPIU_ERR_POP(mpi_errno); }
}
}
if (win_ptr->targets[dest].remote_lock_state == MPIDI_CH3_WIN_LOCK_REQUESTED) {
- mpi_errno = MPIDI_CH3I_Wait_for_lock_granted(win_ptr, dest);
+ mpi_errno = wait_for_lock_granted(win_ptr, dest);
if (mpi_errno) { MPIU_ERR_POP(mpi_errno); }
}
/* Now do all the RMA operations */
- mpi_errno = MPIDI_CH3I_Do_passive_target_rma(win_ptr, dest, &wait_for_rma_done_pkt,
+ mpi_errno = do_passive_target_rma(win_ptr, dest, &wait_for_rma_done_pkt,
MPIDI_CH3_PKT_FLAG_RMA_UNLOCK);
if (mpi_errno) { MPIU_ERR_POP(mpi_errno); }
}
@@ -2925,17 +2925,17 @@ int MPIDI_Win_flush(int rank, MPID_Win *win_ptr)
reply, and perform the RMA ops. */
if (win_ptr->targets[rank].remote_lock_state == MPIDI_CH3_WIN_LOCK_CALLED) {
- mpi_errno = MPIDI_CH3I_Send_lock_msg(rank, win_ptr->targets[rank].remote_lock_mode, win_ptr);
+ mpi_errno = send_lock_msg(rank, win_ptr->targets[rank].remote_lock_mode, win_ptr);
if (mpi_errno) { MPIU_ERR_POP(mpi_errno); }
}
if (win_ptr->targets[rank].remote_lock_state != MPIDI_CH3_WIN_LOCK_GRANTED) {
- mpi_errno = MPIDI_CH3I_Wait_for_lock_granted(win_ptr, rank);
+ mpi_errno = wait_for_lock_granted(win_ptr, rank);
if (mpi_errno) { MPIU_ERR_POP(mpi_errno); }
}
win_ptr->targets[rank].remote_lock_state = MPIDI_CH3_WIN_LOCK_FLUSH;
- mpi_errno = MPIDI_CH3I_Do_passive_target_rma(win_ptr, rank, &wait_for_rma_done_pkt,
+ mpi_errno = do_passive_target_rma(win_ptr, rank, &wait_for_rma_done_pkt,
MPIDI_CH3_PKT_FLAG_RMA_FLUSH);
if (mpi_errno) { MPIU_ERR_POP(mpi_errno); }
@@ -3075,7 +3075,7 @@ int MPIDI_Win_lock_all(int assert, MPID_Win *win_ptr)
}
/* Immediately lock the local process for load/store access */
- mpi_errno = MPIDI_CH3I_Acquire_local_lock(win_ptr, MPI_LOCK_SHARED);
+ mpi_errno = acquire_local_lock(win_ptr, MPI_LOCK_SHARED);
if (mpi_errno != MPI_SUCCESS) { MPIU_ERR_POP(mpi_errno); }
if (win_ptr->shm_allocated == TRUE) {
@@ -3100,7 +3100,7 @@ int MPIDI_Win_lock_all(int assert, MPID_Win *win_ptr)
}
if (win_ptr->create_flavor == MPI_WIN_FLAVOR_SHARED || orig_vc->node_id == target_vc->node_id) {
- mpi_errno = MPIDI_CH3I_Send_lock_msg(i, MPI_LOCK_SHARED, win_ptr);
+ mpi_errno = send_lock_msg(i, MPI_LOCK_SHARED, win_ptr);
if (mpi_errno) { MPIU_ERR_POP(mpi_errno); }
}
}
@@ -3115,7 +3115,7 @@ int MPIDI_Win_lock_all(int assert, MPID_Win *win_ptr)
}
if (win_ptr->create_flavor == MPI_WIN_FLAVOR_SHARED || orig_vc->node_id == target_vc->node_id) {
- mpi_errno = MPIDI_CH3I_Wait_for_lock_granted(win_ptr, i);
+ mpi_errno = wait_for_lock_granted(win_ptr, i);
if (mpi_errno) { MPIU_ERR_POP(mpi_errno); }
}
}
@@ -3195,19 +3195,19 @@ int MPIDI_Win_sync(MPID_Win *win_ptr)
#undef FUNCNAME
-#define FUNCNAME MPIDI_CH3I_Do_passive_target_rma
+#define FUNCNAME do_passive_target_rma
#undef FCNAME
#define FCNAME MPIDI_QUOTE(FUNCNAME)
-static int MPIDI_CH3I_Do_passive_target_rma(MPID_Win *win_ptr, int target_rank,
+static int do_passive_target_rma(MPID_Win *win_ptr, int target_rank,
int *wait_for_rma_done_pkt, MPIDI_CH3_Pkt_flags_t sync_flags)
{
int mpi_errno = MPI_SUCCESS, nops;
MPIDI_RMA_Op_t *curr_ptr;
MPI_Win source_win_handle = MPI_WIN_NULL, target_win_handle = MPI_WIN_NULL;
int nRequest=0, nRequestNew=0;
- MPIDI_STATE_DECL(MPID_STATE_MPIDI_CH3I_DO_PASSIVE_TARGET_RMA);
+ MPIDI_STATE_DECL(MPID_STATE_DO_PASSIVE_TARGET_RMA);
- MPIDI_RMA_FUNC_ENTER(MPID_STATE_MPIDI_CH3I_DO_PASSIVE_TARGET_RMA);
+ MPIDI_RMA_FUNC_ENTER(MPID_STATE_DO_PASSIVE_TARGET_RMA);
MPIU_Assert(win_ptr->targets[target_rank].remote_lock_state == MPIDI_CH3_WIN_LOCK_GRANTED ||
win_ptr->targets[target_rank].remote_lock_state == MPIDI_CH3_WIN_LOCK_FLUSH ||
@@ -3356,7 +3356,7 @@ static int MPIDI_CH3I_Do_passive_target_rma(MPID_Win *win_ptr, int target_rank,
int nDone = 0;
MPIR_T_PVAR_STMT(RMA, list_complete_timer=MPIR_T_PVAR_TIMER_ADDR(rma_winunlock_complete));
MPIR_T_PVAR_STMT(RMA, list_complete_counter=MPIR_T_PVAR_COUNTER_ADDR(rma_winunlock_complete_aux));
- MPIDI_CH3I_RMAListPartialComplete(win_ptr,
+ RMAListPartialComplete(win_ptr,
&win_ptr->targets[target_rank].rma_ops_list,
curr_ptr, &nDone);
/* if (nDone > 0) printf( "nDone = %d\n", nDone ); */
@@ -3372,12 +3372,12 @@ static int MPIDI_CH3I_Do_passive_target_rma(MPID_Win *win_ptr, int target_rank,
MPIR_T_PVAR_STMT(RMA, list_complete_timer=MPIR_T_PVAR_TIMER_ADDR(rma_winunlock_complete));
MPIR_T_PVAR_STMT(RMA, list_block_timer=MPIR_T_PVAR_TIMER_ADDR(rma_winunlock_block));
MPIR_T_PVAR_STMT(RMA, list_complete_counter=MPIR_T_PVAR_COUNTER_ADDR(rma_winunlock_complete_aux));
- mpi_errno = MPIDI_CH3I_RMAListComplete(win_ptr, &win_ptr->targets[target_rank].rma_ops_list);
+ mpi_errno = RMAListComplete(win_ptr, &win_ptr->targets[target_rank].rma_ops_list);
}
else if (sync_flags & MPIDI_CH3_PKT_FLAG_RMA_UNLOCK) {
/* No communication operations were left to process, but the RMA epoch
is open. Send an unlock message to release the lock at the target. */
- mpi_errno = MPIDI_CH3I_Send_unlock_msg(target_rank, win_ptr);
+ mpi_errno = send_unlock_msg(target_rank, win_ptr);
if (mpi_errno) { MPIU_ERR_POP(mpi_errno); }
*wait_for_rma_done_pkt = 1;
}
@@ -3387,7 +3387,7 @@ static int MPIDI_CH3I_Do_passive_target_rma(MPID_Win *win_ptr, int target_rank,
MPIU_Assert(MPIDI_CH3I_RMA_Ops_isempty(&win_ptr->targets[target_rank].rma_ops_list));
fn_exit:
- MPIDI_RMA_FUNC_EXIT(MPID_STATE_MPIDI_CH3I_DO_PASSIVE_TARGET_RMA);
+ MPIDI_RMA_FUNC_EXIT(MPID_STATE_DO_PASSIVE_TARGET_RMA);
return mpi_errno;
/* --BEGIN ERROR HANDLING-- */
fn_fail:
@@ -3397,17 +3397,17 @@ static int MPIDI_CH3I_Do_passive_target_rma(MPID_Win *win_ptr, int target_rank,
#undef FUNCNAME
-#define FUNCNAME MPIDI_CH3I_Send_lock_msg
+#define FUNCNAME send_lock_msg
#undef FCNAME
#define FCNAME MPIDI_QUOTE(FUNCNAME)
-static int MPIDI_CH3I_Send_lock_msg(int dest, int lock_type, MPID_Win *win_ptr) {
+static int send_lock_msg(int dest, int lock_type, MPID_Win *win_ptr) {
int mpi_errno = MPI_SUCCESS;
MPIDI_CH3_Pkt_t upkt;
MPIDI_CH3_Pkt_lock_t *lock_pkt = &upkt.lock;
MPID_Request *req=NULL;
MPIDI_VC_t *vc;
- MPIDI_STATE_DECL(MPID_STATE_MPIDI_SEND_LOCK_MSG);
- MPIDI_RMA_FUNC_ENTER(MPID_STATE_MPIDI_SEND_LOCK_MSG);
+ MPIDI_STATE_DECL(MPID_STATE_SEND_LOCK_MSG);
+ MPIDI_RMA_FUNC_ENTER(MPID_STATE_SEND_LOCK_MSG);
MPIU_Assert(win_ptr->targets[dest].remote_lock_state == MPIDI_CH3_WIN_LOCK_CALLED);
@@ -3432,7 +3432,7 @@ static int MPIDI_CH3I_Send_lock_msg(int dest, int lock_type, MPID_Win *win_ptr)
}
fn_exit:
- MPIDI_RMA_FUNC_EXIT(MPID_STATE_MPIDI_SEND_LOCK_MSG);
+ MPIDI_RMA_FUNC_EXIT(MPID_STATE_SEND_LOCK_MSG);
return mpi_errno;
/* --BEGIN ERROR HANDLING-- */
fn_fail:
@@ -3442,13 +3442,13 @@ static int MPIDI_CH3I_Send_lock_msg(int dest, int lock_type, MPID_Win *win_ptr)
#undef FUNCNAME
-#define FUNCNAME MPIDI_CH3I_Acquire_local_lock
+#define FUNCNAME acquire_local_lock
#undef FCNAME
#define FCNAME MPIDI_QUOTE(FUNCNAME)
-static int MPIDI_CH3I_Acquire_local_lock(MPID_Win *win_ptr, int lock_type) {
+static int acquire_local_lock(MPID_Win *win_ptr, int lock_type) {
int mpi_errno = MPI_SUCCESS;
- MPIDI_STATE_DECL(MPID_STATE_MPIDI_ACQUIRE_LOCAL_LOCK);
- MPIDI_RMA_FUNC_ENTER(MPID_STATE_MPIDI_ACQUIRE_LOCAL_LOCK);
+ MPIDI_STATE_DECL(MPID_STATE_ACQUIRE_LOCAL_LOCK);
+ MPIDI_RMA_FUNC_ENTER(MPID_STATE_ACQUIRE_LOCAL_LOCK);
/* poke the progress engine until the local lock is granted */
if (MPIDI_CH3I_Try_acquire_win_lock(win_ptr, lock_type) == 0)
@@ -3475,7 +3475,7 @@ static int MPIDI_CH3I_Acquire_local_lock(MPID_Win *win_ptr, int lock_type) {
win_ptr->targets[win_ptr->comm_ptr->rank].remote_lock_mode = lock_type;
fn_exit:
- MPIDI_RMA_FUNC_EXIT(MPID_STATE_MPIDI_ACQUIRE_LOCAL_LOCK);
+ MPIDI_RMA_FUNC_EXIT(MPID_STATE_ACQUIRE_LOCAL_LOCK);
return mpi_errno;
/* --BEGIN ERROR HANDLING-- */
fn_fail:
@@ -3485,13 +3485,13 @@ fn_fail:
#undef FUNCNAME
-#define FUNCNAME MPIDI_CH3I_Wait_for_lock_granted
+#define FUNCNAME wait_for_lock_granted
#undef FCNAME
#define FCNAME MPIDI_QUOTE(FUNCNAME)
-static int MPIDI_CH3I_Wait_for_lock_granted(MPID_Win *win_ptr, int target_rank) {
+static int wait_for_lock_granted(MPID_Win *win_ptr, int target_rank) {
int mpi_errno = MPI_SUCCESS;
- MPIDI_STATE_DECL(MPID_STATE_MPIDI_WAIT_FOR_LOCK_GRANTED);
- MPIDI_RMA_FUNC_ENTER(MPID_STATE_MPIDI_WAIT_FOR_LOCK_GRANTED);
+ MPIDI_STATE_DECL(MPID_STATE_WAIT_FOR_LOCK_GRANTED);
+ MPIDI_RMA_FUNC_ENTER(MPID_STATE_WAIT_FOR_LOCK_GRANTED);
/* After the target grants the lock, it sends a lock_granted packet. This
* packet is received in ch3u_handle_recv_pkt.c. The handler for the
@@ -3521,7 +3521,7 @@ static int MPIDI_CH3I_Wait_for_lock_granted(MPID_Win *win_ptr, int target_rank)
}
fn_exit:
- MPIDI_RMA_FUNC_EXIT(MPID_STATE_MPIDI_WAIT_FOR_LOCK_GRANTED);
+ MPIDI_RMA_FUNC_EXIT(MPID_STATE_WAIT_FOR_LOCK_GRANTED);
return mpi_errno;
/* --BEGIN ERROR HANDLING-- */
fn_fail:
@@ -3531,17 +3531,17 @@ fn_fail:
#undef FUNCNAME
-#define FUNCNAME MPIDI_CH3I_Send_unlock_msg
+#define FUNCNAME send_unlock_msg
#undef FCNAME
#define FCNAME MPIDI_QUOTE(FUNCNAME)
-static int MPIDI_CH3I_Send_unlock_msg(int dest, MPID_Win *win_ptr) {
+static int send_unlock_msg(int dest, MPID_Win *win_ptr) {
int mpi_errno = MPI_SUCCESS;
MPIDI_CH3_Pkt_t upkt;
MPIDI_CH3_Pkt_unlock_t *unlock_pkt = &upkt.unlock;
MPID_Request *req=NULL;
MPIDI_VC_t *vc;
- MPIDI_STATE_DECL(MPID_STATE_MPIDI_SEND_UNLOCK_MSG);
- MPIDI_RMA_FUNC_ENTER(MPID_STATE_MPIDI_SEND_UNLOCK_MSG);
+ MPIDI_STATE_DECL(MPID_STATE_SEND_UNLOCK_MSG);
+ MPIDI_RMA_FUNC_ENTER(MPID_STATE_SEND_UNLOCK_MSG);
MPIU_Assert(win_ptr->targets[dest].remote_lock_state == MPIDI_CH3_WIN_LOCK_GRANTED);
@@ -3567,7 +3567,7 @@ static int MPIDI_CH3I_Send_unlock_msg(int dest, MPID_Win *win_ptr) {
}
fn_exit:
- MPIDI_RMA_FUNC_EXIT(MPID_STATE_MPIDI_SEND_UNLOCK_MSG);
+ MPIDI_RMA_FUNC_EXIT(MPID_STATE_SEND_UNLOCK_MSG);
return mpi_errno;
/* --BEGIN ERROR HANDLING-- */
fn_fail:
@@ -3580,17 +3580,17 @@ static int MPIDI_CH3I_Send_unlock_msg(int dest, MPID_Win *win_ptr) {
* for later use. */
#if 0
#undef FUNCNAME
-#define FUNCNAME MPIDI_CH3I_Send_flush_msg
+#define FUNCNAME send_flush_msg
#undef FCNAME
#define FCNAME MPIDI_QUOTE(FUNCNAME)
-static int MPIDI_CH3I_Send_flush_msg(int dest, MPID_Win *win_ptr) {
+static int send_flush_msg(int dest, MPID_Win *win_ptr) {
int mpi_errno = MPI_SUCCESS;
MPIDI_CH3_Pkt_t upkt;
MPIDI_CH3_Pkt_flush_t *flush_pkt = &upkt.flush;
MPID_Request *req=NULL;
MPIDI_VC_t *vc;
- MPIDI_STATE_DECL(MPID_STATE_MPIDI_SEND_FLUSH_MSG);
- MPIDI_RMA_FUNC_ENTER(MPID_STATE_MPIDI_SEND_FLUSH_MSG);
+ MPIDI_STATE_DECL(MPID_STATE_SEND_FLUSH_MSG);
+ MPIDI_RMA_FUNC_ENTER(MPID_STATE_SEND_FLUSH_MSG);
MPIU_Assert(win_ptr->targets[dest].remote_lock_state == MPIDI_CH3_WIN_LOCK_FLUSH);
@@ -3611,7 +3611,7 @@ static int MPIDI_CH3I_Send_flush_msg(int dest, MPID_Win *win_ptr) {
}
fn_exit:
- MPIDI_RMA_FUNC_EXIT(MPID_STATE_MPIDI_SEND_FLUSH_MSG);
+ MPIDI_RMA_FUNC_EXIT(MPID_STATE_SEND_FLUSH_MSG);
return mpi_errno;
/* --BEGIN ERROR HANDLING-- */
fn_fail:
@@ -3622,10 +3622,10 @@ static int MPIDI_CH3I_Send_flush_msg(int dest, MPID_Win *win_ptr) {
#undef FUNCNAME
-#define FUNCNAME MPIDI_CH3I_Send_lock_put_or_acc
+#define FUNCNAME send_lock_put_or_acc
#undef FCNAME
#define FCNAME MPIDI_QUOTE(FUNCNAME)
-static int MPIDI_CH3I_Send_lock_put_or_acc(MPID_Win *win_ptr, int target_rank)
+static int send_lock_put_or_acc(MPID_Win *win_ptr, int target_rank)
{
int mpi_errno=MPI_SUCCESS, lock_type, origin_dt_derived, iovcnt;
MPIDI_RMA_Op_t *rma_op;
@@ -3641,9 +3641,9 @@ static int MPIDI_CH3I_Send_lock_put_or_acc(MPID_Win *win_ptr, int target_rank)
MPIDI_CH3_Pkt_lock_accum_unlock_t *lock_accum_unlock_pkt =
&upkt.lock_accum_unlock;
- MPIDI_STATE_DECL(MPID_STATE_MPIDI_CH3I_SEND_LOCK_PUT_OR_ACC);
+ MPIDI_STATE_DECL(MPID_STATE_SEND_LOCK_PUT_OR_ACC);
- MPIDI_RMA_FUNC_ENTER(MPID_STATE_MPIDI_CH3I_SEND_LOCK_PUT_OR_ACC);
+ MPIDI_RMA_FUNC_ENTER(MPID_STATE_SEND_LOCK_PUT_OR_ACC);
lock_type = win_ptr->targets[target_rank].remote_lock_mode;
@@ -3821,16 +3821,16 @@ static int MPIDI_CH3I_Send_lock_put_or_acc(MPID_Win *win_ptr, int target_rank)
MPIDI_CH3I_RMA_Ops_free(&win_ptr->targets[target_rank].rma_ops_list);
fn_fail:
- MPIDI_RMA_FUNC_EXIT(MPID_STATE_MPIDI_CH3I_SEND_LOCK_PUT_OR_ACC);
+ MPIDI_RMA_FUNC_EXIT(MPID_STATE_SEND_LOCK_PUT_OR_ACC);
return mpi_errno;
}
#undef FUNCNAME
-#define FUNCNAME MPIDI_CH3I_Send_lock_get
+#define FUNCNAME send_lock_get
#undef FCNAME
#define FCNAME MPIDI_QUOTE(FUNCNAME)
-static int MPIDI_CH3I_Send_lock_get(MPID_Win *win_ptr, int target_rank)
+static int send_lock_get(MPID_Win *win_ptr, int target_rank)
{
int mpi_errno=MPI_SUCCESS, lock_type;
MPIDI_RMA_Op_t *rma_op;
@@ -3842,9 +3842,9 @@ static int MPIDI_CH3I_Send_lock_get(MPID_Win *win_ptr, int target_rank)
MPIDI_CH3_Pkt_lock_get_unlock_t *lock_get_unlock_pkt =
&upkt.lock_get_unlock;
- MPIDI_STATE_DECL(MPID_STATE_MPIDI_CH3I_SEND_LOCK_GET);
+ MPIDI_STATE_DECL(MPID_STATE_SEND_LOCK_GET);
- MPIDI_RMA_FUNC_ENTER(MPID_STATE_MPIDI_CH3I_SEND_LOCK_GET);
+ MPIDI_RMA_FUNC_ENTER(MPID_STATE_SEND_LOCK_GET);
lock_type = win_ptr->targets[target_rank].remote_lock_mode;
@@ -3941,7 +3941,7 @@ static int MPIDI_CH3I_Send_lock_get(MPID_Win *win_ptr, int target_rank)
MPIDI_CH3I_RMA_Ops_free(&win_ptr->targets[target_rank].rma_ops_list);
fn_fail:
- MPIDI_RMA_FUNC_EXIT(MPID_STATE_MPIDI_CH3I_SEND_LOCK_GET);
+ MPIDI_RMA_FUNC_EXIT(MPID_STATE_SEND_LOCK_GET);
return mpi_errno;
}
@@ -5504,7 +5504,7 @@ int MPIDI_CH3_PktHandler_Flush( MPIDI_VC_t *vc, MPIDI_CH3_Pkt_t *pkt,
/* ------------------------------------------------------------------------ */
/* list_complete_timer/counter and list_block_timer defined above */
-static int MPIDI_CH3I_RMAListComplete( MPID_Win *win_ptr,
+static int RMAListComplete( MPID_Win *win_ptr,
MPIDI_RMA_Ops_list_t *ops_list )
{
int ntimes = 0, mpi_errno=0;
@@ -5585,7 +5585,7 @@ static int MPIDI_CH3I_RMAListComplete( MPID_Win *win_ptr,
(the loopcount check in the other code), we search through the entire
list until we find a completable request.
*/
-static int MPIDI_CH3I_RMAListPartialComplete( MPID_Win *win_ptr,
+static int RMAListPartialComplete( MPID_Win *win_ptr,
MPIDI_RMA_Ops_list_t *ops_list,
MPIDI_RMA_Op_t *last_elm,
int *nDone )
-----------------------------------------------------------------------
Summary of changes:
src/mpid/ch3/src/ch3u_rma_sync.c | 373 ++++++++++++++++++++++----------------
1 files changed, 218 insertions(+), 155 deletions(-)
hooks/post-receive
--
MPICH primary repository
1
0
[mpich] MPICH primary repository branch, master, updated. v3.1.1-37-g31680ed
by noreply@mpich.org 29 Jun '14
by noreply@mpich.org 29 Jun '14
29 Jun '14
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "MPICH primary repository".
The branch, master has been updated
via 31680ed37675df04df2f234944ff356c0ce80537 (commit)
via 66b7b666648ef0c09c9f513ad33b83d7d859dcb5 (commit)
from e8db3c61c18a86478632a4b543890ef2d5332b1c (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://git.mpich.org/mpich.git/commitdiff/31680ed37675df04df2f234944ff356c0…
commit 31680ed37675df04df2f234944ff356c0ce80537
Author: Ken Raffenetti <raffenet(a)mcs.anl.gov>
Date: Wed Jun 25 09:41:50 2014 -0500
add README section for portals4 netmod
Signed-off-by: Pavan Balaji <balaji(a)anl.gov>
diff --git a/README.vin b/README.vin
index f5ca5fb..c7fcaf5 100644
--- a/README.vin
+++ b/README.vin
@@ -513,6 +513,41 @@ configurations:
configuration right now.
+portals4 network module
+```````````````````````
+The portals4 netmod provides support for the Portals 4 network
+programming interface. To enable, configure with the following option:
+
+ --with-device=ch3:nemesis:portals4
+
+If the Portals 4 include files and libraries are not in the normal
+search paths, you can specify them with the following options:
+
+ --with-portals4-include= and --with-portals4-lib=
+
+... or the if lib/ and include/ are in the same directory, you can use
+the following option:
+
+ --with-portals4=
+
+If the Portals libraries are shared libraries, they need to be in the
+shared library search path. This can be done by adding the path to
+/etc/ld.so.conf, or by setting the LD_LIBRARY_PATH variable in your
+environment. It's also possible to set the shared library search path
+in the binary. If you're using gcc, you can do this by adding
+
+ LD_LIBRARY_PATH=/path/to/lib
+
+ (and)
+
+ LDFLAGS="-Wl,-rpath -Wl,/path/to/lib"
+
+... as arguments to configure.
+
+Currently, use of MPI_ANY_SOURCE and MPI dynamic processes are unsupported
+with the portals4 netmod.
+
+
sock channel
------------
sock is the traditional TCP sockets based communication channel. It
http://git.mpich.org/mpich.git/commitdiff/66b7b666648ef0c09c9f513ad33b83d7d…
commit 66b7b666648ef0c09c9f513ad33b83d7d859dcb5
Author: Ken Raffenetti <raffenet(a)mcs.anl.gov>
Date: Thu Jun 19 16:07:24 2014 -0500
remove undeclared cvar check in portals4 netmod
Fixes a compilation error when building the portals4 netmod. We
considered implementing this cvar more generally at the nemesis level,
but could not guarantee it is safe to disable this functionality
in the other netmods.
Signed-off-by: Pavan Balaji <balaji(a)anl.gov>
diff --git a/src/mpid/ch3/channels/nemesis/netmod/portals4/ptl_init.c b/src/mpid/ch3/channels/nemesis/netmod/portals4/ptl_init.c
index e0b83e4..8cfd774 100644
--- a/src/mpid/ch3/channels/nemesis/netmod/portals4/ptl_init.c
+++ b/src/mpid/ch3/channels/nemesis/netmod/portals4/ptl_init.c
@@ -281,8 +281,7 @@ static int vc_init(MPIDI_VC_t *vc)
vc_ch->iStartContigMsg = MPID_nem_ptl_iStartContigMsg;
vc_ch->iSendContig = MPID_nem_ptl_iSendContig;
- if (MPIR_CVAR_COMM_OVERRIDES) /* allow feature to be disabled at runtime */
- vc->comm_ops = &comm_ops;
+ vc->comm_ops = &comm_ops;
vc_ch->next = NULL;
vc_ch->prev = NULL;
-----------------------------------------------------------------------
Summary of changes:
README.vin | 35 ++++++++++++++++++++
.../channels/nemesis/netmod/portals4/ptl_init.c | 3 +-
2 files changed, 36 insertions(+), 2 deletions(-)
hooks/post-receive
--
MPICH primary repository
1
0
[mpich] MPICH primary repository branch, master, updated. v3.1.1-35-ge8db3c6
by noreply@mpich.org 29 Jun '14
by noreply@mpich.org 29 Jun '14
29 Jun '14
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "MPICH primary repository".
The branch, master has been updated
via e8db3c61c18a86478632a4b543890ef2d5332b1c (commit)
from 2aaf74f0e571ad66600f008be2d89828c90e04c0 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://git.mpich.org/mpich.git/commitdiff/e8db3c61c18a86478632a4b543890ef2d…
commit e8db3c61c18a86478632a4b543890ef2d5332b1c
Author: Ken Raffenetti <raffenet(a)mcs.anl.gov>
Date: Tue Jun 24 22:47:05 2014 -0500
allow timeout of zero in bscu_wait_for_completion
When hydra detects a timeout has occured, its method for killing
everything is to call HYDT_bsci_wait_for_completion with a timeout
of zero. However, the zero timeout value was ignored and processes
were not explicitly killed. Allowing for a value of zero makes timeout
more reliable and ensures mpiexec returns a non-zero status to the user.
Signed-off-by: Pavan Balaji <balaji(a)anl.gov>
diff --git a/src/pm/hydra/tools/bootstrap/utils/bscu_wait.c b/src/pm/hydra/tools/bootstrap/utils/bscu_wait.c
index ba4366b..21148f1 100644
--- a/src/pm/hydra/tools/bootstrap/utils/bscu_wait.c
+++ b/src/pm/hydra/tools/bootstrap/utils/bscu_wait.c
@@ -41,7 +41,7 @@ HYD_status HYDT_bscu_wait_for_completion(int timeout)
time_elapsed = (now.tv_sec - start.tv_sec); /* Ignore microsec granularity */
time_left = -1;
- if (timeout > 0) {
+ if (timeout >= 0) {
if (time_elapsed > timeout) {
#if defined(HAVE_GETPGID) && defined(HAVE_SETSID)
/* If we are able to get the process group ID,
-----------------------------------------------------------------------
Summary of changes:
src/pm/hydra/tools/bootstrap/utils/bscu_wait.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
hooks/post-receive
--
MPICH primary repository
1
0
[mpich] MPICH primary repository branch, master, updated. v3.1.1-34-g2aaf74f
by noreply@mpich.org 28 Jun '14
by noreply@mpich.org 28 Jun '14
28 Jun '14
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "MPICH primary repository".
The branch, master has been updated
via 2aaf74f0e571ad66600f008be2d89828c90e04c0 (commit)
from be899ea13f787849985f87e77758d5e25549aa54 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://git.mpich.org/mpich.git/commitdiff/2aaf74f0e571ad66600f008be2d89828c…
commit 2aaf74f0e571ad66600f008be2d89828c90e04c0
Author: Xin Zhao <xinzhao3(a)illinois.edu>
Date: Fri Jun 27 16:02:09 2014 -0500
fix bug: delete incorrect lines in fetch_and_op.c
In all-to-all communication tests in fetch_and_op.c, the result
buffer is always set by origin right after MPI_Fetch_and_op,
which is not correct. Delete those lines.
Signed-off-by: Pavan Balaji <balaji(a)anl.gov>
diff --git a/test/mpi/rma/fetch_and_op.c b/test/mpi/rma/fetch_and_op.c
index 93503dd..f8b7fb2 100644
--- a/test/mpi/rma/fetch_and_op.c
+++ b/test/mpi/rma/fetch_and_op.c
@@ -154,7 +154,6 @@ int main(int argc, char **argv) {
for (j = 0; j < nproc; j++) {
TYPE_C rank_cnv = (TYPE_C) rank;
MPI_Fetch_and_op(&rank_cnv, &res_ptr[j], TYPE_MPI, j, rank, MPI_SUM, win);
- res_ptr[j] = i*rank;
}
MPI_Win_fence(MPI_MODE_NOSUCCEED, win);
MPI_Barrier(MPI_COMM_WORLD);
@@ -188,7 +187,6 @@ int main(int argc, char **argv) {
for (j = 0; j < nproc; j++) {
TYPE_C rank_cnv = (TYPE_C) rank;
MPI_Fetch_and_op(&rank_cnv, &res_ptr[j], TYPE_MPI, j, rank, MPI_SUM, win);
- res_ptr[j] = i*rank;
}
MPI_Win_unlock_all(win);
MPI_Barrier(MPI_COMM_WORLD);
@@ -222,7 +220,6 @@ int main(int argc, char **argv) {
for (j = 0; j < nproc; j++) {
TYPE_C rank_cnv = (TYPE_C) rank;
MPI_Fetch_and_op(&rank_cnv, &res_ptr[j], TYPE_MPI, j, rank, MPI_SUM, win);
- res_ptr[j] = i*rank;
MPI_Win_flush(j, win);
}
MPI_Win_unlock_all(win);
-----------------------------------------------------------------------
Summary of changes:
test/mpi/rma/fetch_and_op.c | 3 ---
1 files changed, 0 insertions(+), 3 deletions(-)
hooks/post-receive
--
MPICH primary repository
1
0
[mpich] MPICH primary repository branch, current-master, deleted. v3.1.1-34-g2aaf74f
by noreply@mpich.org 28 Jun '14
by noreply@mpich.org 28 Jun '14
28 Jun '14
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "MPICH primary repository".
The branch, current-master has been deleted
was 2aaf74f0e571ad66600f008be2d89828c90e04c0
-----------------------------------------------------------------------
2aaf74f0e571ad66600f008be2d89828c90e04c0 fix bug: delete incorrect lines in fetch_and_op.c
-----------------------------------------------------------------------
hooks/post-receive
--
MPICH primary repository
1
0
[mpich] MPICH primary repository branch, current-master, created. v3.1.1-34-g2aaf74f
by noreply@mpich.org 28 Jun '14
by noreply@mpich.org 28 Jun '14
28 Jun '14
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "MPICH primary repository".
The branch, current-master has been created
at 2aaf74f0e571ad66600f008be2d89828c90e04c0 (commit)
- Log -----------------------------------------------------------------
http://git.mpich.org/mpich.git/commitdiff/2aaf74f0e571ad66600f008be2d89828c…
commit 2aaf74f0e571ad66600f008be2d89828c90e04c0
Author: Xin Zhao <xinzhao3(a)illinois.edu>
Date: Fri Jun 27 16:02:09 2014 -0500
fix bug: delete incorrect lines in fetch_and_op.c
In all-to-all communication tests in fetch_and_op.c, the result
buffer is always set by origin right after MPI_Fetch_and_op,
which is not correct. Delete those lines.
Signed-off-by: Pavan Balaji <balaji(a)anl.gov>
diff --git a/test/mpi/rma/fetch_and_op.c b/test/mpi/rma/fetch_and_op.c
index 93503dd..f8b7fb2 100644
--- a/test/mpi/rma/fetch_and_op.c
+++ b/test/mpi/rma/fetch_and_op.c
@@ -154,7 +154,6 @@ int main(int argc, char **argv) {
for (j = 0; j < nproc; j++) {
TYPE_C rank_cnv = (TYPE_C) rank;
MPI_Fetch_and_op(&rank_cnv, &res_ptr[j], TYPE_MPI, j, rank, MPI_SUM, win);
- res_ptr[j] = i*rank;
}
MPI_Win_fence(MPI_MODE_NOSUCCEED, win);
MPI_Barrier(MPI_COMM_WORLD);
@@ -188,7 +187,6 @@ int main(int argc, char **argv) {
for (j = 0; j < nproc; j++) {
TYPE_C rank_cnv = (TYPE_C) rank;
MPI_Fetch_and_op(&rank_cnv, &res_ptr[j], TYPE_MPI, j, rank, MPI_SUM, win);
- res_ptr[j] = i*rank;
}
MPI_Win_unlock_all(win);
MPI_Barrier(MPI_COMM_WORLD);
@@ -222,7 +220,6 @@ int main(int argc, char **argv) {
for (j = 0; j < nproc; j++) {
TYPE_C rank_cnv = (TYPE_C) rank;
MPI_Fetch_and_op(&rank_cnv, &res_ptr[j], TYPE_MPI, j, rank, MPI_SUM, win);
- res_ptr[j] = i*rank;
MPI_Win_flush(j, win);
}
MPI_Win_unlock_all(win);
-----------------------------------------------------------------------
hooks/post-receive
--
MPICH primary repository
1
0
[mpich] MPICH primary repository branch, master, updated. v3.1.1-33-gbe899ea
by noreply@mpich.org 27 Jun '14
by noreply@mpich.org 27 Jun '14
27 Jun '14
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "MPICH primary repository".
The branch, master has been updated
via be899ea13f787849985f87e77758d5e25549aa54 (commit)
from c8435ec4b080add9c4ec3c39ecabbc64d8321ecd (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://git.mpich.org/mpich.git/commitdiff/be899ea13f787849985f87e77758d5e25…
commit be899ea13f787849985f87e77758d5e25549aa54
Author: Wesley Bland <wbland(a)anl.gov>
Date: Fri Jun 27 11:05:58 2014 -0500
Fix redscat MPI_IN_PLACE checking
The MPI_Reduce_scatter(_block) test was incorrectly checking the result
and/or printing out incorrect values when detecting an error. This corrects
that situation. Thanks for the patch from Jeff Hammond.
Fixes #2087
Signed-off-by: Sangmin Seo <sseo(a)anl.gov>
diff --git a/test/mpi/coll/redscat3.c b/test/mpi/coll/redscat3.c
index 5efbd37..3b8e526 100644
--- a/test/mpi/coll/redscat3.c
+++ b/test/mpi/coll/redscat3.c
@@ -87,14 +87,14 @@ int main( int argc, char **argv )
sumval = size * rank + ((size - 1) * size)/2;
/* recv'ed values for my process should be size * (rank + i) */
for (i=0; i<mycount; i++) {
- if (sendbuf[i] != sumval) {
- err++;
- if (err < MAX_ERRORS) {
- fprintf( stdout, "Did not get expected value for reduce scatter (in place)\n" );
- fprintf( stdout, "[%d] Got buf[%d] = %d expected %d\n",
- rank, i, sendbuf[rank*mycount+i], sumval );
- }
- }
+ if (sendbuf[i] != sumval) {
+ err++;
+ if (err < MAX_ERRORS) {
+ fprintf( stdout, "Did not get expected value for reduce scatter (in place)\n" );
+ fprintf( stdout, "[%d] Got buf[%d] = %d expected %d\n",
+ rank, i, sendbuf[i], sumval );
+ }
+ }
}
MPI_Comm_set_errhandler(MPI_COMM_WORLD, MPI_ERRORS_RETURN);
diff --git a/test/mpi/coll/redscatblk3.c b/test/mpi/coll/redscatblk3.c
index 5fb81e5..efb6d1e 100644
--- a/test/mpi/coll/redscatblk3.c
+++ b/test/mpi/coll/redscatblk3.c
@@ -71,11 +71,11 @@ int main( int argc, char **argv )
sumval = size * rank + ((size - 1) * size)/2;
/* recv'ed values for my process should be size * (rank + i) */
for (i=0; i<mycount; i++) {
- if (sendbuf[rank*mycount+i] != sumval) {
- err++;
- fprintf( stdout, "Did not get expected value for reduce scatter (in place)\n" );
- fprintf( stdout, "[%d] Got %d expected %d\n", rank, sendbuf[rank*mycount+i], sumval );
- }
+ if (sendbuf[i] != sumval) {
+ err++;
+ fprintf( stdout, "Did not get expected value for reduce scatter (in place)\n" );
+ fprintf( stdout, "[%d] Got %d expected %d\n", rank, sendbuf[i], sumval );
+ }
}
free(sendbuf);
-----------------------------------------------------------------------
Summary of changes:
test/mpi/coll/redscat3.c | 16 ++++++++--------
test/mpi/coll/redscatblk3.c | 10 +++++-----
2 files changed, 13 insertions(+), 13 deletions(-)
hooks/post-receive
--
MPICH primary repository
1
0
[mpich] MPICH primary repository branch, master, updated. v3.1.1-32-gc8435ec
by noreply@mpich.org 26 Jun '14
by noreply@mpich.org 26 Jun '14
26 Jun '14
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "MPICH primary repository".
The branch, master has been updated
via c8435ec4b080add9c4ec3c39ecabbc64d8321ecd (commit)
from bce35b9f5993450c70913b6f58e24fcbb5bc90d0 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://git.mpich.org/mpich.git/commitdiff/c8435ec4b080add9c4ec3c39ecabbc64d…
commit c8435ec4b080add9c4ec3c39ecabbc64d8321ecd
Author: Lisandro Dalcin <dalcinl(a)gmail.com>
Date: Thu Jun 26 19:23:27 2014 -0500
Better implementation of MPI_Allreduce for intercommunicator.
The patch provides a better implementation where each group does a
intra-reduce concurrently, exchanges the reduce result, and broadcasts
in the group. The current implementation had a problem of serializing
intra-reduces of each group.
Fixes ticket #2074.
Signed-off-by: Sangmin Seo <sseo(a)anl.gov>
diff --git a/src/mpi/coll/allreduce.c b/src/mpi/coll/allreduce.c
index 74758f0..4087df6 100644
--- a/src/mpi/coll/allreduce.c
+++ b/src/mpi/coll/allreduce.c
@@ -625,60 +625,55 @@ int MPIR_Allreduce_inter (
int *errflag )
{
/* Intercommunicator Allreduce.
- We first do an intercommunicator reduce to rank 0 on left group,
- then an intercommunicator reduce to rank 0 on right group, followed
- by local intracommunicator broadcasts in each group.
-
- We don't do local reduces first and then intercommunicator
- broadcasts because it would require allocation of a temporary buffer.
+ We first do intracommunicator reduces to rank 0 on left and right
+ groups, then an exchange between left and right rank 0, and finally
+ intracommunicator broadcasts from rank 0 on left and right group.
*/
- int rank, mpi_errno, root;
+ int mpi_errno;
int mpi_errno_ret = MPI_SUCCESS;
+ MPI_Aint true_extent, true_lb, extent;
+ void *tmp_buf=NULL;
MPID_Comm *newcomm_ptr = NULL;
-
- rank = comm_ptr->rank;
-
- /* first do a reduce from right group to rank 0 in left group,
- then from left group to rank 0 in right group*/
- if (comm_ptr->is_low_group) {
- /* reduce from right group to rank 0*/
- root = (rank == 0) ? MPI_ROOT : MPI_PROC_NULL;
- mpi_errno = MPIR_Reduce_inter(sendbuf, recvbuf, count, datatype, op,
- root, comm_ptr, errflag);
- if (mpi_errno) {
- /* for communication errors, just record the error but continue */
- *errflag = TRUE;
- MPIU_ERR_SET(mpi_errno, MPI_ERR_OTHER, "**fail");
- MPIU_ERR_ADD(mpi_errno_ret, mpi_errno);
- }
+ MPI_Comm comm;
+ MPIU_CHKLMEM_DECL(1);
- /* reduce to rank 0 of right group */
- root = 0;
- mpi_errno = MPIR_Reduce_inter(sendbuf, recvbuf, count, datatype, op,
- root, comm_ptr, errflag);
- if (mpi_errno) {
- /* for communication errors, just record the error but continue */
- *errflag = TRUE;
- MPIU_ERR_SET(mpi_errno, MPI_ERR_OTHER, "**fail");
- MPIU_ERR_ADD(mpi_errno_ret, mpi_errno);
- }
+ MPIDU_ERR_CHECK_MULTIPLE_THREADS_ENTER( comm_ptr );
+
+ if (comm_ptr->rank == 0) {
+ MPIR_Type_get_true_extent_impl(datatype, &true_lb, &true_extent);
+ MPID_Datatype_get_extent_macro(datatype, extent);
+ /* I think this is the worse case, so we can avoid an assert()
+ * inside the for loop */
+ /* Should MPIU_CHKLMEM_MALLOC do this? */
+ MPID_Ensure_Aint_fits_in_pointer(count * MPIR_MAX(extent, true_extent));
+ MPIU_CHKLMEM_MALLOC(tmp_buf, void *, count*(MPIR_MAX(extent,true_extent)), mpi_errno, "temporary buffer");
+ /* adjust for potential negative lower bound in datatype */
+ tmp_buf = (void *)((char*)tmp_buf - true_lb);
+ }
+
+ comm = comm_ptr->handle;
+
+ /* Get the local intracommunicator */
+ if (!comm_ptr->local_comm)
+ MPIR_Setup_intercomm_localcomm( comm_ptr );
+
+ newcomm_ptr = comm_ptr->local_comm;
+
+ /* Do a local reduce on this intracommunicator */
+ mpi_errno = MPIR_Reduce_intra(sendbuf, tmp_buf, count, datatype,
+ op, 0, newcomm_ptr, errflag);
+ if (mpi_errno) {
+ /* for communication errors, just record the error but continue */
+ *errflag = TRUE;
+ MPIU_ERR_SET(mpi_errno, MPI_ERR_OTHER, "**fail");
+ MPIU_ERR_ADD(mpi_errno_ret, mpi_errno);
}
- else {
- /* reduce to rank 0 of left group */
- root = 0;
- mpi_errno = MPIR_Reduce_inter(sendbuf, recvbuf, count, datatype, op,
- root, comm_ptr, errflag);
- if (mpi_errno) {
- /* for communication errors, just record the error but continue */
- *errflag = TRUE;
- MPIU_ERR_SET(mpi_errno, MPI_ERR_OTHER, "**fail");
- MPIU_ERR_ADD(mpi_errno_ret, mpi_errno);
- }
- /* reduce from right group to rank 0 */
- root = (rank == 0) ? MPI_ROOT : MPI_PROC_NULL;
- mpi_errno = MPIR_Reduce_inter(sendbuf, recvbuf, count, datatype, op,
- root, comm_ptr, errflag);
+ /* Do a exchange between local and remote rank 0 on this intercommunicator */
+ if (comm_ptr->rank == 0) {
+ mpi_errno = MPIC_Sendrecv(tmp_buf, count, datatype, 0, MPIR_REDUCE_TAG,
+ recvbuf, count, datatype, 0, MPIR_REDUCE_TAG,
+ comm, MPI_STATUS_IGNORE, errflag);
if (mpi_errno) {
/* for communication errors, just record the error but continue */
*errflag = TRUE;
@@ -687,13 +682,9 @@ int MPIR_Allreduce_inter (
}
}
- /* Get the local intracommunicator */
- if (!comm_ptr->local_comm)
- MPIR_Setup_intercomm_localcomm( comm_ptr );
-
- newcomm_ptr = comm_ptr->local_comm;
-
- mpi_errno = MPIR_Bcast_impl(recvbuf, count, datatype, 0, newcomm_ptr, errflag);
+ /* Do a local broadcast on this intracommunicator */
+ mpi_errno = MPIR_Bcast_impl(recvbuf, count, datatype,
+ 0, newcomm_ptr, errflag);
if (mpi_errno) {
/* for communication errors, just record the error but continue */
*errflag = TRUE;
@@ -702,6 +693,8 @@ int MPIR_Allreduce_inter (
}
fn_exit:
+ MPIDU_ERR_CHECK_MULTIPLE_THREADS_EXIT( comm_ptr );
+ MPIU_CHKLMEM_FREEALL();
if (mpi_errno_ret)
mpi_errno = mpi_errno_ret;
else if (*errflag)
-----------------------------------------------------------------------
Summary of changes:
src/mpi/coll/allreduce.c | 103 +++++++++++++++++++++------------------------
1 files changed, 48 insertions(+), 55 deletions(-)
hooks/post-receive
--
MPICH primary repository
1
0
[mpich] MPICH primary repository branch, master, updated. v3.1.1-31-gbce35b9
by noreply@mpich.org 26 Jun '14
by noreply@mpich.org 26 Jun '14
26 Jun '14
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "MPICH primary repository".
The branch, master has been updated
via bce35b9f5993450c70913b6f58e24fcbb5bc90d0 (commit)
via 33d82829042361809d36a7843a28e1bdeedf7110 (commit)
from be21b8dbd448866fbbc3639c5703a488766b608a (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://git.mpich.org/mpich.git/commitdiff/bce35b9f5993450c70913b6f58e24fcbb…
commit bce35b9f5993450c70913b6f58e24fcbb5bc90d0
Author: Ken Raffenetti <raffenet(a)mcs.anl.gov>
Date: Wed Jun 25 16:12:18 2014 -0500
add flag to enable C99 mode with Solaris compilers
Autoconf maintains a comprehenive list of ways to enforce C99 mode
with various compilers.
http://git.savannah.gnu.org/cgit/autoconf.git/tree/lib/autoconf/c.m4
Since we regularly test with Sun/Solaris Studio, cherry pick the correct
method to use with --enable-strict.
Signed-off-by: Rob Latham <robl(a)mcs.anl.gov>
diff --git a/confdb/aclocal_cc.m4 b/confdb/aclocal_cc.m4
index 3ea2392..c706151 100644
--- a/confdb/aclocal_cc.m4
+++ b/confdb/aclocal_cc.m4
@@ -629,6 +629,10 @@ if test "$enable_strict_done" != "yes" ; then
# enabled. If C99 is enabled, we automatically disable C89.
if test "${enable_c99}" = "yes" ; then
PAC_APPEND_FLAG([-std=c99],[pac_cc_strict_flags])
+ # Use -D_STDC_C99= for Solaris compilers. See
+ # http://lists.gnu.org/archive/html/autoconf/2010-12/msg00059.html
+ # for discussion on why not to use -xc99
+ PAC_APPEND_FLAG([-D_STDC_C99=],[pac_cc_strict_flags])
elif test "${enable_c89}" = "yes" ; then
PAC_APPEND_FLAG([-std=c89],[pac_cc_strict_flags])
PAC_APPEND_FLAG([-Wdeclaration-after-statement],[pac_cc_strict_flags])
http://git.mpich.org/mpich.git/commitdiff/33d82829042361809d36a7843a28e1bde…
commit 33d82829042361809d36a7843a28e1bdeedf7110
Author: Ken Raffenetti <raffenet(a)mcs.anl.gov>
Date: Wed Jun 25 15:33:20 2014 -0500
increase feature level for pread/pwrite
/usr/include/sys/feature_tests.h on Solaris says this about feature
levels and C99:
It is invalid to compile an XPG3, XPG4, XPG4v2, or XPG5 application
using c99. The same is true for POSIX.1-1990, POSIX.2-1992, POSIX.1b,
and POSIX.1c applications. Likewise, it is invalid to compile an XPG6
or a POSIX.1-2001 application with anything other than a c99 or later
compiler. Therefore, we force an error in both cases.
ROMIO builds would fail with --enable-strict because _XOPEN_SOURCE=500
was defined to expose pread/pwrite. Increasing the feature level to 600
makes usage strictly compatible with C99.
Signed-off-by: Rob Latham <robl(a)mcs.anl.gov>
diff --git a/src/mpi/romio/adio/ad_lustre/ad_lustre_rwcontig.c b/src/mpi/romio/adio/ad_lustre/ad_lustre_rwcontig.c
index fc4fd89..dbe2255 100644
--- a/src/mpi/romio/adio/ad_lustre/ad_lustre_rwcontig.c
+++ b/src/mpi/romio/adio/ad_lustre/ad_lustre_rwcontig.c
@@ -8,7 +8,7 @@
* Copyright (C) 2008 Sun Microsystems, Lustre group
*/
-#define _XOPEN_SOURCE 500
+#define _XOPEN_SOURCE 600
#include <unistd.h>
#include <stdlib.h>
diff --git a/src/mpi/romio/adio/ad_xfs/ad_xfs.h b/src/mpi/romio/adio/ad_xfs/ad_xfs.h
index 048d156..cbddbbb 100644
--- a/src/mpi/romio/adio/ad_xfs/ad_xfs.h
+++ b/src/mpi/romio/adio/ad_xfs/ad_xfs.h
@@ -8,7 +8,7 @@
#ifndef AD_XFS_INCLUDE
#define AD_XFS_INCLUDE
-#define _XOPEN_SOURCE 500
+#define _XOPEN_SOURCE 600
#include <unistd.h>
#include <sys/types.h>
#include <fcntl.h>
diff --git a/src/mpi/romio/adio/common/ad_read.c b/src/mpi/romio/adio/common/ad_read.c
index 83510ba..dc0d773 100644
--- a/src/mpi/romio/adio/common/ad_read.c
+++ b/src/mpi/romio/adio/common/ad_read.c
@@ -6,7 +6,7 @@
*/
-#define _XOPEN_SOURCE 500
+#define _XOPEN_SOURCE 600
#include <unistd.h>
#include "adio.h"
diff --git a/src/mpi/romio/adio/common/ad_write.c b/src/mpi/romio/adio/common/ad_write.c
index 6a79f59..4a6c445 100644
--- a/src/mpi/romio/adio/common/ad_write.c
+++ b/src/mpi/romio/adio/common/ad_write.c
@@ -6,7 +6,7 @@
*/
-#define _XOPEN_SOURCE 500
+#define _XOPEN_SOURCE 600
#include <unistd.h>
#include "adio.h"
-----------------------------------------------------------------------
Summary of changes:
confdb/aclocal_cc.m4 | 4 ++++
src/mpi/romio/adio/ad_lustre/ad_lustre_rwcontig.c | 2 +-
src/mpi/romio/adio/ad_xfs/ad_xfs.h | 2 +-
src/mpi/romio/adio/common/ad_read.c | 2 +-
src/mpi/romio/adio/common/ad_write.c | 2 +-
5 files changed, 8 insertions(+), 4 deletions(-)
hooks/post-receive
--
MPICH primary repository
1
0
[mpich] MPICH primary repository branch, master, updated. v3.1.1-29-gbe21b8d
by noreply@mpich.org 26 Jun '14
by noreply@mpich.org 26 Jun '14
26 Jun '14
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "MPICH primary repository".
The branch, master has been updated
via be21b8dbd448866fbbc3639c5703a488766b608a (commit)
via dca78b92b0551749ee370ff7eb298de777e949a2 (commit)
from 716b893a92b50bf432f637962d1bd1cc0c0fdbd6 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://git.mpich.org/mpich.git/commitdiff/be21b8dbd448866fbbc3639c5703a4887…
commit be21b8dbd448866fbbc3639c5703a488766b608a
Author: Antonio J. Pena <apenya(a)mcs.anl.gov>
Date: Wed Jun 25 16:35:11 2014 -0500
Fix support for --program-prefix/-suffix options
The support was broken by the following commits:
41ecf98e
998d9c67
Signed-off-by: Ken Raffenetti <raffenet(a)mcs.anl.gov>
diff --git a/Makefile.am b/Makefile.am
index 95d3f8a..654bd82 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -217,8 +217,8 @@ CLEAN_LOCAL_TARGETS += test-clean
## better approach might be to have each Makefile.mk append to a
## common set of rules.
install-exec-hook:
- for e in ${DESTDIR}${bindir}/mpicc ${DESTDIR}${bindir}/mpicxx \
- ${DESTDIR}${bindir}/mpif77 ${DESTDIR}${bindir}/mpifort ; do \
+ for e in ${DESTDIR}${bindir}/@MPICC_NAME@ ${DESTDIR}${bindir}/@MPICXX_NAME@ \
+ ${DESTDIR}${bindir}/@MPIF77_NAME@ ${DESTDIR}${bindir}/@MPIFORT_NAME@ ; do \
if test -e $${e} ; then \
sed -e 's|__PREFIX_TO_BE_FILLED_AT_INSTALL_TIME__|${prefix}|g' \
-e 's|__EXEC_PREFIX_TO_BE_FILLED_AT_INSTALL_TIME__|${exec_prefix}|g' \
diff --git a/configure.ac b/configure.ac
index 614bd2e..4d0a929 100644
--- a/configure.ac
+++ b/configure.ac
@@ -5912,11 +5912,13 @@ MPI_NO_RMA=$MPID_NO_RMA
export MPI_NO_RMA
# Attach program prefix and suffix to executable names for Makefile
+AC_SUBST(MPICC_NAME)
AC_SUBST(MPICXX_NAME)
AC_SUBST(MPICPP_NAME)
AC_SUBST(MPIFORT_NAME)
AC_SUBST(MPIF90_NAME)
AC_SUBST(MPIF77_NAME)
+PAC_GET_EXENAME("mpicc", MPICC_NAME)
PAC_GET_EXENAME("mpicxx", MPICXX_NAME)
PAC_GET_EXENAME("mpic++", MPICPP_NAME)
PAC_GET_EXENAME("mpifort", MPIFORT_NAME)
http://git.mpich.org/mpich.git/commitdiff/dca78b92b0551749ee370ff7eb298de77…
commit dca78b92b0551749ee370ff7eb298de777e949a2
Author: Antonio J. Pena <apenya(a)mcs.anl.gov>
Date: Wed Jun 25 16:23:59 2014 -0500
Revert "Remove MPICXX_NAME and MPICPP_NAME."
This reverts commit 41ecf98e10a6e47c852a64b3b20f94d4b09ec53c.
Conflicts:
Makefile.am
Resolution:
Added support for new mpif90. Added:
MPIFORT_NAME, MPIF90_NAME, and MPIF77_NAME
Signed-off-by: Ken Raffenetti <raffenet(a)mcs.anl.gov>
diff --git a/Makefile.am b/Makefile.am
index e895618..95d3f8a 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -229,12 +229,12 @@ install-exec-hook:
rm -f $${e}.tmp ; \
fi ; \
done ; \
- if test -e ${DESTDIR}${bindir}/mpicxx ; then \
- cd ${DESTDIR}${bindir} && ln -f -s mpicxx mpic++ ; fi ; \
- if test -e ${DESTDIR}${bindir}/mpifort ; then \
- cd ${DESTDIR}${bindir} && ln -f -s mpifort mpif90 ; fi ; \
- if test -e ${DESTDIR}${bindir}/mpifort -a ! -e ${DESTDIR}${bindir}/mpif77 ; then \
- cd ${DESTDIR}${bindir} && ln -f -s mpifort mpif77 ; fi ; \
+ if test -e ${DESTDIR}${bindir}/@MPICXX_NAME@ ; then \
+ cd ${DESTDIR}${bindir} && ln -f -s @MPICXX_NAME@ @MPICPP_NAME@ ; fi ; \
+ if test -e ${DESTDIR}${bindir}/@MPIFORT_NAME@ ; then \
+ cd ${DESTDIR}${bindir} && ln -f -s @MPIFORT_NAME@ @MPIF90_NAME@ ; fi ; \
+ if test -e ${DESTDIR}${bindir}/@MPIFORT_NAME@ -a ! -e ${DESTDIR}${bindir}/@MPIF77_NAME@ ; then \
+ cd ${DESTDIR}${bindir} && ln -f -s @MPIFORT_NAME@ @MPIF77_NAME@ ; fi ; \
if test -e ${DESTDIR}${libdir}/lib@MPILIBNAME@@SHLIB_EXT@ ; then \
cd ${DESTDIR}${libdir} && ln -f -s lib@MPILIBNAME@@SHLIB_EXT@ libmpl@SHLIB_EXT@ ; \
cd ${DESTDIR}${libdir} && ln -f -s lib@MPILIBNAME@@SHLIB_EXT@ libopa@SHLIB_EXT@ ; \
diff --git a/configure.ac b/configure.ac
index 0d0a982..614bd2e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -5911,6 +5911,18 @@ export MPI_NO_SPAWN
MPI_NO_RMA=$MPID_NO_RMA
export MPI_NO_RMA
+# Attach program prefix and suffix to executable names for Makefile
+AC_SUBST(MPICXX_NAME)
+AC_SUBST(MPICPP_NAME)
+AC_SUBST(MPIFORT_NAME)
+AC_SUBST(MPIF90_NAME)
+AC_SUBST(MPIF77_NAME)
+PAC_GET_EXENAME("mpicxx", MPICXX_NAME)
+PAC_GET_EXENAME("mpic++", MPICPP_NAME)
+PAC_GET_EXENAME("mpifort", MPIFORT_NAME)
+PAC_GET_EXENAME("mpif90", MPIF90_NAME)
+PAC_GET_EXENAME("mpif77", MPIF77_NAME)
+
AC_CONFIG_SUBDIRS([test/mpi])
dnl
dnl Generate the Makefiles from Makefile.in
-----------------------------------------------------------------------
Summary of changes:
Makefile.am | 16 ++++++++--------
configure.ac | 14 ++++++++++++++
2 files changed, 22 insertions(+), 8 deletions(-)
hooks/post-receive
--
MPICH primary repository
1
0