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
December 2013
- 1 participants
- 47 discussions
[mpich] MPICH primary repository branch, master, updated. v3.1rc2-71-gd2b786d
by noreply@mpich.org 17 Dec '13
by noreply@mpich.org 17 Dec '13
17 Dec '13
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 d2b786dc15ec29c53330cf44afe8ef250e302e0f (commit)
from fbe39cd7166cd8173078604644f40180726adbcf (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/d2b786dc15ec29c53330cf44afe8ef250…
commit d2b786dc15ec29c53330cf44afe8ef250e302e0f
Author: Junchao Zhang <jczhang(a)mcs.anl.gov>
Date: Tue Dec 17 16:27:20 2013 -0600
Enclose macro arguments in parentheses
Signed-off-by: Huiwei Lu <huiweilu(a)mcs.anl.gov>
diff --git a/src/include/mpitimpl.h b/src/include/mpitimpl.h
index e799e0c..d7c3844 100644
--- a/src/include/mpitimpl.h
+++ b/src/include/mpitimpl.h
@@ -375,7 +375,7 @@ extern void MPIR_T_PVAR_REGISTER_impl(
/* Interfaces through pointer or name */
#define MPIR_T_PVAR_STATE_SET_VAR_impl(ptr_, val_) \
- do { *ptr_ = val_; } while (0)
+ do { *(ptr_) = (val_); } while (0)
#define MPIR_T_PVAR_STATE_GET_VAR_impl(ptr_) \
(*(ptr_))
@@ -389,13 +389,13 @@ extern void MPIR_T_PVAR_REGISTER_impl(
initval_, etype_, verb_, bind_, flags_, cat_, desc_) \
do { \
/* Allowable datatypes only */ \
- MPIU_Assert(dtype_ == MPI_INT); \
+ MPIU_Assert((dtype_) == MPI_INT); \
/* Double check if dtype_ and name_ match */ \
MPIU_Assert(sizeof(PVAR_STATE_##name_) == MPID_Datatype_get_basic_size(dtype_)); \
- MPIU_Assert(flags_ & MPIR_T_PVAR_FLAG_CONTINUOUS); \
+ MPIU_Assert((flags_) & MPIR_T_PVAR_FLAG_CONTINUOUS); \
/* State pvars should be describled further by an enum */ \
- MPIU_Assert(etype_ != MPI_T_ENUM_NULL); \
- PVAR_STATE_##name_ = initval_; \
+ MPIU_Assert((etype_) != MPI_T_ENUM_NULL); \
+ PVAR_STATE_##name_ = (initval_); \
void *addr_ = &PVAR_STATE_##name_; \
MPIR_T_PVAR_REGISTER_impl(MPI_T_PVAR_CLASS_STATE, dtype_, #name_, \
addr_, 1, etype_, verb_, bind_, flags_, NULL, NULL, cat_, desc_); \
@@ -406,10 +406,10 @@ extern void MPIR_T_PVAR_REGISTER_impl(
etype_, verb_, bind_, flags_, get_value_, get_count_, cat_, desc_) \
do { \
/* Allowable datatypes */ \
- MPIU_Assert(dtype_ == MPI_INT); \
- MPIU_Assert(flags_ & MPIR_T_PVAR_FLAG_CONTINUOUS); \
- MPIU_Assert(etype_ != MPI_T_ENUM_NULL); \
- MPIU_Assert(addr_ != NULL || get_value_ != NULL); \
+ MPIU_Assert((dtype_) == MPI_INT); \
+ MPIU_Assert((flags_) & MPIR_T_PVAR_FLAG_CONTINUOUS); \
+ MPIU_Assert((etype_) != MPI_T_ENUM_NULL); \
+ MPIU_Assert((addr_) != NULL || (get_value_) != NULL); \
MPIR_T_PVAR_REGISTER_impl(MPI_T_PVAR_CLASS_STATE, dtype_, #name_, \
addr_, count_, etype_, verb_, bind_, flags_, get_value_, cat_, desc_); \
} while (0)
@@ -448,13 +448,13 @@ extern void MPIR_T_PVAR_REGISTER_impl(
/* Interfaces through pointer or name */
#define MPIR_T_PVAR_LEVEL_SET_VAR_impl(ptr_, val_) \
- do { *(ptr_) = val_; } while (0)
+ do { *(ptr_) = (val_); } while (0)
#define MPIR_T_PVAR_LEVEL_GET_VAR_impl(ptr_) \
(*(ptr_))
#define MPIR_T_PVAR_LEVEL_INC_VAR_impl(ptr_, val_) \
- do { *(ptr_) += val_; } while (0)
+ do { *(ptr_) += (val_); } while (0)
#define MPIR_T_PVAR_LEVEL_DEC_VAR_impl(ptr_, val_) \
- do { *(ptr_) -= val_; } while (0)
+ do { *(ptr_) -= (val_); } while (0)
#define MPIR_T_PVAR_LEVEL_SET_impl(name_, val_) \
MPIR_T_PVAR_LEVEL_SET_VAR_impl(&PVAR_LEVEL_##name_, val_)
@@ -470,12 +470,12 @@ extern void MPIR_T_PVAR_REGISTER_impl(
initval_, verb_, bind_, flags_, cat_, desc_) \
do { \
/* Allowable datatypes only */ \
- MPIU_Assert(dtype_ == MPI_UNSIGNED || dtype_ == MPI_UNSIGNED_LONG || \
- dtype_ == MPI_UNSIGNED_LONG_LONG || dtype_ == MPI_DOUBLE); \
+ MPIU_Assert((dtype_) == MPI_UNSIGNED || (dtype_) == MPI_UNSIGNED_LONG || \
+ (dtype_) == MPI_UNSIGNED_LONG_LONG || (dtype_) == MPI_DOUBLE); \
/* Double check if dtype_ and name_ match */ \
MPIU_Assert(sizeof(PVAR_LEVEL_##name_) == MPID_Datatype_get_basic_size(dtype_)); \
- MPIU_Assert(flags_ & MPIR_T_PVAR_FLAG_CONTINUOUS); \
- PVAR_LEVEL_##name_ = initval_; \
+ MPIU_Assert((flags_) & MPIR_T_PVAR_FLAG_CONTINUOUS); \
+ PVAR_LEVEL_##name_ = (initval_); \
void *addr_ = &PVAR_LEVEL_##name_; \
MPIR_T_PVAR_REGISTER_impl(MPI_T_PVAR_CLASS_LEVEL, dtype_, #name_, \
addr_, 1, MPI_T_ENUM_NULL, verb_, bind_, flags_, NULL, NULL, cat_, desc_); \
@@ -486,10 +486,10 @@ extern void MPIR_T_PVAR_REGISTER_impl(
addr_, count_, verb_, bind_, flags_, get_value_, get_count, cat_, desc_) \
do { \
/* Allowable datatypes */ \
- MPIU_Assert(dtype_ == MPI_UNSIGNED || dtype_ == MPI_UNSIGNED_LONG || \
- dtype_ == MPI_UNSIGNED_LONG_LONG || dtype_ == MPI_DOUBLE); \
- MPIU_Assert(flags_ & MPIR_T_PVAR_FLAG_CONTINUOUS); \
- MPIU_Assert(addr_ != NULL || get_value_ != NULL); \
+ MPIU_Assert((dtype_) == MPI_UNSIGNED || (dtype_) == MPI_UNSIGNED_LONG || \
+ (dtype_) == MPI_UNSIGNED_LONG_LONG || (dtype_) == MPI_DOUBLE); \
+ MPIU_Assert((flags_) & MPIR_T_PVAR_FLAG_CONTINUOUS); \
+ MPIU_Assert((addr_) != NULL || (get_value_) != NULL); \
MPIR_T_PVAR_REGISTER_impl(MPI_T_PVAR_CLASS_LEVEL, dtype_, #name_, \
addr_, count_, MPI_T_ENUM_NULL, verb_, bind_, flags_, get_value_, \
get_count, cat_, desc_); \
@@ -529,7 +529,7 @@ extern void MPIR_T_PVAR_REGISTER_impl(
/* Interfaces through pointer or name */
#define MPIR_T_PVAR_SIZE_SET_VAR_impl(ptr_, val_) \
- do { *(ptr_) = val_; } while (0)
+ do { *(ptr_) = (val_); } while (0)
#define MPIR_T_PVAR_SIZE_GET_VAR_impl(ptr_) \
(*(ptr_))
@@ -543,12 +543,12 @@ extern void MPIR_T_PVAR_REGISTER_impl(
initval_, verb_, bind_, flags_, cat_, desc_) \
do { \
/* Allowable datatypes only */ \
- MPIU_Assert(dtype_ == MPI_UNSIGNED || dtype_ == MPI_UNSIGNED_LONG || \
- dtype_ == MPI_UNSIGNED_LONG_LONG || dtype_ == MPI_DOUBLE); \
+ MPIU_Assert((dtype_) == MPI_UNSIGNED || (dtype_) == MPI_UNSIGNED_LONG || \
+ (dtype_) == MPI_UNSIGNED_LONG_LONG || (dtype_) == MPI_DOUBLE); \
/* Double check if dtype_ and name_ match */ \
MPIU_Assert(sizeof(PVAR_SIZE_##name_) == MPID_Datatype_get_basic_size(dtype_)); \
- MPIU_Assert(flags_ & MPIR_T_PVAR_FLAG_CONTINUOUS); \
- PVAR_SIZE_##name_ = initval_; \
+ MPIU_Assert((flags_) & MPIR_T_PVAR_FLAG_CONTINUOUS); \
+ PVAR_SIZE_##name_ = (initval_); \
void *addr_ = &PVAR_SIZE_##name_; \
MPIR_T_PVAR_REGISTER_impl(MPI_T_PVAR_CLASS_SIZE, dtype_, #name_, \
addr_, 1, MPI_T_ENUM_NULL, verb_, bind_, flags_, NULL, NULL, cat_, desc_); \
@@ -559,10 +559,10 @@ extern void MPIR_T_PVAR_REGISTER_impl(
addr_, count_, verb_, bind_, flags_, get_value_, get_count_, cat_, desc_) \
do { \
/* Allowable datatypes */ \
- MPIU_Assert(dtype_ == MPI_UNSIGNED || dtype_ == MPI_UNSIGNED_LONG || \
- dtype_ == MPI_UNSIGNED_LONG_LONG || dtype_ == MPI_DOUBLE); \
- MPIU_Assert(flags_ & MPIR_T_PVAR_FLAG_CONTINUOUS); \
- MPIU_Assert(addr_ != NULL || get_value_ != NULL); \
+ MPIU_Assert((dtype_) == MPI_UNSIGNED || (dtype_) == MPI_UNSIGNED_LONG || \
+ (dtype_) == MPI_UNSIGNED_LONG_LONG || (dtype_) == MPI_DOUBLE); \
+ MPIU_Assert((flags_) & MPIR_T_PVAR_FLAG_CONTINUOUS); \
+ MPIU_Assert((addr_) != NULL || (get_value_) != NULL); \
MPIR_T_PVAR_REGISTER_impl(MPI_T_PVAR_CLASS_SIZE, dtype_, #name_, \
addr_, count_, MPI_T_ENUM_NULL, verb_, bind_, flags_, get_value_, \
get_count_, cat_, desc_); \
@@ -585,8 +585,8 @@ extern void MPIR_T_PVAR_REGISTER_impl(
/* Interfaces through pointer or name */
#define MPIR_T_PVAR_PERCENTAGE_SET_VAR_impl(ptr_, val_) \
do { \
- MPIU_Assert(0.0 <= val_ && val_ <= 1.0); \
- *ptr_ = val_; \
+ MPIU_Assert(0.0 <= (val_) && (val_) <= 1.0); \
+ *(ptr_) = (val_); \
} while (0)
#define MPIR_T_PVAR_PERCENTAGE_GET_VAR_impl(ptr_) \
(*(ptr_))
@@ -601,12 +601,12 @@ extern void MPIR_T_PVAR_REGISTER_impl(
initval_, verb_, bind_, flags_, cat_, desc_) \
do { \
/* Allowable datatypes only */ \
- MPIU_Assert(dtype_ == MPI_DOUBLE); \
+ MPIU_Assert((dtype_) == MPI_DOUBLE); \
/* Double check if dtype_ and name_ match */ \
MPIU_Assert(sizeof(PVAR_PERCENTAGE_##name_) == MPID_Datatype_get_basic_size(dtype_)); \
- MPIU_Assert(flags_ & MPIR_T_PVAR_FLAG_CONTINUOUS); \
+ MPIU_Assert((flags_) & MPIR_T_PVAR_FLAG_CONTINUOUS); \
void *addr_ = &PVAR_PERCENTAGE_##name_; \
- PVAR_PERCENTAGE_##name_ = initval_; \
+ PVAR_PERCENTAGE_##name_ = (initval_); \
MPIR_T_PVAR_REGISTER_impl(MPI_T_PVAR_CLASS_PERCENTAGE, dtype_, #name_, \
addr_, 1, MPI_T_ENUM_NULL, verb_, bind_, flags_, NULL, NULL, cat_, desc_); \
} while (0)
@@ -616,9 +616,9 @@ extern void MPIR_T_PVAR_REGISTER_impl(
addr_, count_, verb_, bind_, flags_, get_value_, get_count_, cat_, desc_) \
do { \
/* Allowable datatypes */ \
- MPIU_Assert(dtype_ == MPI_DOUBLE); \
- MPIU_Assert(flags_ & MPIR_T_PVAR_FLAG_CONTINUOUS); \
- MPIU_Assert(addr_ != NULL || get_value_ != NULL); \
+ MPIU_Assert((dtype_) == MPI_DOUBLE); \
+ MPIU_Assert((flags_) & MPIR_T_PVAR_FLAG_CONTINUOUS); \
+ MPIU_Assert((addr_) != NULL || (get_value_) != NULL); \
MPIR_T_PVAR_REGISTER_impl(MPI_T_PVAR_CLASS_PERCENTAGE, dtype_, #name_, \
addr_, count_, MPI_T_ENUM_NULL, verb_, bind_, flags_, get_value_, \
get_count_, cat_, desc_); \
@@ -657,7 +657,7 @@ extern void MPIR_T_PVAR_REGISTER_impl(
#define MPIR_T_PVAR_COUNTER_GET_VAR_impl(ptr_) \
(*(ptr_))
#define MPIR_T_PVAR_COUNTER_INC_VAR_impl(ptr_, inc_) \
- do { *(ptr_) += inc_; } while (0)
+ do { *(ptr_) += (inc_); } while (0)
#define MPIR_T_PVAR_COUNTER_INIT_impl(name_) \
MPIR_T_PVAR_COUNTER_INIT_VAR_impl(&PVAR_COUNTER_##name_)
@@ -673,8 +673,8 @@ extern void MPIR_T_PVAR_REGISTER_impl(
verb_, bind_, flags_, cat_, desc_) \
do { \
/* Allowable datatypes only */ \
- MPIU_Assert(dtype_ == MPI_UNSIGNED || dtype_ == MPI_UNSIGNED_LONG || \
- dtype_ == MPI_UNSIGNED_LONG_LONG); \
+ MPIU_Assert((dtype_) == MPI_UNSIGNED || (dtype_) == MPI_UNSIGNED_LONG || \
+ (dtype_) == MPI_UNSIGNED_LONG_LONG); \
/* Double check if dtype_ and name_ match*/ \
MPIU_Assert(sizeof(PVAR_COUNTER_##name_) == MPID_Datatype_get_basic_size(dtype_)); \
PVAR_COUNTER_##name_ = 0; \
@@ -688,9 +688,9 @@ extern void MPIR_T_PVAR_REGISTER_impl(
addr_, count_, verb_, bind_, flags_, get_value_, get_count_, cat_, desc_) \
do { \
/* Allowable datatypes */ \
- MPIU_Assert(dtype_ == MPI_UNSIGNED || dtype_ == MPI_UNSIGNED_LONG || \
- dtype_ == MPI_UNSIGNED_LONG_LONG); \
- MPIU_Assert(addr_ != NULL || get_value_ != NULL); \
+ MPIU_Assert((dtype_) == MPI_UNSIGNED || (dtype_) == MPI_UNSIGNED_LONG || \
+ (dtype_) == MPI_UNSIGNED_LONG_LONG); \
+ MPIU_Assert((addr_) != NULL || (get_value_) != NULL); \
MPIR_T_PVAR_REGISTER_impl(MPI_T_PVAR_CLASS_COUNTER, dtype_, #name_, \
addr_, count_, MPI_T_ENUM_NULL, verb_, bind_, flags_, get_value_, \
get_count_, cat_, desc_); \
@@ -722,13 +722,13 @@ extern void MPIR_T_PVAR_REGISTER_impl(
#define MPIR_T_PVAR_COUNTER_ARRAY_INIT_VAR_impl(ptr_, count_) \
do { \
int idx_ = 0; \
- for (; idx_ < count_; idx_++) \
- *(ptr_ + idx_) = 0; \
+ for (; idx_ < (count_); idx_++) \
+ *((ptr_) + idx_) = 0; \
} while (0)
#define MPIR_T_PVAR_COUNTER_ARRAY_GET_VAR_impl(ptr_, idx_) \
- *(ptr_ + idx_)
+ *((ptr_) + (idx_))
#define MPIR_T_PVAR_COUNTER_ARRAY_INC_VAR_impl(ptr_, idx_, inc_) \
- do { *(ptr_ + idx_) += inc_; } while (0)
+ do { *((ptr_) + (idx_)) += (inc_); } while (0)
#define MPIR_T_PVAR_COUNTER_ARRAY_INIT_impl(name_) \
do { \
@@ -745,8 +745,8 @@ extern void MPIR_T_PVAR_REGISTER_impl(
verb_, bind_, flags_, cat_, desc_) \
do { \
/* Allowable datatypes only */ \
- MPIU_Assert(dtype_ == MPI_UNSIGNED || dtype_ == MPI_UNSIGNED_LONG || \
- dtype_ == MPI_UNSIGNED_LONG_LONG); \
+ MPIU_Assert((dtype_) == MPI_UNSIGNED || (dtype_) == MPI_UNSIGNED_LONG || \
+ (dtype_) == MPI_UNSIGNED_LONG_LONG); \
/* Double check if dtype_ and name_ match */ \
MPIU_Assert(sizeof(PVAR_COUNTER_##name_[0]) == MPID_Datatype_get_basic_size(dtype_)); \
void *addr_ = PVAR_COUNTER_##name_; \
@@ -796,7 +796,7 @@ extern void MPIR_T_PVAR_REGISTER_impl(
#define MPIR_T_PVAR_AGGREGATE_GET_VAR_impl(ptr_) \
(*(ptr_))
#define MPIR_T_PVAR_AGGREGATE_INC_VAR_impl(ptr_, inc_) \
- do { *(ptr_) += inc_; } while (0)
+ do { *(ptr_) += (inc_); } while (0)
#define MPIR_T_PVAR_AGGREGATE_INIT_impl(name_) \
MPIR_T_PVAR_AGGREGATE_INIT_VAR_impl(&PVAR_AGGREGATE_##name_)
@@ -810,8 +810,8 @@ extern void MPIR_T_PVAR_REGISTER_impl(
verb_, bind_, flags_, cat_, desc_) \
do { \
/* Allowable datatypes only */ \
- MPIU_Assert(dtype_ == MPI_UNSIGNED || dtype_ == MPI_UNSIGNED_LONG || \
- dtype_ == MPI_UNSIGNED_LONG_LONG || dtype_ == MPI_DOUBLE); \
+ MPIU_Assert((dtype_) == MPI_UNSIGNED || (dtype_) == MPI_UNSIGNED_LONG || \
+ (dtype_) == MPI_UNSIGNED_LONG_LONG || (dtype_) == MPI_DOUBLE); \
/* Double check if dtype_ and name_ match*/ \
MPIU_Assert(sizeof(PVAR_AGGREGATE_##name_) == MPID_Datatype_get_basic_size(dtype_)); \
PVAR_AGGREGATE_##name_ = 0; \
@@ -825,9 +825,9 @@ extern void MPIR_T_PVAR_REGISTER_impl(
addr_, count_, verb_, bind_, flags_, get_value_, get_count_, cat_, desc_) \
do { \
/* Allowable datatypes */ \
- MPIU_Assert(dtype_ == MPI_UNSIGNED || dtype_ == MPI_UNSIGNED_LONG || \
- dtype_ == MPI_UNSIGNED_LONG_LONG || dtype_ == MPI_DOUBLE); \
- MPIU_Assert(addr_ != NULL || get_value_ != NULL); \
+ MPIU_Assert((dtype_) == MPI_UNSIGNED || (dtype_) == MPI_UNSIGNED_LONG || \
+ (dtype_) == MPI_UNSIGNED_LONG_LONG || (dtype_) == MPI_DOUBLE); \
+ MPIU_Assert((addr_) != NULL || (get_value_) != NULL); \
MPIR_T_PVAR_REGISTER_impl(MPI_T_PVAR_CLASS_AGGREGATE, dtype_, #name_, \
addr_, count_, MPI_T_ENUM_NULL, verb_, bind_, flags_, get_value_, \
get_count_, cat_, desc_); \
@@ -895,7 +895,7 @@ void get_timer_time_in_double(MPIR_T_pvar_timer_t *timer, void *obj_handle,
verb_, bind_, flags_, cat_, desc_) \
do { \
/* Allowable datatypes only */ \
- MPIU_Assert(dtype_ == MPI_DOUBLE); \
+ MPIU_Assert((dtype_) == MPI_DOUBLE); \
MPIR_T_PVAR_TIMER_INIT_impl(name_); \
void *addr_ = &PVAR_TIMER_##name_; \
void *count_addr_ = &(PVAR_TIMER_##name_.count); \
@@ -947,7 +947,7 @@ void get_timer_time_in_double(MPIR_T_pvar_timer_t *timer, void *obj_handle,
#define MPIR_T_PVAR_UINT_HIGHWATERMARK_INIT_VAR_impl(ptr_, val_) \
do { \
(ptr_)->datatype = MPI_UNSIGNED; \
- (ptr_)->current.u = val_; \
+ (ptr_)->current.u = (val_); \
(ptr_)->first_started = 0; \
(ptr_)->first_used = 0; \
(ptr_)->hlist = NULL; \
@@ -956,7 +956,7 @@ void get_timer_time_in_double(MPIR_T_pvar_timer_t *timer, void *obj_handle,
#define MPIR_T_PVAR_ULONG_HIGHWATERMARK_INIT_VAR_impl(ptr_, val_) \
do { \
(ptr_)->datatype = MPI_UNSIGNED_LONG; \
- (ptr_)->current.ul = val_; \
+ (ptr_)->current.ul = (val_); \
(ptr_)->first_started = 0; \
(ptr_)->first_used = 0; \
(ptr_)->hlist = NULL; \
@@ -965,7 +965,7 @@ void get_timer_time_in_double(MPIR_T_pvar_timer_t *timer, void *obj_handle,
#define MPIR_T_PVAR_ULONG2_HIGHWATERMARK_INIT_VAR_impl(ptr_, val_) \
do { \
(ptr_)->datatype = MPI_UNSIGNED_LONG_LONG; \
- (ptr_)->current.ull = val_; \
+ (ptr_)->current.ull = (val_); \
(ptr_)->first_started = 0; \
(ptr_)->first_used = 0; \
(ptr_)->hlist = NULL; \
@@ -974,7 +974,7 @@ void get_timer_time_in_double(MPIR_T_pvar_timer_t *timer, void *obj_handle,
#define MPIR_T_PVAR_DOUBLE_HIGHWATERMARK_INIT_VAR_impl(ptr_, val_) \
do { \
(ptr_)->datatype = MPI_DOUBLE; \
- (ptr_)->current.f = val_; \
+ (ptr_)->current.f = (val_); \
(ptr_)->first_started = 0; \
(ptr_)->first_used = 0; \
(ptr_)->hlist = NULL; \
@@ -982,15 +982,15 @@ void get_timer_time_in_double(MPIR_T_pvar_timer_t *timer, void *obj_handle,
#define MPIR_T_PVAR_UINT_HIGHWATERMARK_UPDATE_VAR_impl(ptr_, val_) \
do { \
- (ptr_)->current.u = val_; \
+ (ptr_)->current.u = (val_); \
if ((ptr_)->first_used && (ptr_)->first_started) { \
if ((val_) > (ptr_)->watermark.u) \
- (ptr_)->watermark.u = val_; \
+ (ptr_)->watermark.u = (val_); \
} \
MPIR_T_pvar_handle_t *head = (ptr_)->hlist; \
while (head != NULL) { \
if (MPIR_T_pvar_is_started(head) && (val_) > head->watermark.u) { \
- head->watermark.u = val_; \
+ head->watermark.u = (val_); \
} \
head = head->next2; \
} \
@@ -998,15 +998,15 @@ void get_timer_time_in_double(MPIR_T_pvar_timer_t *timer, void *obj_handle,
#define MPIR_T_PVAR_ULONG_HIGHWATERMARK_UPDATE_VAR_impl(ptr_, val_) \
do { \
- (ptr_)->current.ul = val_; \
+ (ptr_)->current.ul = (val_); \
if ((ptr_)->first_used && (ptr_)->first_started) { \
if ((val_) > (ptr_)->watermark.ul) \
- (ptr_)->watermark.ul = val_; \
+ (ptr_)->watermark.ul = (val_); \
} \
MPIR_T_pvar_handle_t *head = (ptr_)->hlist; \
while (head != NULL) { \
if (MPIR_T_pvar_is_started(head) && (val_) > head->watermark.ul) { \
- head->watermark.ul = val_; \
+ head->watermark.ul = (val_); \
} \
head = head->next2; \
} \
@@ -1014,15 +1014,15 @@ void get_timer_time_in_double(MPIR_T_pvar_timer_t *timer, void *obj_handle,
#define MPIR_T_PVAR_ULONG2_HIGHWATERMARK_UPDATE_VAR_impl(ptr_, val_) \
do { \
- (ptr_)->current.ull = val_; \
+ (ptr_)->current.ull = (val_); \
if ((ptr_)->first_used && (ptr_)->first_started) { \
if ((val_) > (ptr_)->watermark.ull) \
- (ptr_)->watermark.ull = val_; \
+ (ptr_)->watermark.ull = (val_); \
} \
MPIR_T_pvar_handle_t *head = (ptr_)->hlist; \
while (head != NULL) { \
if (MPIR_T_pvar_is_started(head) && (val_) > head->watermark.ull) { \
- head->watermark.ull = val_; \
+ head->watermark.ull = (val_); \
} \
head = head->next2; \
} \
@@ -1030,15 +1030,15 @@ void get_timer_time_in_double(MPIR_T_pvar_timer_t *timer, void *obj_handle,
#define MPIR_T_PVAR_DOUBLE_HIGHWATERMARK_UPDATE_VAR_impl(ptr_, val_) \
do { \
- (ptr_)->current.f = val_; \
+ (ptr_)->current.f = (val_); \
if ((ptr_)->first_used && (ptr_)->first_started) { \
if ((val_) > (ptr_)->watermark.f) \
- (ptr_)->watermark.f = val_; \
+ (ptr_)->watermark.f = (val_); \
} \
MPIR_T_pvar_handle_t *head = (ptr_)->hlist; \
while (head != NULL) { \
if (MPIR_T_pvar_is_started(head) && (val_) > head->watermark.f) { \
- head->watermark.f = val_; \
+ head->watermark.f = (val_); \
} \
head = head->next2; \
} \
@@ -1067,8 +1067,8 @@ void get_timer_time_in_double(MPIR_T_pvar_timer_t *timer, void *obj_handle,
initval_, verb_, bind_, flags_, cat_, desc_) \
do { \
/* Allowable datatypes only */ \
- MPIU_Assert(dtype_ == MPI_UNSIGNED || dtype_ == MPI_UNSIGNED_LONG || \
- dtype_ == MPI_UNSIGNED_LONG_LONG || dtype_ == MPI_DOUBLE); \
+ MPIU_Assert((dtype_) == MPI_UNSIGNED || (dtype_) == MPI_UNSIGNED_LONG || \
+ (dtype_) == MPI_UNSIGNED_LONG_LONG || (dtype_) == MPI_DOUBLE); \
switch (dtype_) { \
case MPI_UNSIGNED: \
MPIR_T_PVAR_UINT_HIGHWATERMARK_INIT_impl(name_, initval_); break; \
@@ -1091,9 +1091,9 @@ void get_timer_time_in_double(MPIR_T_pvar_timer_t *timer, void *obj_handle,
addr_, count_, verb_, bind_, flags_, get_value_, get_count_, cat_, desc_) \
do { \
/* Allowable datatypes */ \
- MPIU_Assert(dtype_ == MPI_UNSIGNED || dtype_ == MPI_UNSIGNED_LONG || \
- dtype_ == MPI_UNSIGNED_LONG_LONG || dtype_ == MPI_DOUBLE); \
- MPIU_Assert(addr_ != NULL || get_value_ != NULL); \
+ MPIU_Assert((dtype_) == MPI_UNSIGNED || (dtype_) == MPI_UNSIGNED_LONG || \
+ (dtype_) == MPI_UNSIGNED_LONG_LONG || (dtype_) == MPI_DOUBLE); \
+ MPIU_Assert((addr_) != NULL || (get_value_) != NULL); \
MPIR_T_PVAR_REGISTER_impl(MPI_T_PVAR_CLASS_HIGHWATERMARK, dtype_, #name_, \
addr_, count_, MPI_T_ENUM_NULL, verb_, bind_, flags_, get_value_, \
get_count_, cat_, desc_); \
@@ -1134,7 +1134,7 @@ void get_timer_time_in_double(MPIR_T_pvar_timer_t *timer, void *obj_handle,
#define MPIR_T_PVAR_UINT_LOWWATERMARK_INIT_VAR_impl(ptr_, val_) \
do { \
(ptr_)->datatype = MPI_UNSIGNED; \
- (ptr_)->current.u = val_; \
+ (ptr_)->current.u = (val_); \
(ptr_)->first_started = 0; \
(ptr_)->first_used = 0; \
(ptr_)->hlist = NULL; \
@@ -1143,7 +1143,7 @@ void get_timer_time_in_double(MPIR_T_pvar_timer_t *timer, void *obj_handle,
#define MPIR_T_PVAR_ULONG_LOWWATERMARK_INIT_VAR_impl(ptr_, val_) \
do { \
(ptr_)->datatype = MPI_UNSIGNED_LONG; \
- (ptr_)->current.ul = val_; \
+ (ptr_)->current.ul = (val_); \
(ptr_)->first_started = 0; \
(ptr_)->first_used = 0; \
(ptr_)->hlist = NULL; \
@@ -1152,7 +1152,7 @@ void get_timer_time_in_double(MPIR_T_pvar_timer_t *timer, void *obj_handle,
#define MPIR_T_PVAR_ULONG2_LOWWATERMARK_INIT_VAR_impl(ptr_, val_) \
do { \
(ptr_)->datatype = MPI_UNSIGNED_LONG_LONG; \
- (ptr_)->current.ull = val_; \
+ (ptr_)->current.ull = (val_); \
(ptr_)->first_started = 0; \
(ptr_)->first_used = 0; \
(ptr_)->hlist = NULL; \
@@ -1161,7 +1161,7 @@ void get_timer_time_in_double(MPIR_T_pvar_timer_t *timer, void *obj_handle,
#define MPIR_T_PVAR_DOUBLE_LOWWATERMARK_INIT_VAR_impl(ptr_, val_) \
do { \
(ptr_)->datatype = MPI_DOUBLE; \
- (ptr_)->current.f = val_; \
+ (ptr_)->current.f = (val_); \
(ptr_)->first_started = 0; \
(ptr_)->first_used = 0; \
(ptr_)->hlist = NULL; \
@@ -1169,16 +1169,16 @@ void get_timer_time_in_double(MPIR_T_pvar_timer_t *timer, void *obj_handle,
#define MPIR_T_PVAR_UINT_LOWWATERMARK_UPDATE_VAR_impl(ptr_, val_) \
do { \
- (ptr_)->current.u = val_; \
+ (ptr_)->current.u = (val_); \
/* Update values in all handles */ \
if ((ptr_)->first_used && (ptr_)->first_started) { \
if ((val_) < (ptr_)->watermark.u) \
- (ptr_)->watermark.u = val_; \
+ (ptr_)->watermark.u = (val_); \
} \
MPIR_T_pvar_handle_t *head = (ptr_)->hlist; \
while (head != NULL) { \
if (MPIR_T_pvar_is_started(head) && (val_) < head->watermark.u) { \
- head->watermark.u = val_; \
+ head->watermark.u = (val_); \
} \
head = head->next2; \
} \
@@ -1186,15 +1186,15 @@ void get_timer_time_in_double(MPIR_T_pvar_timer_t *timer, void *obj_handle,
#define MPIR_T_PVAR_ULONG_LOWWATERMARK_UPDATE_VAR_impl(ptr_, val_) \
do { \
- (ptr_)->current.ul = val_; \
+ (ptr_)->current.ul = (val_); \
if ((ptr_)->first_used && (ptr_)->first_started) { \
if ((val_) < (ptr_)->watermark.ul) \
- (ptr_)->watermark.ul = val_; \
+ (ptr_)->watermark.ul = (val_); \
} \
MPIR_T_pvar_handle_t *head = (ptr_)->hlist; \
while (head != NULL) { \
if (MPIR_T_pvar_is_started(head) && (val_) < head->watermark.ul) { \
- head->watermark.ul = val_; \
+ head->watermark.ul = (val_); \
} \
head = head->next2; \
} \
@@ -1202,15 +1202,15 @@ void get_timer_time_in_double(MPIR_T_pvar_timer_t *timer, void *obj_handle,
#define MPIR_T_PVAR_ULONG2_LOWWATERMARK_UPDATE_VAR_impl(ptr_, val_) \
do { \
- (ptr_)->current.ull = val_; \
+ (ptr_)->current.ull = (val_); \
if ((ptr_)->first_used && (ptr_)->first_started) { \
if ((val_) < (ptr_)->watermark.ull) \
- (ptr_)->watermark.ull = val_; \
+ (ptr_)->watermark.ull = (val_); \
} \
MPIR_T_pvar_handle_t *head = (ptr_)->hlist; \
while (head != NULL) { \
if (MPIR_T_pvar_is_started(head) && (val_) < head->watermark.ull) { \
- head->watermark.ull = val_; \
+ head->watermark.ull = (val_); \
} \
head = head->next2; \
} \
@@ -1218,15 +1218,15 @@ void get_timer_time_in_double(MPIR_T_pvar_timer_t *timer, void *obj_handle,
#define MPIR_T_PVAR_DOUBLE_LOWWATERMARK_UPDATE_VAR_impl(ptr_, val_) \
do { \
- (ptr_)->current.f = val_; \
+ (ptr_)->current.f = (val_); \
if ((ptr_)->first_used && (ptr_)->first_started) { \
if ((val_) < (ptr_)->watermark.f) \
- (ptr_)->watermark.f = val_; \
+ (ptr_)->watermark.f = (val_); \
} \
MPIR_T_pvar_handle_t *head = (ptr_)->hlist; \
while (head != NULL) { \
if (MPIR_T_pvar_is_started(head) && (val_) < head->watermark.f) { \
- head->watermark.f = val_; \
+ head->watermark.f = (val_); \
} \
head = head->next2; \
} \
@@ -1255,8 +1255,8 @@ void get_timer_time_in_double(MPIR_T_pvar_timer_t *timer, void *obj_handle,
initval_, verb_, bind_, flags_, cat_, desc_) \
do { \
/* Allowable datatypes only */ \
- MPIU_Assert(dtype_ == MPI_UNSIGNED || dtype_ == MPI_UNSIGNED_LONG || \
- dtype_ == MPI_UNSIGNED_LONG_LONG || dtype_ == MPI_DOUBLE); \
+ MPIU_Assert((dtype_) == MPI_UNSIGNED || (dtype_) == MPI_UNSIGNED_LONG || \
+ (dtype_) == MPI_UNSIGNED_LONG_LONG || (dtype_) == MPI_DOUBLE); \
switch (dtype_) { \
case MPI_UNSIGNED: \
MPIR_T_PVAR_UINT_LOWWATERMARK_INIT_impl(name_, initval_); break; \
@@ -1279,9 +1279,9 @@ void get_timer_time_in_double(MPIR_T_pvar_timer_t *timer, void *obj_handle,
addr_, count_, verb_, bind_, flags_, get_value_, get_count_, cat_, desc_) \
do { \
/* Allowable datatypes */ \
- MPIU_Assert(dtype_ == MPI_UNSIGNED || dtype_ == MPI_UNSIGNED_LONG || \
- dtype_ == MPI_UNSIGNED_LONG_LONG || dtype_ == MPI_DOUBLE); \
- MPIU_Assert(addr_ != NULL || get_value_ != NULL); \
+ MPIU_Assert((dtype_) == MPI_UNSIGNED || (dtype_) == MPI_UNSIGNED_LONG || \
+ (dtype_) == MPI_UNSIGNED_LONG_LONG || (dtype_) == MPI_DOUBLE); \
+ MPIU_Assert((addr_) != NULL || (get_value_) != NULL); \
MPIR_T_PVAR_REGISTER_impl(MPI_T_PVAR_CLASS_LOWWATERMARK, dtype_, #name_, \
addr_, count_, MPI_T_ENUM_NULL, verb_, bind_, flags_, get_value_, \
get_count_, cat_, desc_); \
-----------------------------------------------------------------------
Summary of changes:
src/include/mpitimpl.h | 196 ++++++++++++++++++++++++------------------------
1 files changed, 98 insertions(+), 98 deletions(-)
hooks/post-receive
--
MPICH primary repository
1
0
[mpich] MPICH primary repository branch, master, updated. v3.1rc2-70-gfbe39cd
by noreply@mpich.org 17 Dec '13
by noreply@mpich.org 17 Dec '13
17 Dec '13
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 fbe39cd7166cd8173078604644f40180726adbcf (commit)
from 097ec9fcee7e10fa91071a28a1f704e76cd5cdb2 (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/fbe39cd7166cd8173078604644f401807…
commit fbe39cd7166cd8173078604644f40180726adbcf
Author: Pavan Balaji <balaji(a)mcs.anl.gov>
Date: Mon Dec 9 00:05:00 2013 -0600
Added more MPICH authors and removed old ones.
Changes from Toni:
Modifications in documentation author formatting
1.- Modified the Spanish weird n-with-a-nice-tilde-on-top of Toni's
last name to look as a regular letter instead of an even weirder thing.
2.- Included Toni's middle initial to match his bibliographic name.
Removed "and" from authors on docs
As the template introduces space among authors, it looks weird to me
that the last author gets an "and" word in front of it.
Signed-off-by: Pavan Balaji <balaji(a)mcs.anl.gov>
diff --git a/doc/installguide/install.tex.vin b/doc/installguide/install.tex.vin
index 0b5b823..0d4672d 100644
--- a/doc/installguide/install.tex.vin
+++ b/doc/installguide/install.tex.vin
@@ -49,24 +49,9 @@
Argonne National Laboratory}
\author{
-Pavan Balaji\\
-Wesley Bland\\
-William Gropp\\
-Rob Latham\\
-Antonio Pe$\tilde{n}$a\\
-Rajeev Thakur\\[2.0ex]
-\textbf{Past Contributors:}\\
-David Ashton\\
-Darius Buntinas\\
-Ralph Butler\\
-Anthony Chan\\
-James Dinan\\
-David Goodell\\
-Jayesh Krishna\\
-Ewing Lusk\\
-Guillaume Mercier\\
-Rob Ross\\
-Brian Toonen
+Pavan Balaji \and Wesley Bland \and William Gropp \and Rob Latham \and
+Huiwei Lu \and Antonio J. Pe\~na \and Ken Raffenetti \and Rajeev
+Thakur \and Junchao Zhang
}
\maketitle
diff --git a/doc/userguide/user.tex.vin b/doc/userguide/user.tex.vin
index dd1a926..d33e801 100644
--- a/doc/userguide/user.tex.vin
+++ b/doc/userguide/user.tex.vin
@@ -47,24 +47,9 @@ Mathematics and Computer Science Division\\
Argonne National Laboratory}
\author{
-Pavan Balaji\\
-Wesley Bland\\
-William Gropp\\
-Rob Latham\\
-Antonio Pe$\tilde{n}$a\\
-Rajeev Thakur\\[2.0ex]
-\textbf{Past Contributors:}\\
-David Ashton\\
-Darius Buntinas\\
-Ralph Butler\\
-Anthony Chan\\
-James Dinan\\
-David Goodell\\
-Jayesh Krishna\\
-Ewing Lusk\\
-Guillaume Mercier\\
-Rob Ross\\
-Brian Toonen
+Pavan Balaji \and Wesley Bland \and William Gropp \and Rob Latham \and
+Huiwei Lu \and Antonio J. Pe\~na \and Ken Raffenetti \and Rajeev
+Thakur \and Junchao Zhang
}
\maketitle
-----------------------------------------------------------------------
Summary of changes:
doc/installguide/install.tex.vin | 21 +++------------------
doc/userguide/user.tex.vin | 21 +++------------------
2 files changed, 6 insertions(+), 36 deletions(-)
hooks/post-receive
--
MPICH primary repository
1
0
[mpich] MPICH primary repository branch, master, updated. v3.1rc2-69-g097ec9f
by noreply@mpich.org 17 Dec '13
by noreply@mpich.org 17 Dec '13
17 Dec '13
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 097ec9fcee7e10fa91071a28a1f704e76cd5cdb2 (commit)
from 38aacd18339d13666f8e36de5a7c109929aac0ac (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/097ec9fcee7e10fa91071a28a1f704e76…
commit 097ec9fcee7e10fa91071a28a1f704e76cd5cdb2
Author: Rob Latham <robl(a)mcs.anl.gov>
Date: Tue Dec 17 14:31:33 2013 -0600
unused variable warning
diff --git a/src/mpi/romio/adio/common/ad_iopen.c b/src/mpi/romio/adio/common/ad_iopen.c
index e999df8..5deeaa2 100644
--- a/src/mpi/romio/adio/common/ad_iopen.c
+++ b/src/mpi/romio/adio/common/ad_iopen.c
@@ -9,7 +9,6 @@
void ADIO_ImmediateOpen(ADIO_File fd, int *error_code)
{
- int nprocs, myrank;
MPI_Comm tmp_comm;
tmp_comm = fd->comm;
/* some file systems might try to be clever inside their open routine.
-----------------------------------------------------------------------
Summary of changes:
src/mpi/romio/adio/common/ad_iopen.c | 1 -
1 files changed, 0 insertions(+), 1 deletions(-)
hooks/post-receive
--
MPICH primary repository
1
0
[mpich] MPICH primary repository branch, master, updated. v3.1rc2-68-g38aacd1
by noreply@mpich.org 17 Dec '13
by noreply@mpich.org 17 Dec '13
17 Dec '13
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 38aacd18339d13666f8e36de5a7c109929aac0ac (commit)
via f571b0e526ebbddb32802e7535c1472b0cd9499a (commit)
via cc67b4001b7525fea08ebc8e3a91181341b47d05 (commit)
from 1ecfc4ffbe8e45f6e449a555520c7b4eb31c9347 (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/38aacd18339d13666f8e36de5a7c10992…
commit 38aacd18339d13666f8e36de5a7c109929aac0ac
Author: Rob Latham <robl(a)mcs.anl.gov>
Date: Wed Dec 4 12:13:11 2013 -0600
deferred open: fixup immediate-mode communicators
If user lies about "romio_no_indep_rw" (does independent I/O anyway),
ROMIO will open the file at the time of the read/write operation. this
open call (Blue Gene, maybe others) might try to be clever, as when Blue
Gene does a stat-and-broadcast. Since this open is now an independent
open, not collective, pass in COMM_SELF
Signed-off-by: Ken Raffenetti <raffenet(a)mcs.anl.gov>
diff --git a/src/mpi/romio/adio/common/ad_iopen.c b/src/mpi/romio/adio/common/ad_iopen.c
index b678541..e999df8 100644
--- a/src/mpi/romio/adio/common/ad_iopen.c
+++ b/src/mpi/romio/adio/common/ad_iopen.c
@@ -10,12 +10,13 @@
void ADIO_ImmediateOpen(ADIO_File fd, int *error_code)
{
int nprocs, myrank;
+ MPI_Comm tmp_comm;
+ tmp_comm = fd->comm;
+ /* some file systems might try to be clever inside their open routine.
+ * e.g. Blue Gene does a stat-and-broadcast */
+ fd->comm = MPI_COMM_SELF;
(*(fd->fns->ADIOI_xxx_Open))(fd, error_code);
fd->is_open = 1;
+ fd->comm = tmp_comm;
- /* DEBUG: remove following lines */
- MPI_Comm_size(fd->comm, &nprocs);
- MPI_Comm_rank(fd->comm, &myrank);
- FPRINTF(stdout, "[%d/%d] DEBUG: ADIOI_ImmediateOpen called on %s\n",
- myrank, nprocs, fd->filename);
}
http://git.mpich.org/mpich.git/commitdiff/f571b0e526ebbddb32802e7535c1472b0…
commit f571b0e526ebbddb32802e7535c1472b0cd9499a
Author: Rob Latham <robl(a)mcs.anl.gov>
Date: Wed Dec 4 11:59:20 2013 -0600
Introduce and use ADIO_TWO_PHASE feature-check
the old deferred open code explicitly checked for the presence of
ADIOI_GEN_WriteStrided and ADIOI_GEN_ReadStrided functions in the file
system specific struct. This is needlessly specific: lustre and
bluegene, for example re-implemented two phase but as a different (and
differently named) function
Signed-off-by: Ken Raffenetti <raffenet(a)mcs.anl.gov>
diff --git a/src/mpi/romio/adio/common/ad_features.c b/src/mpi/romio/adio/common/ad_features.c
index 339c54d..5be6cb3 100644
--- a/src/mpi/romio/adio/common/ad_features.c
+++ b/src/mpi/romio/adio/common/ad_features.c
@@ -8,6 +8,7 @@ int ADIOI_GEN_Feature(ADIO_File fd, int flag)
case ADIO_ATOMIC_MODE:
case ADIO_DATA_SIEVING_WRITES:
case ADIO_UNLINK_AFTER_CLOSE:
+ case ADIO_TWO_PHASE:
return 1;
break;
case ADIO_SCALABLE_OPEN:
diff --git a/src/mpi/romio/adio/common/ad_open.c b/src/mpi/romio/adio/common/ad_open.c
index cfd1e7a..8a9d33b 100644
--- a/src/mpi/romio/adio/common/ad_open.c
+++ b/src/mpi/romio/adio/common/ad_open.c
@@ -215,28 +215,21 @@ int is_aggregator(int rank, ADIO_File fd ) {
return 0;
}
-/*
- * we special-case TESTFS because all it does is wrap logging info around GEN
+/*
+ * If file system implements some version of two-phase -- doesn't have to be
+ * generic -- we can still carry out the defered open optimization
*/
static int uses_generic_read(ADIO_File fd)
{
- ADIOI_Fns *fns = fd->fns;
- if (fns->ADIOI_xxx_ReadStridedColl == ADIOI_GEN_ReadStridedColl ||
- fd->file_system == ADIO_TESTFS )
- {
+ if (ADIO_Feature(fd, ADIO_TWO_PHASE))
return 1;
- }
return 0;
}
static int uses_generic_write(ADIO_File fd)
{
- ADIOI_Fns *fns = fd->fns;
- if (fns->ADIOI_xxx_WriteStridedColl == ADIOI_GEN_WriteStridedColl ||
- fd->file_system == ADIO_TESTFS )
- {
+ if (ADIO_Feature(fd, ADIO_TWO_PHASE))
return 1;
- }
return 0;
}
diff --git a/src/mpi/romio/adio/include/adio.h b/src/mpi/romio/adio/include/adio.h
index 26f1659..f2e68b4 100644
--- a/src/mpi/romio/adio/include/adio.h
+++ b/src/mpi/romio/adio/include/adio.h
@@ -314,6 +314,9 @@ typedef struct {
#define ADIO_UNLINK_AFTER_CLOSE 305 /* supports posix semantic of keeping a
deleted file around until all
processors have closed it */
+#define ADIO_TWO_PHASE 306 /* file system implements some version of
+ two-phase collective buffering with
+ aggregation */
/* for default file permissions */
#define ADIO_PERM_NULL -1
http://git.mpich.org/mpich.git/commitdiff/cc67b4001b7525fea08ebc8e3a9118134…
commit cc67b4001b7525fea08ebc8e3a91181341b47d05
Author: Rob Latham <robl(a)mcs.anl.gov>
Date: Mon Dec 2 16:45:30 2013 -0600
re-enable deferred open on Blue Gene
deferred open had been disabled, but it does not need to be. Thanks for
drawing this to my attention, Paul Coffman <pkcoff(a)us.ibm.com>.
Signed-off-by: Ken Raffenetti <raffenet(a)mcs.anl.gov>
diff --git a/src/mpi/romio/adio/ad_bg/ad_bg_hints.c b/src/mpi/romio/adio/ad_bg/ad_bg_hints.c
index 65aaea7..da86206 100644
--- a/src/mpi/romio/adio/ad_bg/ad_bg_hints.c
+++ b/src/mpi/romio/adio/ad_bg/ad_bg_hints.c
@@ -274,12 +274,24 @@ void ADIOI_BG_SetInfo(ADIO_File fd, MPI_Info users_info, int *error_code)
if (did_anything) {
ADIOI_BG_gen_agg_ranklist(fd, fd->hints->cb_nodes);
}
- /* ignore defered open hints and do not enable it for bluegene: need all
- * processors in the open path so we can stat-and-broadcast the blocksize
- */
- ADIOI_Info_set(info, "romio_no_indep_rw", "false");
- fd->hints->no_indep_rw = 0;
- fd->hints->deferred_open = 0;
+
+ /* deferred_open won't be set by callers, but if the user doesn't
+ * explicitly disable collecitve buffering (two-phase) and does hint that
+ * io w/o independent io is going on, we'll set this internal hint as a
+ * convenience */
+ if ( ( (fd->hints->cb_read != ADIOI_HINT_DISABLE) \
+ && (fd->hints->cb_write != ADIOI_HINT_DISABLE)\
+ && fd->hints->no_indep_rw ) ) {
+ fd->hints->deferred_open = 1;
+ } else {
+ /* setting romio_no_indep_rw enable and romio_cb_{read,write}
+ * disable at the same time doesn't make sense. honor
+ * romio_cb_{read,write} and force the no_indep_rw hint to
+ * 'disable' */
+ ADIOI_Info_set(info, "romio_no_indep_rw", "false");
+ fd->hints->no_indep_rw = 0;
+ fd->hints->deferred_open = 0;
+ }
/* BobC commented this out, but since hint processing runs on both bg and
* bglockless, we need to keep DS writes enabled on gpfs and disabled on
diff --git a/src/mpi/romio/adio/ad_bg/ad_bg_open.c b/src/mpi/romio/adio/ad_bg/ad_bg_open.c
index 01f135f..bddcfaf 100644
--- a/src/mpi/romio/adio/ad_bg/ad_bg_open.c
+++ b/src/mpi/romio/adio/ad_bg/ad_bg_open.c
@@ -116,7 +116,7 @@ static void scaleable_stat(ADIO_File fd)
long buf[2];
MPI_Comm_rank(fd->comm, &rank);
- if (rank == 0) {
+ if (rank == fd->hints->ranklist[0]) {
/* Get the (real) underlying file system block size */
rc = stat64(fd->filename, &bg_stat);
if (rc >= 0)
@@ -161,7 +161,13 @@ static void scaleable_stat(ADIO_File fd)
}
}
/* now we can broadcast the stat/statfs data to everyone else */
- MPI_Bcast(buf, 2, MPI_LONG, 0, fd->comm);
+ if (fd->comm != MPI_COMM_SELF) { /* if indep open, there's no one to talk to*/
+ if (fd->agg_comm != MPI_COMM_NULL) /* deferred open: only a subset of
+ processes participate */
+ MPI_Bcast(buf, 2, MPI_LONG, 0, fd->agg_comm);
+ else
+ MPI_Bcast(buf, 2, MPI_LONG, 0, fd->comm);
+ }
bg_stat.st_blksize = buf[0];
bg_statfs.f_type = buf[1];
@@ -178,7 +184,7 @@ static void scaleable_stat(ADIO_File fd)
/* Only one rank is an "fsync aggregator" because only one
* fsync is needed */
- if (rank == 0)
+ if (rank == fd->hints->ranklist[0])
{
((ADIOI_BG_fs*)fd->fs_ptr)->fsync_aggr |=
ADIOI_BG_FSYNC_AGGREGATOR;
-----------------------------------------------------------------------
Summary of changes:
src/mpi/romio/adio/ad_bg/ad_bg_hints.c | 24 ++++++++++++++++++------
src/mpi/romio/adio/ad_bg/ad_bg_open.c | 12 +++++++++---
src/mpi/romio/adio/common/ad_features.c | 1 +
src/mpi/romio/adio/common/ad_iopen.c | 11 ++++++-----
src/mpi/romio/adio/common/ad_open.c | 17 +++++------------
src/mpi/romio/adio/include/adio.h | 3 +++
6 files changed, 42 insertions(+), 26 deletions(-)
hooks/post-receive
--
MPICH primary repository
1
0
[mpich] MPICH primary repository branch, master, updated. v3.1rc2-65-g1ecfc4f
by noreply@mpich.org 17 Dec '13
by noreply@mpich.org 17 Dec '13
17 Dec '13
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 1ecfc4ffbe8e45f6e449a555520c7b4eb31c9347 (commit)
via d78f8310643c94bea4a04dc0ee670872024c0d9d (commit)
via fb4c0182d92c2780bbd554b3ef126f1a244dd0ed (commit)
via 379fcf521f16cb906d42c2d8c1c97c23ed9a98b5 (commit)
via a2299cd54c4893262bbf1a77da0b3198865650e4 (commit)
via c12bbcd87d8d1ecd62fb4f37f5de95a76ea2d87d (commit)
via fd2ac8b5fdc4e16c67affdd1acd811db239310fe (commit)
via 4c784c5d2bb41eb069df5d338a1ca025651a12e9 (commit)
via f8501113cb31e6f4a8120d3fd03f51e99a21ec3a (commit)
from 82e2a8221f2bb6f5e13329d59f0aca443b16ae70 (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/1ecfc4ffbe8e45f6e449a555520c7b4eb…
commit 1ecfc4ffbe8e45f6e449a555520c7b4eb31c9347
Author: Junchao Zhang <jczhang(a)mcs.anl.gov>
Date: Thu Dec 5 12:34:05 2013 -0600
Use if (ENABLE_PVAR_NEM) instead of #ifdef
Since ENABLE_PVAR_NEM is always defined as 0 or 1.
Signed-off-by: Junchao Zhang<jczhang(a)mcs.anl.gov> (Reviewed by Bill Gropp)
diff --git a/src/mpid/ch3/channels/nemesis/src/mpid_nem_finalize.c b/src/mpid/ch3/channels/nemesis/src/mpid_nem_finalize.c
index a5c636a..ebd2792 100644
--- a/src/mpid/ch3/channels/nemesis/src/mpid_nem_finalize.c
+++ b/src/mpid/ch3/channels/nemesis/src/mpid_nem_finalize.c
@@ -56,9 +56,9 @@ int MPID_nem_finalize(void)
my_papi_close();
#endif /*PAPI_MONITOR */
-#if ENABLE_PVAR_NEM
- MPIU_Free(MPID_nem_fbox_fall_back_to_queue_count);
-#endif
+ if (ENABLE_PVAR_NEM) {
+ MPIU_Free(MPID_nem_fbox_fall_back_to_queue_count);
+ }
fn_exit:
MPIDI_FUNC_EXIT(MPID_STATE_MPID_NEM_FINALIZE);
diff --git a/src/mpid/ch3/channels/nemesis/src/mpid_nem_init.c b/src/mpid/ch3/channels/nemesis/src/mpid_nem_init.c
index 2ba0960..5aa1f06 100644
--- a/src/mpid/ch3/channels/nemesis/src/mpid_nem_init.c
+++ b/src/mpid/ch3/channels/nemesis/src/mpid_nem_init.c
@@ -49,9 +49,9 @@ static int MPID_nem_init_stats(int n_local_ranks)
{
int mpi_errno = MPI_SUCCESS;
-#ifdef ENABLE_PVAR_NEM
- MPID_nem_fbox_fall_back_to_queue_count = MPIU_Calloc(n_local_ranks, sizeof(unsigned long long));
-#endif
+ if (ENABLE_PVAR_NEM) {
+ MPID_nem_fbox_fall_back_to_queue_count = MPIU_Calloc(n_local_ranks, sizeof(unsigned long long));
+ }
MPIR_T_PVAR_COUNTER_REGISTER_DYNAMIC(
NEM,
http://git.mpich.org/mpich.git/commitdiff/d78f8310643c94bea4a04dc0ee6708720…
commit d78f8310643c94bea4a04dc0ee670872024c0d9d
Author: Junchao Zhang <jczhang(a)mcs.anl.gov>
Date: Thu Nov 7 16:54:48 2013 -0600
Port instr variables in rma code to MPI_T pvars
Fixes #1962
Signed-off-by: Junchao Zhang<jczhang(a)mcs.anl.gov> (Reviewed by Bill Gropp)
diff --git a/src/mpid/ch3/channels/nemesis/src/ch3_win_fns.c b/src/mpid/ch3/channels/nemesis/src/ch3_win_fns.c
index cdec858..fc70901 100644
--- a/src/mpid/ch3/channels/nemesis/src/ch3_win_fns.c
+++ b/src/mpid/ch3/channels/nemesis/src/ch3_win_fns.c
@@ -14,9 +14,7 @@
#define MPIDI_CH3_PAGESIZE_MASK (~(MPIDI_CH3_PAGESIZE-1))
#define MPIDI_CH3_ROUND_UP_PAGESIZE(x) ((((MPI_Aint)x)+(~MPIDI_CH3_PAGESIZE_MASK)) & MPIDI_CH3_PAGESIZE_MASK)
-#ifdef USE_MPIU_INSTR
-MPIU_INSTR_DURATION_EXTERN_DECL(wincreate_allgather);
-#endif
+MPIR_T_PVAR_DOUBLE_TIMER_DECL_EXTERN(RMA, rma_wincreate_allgather);
static int MPIDI_CH3I_Win_allocate_shm(MPI_Aint size, int disp_unit, MPID_Info *info, MPID_Comm *comm_ptr,
void *base_ptr, MPID_Win **win_ptr);
@@ -113,7 +111,7 @@ static int MPIDI_CH3I_Win_allocate_shm(MPI_Aint size, int disp_unit, MPID_Info *
node_size = node_comm_ptr->local_size;
node_rank = node_comm_ptr->rank;
- MPIU_INSTR_DURATION_START(wincreate_allgather);
+ MPIR_T_PVAR_TIMER_START(RMA, rma_wincreate_allgather);
/* allocate memory for the base addresses, disp_units, and
completion counters of all processes */
MPIU_CHKPMEM_MALLOC((*win_ptr)->base_addrs, void **,
@@ -151,7 +149,7 @@ static int MPIDI_CH3I_Win_allocate_shm(MPI_Aint size, int disp_unit, MPID_Info *
mpi_errno = MPIR_Allgather_impl(MPI_IN_PLACE, 0, MPI_DATATYPE_NULL,
tmp_buf, 3 * sizeof(MPI_Aint), MPI_BYTE,
(*win_ptr)->comm_ptr, &errflag);
- MPIU_INSTR_DURATION_END(wincreate_allgather);
+ MPIR_T_PVAR_TIMER_END(RMA, rma_wincreate_allgather);
if (mpi_errno) MPIU_ERR_POP(mpi_errno);
MPIU_ERR_CHKANDJUMP(errflag, mpi_errno, MPI_ERR_OTHER, "**coll_fail");
diff --git a/src/mpid/ch3/include/mpidrma.h b/src/mpid/ch3/include/mpidrma.h
index bceb847..84bac45 100644
--- a/src/mpid/ch3/include/mpidrma.h
+++ b/src/mpid/ch3/include/mpidrma.h
@@ -9,11 +9,9 @@
#include "mpl_utlist.h"
#include "mpidi_ch3_impl.h"
-#ifdef USE_MPIU_INSTR
-MPIU_INSTR_DURATION_EXTERN_DECL(wincreate_allgather);
-MPIU_INSTR_DURATION_EXTERN_DECL(winfree_rs);
-MPIU_INSTR_DURATION_EXTERN_DECL(winfree_complete);
-#endif
+MPIR_T_PVAR_DOUBLE_TIMER_DECL_EXTERN(RMA, rma_wincreate_allgather);
+MPIR_T_PVAR_DOUBLE_TIMER_DECL_EXTERN(RMA, rma_winfree_rs);
+MPIR_T_PVAR_DOUBLE_TIMER_DECL_EXTERN(RMA, rma_winfree_complete);
typedef enum MPIDI_RMA_Op_type {
MPIDI_RMA_PUT = 23,
@@ -1062,20 +1060,20 @@ static inline int MPIDI_CH3I_Wait_for_pt_ops_finish(MPID_Win *win_ptr)
MPIDI_RMA_FUNC_ENTER(MPID_STATE_MPIDI_CH3I_WAIT_FOR_PT_OPS_FINISH);
comm_ptr = win_ptr->comm_ptr;
- MPIU_INSTR_DURATION_START(winfree_rs);
+ MPIR_T_PVAR_TIMER_START(RMA, rma_winfree_rs);
mpi_errno = MPIR_Reduce_scatter_block_impl(win_ptr->pt_rma_puts_accs,
&total_pt_rma_puts_accs, 1,
MPI_INT, MPI_SUM, comm_ptr, &errflag);
if (mpi_errno) { MPIU_ERR_POP(mpi_errno); }
MPIU_ERR_CHKANDJUMP(errflag, mpi_errno, MPI_ERR_OTHER, "**coll_fail");
- MPIU_INSTR_DURATION_END(winfree_rs);
+ MPIR_T_PVAR_TIMER_END(RMA, rma_winfree_rs);
if (total_pt_rma_puts_accs != win_ptr->my_pt_rma_puts_accs)
{
MPID_Progress_state progress_state;
/* poke the progress engine until the two are equal */
- MPIU_INSTR_DURATION_START(winfree_complete);
+ MPIR_T_PVAR_TIMER_START(RMA, rma_winfree_complete);
MPID_Progress_start(&progress_state);
while (total_pt_rma_puts_accs != win_ptr->my_pt_rma_puts_accs)
{
@@ -1089,7 +1087,7 @@ static inline int MPIDI_CH3I_Wait_for_pt_ops_finish(MPID_Win *win_ptr)
/* --END ERROR HANDLING-- */
}
MPID_Progress_end(&progress_state);
- MPIU_INSTR_DURATION_END(winfree_complete);
+ MPIR_T_PVAR_TIMER_END(RMA, rma_winfree_complete);
}
fn_exit:
diff --git a/src/mpid/ch3/src/ch3u_rma_acc_ops.c b/src/mpid/ch3/src/ch3u_rma_acc_ops.c
index ea6eb50..5e8005e 100644
--- a/src/mpid/ch3/src/ch3u_rma_acc_ops.c
+++ b/src/mpid/ch3/src/ch3u_rma_acc_ops.c
@@ -6,11 +6,9 @@
#include "mpidrma.h"
-#ifdef USE_MPIU_INSTR
-MPIU_INSTR_DURATION_EXTERN_DECL(rmaqueue_alloc);
-MPIU_INSTR_DURATION_EXTERN_DECL(rmaqueue_set);
-extern void MPIDI_CH3_RMA_InitInstr(void);
-#endif
+MPIR_T_PVAR_DOUBLE_TIMER_DECL_EXTERN(RMA, rma_rmaqueue_alloc);
+MPIR_T_PVAR_DOUBLE_TIMER_DECL_EXTERN(RMA, rma_rmaqueue_set);
+extern void MPIDI_CH3_RMA_Init_Pvars(void);
#undef FUNCNAME
#define FUNCNAME MPIDI_Get_accumulate
@@ -82,14 +80,14 @@ int MPIDI_Get_accumulate(const void *origin_addr, int origin_count,
MPIDI_RMA_Op_t *new_ptr = NULL;
/* Append the operation to the window's RMA ops queue */
- MPIU_INSTR_DURATION_START(rmaqueue_alloc);
+ MPIR_T_PVAR_TIMER_START(RMA, rma_rmaqueue_alloc);
mpi_errno = MPIDI_CH3I_RMA_Ops_alloc_tail(ops_list, &new_ptr);
- MPIU_INSTR_DURATION_END(rmaqueue_alloc);
+ MPIR_T_PVAR_TIMER_END(RMA, rma_rmaqueue_alloc);
if (mpi_errno) { MPIU_ERR_POP(mpi_errno); }
/* TODO: Can we use the MPIDI_RMA_ACC_CONTIG optimization? */
- MPIU_INSTR_DURATION_START(rmaqueue_set);
+ MPIR_T_PVAR_TIMER_START(RMA, rma_rmaqueue_set);
new_ptr->type = MPIDI_RMA_GET_ACCUMULATE;
/* Cast away const'ness for origin_address as MPIDI_RMA_Op_t
* contain both PUT and GET like ops */
@@ -104,7 +102,7 @@ int MPIDI_Get_accumulate(const void *origin_addr, int origin_count,
new_ptr->target_count = target_count;
new_ptr->target_datatype = target_datatype;
new_ptr->op = op;
- MPIU_INSTR_DURATION_END(rmaqueue_set);
+ MPIR_T_PVAR_TIMER_END(RMA, rma_rmaqueue_set);
/* if source or target datatypes are derived, increment their
reference counts */
@@ -194,12 +192,12 @@ int MPIDI_Compare_and_swap(const void *origin_addr, const void *compare_addr,
MPIDI_RMA_Op_t *new_ptr = NULL;
/* Append this operation to the RMA ops queue */
- MPIU_INSTR_DURATION_START(rmaqueue_alloc);
+ MPIR_T_PVAR_TIMER_START(RMA, rma_rmaqueue_alloc);
mpi_errno = MPIDI_CH3I_RMA_Ops_alloc_tail(ops_list, &new_ptr);
- MPIU_INSTR_DURATION_END(rmaqueue_alloc);
+ MPIR_T_PVAR_TIMER_END(RMA, rma_rmaqueue_alloc);
if (mpi_errno) { MPIU_ERR_POP(mpi_errno); }
- MPIU_INSTR_DURATION_START(rmaqueue_set);
+ MPIR_T_PVAR_TIMER_START(RMA, rma_rmaqueue_set);
new_ptr->type = MPIDI_RMA_COMPARE_AND_SWAP;
new_ptr->origin_addr = (void *) origin_addr;
new_ptr->origin_count = 1;
@@ -214,7 +212,7 @@ int MPIDI_Compare_and_swap(const void *origin_addr, const void *compare_addr,
new_ptr->compare_addr = (void *) compare_addr;
new_ptr->compare_count = 1;
new_ptr->compare_datatype = datatype;
- MPIU_INSTR_DURATION_END(rmaqueue_set);
+ MPIR_T_PVAR_TIMER_END(RMA, rma_rmaqueue_set);
}
fn_exit:
@@ -286,12 +284,12 @@ int MPIDI_Fetch_and_op(const void *origin_addr, void *result_addr,
MPIDI_RMA_Op_t *new_ptr = NULL;
/* Append this operation to the RMA ops queue */
- MPIU_INSTR_DURATION_START(rmaqueue_alloc);
+ MPIR_T_PVAR_TIMER_START(RMA, rma_rmaqueue_alloc);
mpi_errno = MPIDI_CH3I_RMA_Ops_alloc_tail(ops_list, &new_ptr);
- MPIU_INSTR_DURATION_END(rmaqueue_alloc);
+ MPIR_T_PVAR_TIMER_END(RMA, rma_rmaqueue_alloc);
if (mpi_errno) { MPIU_ERR_POP(mpi_errno); }
- MPIU_INSTR_DURATION_START(rmaqueue_set);
+ MPIR_T_PVAR_TIMER_START(RMA, rma_rmaqueue_set);
new_ptr->type = MPIDI_RMA_FETCH_AND_OP;
new_ptr->origin_addr = (void *) origin_addr;
new_ptr->origin_count = 1;
@@ -304,7 +302,7 @@ int MPIDI_Fetch_and_op(const void *origin_addr, void *result_addr,
new_ptr->result_count = 1;
new_ptr->result_datatype = datatype;
new_ptr->op = op;
- MPIU_INSTR_DURATION_END(rmaqueue_set);
+ MPIR_T_PVAR_TIMER_END(RMA, rma_rmaqueue_set);
}
fn_exit:
diff --git a/src/mpid/ch3/src/ch3u_rma_ops.c b/src/mpid/ch3/src/ch3u_rma_ops.c
index 6c2a83c..64dc836 100644
--- a/src/mpid/ch3/src/ch3u_rma_ops.c
+++ b/src/mpid/ch3/src/ch3u_rma_ops.c
@@ -8,11 +8,9 @@
static int enableShortACC=1;
-#ifdef USE_MPIU_INSTR
-MPIU_INSTR_DURATION_EXTERN_DECL(rmaqueue_alloc);
-MPIU_INSTR_DURATION_EXTERN_DECL(rmaqueue_set);
-extern void MPIDI_CH3_RMA_InitInstr(void);
-#endif
+MPIR_T_PVAR_DOUBLE_TIMER_DECL_EXTERN(RMA, rma_rmaqueue_alloc);
+MPIR_T_PVAR_DOUBLE_TIMER_DECL_EXTERN(RMA, rma_rmaqueue_set);
+extern void MPIDI_CH3_RMA_Init_Pvars(void);
#define MPIDI_PASSIVE_TARGET_DONE_TAG 348297
#define MPIDI_PASSIVE_TARGET_RMA_TAG 563924
@@ -177,12 +175,12 @@ int MPIDI_Put(const void *origin_addr, int origin_count, MPI_Datatype
MPIDI_RMA_Op_t *new_ptr = NULL;
/* queue it up */
- MPIU_INSTR_DURATION_START(rmaqueue_alloc);
+ MPIR_T_PVAR_TIMER_START(RMA, rma_rmaqueue_alloc);
mpi_errno = MPIDI_CH3I_RMA_Ops_alloc_tail(ops_list, &new_ptr);
- MPIU_INSTR_DURATION_END(rmaqueue_alloc);
+ MPIR_T_PVAR_TIMER_END(RMA, rma_rmaqueue_alloc);
if (mpi_errno) { MPIU_ERR_POP(mpi_errno); }
- MPIU_INSTR_DURATION_START(rmaqueue_set);
+ MPIR_T_PVAR_TIMER_START(RMA, rma_rmaqueue_set);
/* FIXME: For contig and very short operations, use a streamlined op */
new_ptr->type = MPIDI_RMA_PUT;
/* Cast away const'ness for the origin address, as the
@@ -195,7 +193,7 @@ int MPIDI_Put(const void *origin_addr, int origin_count, MPI_Datatype
new_ptr->target_disp = target_disp;
new_ptr->target_count = target_count;
new_ptr->target_datatype = target_datatype;
- MPIU_INSTR_DURATION_END(rmaqueue_set);
+ MPIR_T_PVAR_TIMER_END(RMA, rma_rmaqueue_set);
/* if source or target datatypes are derived, increment their
reference counts */
@@ -289,12 +287,12 @@ int MPIDI_Get(void *origin_addr, int origin_count, MPI_Datatype
MPIDI_RMA_Op_t *new_ptr = NULL;
/* queue it up */
- MPIU_INSTR_DURATION_START(rmaqueue_alloc);
+ MPIR_T_PVAR_TIMER_START(RMA, rma_rmaqueue_alloc);
mpi_errno = MPIDI_CH3I_RMA_Ops_alloc_tail(ops_list, &new_ptr);
- MPIU_INSTR_DURATION_END(rmaqueue_alloc);
+ MPIR_T_PVAR_TIMER_END(RMA, rma_rmaqueue_alloc);
if (mpi_errno) { MPIU_ERR_POP(mpi_errno); }
- MPIU_INSTR_DURATION_START(rmaqueue_set);
+ MPIR_T_PVAR_TIMER_START(RMA, rma_rmaqueue_set);
/* FIXME: For contig and very short operations, use a streamlined op */
new_ptr->type = MPIDI_RMA_GET;
new_ptr->origin_addr = origin_addr;
@@ -304,7 +302,7 @@ int MPIDI_Get(void *origin_addr, int origin_count, MPI_Datatype
new_ptr->target_disp = target_disp;
new_ptr->target_count = target_count;
new_ptr->target_datatype = target_datatype;
- MPIU_INSTR_DURATION_END(rmaqueue_set);
+ MPIR_T_PVAR_TIMER_END(RMA, rma_rmaqueue_set);
/* if source or target datatypes are derived, increment their
reference counts */
@@ -401,15 +399,15 @@ int MPIDI_Accumulate(const void *origin_addr, int origin_count, MPI_Datatype
MPIDI_RMA_Op_t *new_ptr = NULL;
/* queue it up */
- MPIU_INSTR_DURATION_START(rmaqueue_alloc);
+ MPIR_T_PVAR_TIMER_START(RMA, rma_rmaqueue_alloc);
mpi_errno = MPIDI_CH3I_RMA_Ops_alloc_tail(ops_list, &new_ptr);
- MPIU_INSTR_DURATION_END(rmaqueue_alloc);
+ MPIR_T_PVAR_TIMER_END(RMA, rma_rmaqueue_alloc);
if (mpi_errno) { MPIU_ERR_POP(mpi_errno); }
/* If predefined and contiguous, use a simplified element */
if (MPIR_DATATYPE_IS_PREDEFINED(origin_datatype) &&
MPIR_DATATYPE_IS_PREDEFINED(target_datatype) && enableShortACC) {
- MPIU_INSTR_DURATION_START(rmaqueue_set);
+ MPIR_T_PVAR_TIMER_START(RMA, rma_rmaqueue_set);
new_ptr->type = MPIDI_RMA_ACC_CONTIG;
/* Only the information needed for the contig/predefined acc */
/* Cast away const'ness for origin_address as
@@ -422,11 +420,11 @@ int MPIDI_Accumulate(const void *origin_addr, int origin_count, MPI_Datatype
new_ptr->target_count = target_count;
new_ptr->target_datatype = target_datatype;
new_ptr->op = op;
- MPIU_INSTR_DURATION_END(rmaqueue_set);
+ MPIR_T_PVAR_TIMER_END(RMA, rma_rmaqueue_set);
goto fn_exit;
}
- MPIU_INSTR_DURATION_START(rmaqueue_set);
+ MPIR_T_PVAR_TIMER_START(RMA, rma_rmaqueue_set);
new_ptr->type = MPIDI_RMA_ACCUMULATE;
/* Cast away const'ness for origin_address as MPIDI_RMA_Op_t
* contain both PUT and GET like ops */
@@ -438,7 +436,7 @@ int MPIDI_Accumulate(const void *origin_addr, int origin_count, MPI_Datatype
new_ptr->target_count = target_count;
new_ptr->target_datatype = target_datatype;
new_ptr->op = op;
- MPIU_INSTR_DURATION_END(rmaqueue_set);
+ MPIR_T_PVAR_TIMER_END(RMA, rma_rmaqueue_set);
/* if source or target datatypes are derived, increment their
reference counts */
diff --git a/src/mpid/ch3/src/ch3u_rma_sync.c b/src/mpid/ch3/src/ch3u_rma_sync.c
index 732b0da..fe65823 100644
--- a/src/mpid/ch3/src/ch3u_rma_sync.c
+++ b/src/mpid/ch3/src/ch3u_rma_sync.c
@@ -7,73 +7,663 @@
#include "mpidimpl.h"
#include "mpidrma.h"
-#ifdef USE_MPIU_INSTR
-MPIU_INSTR_DURATION_DECL(winfence_clearlock);
-MPIU_INSTR_DURATION_DECL(winfence_rs);
-MPIU_INSTR_DURATION_DECL(winfence_issue);
-MPIU_INSTR_DURATION_DECL(winfence_complete);
-MPIU_INSTR_DURATION_DECL(winfence_wait);
-MPIU_INSTR_DURATION_DECL(winfence_block);
-MPIU_INSTR_COUNTER_DECL(winfence_reqs);
-MPIU_INSTR_COUNTER_DECL(winunlock_reqs);
-MPIU_INSTR_COUNTER_DECL(wincomplete_reqs);
-MPIU_INSTR_DURATION_DECL(winpost_clearlock);
-MPIU_INSTR_DURATION_DECL(winpost_sendsync);
-MPIU_INSTR_DURATION_DECL(winstart_clearlock);
-MPIU_INSTR_DURATION_DECL(wincomplete_issue);
-MPIU_INSTR_DURATION_DECL(wincomplete_complete);
-MPIU_INSTR_DURATION_DECL(wincomplete_recvsync);
-MPIU_INSTR_DURATION_DECL(wincomplete_block);
-MPIU_INSTR_DURATION_DECL(winwait_wait);
-MPIU_INSTR_DURATION_DECL(winlock_getlocallock);
-MPIU_INSTR_DURATION_DECL(winunlock_getlock);
-MPIU_INSTR_DURATION_DECL(winunlock_issue);
-MPIU_INSTR_DURATION_DECL(winunlock_complete);
-MPIU_INSTR_DURATION_DECL(winunlock_block);
-MPIU_INSTR_DURATION_DECL(lockqueue_alloc);
-MPIU_INSTR_DURATION_DECL(rmapkt_acc);
-MPIU_INSTR_DURATION_DECL(rmapkt_acc_predef);
-MPIU_INSTR_DURATION_DECL(rmapkt_acc_immed);
-MPIU_INSTR_DURATION_DECL(rmapkt_acc_immed_op);
-MPIU_INSTR_DURATION_DECL(rmapkt_cas);
-MPIU_INSTR_DURATION_DECL(rmapkt_fop);
-MPIU_INSTR_DURATION_DECL(rmapkt_get_accum);
-MPIU_INSTR_DURATION_EXTERN_DECL(rmaqueue_alloc);
-MPIU_INSTR_DURATION_EXTERN_DECL(rmaqueue_set);
-void MPIDI_CH3_RMA_InitInstr(void);
-
-void MPIDI_CH3_RMA_InitInstr(void)
+MPIR_T_PVAR_DOUBLE_TIMER_DECL(RMA, rma_lockqueue_alloc);
+
+MPIR_T_PVAR_DOUBLE_TIMER_DECL(RMA, rma_winfence_clearlock);
+MPIR_T_PVAR_ULONG2_COUNTER_DECL(RMA, rma_winfence_clearlock_aux);
+
+MPIR_T_PVAR_DOUBLE_TIMER_DECL(RMA, rma_winfence_rs);
+
+MPIR_T_PVAR_DOUBLE_TIMER_DECL(RMA, rma_winfence_issue);
+MPIR_T_PVAR_ULONG2_COUNTER_DECL(RMA, rma_winfence_issue_aux);
+MPIR_T_PVAR_ULONG2_HIGHWATERMARK_DECL(RMA, rma_winfence_issue_aux);
+
+MPIR_T_PVAR_DOUBLE_TIMER_DECL(RMA, rma_winfence_complete);
+MPIR_T_PVAR_ULONG2_COUNTER_DECL(RMA, rma_winfence_complete_aux);
+
+MPIR_T_PVAR_DOUBLE_TIMER_DECL(RMA, rma_winfence_wait);
+MPIR_T_PVAR_ULONG2_COUNTER_DECL(RMA, rma_winfence_wait_aux);
+
+MPIR_T_PVAR_DOUBLE_TIMER_DECL(RMA, rma_winfence_block);
+MPIR_T_PVAR_ULONG2_COUNTER_DECL(RMA, rma_winfence_block_aux);
+
+MPIR_T_PVAR_DOUBLE_TIMER_DECL(RMA, rma_winpost_clearlock);
+MPIR_T_PVAR_ULONG2_COUNTER_DECL(RMA, rma_winpost_clearlock_aux);
+
+MPIR_T_PVAR_DOUBLE_TIMER_DECL(RMA, rma_winpost_sendsync);
+MPIR_T_PVAR_ULONG2_COUNTER_DECL(RMA, rma_winpost_sendsync_aux);
+
+MPIR_T_PVAR_DOUBLE_TIMER_DECL(RMA, rma_winstart_clearlock);
+MPIR_T_PVAR_ULONG2_COUNTER_DECL(RMA, rma_winstart_clearlock_aux);
+
+MPIR_T_PVAR_DOUBLE_TIMER_DECL(RMA, rma_wincomplete_issue);
+MPIR_T_PVAR_ULONG2_COUNTER_DECL(RMA, rma_wincomplete_issue_aux);
+MPIR_T_PVAR_ULONG2_HIGHWATERMARK_DECL(RMA, rma_wincomplete_issue_aux);
+
+MPIR_T_PVAR_DOUBLE_TIMER_DECL(RMA, rma_wincomplete_complete);
+MPIR_T_PVAR_ULONG2_COUNTER_DECL(RMA, rma_wincomplete_complete_aux);
+
+MPIR_T_PVAR_DOUBLE_TIMER_DECL(RMA, rma_wincomplete_recvsync);
+MPIR_T_PVAR_ULONG2_COUNTER_DECL(RMA, rma_wincomplete_recvsync_aux);
+
+MPIR_T_PVAR_DOUBLE_TIMER_DECL(RMA, rma_wincomplete_block);
+MPIR_T_PVAR_ULONG2_COUNTER_DECL(RMA, rma_wincomplete_block_aux);
+
+MPIR_T_PVAR_DOUBLE_TIMER_DECL(RMA, rma_winwait_wait);
+MPIR_T_PVAR_ULONG2_COUNTER_DECL(RMA, rma_winwait_wait_aux);
+
+MPIR_T_PVAR_DOUBLE_TIMER_DECL(RMA, rma_winlock_getlocallock);
+MPIR_T_PVAR_DOUBLE_TIMER_DECL(RMA, rma_winunlock_getlock);
+MPIR_T_PVAR_DOUBLE_TIMER_DECL(RMA, rma_winunlock_issue);
+
+MPIR_T_PVAR_DOUBLE_TIMER_DECL(RMA, rma_winunlock_complete);
+MPIR_T_PVAR_ULONG2_COUNTER_DECL(RMA, rma_winunlock_complete_aux);
+
+MPIR_T_PVAR_DOUBLE_TIMER_DECL(RMA, rma_winunlock_block);
+MPIR_T_PVAR_ULONG2_COUNTER_DECL(RMA, rma_winunlock_block_aux);
+
+MPIR_T_PVAR_DOUBLE_TIMER_DECL(RMA, rma_rmapkt_acc);
+MPIR_T_PVAR_DOUBLE_TIMER_DECL(RMA, rma_rmapkt_acc_predef);
+MPIR_T_PVAR_DOUBLE_TIMER_DECL(RMA, rma_rmapkt_acc_immed);
+MPIR_T_PVAR_DOUBLE_TIMER_DECL(RMA, rma_rmapkt_acc_immed_op);
+MPIR_T_PVAR_DOUBLE_TIMER_DECL(RMA, rma_rmapkt_cas);
+MPIR_T_PVAR_DOUBLE_TIMER_DECL(RMA, rma_rmapkt_fop);
+MPIR_T_PVAR_DOUBLE_TIMER_DECL(RMA, rma_rmapkt_get_accum);
+
+MPIR_T_PVAR_ULONG2_LEVEL_DECL(RMA, rma_winfence_reqs);
+MPIR_T_PVAR_ULONG2_COUNTER_DECL(RMA, rma_winfence_reqs);
+MPIR_T_PVAR_ULONG2_HIGHWATERMARK_DECL(RMA, rma_winfence_reqs);
+
+MPIR_T_PVAR_ULONG2_COUNTER_DECL(RMA, rma_winunlock_reqs);
+MPIR_T_PVAR_ULONG2_COUNTER_DECL(RMA, rma_wincomplete_reqs);
+
+MPIR_T_PVAR_DOUBLE_TIMER_DECL(RMA, rma_wincreate_allgather);
+MPIR_T_PVAR_DOUBLE_TIMER_DECL(RMA, rma_winfree_rs);
+MPIR_T_PVAR_DOUBLE_TIMER_DECL(RMA, rma_winfree_complete);
+MPIR_T_PVAR_DOUBLE_TIMER_DECL(RMA, rma_rmaqueue_alloc);
+MPIR_T_PVAR_DOUBLE_TIMER_DECL(RMA, rma_rmaqueue_set);
+
+void MPIDI_CH3_RMA_Init_Pvars(void)
{
- MPIU_INSTR_DURATION_INIT(lockqueue_alloc,0,"Allocate Lock Queue element");
- MPIU_INSTR_DURATION_INIT(winfence_clearlock,1,"WIN_FENCE:Clear prior lock");
- MPIU_INSTR_DURATION_INIT(winfence_rs,0,"WIN_FENCE:ReduceScatterBlock");
- MPIU_INSTR_DURATION_INIT(winfence_issue,2,"WIN_FENCE:Issue RMA ops");
- MPIU_INSTR_DURATION_INIT(winfence_complete,1,"WIN_FENCE:Complete RMA ops");
- MPIU_INSTR_DURATION_INIT(winfence_wait,1,"WIN_FENCE:Wait for ops from other processes");
- MPIU_INSTR_DURATION_INIT(winfence_block,0,"WIN_FENCE:Wait for any progress");
- MPIU_INSTR_COUNTER_INIT(winfence_reqs,"WIN_FENCE:Pending requests");
- MPIU_INSTR_COUNTER_INIT(winunlock_reqs,"WIN_UNLOCK:Pending requests");
- MPIU_INSTR_COUNTER_INIT(wincomplete_reqs,"WIN_COMPLETE:Pending requests");
- MPIU_INSTR_DURATION_INIT(winpost_clearlock,1,"WIN_POST:Clear prior lock");
- MPIU_INSTR_DURATION_INIT(winpost_sendsync,1,"WIN_POST:Senc sync messages");
- MPIU_INSTR_DURATION_INIT(winstart_clearlock,1,"WIN_START:Clear prior lock");
- MPIU_INSTR_DURATION_INIT(wincomplete_recvsync,1,"WIN_COMPLETE:Recv sync messages");
- MPIU_INSTR_DURATION_INIT(wincomplete_issue,2,"WIN_COMPLETE:Issue RMA ops");
- MPIU_INSTR_DURATION_INIT(wincomplete_complete,1,"WIN_COMPLETE:Complete RMA ops");
- MPIU_INSTR_DURATION_INIT(wincomplete_block,0,"WIN_COMPLETE:Wait for any progress");
- MPIU_INSTR_DURATION_INIT(winwait_wait,1,"WIN_WAIT:Wait for ops from other processes");
- MPIU_INSTR_DURATION_INIT(winlock_getlocallock,0,"WIN_LOCK:Get local lock");
- MPIU_INSTR_DURATION_INIT(winunlock_issue,2,"WIN_UNLOCK:Issue RMA ops");
- MPIU_INSTR_DURATION_INIT(winunlock_complete,1,"WIN_UNLOCK:Complete RMA ops");
- MPIU_INSTR_DURATION_INIT(winunlock_getlock,0,"WIN_UNLOCK:Acquire lock");
- MPIU_INSTR_DURATION_INIT(winunlock_block,0,"WIN_UNLOCK:Wait for any progress");
- MPIU_INSTR_DURATION_INIT(rmapkt_acc,0,"RMA:PKTHANDLER for Accumulate");
- MPIU_INSTR_DURATION_INIT(rmapkt_acc_predef,0,"RMA:PKTHANDLER for Accumulate: predef dtype");
- MPIU_INSTR_DURATION_INIT(rmapkt_acc_immed,0,"RMA:PKTHANDLER for Accum immed");
- MPIU_INSTR_DURATION_INIT(rmapkt_acc_immed_op,0,"RMA:PKTHANDLER for Accum immed operation");
- MPIU_INSTR_DURATION_INIT(rmapkt_cas,0,"RMA:PKTHANDLER for Compare-and-swap");
- MPIU_INSTR_DURATION_INIT(rmapkt_fop,0,"RMA:PKTHANDLER for Fetch-and-op");
- MPIU_INSTR_DURATION_INIT(rmapkt_get_accum,0,"RMA:PKTHANDLER for Get-Accumulate");
+ /* rma_lockqueue_alloc */
+ MPIR_T_PVAR_TIMER_REGISTER_STATIC(
+ RMA,
+ MPI_DOUBLE,
+ rma_lockqueue_alloc,
+ MPI_T_VERBOSITY_MPIDEV_DETAIL,
+ MPI_T_BIND_NO_OBJECT,
+ MPIR_T_PVAR_FLAG_READONLY,
+ "RMA",
+ "Allocate Lock Queue element (in seconds)");
+
+ /* rma_winfence_clearlock */
+ MPIR_T_PVAR_TIMER_REGISTER_STATIC(
+ RMA,
+ MPI_DOUBLE,
+ rma_winfence_clearlock,
+ MPI_T_VERBOSITY_MPIDEV_DETAIL,
+ MPI_T_BIND_NO_OBJECT,
+ MPIR_T_PVAR_FLAG_READONLY,
+ "RMA",
+ "WIN_FENCE:Clear prior lock (in seconds)");
+
+ MPIR_T_PVAR_COUNTER_REGISTER_STATIC(
+ RMA,
+ MPI_UNSIGNED_LONG_LONG,
+ rma_winfence_clearlock_aux,
+ MPI_T_VERBOSITY_MPIDEV_DETAIL,
+ MPI_T_BIND_NO_OBJECT,
+ MPIR_T_PVAR_FLAG_READONLY,
+ "RMA",
+ "WIN_FENCE:Clear prior lock");
+
+ /* rma_winfence_rs */
+ MPIR_T_PVAR_TIMER_REGISTER_STATIC(
+ RMA,
+ MPI_DOUBLE,
+ rma_winfence_rs,
+ MPI_T_VERBOSITY_MPIDEV_DETAIL,
+ MPI_T_BIND_NO_OBJECT,
+ MPIR_T_PVAR_FLAG_READONLY,
+ "RMA",
+ "WIN_FENCE:ReduceScatterBlock (in seconds)");
+
+ /* rma_winfence_issue and auxiliaries */
+ MPIR_T_PVAR_TIMER_REGISTER_STATIC(
+ RMA,
+ MPI_DOUBLE,
+ rma_winfence_issue,
+ MPI_T_VERBOSITY_MPIDEV_DETAIL,
+ MPI_T_BIND_NO_OBJECT,
+ MPIR_T_PVAR_FLAG_READONLY,
+ "RMA",
+ "WIN_FENCE:Issue RMA ops (in seconds)");
+
+ MPIR_T_PVAR_COUNTER_REGISTER_STATIC(
+ RMA,
+ MPI_UNSIGNED_LONG_LONG,
+ rma_winfence_issue_aux,
+ MPI_T_VERBOSITY_MPIDEV_DETAIL,
+ MPI_T_BIND_NO_OBJECT,
+ MPIR_T_PVAR_FLAG_READONLY,
+ "RMA",
+ "WIN_FENCE:Issue RMA ops");
+
+ MPIR_T_PVAR_HIGHWATERMARK_REGISTER_STATIC(
+ RMA,
+ MPI_UNSIGNED_LONG_LONG,
+ rma_winfence_issue_aux,
+ 0, /* init value */
+ MPI_T_VERBOSITY_MPIDEV_DETAIL,
+ MPI_T_BIND_NO_OBJECT,
+ MPIR_T_PVAR_FLAG_READONLY,
+ "RMA",
+ "WIN_FENCE:Issue RMA ops");
+
+ /* rma_winfence_complete */
+ MPIR_T_PVAR_TIMER_REGISTER_STATIC(
+ RMA,
+ MPI_DOUBLE,
+ rma_winfence_complete,
+ MPI_T_VERBOSITY_MPIDEV_DETAIL,
+ MPI_T_BIND_NO_OBJECT,
+ MPIR_T_PVAR_FLAG_READONLY,
+ "RMA",
+ "WIN_FENCE:Complete RMA ops (in seconds)");
+
+ MPIR_T_PVAR_COUNTER_REGISTER_STATIC(
+ RMA,
+ MPI_UNSIGNED_LONG_LONG,
+ rma_winfence_complete_aux,
+ MPI_T_VERBOSITY_MPIDEV_DETAIL,
+ MPI_T_BIND_NO_OBJECT,
+ MPIR_T_PVAR_FLAG_READONLY,
+ "RMA",
+ "WIN_FENCE:Complete RMA ops");
+
+ /* rma_winfence_wait */
+ MPIR_T_PVAR_TIMER_REGISTER_STATIC(
+ RMA,
+ MPI_DOUBLE,
+ rma_winfence_wait,
+ MPI_T_VERBOSITY_MPIDEV_DETAIL,
+ MPI_T_BIND_NO_OBJECT,
+ MPIR_T_PVAR_FLAG_READONLY,
+ "RMA",
+ "WIN_FENCE:Wait for ops from other processes (in seconds)");
+
+ MPIR_T_PVAR_COUNTER_REGISTER_STATIC(
+ RMA,
+ MPI_UNSIGNED_LONG_LONG,
+ rma_winfence_wait_aux,
+ MPI_T_VERBOSITY_MPIDEV_DETAIL,
+ MPI_T_BIND_NO_OBJECT,
+ MPIR_T_PVAR_FLAG_READONLY,
+ "RMA",
+ "WIN_FENCE:Wait for ops from other processes");
+
+ /* rma_winfence_block */
+ MPIR_T_PVAR_TIMER_REGISTER_STATIC(
+ RMA,
+ MPI_DOUBLE,
+ rma_winfence_block,
+ MPI_T_VERBOSITY_MPIDEV_DETAIL,
+ MPI_T_BIND_NO_OBJECT,
+ MPIR_T_PVAR_FLAG_READONLY,
+ "RMA",
+ "WIN_FENCE:Wait for any progress (in seconds)");
+
+ MPIR_T_PVAR_COUNTER_REGISTER_STATIC(
+ RMA,
+ MPI_UNSIGNED_LONG_LONG,
+ rma_winfence_block_aux,
+ MPI_T_VERBOSITY_MPIDEV_DETAIL,
+ MPI_T_BIND_NO_OBJECT,
+ MPIR_T_PVAR_FLAG_READONLY,
+ "RMA",
+ "WIN_FENCE:Wait for any progress");
+
+
+ /* rma_winpost_clearlock */
+ MPIR_T_PVAR_TIMER_REGISTER_STATIC(
+ RMA,
+ MPI_DOUBLE,
+ rma_winpost_clearlock,
+ MPI_T_VERBOSITY_MPIDEV_DETAIL,
+ MPI_T_BIND_NO_OBJECT,
+ MPIR_T_PVAR_FLAG_READONLY,
+ "RMA",
+ "WIN_POST:Clear prior lock (in seconds)");
+
+ MPIR_T_PVAR_COUNTER_REGISTER_STATIC(
+ RMA,
+ MPI_UNSIGNED_LONG_LONG,
+ rma_winpost_clearlock_aux,
+ MPI_T_VERBOSITY_MPIDEV_DETAIL,
+ MPI_T_BIND_NO_OBJECT,
+ MPIR_T_PVAR_FLAG_READONLY,
+ "RMA",
+ "WIN_POST:Clear prior lock");
+
+ /* rma_winpost_sendsync */
+ MPIR_T_PVAR_TIMER_REGISTER_STATIC(
+ RMA,
+ MPI_DOUBLE,
+ rma_winpost_sendsync,
+ MPI_T_VERBOSITY_MPIDEV_DETAIL,
+ MPI_T_BIND_NO_OBJECT,
+ MPIR_T_PVAR_FLAG_READONLY,
+ "RMA",
+ "WIN_POST:Senc sync messages (in seconds)");
+
+ MPIR_T_PVAR_COUNTER_REGISTER_STATIC(
+ RMA,
+ MPI_UNSIGNED_LONG_LONG,
+ rma_winpost_sendsync_aux,
+ MPI_T_VERBOSITY_MPIDEV_DETAIL,
+ MPI_T_BIND_NO_OBJECT,
+ MPIR_T_PVAR_FLAG_READONLY,
+ "RMA",
+ "WIN_POST:Senc sync messages");
+
+ /* rma_winstart_clearlock */
+ MPIR_T_PVAR_TIMER_REGISTER_STATIC(
+ RMA,
+ MPI_DOUBLE,
+ rma_winstart_clearlock,
+ MPI_T_VERBOSITY_MPIDEV_DETAIL,
+ MPI_T_BIND_NO_OBJECT,
+ MPIR_T_PVAR_FLAG_READONLY,
+ "RMA",
+ "WIN_START:Clear prior lock (in seconds)");
+
+ MPIR_T_PVAR_COUNTER_REGISTER_STATIC(
+ RMA,
+ MPI_UNSIGNED_LONG_LONG,
+ rma_winstart_clearlock_aux,
+ MPI_T_VERBOSITY_MPIDEV_DETAIL,
+ MPI_T_BIND_NO_OBJECT,
+ MPIR_T_PVAR_FLAG_READONLY,
+ "RMA",
+ "WIN_START:Clear prior lock");
+
+ /* rma_wincomplete_issue and auxiliaries */
+ MPIR_T_PVAR_TIMER_REGISTER_STATIC(
+ RMA,
+ MPI_DOUBLE,
+ rma_wincomplete_issue,
+ MPI_T_VERBOSITY_MPIDEV_DETAIL,
+ MPI_T_BIND_NO_OBJECT,
+ MPIR_T_PVAR_FLAG_READONLY,
+ "RMA",
+ "WIN_COMPLETE:Issue RMA ops (in seconds)");
+
+ MPIR_T_PVAR_COUNTER_REGISTER_STATIC(
+ RMA,
+ MPI_UNSIGNED_LONG_LONG,
+ rma_wincomplete_issue_aux,
+ MPI_T_VERBOSITY_MPIDEV_DETAIL,
+ MPI_T_BIND_NO_OBJECT,
+ MPIR_T_PVAR_FLAG_READONLY,
+ "RMA",
+ "WIN_COMPLETE:Issue RMA ops");
+
+ MPIR_T_PVAR_HIGHWATERMARK_REGISTER_STATIC(
+ RMA,
+ MPI_UNSIGNED_LONG_LONG,
+ rma_wincomplete_issue_aux,
+ 0, /* init value */
+ MPI_T_VERBOSITY_MPIDEV_DETAIL,
+ MPI_T_BIND_NO_OBJECT,
+ MPIR_T_PVAR_FLAG_READONLY,
+ "RMA",
+ "WIN_COMPLETE:Issue RMA ops");
+
+ /* rma_wincomplete_complete */
+ MPIR_T_PVAR_TIMER_REGISTER_STATIC(
+ RMA,
+ MPI_DOUBLE,
+ rma_wincomplete_complete,
+ MPI_T_VERBOSITY_MPIDEV_DETAIL,
+ MPI_T_BIND_NO_OBJECT,
+ MPIR_T_PVAR_FLAG_READONLY,
+ "RMA",
+ "WIN_COMPLETE:Complete RMA ops (in seconds)");
+
+ MPIR_T_PVAR_COUNTER_REGISTER_STATIC(
+ RMA,
+ MPI_UNSIGNED_LONG_LONG,
+ rma_wincomplete_complete_aux,
+ MPI_T_VERBOSITY_MPIDEV_DETAIL,
+ MPI_T_BIND_NO_OBJECT,
+ MPIR_T_PVAR_FLAG_READONLY,
+ "RMA",
+ "WIN_COMPLETE:Complete RMA ops");
+
+ /* rma_wincomplete_recvsync */
+ MPIR_T_PVAR_TIMER_REGISTER_STATIC(
+ RMA,
+ MPI_DOUBLE,
+ rma_wincomplete_recvsync,
+ MPI_T_VERBOSITY_MPIDEV_DETAIL,
+ MPI_T_BIND_NO_OBJECT,
+ MPIR_T_PVAR_FLAG_READONLY,
+ "RMA",
+ "WIN_COMPLETE:Recv sync messages (in seconds)");
+
+ MPIR_T_PVAR_COUNTER_REGISTER_STATIC(
+ RMA,
+ MPI_UNSIGNED_LONG_LONG,
+ rma_wincomplete_recvsync_aux,
+ MPI_T_VERBOSITY_MPIDEV_DETAIL,
+ MPI_T_BIND_NO_OBJECT,
+ MPIR_T_PVAR_FLAG_READONLY,
+ "RMA",
+ "WIN_COMPLETE:Recv sync messages");
+
+ /* rma_wincomplete_block */
+ MPIR_T_PVAR_TIMER_REGISTER_STATIC(
+ RMA,
+ MPI_DOUBLE,
+ rma_wincomplete_block,
+ MPI_T_VERBOSITY_MPIDEV_DETAIL,
+ MPI_T_BIND_NO_OBJECT,
+ MPIR_T_PVAR_FLAG_READONLY,
+ "RMA",
+ "WIN_COMPLETE:Wait for any progress (in seconds)");
+
+ MPIR_T_PVAR_COUNTER_REGISTER_STATIC(
+ RMA,
+ MPI_UNSIGNED_LONG_LONG,
+ rma_wincomplete_block_aux,
+ MPI_T_VERBOSITY_MPIDEV_DETAIL,
+ MPI_T_BIND_NO_OBJECT,
+ MPIR_T_PVAR_FLAG_READONLY,
+ "RMA",
+ "WIN_COMPLETE:Wait for any progress");
+
+ /* rma_winwait_wait */
+ MPIR_T_PVAR_TIMER_REGISTER_STATIC(
+ RMA,
+ MPI_DOUBLE,
+ rma_winwait_wait,
+ MPI_T_VERBOSITY_MPIDEV_DETAIL,
+ MPI_T_BIND_NO_OBJECT,
+ MPIR_T_PVAR_FLAG_READONLY,
+ "RMA",
+ "WIN_WAIT:Wait for ops from other processes (in seconds)");
+
+ MPIR_T_PVAR_COUNTER_REGISTER_STATIC(
+ RMA,
+ MPI_UNSIGNED_LONG_LONG,
+ rma_winwait_wait_aux,
+ MPI_T_VERBOSITY_MPIDEV_DETAIL,
+ MPI_T_BIND_NO_OBJECT,
+ MPIR_T_PVAR_FLAG_READONLY,
+ "RMA",
+ "WIN_WAIT:Wait for ops from other processes");
+
+ /* rma_winlock_getlocallock */
+ MPIR_T_PVAR_TIMER_REGISTER_STATIC(
+ RMA,
+ MPI_DOUBLE,
+ rma_winlock_getlocallock,
+ MPI_T_VERBOSITY_MPIDEV_DETAIL,
+ MPI_T_BIND_NO_OBJECT,
+ MPIR_T_PVAR_FLAG_READONLY,
+ "RMA",
+ "WIN_LOCK:Get local lock (in seconds)");
+
+ /* rma_winunlock_getlock */
+ MPIR_T_PVAR_TIMER_REGISTER_STATIC(
+ RMA,
+ MPI_DOUBLE,
+ rma_winunlock_getlock,
+ MPI_T_VERBOSITY_MPIDEV_DETAIL,
+ MPI_T_BIND_NO_OBJECT,
+ MPIR_T_PVAR_FLAG_READONLY,
+ "RMA",
+ "WIN_UNLOCK:Acquire lock (in seconds)");
+
+ /* rma_winunlock_issue */
+ MPIR_T_PVAR_TIMER_REGISTER_STATIC(
+ RMA,
+ MPI_DOUBLE,
+ rma_winunlock_issue,
+ MPI_T_VERBOSITY_MPIDEV_DETAIL,
+ MPI_T_BIND_NO_OBJECT,
+ MPIR_T_PVAR_FLAG_READONLY,
+ "RMA",
+ "WIN_UNLOCK:Issue RMA ops (in seconds)");
+
+ /* rma_winunlock_complete */
+ MPIR_T_PVAR_TIMER_REGISTER_STATIC(
+ RMA,
+ MPI_DOUBLE,
+ rma_winunlock_complete,
+ MPI_T_VERBOSITY_MPIDEV_DETAIL,
+ MPI_T_BIND_NO_OBJECT,
+ MPIR_T_PVAR_FLAG_READONLY,
+ "RMA",
+ "WIN_UNLOCK:Complete RMA ops (in seconds)");
+
+ MPIR_T_PVAR_COUNTER_REGISTER_STATIC(
+ RMA,
+ MPI_UNSIGNED_LONG_LONG,
+ rma_winunlock_complete_aux,
+ MPI_T_VERBOSITY_MPIDEV_DETAIL,
+ MPI_T_BIND_NO_OBJECT,
+ MPIR_T_PVAR_FLAG_READONLY,
+ "RMA",
+ "WIN_UNLOCK:Complete RMA ops (in seconds)");
+
+ /* rma_winunlock_block */
+ MPIR_T_PVAR_TIMER_REGISTER_STATIC(
+ RMA,
+ MPI_DOUBLE,
+ rma_winunlock_block,
+ MPI_T_VERBOSITY_MPIDEV_DETAIL,
+ MPI_T_BIND_NO_OBJECT,
+ MPIR_T_PVAR_FLAG_READONLY,
+ "RMA",
+ "WIN_UNLOCK:Wait for any progress (in seconds)");
+
+ MPIR_T_PVAR_COUNTER_REGISTER_STATIC(
+ RMA,
+ MPI_UNSIGNED_LONG_LONG,
+ rma_winunlock_block_aux,
+ MPI_T_VERBOSITY_MPIDEV_DETAIL,
+ MPI_T_BIND_NO_OBJECT,
+ MPIR_T_PVAR_FLAG_READONLY,
+ "RMA",
+ "WIN_UNLOCK:Wait for any progress");
+
+ /* rma_rmapkt_acc */
+ MPIR_T_PVAR_TIMER_REGISTER_STATIC(
+ RMA,
+ MPI_DOUBLE,
+ rma_rmapkt_acc,
+ MPI_T_VERBOSITY_MPIDEV_DETAIL,
+ MPI_T_BIND_NO_OBJECT,
+ MPIR_T_PVAR_FLAG_READONLY,
+ "RMA",
+ "RMA:PKTHANDLER for Accumulate (in seconds)");
+
+ /* rma_rmapkt_acc_predef */
+ MPIR_T_PVAR_TIMER_REGISTER_STATIC(
+ RMA,
+ MPI_DOUBLE,
+ rma_rmapkt_acc_predef,
+ MPI_T_VERBOSITY_MPIDEV_DETAIL,
+ MPI_T_BIND_NO_OBJECT,
+ MPIR_T_PVAR_FLAG_READONLY,
+ "RMA",
+ "RMA:PKTHANDLER for Accumulate: predef dtype (in seconds)");
+
+ /* rma_rmapkt_acc_immed */
+ MPIR_T_PVAR_TIMER_REGISTER_STATIC(
+ RMA,
+ MPI_DOUBLE,
+ rma_rmapkt_acc_immed,
+ MPI_T_VERBOSITY_MPIDEV_DETAIL,
+ MPI_T_BIND_NO_OBJECT,
+ MPIR_T_PVAR_FLAG_READONLY,
+ "RMA",
+ "RMA:PKTHANDLER for Accum immed (in seconds)");
+
+ /* rma_rmapkt_acc_immed_op */
+ MPIR_T_PVAR_TIMER_REGISTER_STATIC(
+ RMA,
+ MPI_DOUBLE,
+ rma_rmapkt_acc_immed_op,
+ MPI_T_VERBOSITY_MPIDEV_DETAIL,
+ MPI_T_BIND_NO_OBJECT,
+ MPIR_T_PVAR_FLAG_READONLY,
+ "RMA",
+ "RMA:PKTHANDLER for Accum immed operation (in seconds)");
+
+ /* rma_rmapkt_cas */
+ MPIR_T_PVAR_TIMER_REGISTER_STATIC(
+ RMA,
+ MPI_DOUBLE,
+ rma_rmapkt_cas,
+ MPI_T_VERBOSITY_MPIDEV_DETAIL,
+ MPI_T_BIND_NO_OBJECT,
+ MPIR_T_PVAR_FLAG_READONLY,
+ "RMA",
+ "RMA:PKTHANDLER for Compare-and-swap (in seconds)");
+
+ /* rma_rmapkt_fop */
+ MPIR_T_PVAR_TIMER_REGISTER_STATIC(
+ RMA,
+ MPI_DOUBLE,
+ rma_rmapkt_fop,
+ MPI_T_VERBOSITY_MPIDEV_DETAIL,
+ MPI_T_BIND_NO_OBJECT,
+ MPIR_T_PVAR_FLAG_READONLY,
+ "RMA",
+ "RMA:PKTHANDLER for Fetch-and-op (in seconds)");
+
+ /* rma_rmapkt_get_accum */
+ MPIR_T_PVAR_TIMER_REGISTER_STATIC(
+ RMA,
+ MPI_DOUBLE,
+ rma_rmapkt_get_accum,
+ MPI_T_VERBOSITY_MPIDEV_DETAIL,
+ MPI_T_BIND_NO_OBJECT,
+ MPIR_T_PVAR_FLAG_READONLY,
+ "RMA",
+ "RMA:PKTHANDLER for Get-Accumulate (in seconds)");
+
+ /* Level, counter and highwatermark for rma_winfence_reqs */
+ MPIR_T_PVAR_LEVEL_REGISTER_STATIC(
+ RMA,
+ MPI_UNSIGNED_LONG_LONG,
+ rma_winfence_reqs,
+ 0, /* init value */
+ MPI_T_VERBOSITY_MPIDEV_DETAIL,
+ MPI_T_BIND_NO_OBJECT,
+ MPIR_T_PVAR_FLAG_READONLY | MPIR_T_PVAR_FLAG_CONTINUOUS,
+ "RMA",
+ "WIN_FENCE:Pending requests");
+
+ MPIR_T_PVAR_COUNTER_REGISTER_STATIC(
+ RMA,
+ MPI_UNSIGNED_LONG_LONG,
+ rma_winfence_reqs,
+ MPI_T_VERBOSITY_MPIDEV_DETAIL,
+ MPI_T_BIND_NO_OBJECT,
+ MPIR_T_PVAR_FLAG_READONLY,
+ "RMA",
+ "WIN_FENCE:Pending requests");
+
+ MPIR_T_PVAR_HIGHWATERMARK_REGISTER_STATIC(
+ RMA,
+ MPI_UNSIGNED_LONG_LONG,
+ rma_winfence_reqs,
+ 0, /* init value */
+ MPI_T_VERBOSITY_MPIDEV_DETAIL,
+ MPI_T_BIND_NO_OBJECT,
+ MPIR_T_PVAR_FLAG_READONLY,
+ "RMA",
+ "WIN_FENCE:Pending requests");
+
+ /* rma_winunlock_reqs */
+ MPIR_T_PVAR_COUNTER_REGISTER_STATIC(
+ RMA,
+ MPI_UNSIGNED_LONG_LONG,
+ rma_winunlock_reqs,
+ MPI_T_VERBOSITY_MPIDEV_DETAIL,
+ MPI_T_BIND_NO_OBJECT,
+ MPIR_T_PVAR_FLAG_READONLY,
+ "RMA",
+ "WIN_UNLOCK:Pending requests");
+
+ /* rma_wincomplete_reqs */
+ MPIR_T_PVAR_COUNTER_REGISTER_STATIC(
+ RMA,
+ MPI_UNSIGNED_LONG_LONG,
+ rma_wincomplete_reqs,
+ MPI_T_VERBOSITY_MPIDEV_DETAIL,
+ MPI_T_BIND_NO_OBJECT,
+ MPIR_T_PVAR_FLAG_READONLY,
+ "RMA",
+ "WIN_COMPLETE:Pending requests");
+
+ /* rma_wincreate_allgather */
+ MPIR_T_PVAR_TIMER_REGISTER_STATIC(
+ RMA,
+ MPI_DOUBLE,
+ rma_wincreate_allgather,
+ MPI_T_VERBOSITY_MPIDEV_DETAIL,
+ MPI_T_BIND_NO_OBJECT,
+ MPIR_T_PVAR_FLAG_READONLY,
+ "RMA",
+ "WIN_CREATE:Allgather (in seconds)");
+
+ /* rma_winfree_rs */
+ MPIR_T_PVAR_TIMER_REGISTER_STATIC(
+ RMA,
+ MPI_DOUBLE,
+ rma_winfree_rs,
+ MPI_T_VERBOSITY_MPIDEV_DETAIL,
+ MPI_T_BIND_NO_OBJECT,
+ MPIR_T_PVAR_FLAG_READONLY,
+ "RMA",
+ "WIN_FREE:ReduceScatterBlock (in seconds)");
+
+ /* rma_winfree_complete */
+ MPIR_T_PVAR_TIMER_REGISTER_STATIC(
+ RMA,
+ MPI_DOUBLE,
+ rma_winfree_complete,
+ MPI_T_VERBOSITY_MPIDEV_DETAIL,
+ MPI_T_BIND_NO_OBJECT,
+ MPIR_T_PVAR_FLAG_READONLY,
+ "RMA",
+ "WIN_FREE:Complete (in seconds)");
+
+ /* rma_rmaqueue_alloc */
+ MPIR_T_PVAR_TIMER_REGISTER_STATIC(
+ RMA,
+ MPI_DOUBLE,
+ rma_rmaqueue_alloc,
+ MPI_T_VERBOSITY_MPIDEV_DETAIL,
+ MPI_T_BIND_NO_OBJECT,
+ MPIR_T_PVAR_FLAG_READONLY,
+ "RMA",
+ "Allocate RMA Queue element (in seconds)");
+
+ /* rma_rmaqueue_set */
+ MPIR_T_PVAR_TIMER_REGISTER_STATIC(
+ RMA,
+ MPI_DOUBLE,
+ rma_rmaqueue_set,
+ MPI_T_VERBOSITY_MPIDEV_DETAIL,
+ MPI_T_BIND_NO_OBJECT,
+ MPIR_T_PVAR_FLAG_READONLY,
+ "RMA",
+ "Set fields in RMA Queue element (in seconds)");
}
/* These are used to use a common routine to complete lists of RMA
@@ -82,10 +672,9 @@ void MPIDI_CH3_RMA_InitInstr(void)
thread-safe; the best choice for thread-safety is to eliminate this
ability to discriminate between the different types of RMA synchronization.
*/
-static MPIU_INSTR_Duration_count *list_complete; /* outer */
-static MPIU_INSTR_Duration_count *list_block; /* Inner; while waiting */
-
-#endif
+static MPIR_T_pvar_timer_t *list_complete_timer; /* outer */
+static unsigned long long *list_complete_counter;
+static MPIR_T_pvar_timer_t *list_block_timer; /* Inner; while waiting */
/*
* These routines provide a default implementation of the MPI RMA operations
@@ -235,7 +824,7 @@ int MPIDI_Win_fence(int assert, MPID_Win *win_ptr)
* have completed and the lock is released. */
if (win_ptr->current_lock_type != MPID_LOCK_NONE)
{
- MPIU_INSTR_DURATION_START(winfence_clearlock);
+ MPIR_T_PVAR_TIMER_START(RMA, rma_winfence_clearlock);
MPID_Progress_start(&progress_state);
while (win_ptr->current_lock_type != MPID_LOCK_NONE)
{
@@ -247,10 +836,10 @@ int MPIDI_Win_fence(int assert, MPID_Win *win_ptr)
MPIU_ERR_SETANDJUMP(mpi_errno,MPI_ERR_OTHER,"**winnoprogress");
}
/* --END ERROR HANDLING-- */
- MPIU_INSTR_DURATION_INCR(winfence_clearlock,0,1);
+ MPIR_T_PVAR_COUNTER_INC(RMA, rma_winfence_clearlock_aux, 1);
}
MPID_Progress_end(&progress_state);
- MPIU_INSTR_DURATION_END(winfence_clearlock);
+ MPIR_T_PVAR_TIMER_END(RMA, rma_winfence_clearlock);
}
/* Note that the NOPRECEDE and NOSUCCEED must be specified by all processes
@@ -286,7 +875,7 @@ int MPIDI_Win_fence(int assert, MPID_Win *win_ptr)
OPA_read_write_barrier();
}
- MPIU_INSTR_DURATION_START(winfence_rs);
+ MPIR_T_PVAR_TIMER_START(RMA, rma_winfence_rs);
/* This is the second or later fence. Do all the preceding RMA ops. */
comm_ptr = win_ptr->comm_ptr;
/* First inform every process whether it is a target of RMA
@@ -334,7 +923,7 @@ int MPIDI_Win_fence(int assert, MPID_Win *win_ptr)
mpi_errno = MPIR_Reduce_scatter_block_impl(MPI_IN_PLACE, rma_target_proc, 1,
MPI_INT, MPI_SUM, comm_ptr, &errflag);
- MPIU_INSTR_DURATION_END(winfence_rs);
+ MPIR_T_PVAR_TIMER_END(RMA, rma_winfence_rs);
/* result is stored in rma_target_proc[0] */
if (mpi_errno) { MPIU_ERR_POP(mpi_errno); }
MPIU_ERR_CHKANDJUMP(errflag, mpi_errno, MPI_ERR_OTHER, "**coll_fail");
@@ -345,10 +934,14 @@ int MPIDI_Win_fence(int assert, MPID_Win *win_ptr)
win_ptr->my_counter = win_ptr->my_counter - comm_size +
rma_target_proc[0];
- MPIU_INSTR_DURATION_START(winfence_issue);
- MPIU_INSTR_DURATION_INCR(winfence_issue,0,total_op_count);
- MPIU_INSTR_DURATION_MAX(winfence_issue,1,total_op_count);
- MPIU_INSTR_COUNTER_RESET(winfence_reqs);
+ MPIR_T_PVAR_TIMER_START(RMA, rma_winfence_issue);
+ MPIR_T_PVAR_COUNTER_INC(RMA, rma_winfence_issue_aux, total_op_count);
+ MPIR_T_PVAR_ULONG2_HIGHWATERMARK_UPDATE(RMA, rma_winfence_issue_aux, total_op_count);
+
+ MPIR_T_PVAR_ULONG2_HIGHWATERMARK_UPDATE(RMA, rma_winfence_reqs, MPIR_T_PVAR_LEVEL_GET(rma_winfence_reqs));
+ MPIR_T_PVAR_LEVEL_SET(RMA, rma_winfence_reqs, 0); /* reset the level */
+ MPIR_T_PVAR_COUNTER_INC(RMA, rma_winfence_reqs, 1);
+
i = 0;
curr_ptr = MPIDI_CH3I_RMA_Ops_head(ops_list);
while (curr_ptr != NULL)
@@ -378,7 +971,7 @@ int MPIDI_Win_fence(int assert, MPID_Win *win_ptr)
}
else {
nRequest++;
- MPIU_INSTR_COUNTER_INCR(winfence_reqs,1);
+ MPIR_T_PVAR_LEVEL_INC(RMA, rma_winfence_reqs, 1);
curr_ptr = curr_ptr->next;
/* The test on the difference is to reduce the number
of times the partial complete routine is called. Without
@@ -388,7 +981,9 @@ 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;
- MPIU_INSTR_STMT(list_complete=MPIU_INSTR_GET_VAR(winfence_complete));
+ 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);
/* if (nDone > 0) printf( "nDone = %d\n", nDone ); */
nRequest -= nDone;
@@ -396,7 +991,7 @@ int MPIDI_Win_fence(int assert, MPID_Win *win_ptr)
}
}
}
- MPIU_INSTR_DURATION_END(winfence_issue);
+ MPIR_T_PVAR_TIMER_END(RMA, rma_winfence_issue);
/* We replaced a loop over an array of requests with a list of the
incomplete requests. The reason to do
@@ -411,8 +1006,9 @@ int MPIDI_Win_fence(int assert, MPID_Win *win_ptr)
*/
if (total_op_count)
{
- MPIU_INSTR_STMT(list_complete=MPIU_INSTR_GET_VAR(winfence_complete));
- MPIU_INSTR_STMT(list_block=MPIU_INSTR_GET_VAR(winfence_block));
+ 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);
}
@@ -421,7 +1017,7 @@ int MPIDI_Win_fence(int assert, MPID_Win *win_ptr)
/* wait for all operations from other processes to finish */
if (win_ptr->my_counter)
{
- MPIU_INSTR_DURATION_START(winfence_wait);
+ MPIR_T_PVAR_TIMER_START(RMA, rma_winfence_wait);
MPID_Progress_start(&progress_state);
while (win_ptr->my_counter)
{
@@ -432,10 +1028,10 @@ int MPIDI_Win_fence(int assert, MPID_Win *win_ptr)
MPIU_ERR_SETANDJUMP(mpi_errno,MPI_ERR_OTHER,"**winnoprogress");
}
/* --END ERROR HANDLING-- */
- MPIU_INSTR_DURATION_INCR(winfence_wait,0,1);
+ MPIR_T_PVAR_COUNTER_INC(RMA, rma_winfence_wait_aux, 1);
}
MPID_Progress_end(&progress_state);
- MPIU_INSTR_DURATION_END(winfence_wait);
+ MPIR_T_PVAR_TIMER_END(RMA, rma_winfence_wait);
}
if (assert & MPI_MODE_NOSUCCEED)
@@ -1310,7 +1906,7 @@ int MPIDI_Win_post(MPID_Group *post_grp_ptr, int assert, MPID_Win *win_ptr)
{
MPID_Progress_state progress_state;
- MPIU_INSTR_DURATION_START(winpost_clearlock);
+ MPIR_T_PVAR_TIMER_START(RMA, rma_winpost_clearlock);
/* poke the progress engine */
MPID_Progress_start(&progress_state);
while (win_ptr->current_lock_type != MPID_LOCK_NONE)
@@ -1322,10 +1918,10 @@ int MPIDI_Win_post(MPID_Group *post_grp_ptr, int assert, MPID_Win *win_ptr)
MPIU_ERR_SETANDJUMP(mpi_errno,MPI_ERR_OTHER,"**winnoprogress");
}
/* --END ERROR HANDLING-- */
- MPIU_INSTR_DURATION_INCR(winpost_clearlock,0,1);
+ MPIR_T_PVAR_COUNTER_INC(RMA, rma_winpost_clearlock_aux, 1);
}
MPID_Progress_end(&progress_state);
- MPIU_INSTR_DURATION_END(winpost_clearlock);
+ MPIR_T_PVAR_TIMER_END(RMA, rma_winpost_clearlock);
}
post_grp_size = post_grp_ptr->size;
@@ -1338,7 +1934,7 @@ int MPIDI_Win_post(MPID_Group *post_grp_ptr, int assert, MPID_Win *win_ptr)
MPI_Request *req;
MPI_Status *status;
- MPIU_INSTR_DURATION_START(winpost_sendsync);
+ MPIR_T_PVAR_TIMER_START(RMA, rma_winpost_sendsync);
/* NOCHECK not specified. We need to notify the source
processes that Post has been called. */
@@ -1375,7 +1971,7 @@ int MPIDI_Win_post(MPID_Group *post_grp_ptr, int assert, MPID_Win *win_ptr)
MPIU_CHKLMEM_MALLOC(status, MPI_Status *, post_grp_size*sizeof(MPI_Status), mpi_errno, "status");
/* Send a 0-byte message to the source processes */
- MPIU_INSTR_DURATION_INCR(winpost_sendsync,0,post_grp_size);
+ MPIR_T_PVAR_COUNTER_INC(RMA, rma_winpost_sendsync_aux, post_grp_size);
for (i = 0; i < post_grp_size; i++) {
dst = ranks_in_win_grp[i];
@@ -1409,7 +2005,7 @@ int MPIDI_Win_post(MPID_Group *post_grp_ptr, int assert, MPID_Win *win_ptr)
mpi_errno = MPIR_Group_free_impl(win_grp_ptr);
if (mpi_errno) MPIU_ERR_POP(mpi_errno);
- MPIU_INSTR_DURATION_END(winpost_sendsync);
+ MPIR_T_PVAR_TIMER_END(RMA, rma_winpost_sendsync);
}
fn_exit:
@@ -1462,7 +2058,7 @@ int MPIDI_Win_start(MPID_Group *group_ptr, int assert, MPID_Win *win_ptr)
{
MPID_Progress_state progress_state;
- MPIU_INSTR_DURATION_START(winstart_clearlock);
+ MPIR_T_PVAR_TIMER_START(RMA, rma_winstart_clearlock);
/* poke the progress engine */
MPID_Progress_start(&progress_state);
while (win_ptr->current_lock_type != MPID_LOCK_NONE)
@@ -1474,10 +2070,10 @@ int MPIDI_Win_start(MPID_Group *group_ptr, int assert, MPID_Win *win_ptr)
MPIU_ERR_SETANDJUMP(mpi_errno,MPI_ERR_OTHER,"**winnoprogress");
}
/* --END ERROR HANDLING-- */
- MPIU_INSTR_DURATION_INCR(winstart_clearlock,0,1);
+ MPIR_T_PVAR_COUNTER_INC(RMA, rma_winstart_clearlock_aux, 1);
}
MPID_Progress_end(&progress_state);
- MPIU_INSTR_DURATION_END(winstart_clearlock);
+ MPIR_T_PVAR_TIMER_END(RMA, rma_winstart_clearlock);
}
win_ptr->start_group_ptr = group_ptr;
@@ -1536,7 +2132,7 @@ int MPIDI_Win_complete(MPID_Win *win_ptr)
start_grp_size = win_ptr->start_group_ptr->size;
- MPIU_INSTR_DURATION_START(wincomplete_recvsync);
+ MPIR_T_PVAR_TIMER_START(RMA, rma_wincomplete_recvsync);
MPIU_CHKLMEM_MALLOC(ranks_in_start_grp, int *, start_grp_size*sizeof(int),
mpi_errno, "ranks_in_start_grp");
@@ -1569,7 +2165,7 @@ int MPIDI_Win_complete(MPID_Win *win_ptr)
MPIU_CHKLMEM_MALLOC(req, MPI_Request *, start_grp_size*sizeof(MPI_Request), mpi_errno, "req");
MPIU_CHKLMEM_MALLOC(status, MPI_Status *, start_grp_size*sizeof(MPI_Status), mpi_errno, "status");
- MPIU_INSTR_DURATION_INCR(wincomplete_recvsync,0,start_grp_size);
+ MPIR_T_PVAR_COUNTER_INC(RMA, rma_wincomplete_recvsync_aux, start_grp_size);
for (i = 0; i < start_grp_size; i++) {
src = ranks_in_win_grp[i];
if (src != rank) {
@@ -1601,14 +2197,14 @@ int MPIDI_Win_complete(MPID_Win *win_ptr)
}
/* --END ERROR HANDLING-- */
}
- MPIU_INSTR_DURATION_END(wincomplete_recvsync);
+ MPIR_T_PVAR_TIMER_END(RMA, rma_wincomplete_recvsync);
/* keep track of no. of ops to each proc. Needed for knowing
whether or not to decrement the completion counter. The
completion counter is decremented only on the last
operation. */
- MPIU_INSTR_DURATION_START(wincomplete_issue);
+ MPIR_T_PVAR_TIMER_START(RMA, rma_wincomplete_issue);
/* Note, active target uses the following ops list, and passive
target uses win_ptr->targets[..] */
@@ -1627,8 +2223,8 @@ int MPIDI_Win_complete(MPID_Win *win_ptr)
curr_ptr = curr_ptr->next;
}
- MPIU_INSTR_DURATION_INCR(wincomplete_issue,0,total_op_count);
- MPIU_INSTR_DURATION_MAX(wincomplete_issue,1,total_op_count);
+ MPIR_T_PVAR_COUNTER_INC(RMA, rma_wincomplete_issue_aux, total_op_count);
+ MPIR_T_PVAR_ULONG2_HIGHWATERMARK_UPDATE(RMA, rma_wincomplete_issue_aux, total_op_count);
/* We allocate a few extra requests because if there are no RMA
ops to a target process, we need to send a 0-byte message just
@@ -1667,19 +2263,20 @@ int MPIDI_Win_complete(MPID_Win *win_ptr)
}
else {
nRequest++;
- MPIU_INSTR_COUNTER_INCR(wincomplete_reqs,1);
+ MPIR_T_PVAR_COUNTER_INC(RMA, rma_wincomplete_reqs, 1);
curr_ptr = curr_ptr->next;
if (nRequest > MPIR_CVAR_CH3_RMA_NREQUEST_THRESHOLD &&
nRequest - nRequestNew > MPIR_CVAR_CH3_RMA_NREQUEST_NEW_THRESHOLD) {
int nDone = 0;
- MPIU_INSTR_STMT(list_complete=MPIU_INSTR_GET_VAR(wincomplete_complete));
+ 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);
nRequest -= nDone;
nRequestNew = nRequest;
}
}
}
- MPIU_INSTR_DURATION_END(wincomplete_issue);
+ MPIR_T_PVAR_TIMER_END(RMA, rma_wincomplete_issue);
/* If the start_group included some processes that did not end up
becoming targets of RMA operations from this process, we need
@@ -1723,14 +2320,14 @@ int MPIDI_Win_complete(MPID_Win *win_ptr)
if (request) {
MPIDI_RMA_Op_t *new_ptr = NULL;
- MPIU_INSTR_DURATION_START(rmaqueue_alloc);
+ MPIR_T_PVAR_TIMER_START(RMA, rma_rmaqueue_alloc);
mpi_errno = MPIDI_CH3I_RMA_Ops_alloc_tail(ops_list, &new_ptr);
- MPIU_INSTR_DURATION_END(rmaqueue_alloc);
+ MPIR_T_PVAR_TIMER_END(RMA, rma_rmaqueue_alloc);
if (mpi_errno) { MPIU_ERR_POP(mpi_errno); }
- MPIU_INSTR_DURATION_START(rmaqueue_set);
+ MPIR_T_PVAR_TIMER_START(RMA, rma_rmaqueue_set);
new_ptr->request = request;
- MPIU_INSTR_DURATION_END(rmaqueue_set);
+ MPIR_T_PVAR_TIMER_END(RMA, rma_rmaqueue_set);
}
j++;
new_total_op_count++;
@@ -1739,8 +2336,9 @@ int MPIDI_Win_complete(MPID_Win *win_ptr)
if (new_total_op_count)
{
- MPIU_INSTR_STMT(list_complete=MPIU_INSTR_GET_VAR(wincomplete_complete));
- MPIU_INSTR_STMT(list_block=MPIU_INSTR_GET_VAR(wincomplete_block));
+ 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);
}
@@ -1792,7 +2390,7 @@ int MPIDI_Win_wait(MPID_Win *win_ptr)
{
MPID_Progress_state progress_state;
- MPIU_INSTR_DURATION_START(winwait_wait);
+ MPIR_T_PVAR_TIMER_START(RMA, rma_winwait_wait);
MPID_Progress_start(&progress_state);
while (win_ptr->my_counter)
{
@@ -1805,10 +2403,10 @@ int MPIDI_Win_wait(MPID_Win *win_ptr)
return mpi_errno;
}
/* --END ERROR HANDLING-- */
- MPIU_INSTR_DURATION_INCR(winwait_wait,0,1)
+ MPIR_T_PVAR_COUNTER_INC(RMA, rma_winwait_wait_aux, 1);
}
MPID_Progress_end(&progress_state);
- MPIU_INSTR_DURATION_END(winwait_wait);
+ MPIR_T_PVAR_TIMER_END(RMA, rma_winwait_wait);
}
/* Ensure ordering of load/store operations. */
@@ -2614,7 +3212,7 @@ static int MPIDI_CH3I_Do_passive_target_rma(MPID_Win *win_ptr, int target_rank,
curr_ptr = curr_ptr->next;
}
- MPIU_INSTR_DURATION_START(winunlock_issue);
+ MPIR_T_PVAR_TIMER_START(RMA, rma_winunlock_issue);
curr_ptr = MPIDI_CH3I_RMA_Ops_head(&win_ptr->targets[target_rank].rma_ops_list);
@@ -2687,12 +3285,13 @@ static int MPIDI_CH3I_Do_passive_target_rma(MPID_Win *win_ptr, int target_rank,
}
else {
nRequest++;
- MPIU_INSTR_COUNTER_INCR(winunlock_reqs,1);
+ MPIR_T_PVAR_COUNTER_INC(RMA, rma_winunlock_reqs, 1);
curr_ptr = curr_ptr->next;
if (nRequest > MPIR_CVAR_CH3_RMA_NREQUEST_THRESHOLD &&
nRequest - nRequestNew > MPIR_CVAR_CH3_RMA_NREQUEST_NEW_THRESHOLD) {
int nDone = 0;
- MPIU_INSTR_STMT(list_complete=MPIU_INSTR_GET_VAR(winunlock_complete));
+ 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,
&win_ptr->targets[target_rank].rma_ops_list,
curr_ptr, &nDone);
@@ -2702,12 +3301,13 @@ static int MPIDI_CH3I_Do_passive_target_rma(MPID_Win *win_ptr, int target_rank,
}
}
}
- MPIU_INSTR_DURATION_END(winunlock_issue);
+ MPIR_T_PVAR_TIMER_END(RMA, rma_winunlock_issue);
if (nops)
{
- MPIU_INSTR_STMT(list_complete=MPIU_INSTR_GET_VAR(winunlock_complete));
- MPIU_INSTR_STMT(list_block=MPIU_INSTR_GET_VAR(winunlock_block));
+ 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);
}
else if (sync_flags & MPIDI_CH3_PKT_FLAG_RMA_UNLOCK) {
@@ -2791,7 +3391,7 @@ static int MPIDI_CH3I_Acquire_local_lock(MPID_Win *win_ptr, int lock_type) {
{
MPID_Progress_state progress_state;
- MPIU_INSTR_DURATION_START(winlock_getlocallock);
+ MPIR_T_PVAR_TIMER_START(RMA, rma_winlock_getlocallock);
MPID_Progress_start(&progress_state);
while (MPIDI_CH3I_Try_acquire_win_lock(win_ptr, lock_type) == 0)
{
@@ -2804,7 +3404,7 @@ static int MPIDI_CH3I_Acquire_local_lock(MPID_Win *win_ptr, int lock_type) {
/* --END ERROR HANDLING-- */
}
MPID_Progress_end(&progress_state);
- MPIU_INSTR_DURATION_END(winlock_getlocallock);
+ MPIR_T_PVAR_TIMER_END(RMA, rma_winlock_getlocallock);
}
win_ptr->targets[win_ptr->comm_ptr->rank].remote_lock_state = MPIDI_CH3_WIN_LOCK_GRANTED;
@@ -2841,7 +3441,7 @@ static int MPIDI_CH3I_Wait_for_lock_granted(MPID_Win *win_ptr, int target_rank)
if (win_ptr->targets[target_rank].remote_lock_state != MPIDI_CH3_WIN_LOCK_GRANTED) {
MPID_Progress_state progress_state;
- MPIU_INSTR_DURATION_START(winunlock_getlock);
+ MPIR_T_PVAR_TIMER_START(RMA, rma_winunlock_getlock);
MPID_Progress_start(&progress_state);
while (win_ptr->targets[target_rank].remote_lock_state != MPIDI_CH3_WIN_LOCK_GRANTED) {
mpi_errno = MPID_Progress_wait(&progress_state);
@@ -2853,7 +3453,7 @@ static int MPIDI_CH3I_Wait_for_lock_granted(MPID_Win *win_ptr, int target_rank)
/* --END ERROR HANDLING-- */
}
MPID_Progress_end(&progress_state);
- MPIU_INSTR_DURATION_END(winunlock_getlock);
+ MPIR_T_PVAR_TIMER_END(RMA, rma_winunlock_getlock);
}
fn_exit:
@@ -3648,7 +4248,7 @@ int MPIDI_CH3_PktHandler_Accumulate( MPIDI_VC_t *vc, MPIDI_CH3_Pkt_t *pkt,
MPIU_DBG_MSG(CH3_OTHER,VERBOSE,"received accumulate pkt");
- MPIU_INSTR_DURATION_START(rmapkt_acc);
+ MPIR_T_PVAR_TIMER_START(RMA, rma_rmapkt_acc);
MPIU_Assert(accum_pkt->target_win_handle != MPI_WIN_NULL);
MPID_Win_get_ptr(accum_pkt->target_win_handle, win_ptr);
mpi_errno = MPIDI_CH3_Start_rma_op_target(win_ptr, accum_pkt->flags);
@@ -3675,7 +4275,7 @@ int MPIDI_CH3_PktHandler_Accumulate( MPIDI_VC_t *vc, MPIDI_CH3_Pkt_t *pkt,
if (MPIR_DATATYPE_IS_PREDEFINED(accum_pkt->datatype))
{
- MPIU_INSTR_DURATION_START(rmapkt_acc_predef);
+ MPIR_T_PVAR_TIMER_START(RMA, rma_rmapkt_acc_predef);
MPIDI_Request_set_type(req, MPIDI_REQUEST_TYPE_ACCUM_RESP);
req->dev.datatype = accum_pkt->datatype;
@@ -3717,11 +4317,11 @@ int MPIDI_CH3_PktHandler_Accumulate( MPIDI_VC_t *vc, MPIDI_CH3_Pkt_t *pkt,
if (complete)
{
*rreqp = NULL;
- MPIU_INSTR_DURATION_END(rmapkt_acc_predef);
+ MPIR_T_PVAR_TIMER_END(RMA, rma_rmapkt_acc_predef);
goto fn_exit;
}
}
- MPIU_INSTR_DURATION_END(rmapkt_acc_predef);
+ MPIR_T_PVAR_TIMER_END(RMA, rma_rmapkt_acc_predef);
}
else
{
@@ -3778,7 +4378,7 @@ int MPIDI_CH3_PktHandler_Accumulate( MPIDI_VC_t *vc, MPIDI_CH3_Pkt_t *pkt,
}
fn_exit:
- MPIU_INSTR_DURATION_END(rmapkt_acc);
+ MPIR_T_PVAR_TIMER_END(RMA, rma_rmapkt_acc);
MPIDI_FUNC_EXIT(MPID_STATE_MPIDI_CH3_PKTHANDLER_ACCUMULATE);
return mpi_errno;
fn_fail:
@@ -3805,7 +4405,7 @@ int MPIDI_CH3_PktHandler_Accumulate_Immed( MPIDI_VC_t *vc, MPIDI_CH3_Pkt_t *pkt,
MPIU_DBG_MSG(CH3_OTHER,VERBOSE,"received accumulate immedidate pkt");
- MPIU_INSTR_DURATION_START(rmapkt_acc_immed);
+ MPIR_T_PVAR_TIMER_START(RMA, rma_rmapkt_acc_immed);
MPIU_Assert(accum_pkt->target_win_handle != MPI_WIN_NULL);
MPID_Win_get_ptr(accum_pkt->target_win_handle, win_ptr);
mpi_errno = MPIDI_CH3_Start_rma_op_target(win_ptr, accum_pkt->flags);
@@ -3817,7 +4417,7 @@ int MPIDI_CH3_PktHandler_Accumulate_Immed( MPIDI_VC_t *vc, MPIDI_CH3_Pkt_t *pkt,
MPID_Datatype_get_extent_macro(accum_pkt->datatype, extent);
- MPIU_INSTR_DURATION_START(rmapkt_acc_immed_op);
+ MPIR_T_PVAR_TIMER_START(RMA, rma_rmapkt_acc_immed_op);
if (win_ptr->shm_allocated == TRUE)
MPIDI_CH3I_SHM_MUTEX_LOCK(win_ptr);
/* Data is already present */
@@ -3843,7 +4443,7 @@ int MPIDI_CH3_PktHandler_Accumulate_Immed( MPIDI_VC_t *vc, MPIDI_CH3_Pkt_t *pkt,
}
if (win_ptr->shm_allocated == TRUE)
MPIDI_CH3I_SHM_MUTEX_UNLOCK(win_ptr);
- MPIU_INSTR_DURATION_END(rmapkt_acc_immed_op);
+ MPIR_T_PVAR_TIMER_END(RMA, rma_rmapkt_acc_immed_op);
/* There are additional steps to take if this is a passive
target RMA or the last operation from the source */
@@ -3858,7 +4458,7 @@ int MPIDI_CH3_PktHandler_Accumulate_Immed( MPIDI_VC_t *vc, MPIDI_CH3_Pkt_t *pkt,
if (mpi_errno) { MPIU_ERR_POP(mpi_errno); }
fn_exit:
- MPIU_INSTR_DURATION_END(rmapkt_acc_immed);
+ MPIR_T_PVAR_TIMER_END(RMA, rma_rmapkt_acc_immed);
MPIDI_FUNC_EXIT(MPID_STATE_MPIDI_CH3_PKTHANDLER_ACCUMULATE_IMMED);
return mpi_errno;
fn_fail:
@@ -3887,7 +4487,7 @@ int MPIDI_CH3_PktHandler_CAS( MPIDI_VC_t *vc, MPIDI_CH3_Pkt_t *pkt,
MPIU_DBG_MSG(CH3_OTHER,VERBOSE,"received CAS pkt");
- MPIU_INSTR_DURATION_START(rmapkt_cas);
+ MPIR_T_PVAR_TIMER_START(RMA, rma_rmapkt_cas);
MPIU_Assert(cas_pkt->target_win_handle != MPI_WIN_NULL);
MPID_Win_get_ptr(cas_pkt->target_win_handle, win_ptr);
mpi_errno = MPIDI_CH3_Start_rma_op_target(win_ptr, cas_pkt->flags);
@@ -3938,7 +4538,7 @@ int MPIDI_CH3_PktHandler_CAS( MPIDI_VC_t *vc, MPIDI_CH3_Pkt_t *pkt,
if (mpi_errno) { MPIU_ERR_POP(mpi_errno); }
fn_exit:
- MPIU_INSTR_DURATION_END(rmapkt_cas);
+ MPIR_T_PVAR_TIMER_END(RMA, rma_rmapkt_cas);
MPIDI_FUNC_EXIT(MPID_STATE_MPIDI_CH3_PKTHANDLER_CAS);
return mpi_errno;
fn_fail:
@@ -4002,7 +4602,7 @@ int MPIDI_CH3_PktHandler_FOP( MPIDI_VC_t *vc, MPIDI_CH3_Pkt_t *pkt,
MPIU_DBG_MSG(CH3_OTHER,VERBOSE,"received FOP pkt");
- MPIU_INSTR_DURATION_START(rmapkt_fop);
+ MPIR_T_PVAR_TIMER_START(RMA, rma_rmapkt_fop);
MPIU_Assert(fop_pkt->target_win_handle != MPI_WIN_NULL);
MPID_Win_get_ptr(fop_pkt->target_win_handle, win_ptr);
mpi_errno = MPIDI_CH3_Start_rma_op_target(win_ptr, fop_pkt->flags);
@@ -4064,7 +4664,7 @@ int MPIDI_CH3_PktHandler_FOP( MPIDI_VC_t *vc, MPIDI_CH3_Pkt_t *pkt,
fn_exit:
MPIU_CHKPMEM_COMMIT();
- MPIU_INSTR_DURATION_END(rmapkt_fop);
+ MPIR_T_PVAR_TIMER_END(RMA, rma_rmapkt_fop);
MPIDI_FUNC_EXIT(MPID_STATE_MPIDI_CH3_PKTHANDLER_FOP);
return mpi_errno;
/* --BEGIN ERROR HANDLING-- */
@@ -4156,7 +4756,7 @@ int MPIDI_CH3_PktHandler_Get_AccumResp( MPIDI_VC_t *vc, MPIDI_CH3_Pkt_t *pkt,
MPIDI_FUNC_ENTER(MPID_STATE_MPIDI_CH3_PKTHANDLER_GET_ACCUM_RESP);
MPIU_DBG_MSG(CH3_OTHER,VERBOSE,"received Get-Accumulate response pkt");
- MPIU_INSTR_DURATION_START(rmapkt_get_accum);
+ MPIR_T_PVAR_TIMER_START(RMA, rma_rmapkt_get_accum);
data_len = *buflen - sizeof(MPIDI_CH3_Pkt_t);
data_buf = (char *)pkt + sizeof(MPIDI_CH3_Pkt_t);
@@ -4178,7 +4778,7 @@ int MPIDI_CH3_PktHandler_Get_AccumResp( MPIDI_VC_t *vc, MPIDI_CH3_Pkt_t *pkt,
*buflen = data_len + sizeof(MPIDI_CH3_Pkt_t);
fn_exit:
- MPIU_INSTR_DURATION_END(rmapkt_get_accum);
+ MPIR_T_PVAR_TIMER_END(RMA, rma_rmapkt_get_accum);
MPIDI_FUNC_EXIT(MPID_STATE_MPIDI_CH3_PKTHANDLER_GET_ACCUM_RESP);
return mpi_errno;
fn_fail:
@@ -4232,9 +4832,9 @@ int MPIDI_CH3_PktHandler_Lock( MPIDI_VC_t *vc, MPIDI_CH3_Pkt_t *pkt,
curr_ptr = curr_ptr->next;
}
- MPIU_INSTR_DURATION_START(lockqueue_alloc);
+ MPIR_T_PVAR_TIMER_START(RMA, rma_lockqueue_alloc);
new_ptr = (MPIDI_Win_lock_queue *) MPIU_Malloc(sizeof(MPIDI_Win_lock_queue));
- MPIU_INSTR_DURATION_END(lockqueue_alloc);
+ MPIR_T_PVAR_TIMER_END(RMA, rma_lockqueue_alloc);
if (!new_ptr) {
MPIU_ERR_SETANDJUMP1(mpi_errno,MPI_ERR_OTHER,"**nomem","**nomem %s",
"MPIDI_Win_lock_queue");
@@ -4308,9 +4908,9 @@ int MPIDI_CH3_PktHandler_LockPutUnlock( MPIDI_VC_t *vc, MPIDI_CH3_Pkt_t *pkt,
/* queue the information */
MPIDI_Win_lock_queue *curr_ptr, *prev_ptr, *new_ptr;
- MPIU_INSTR_DURATION_START(lockqueue_alloc);
+ MPIR_T_PVAR_TIMER_START(RMA, rma_lockqueue_alloc);
new_ptr = (MPIDI_Win_lock_queue *) MPIU_Malloc(sizeof(MPIDI_Win_lock_queue));
- MPIU_INSTR_DURATION_END(lockqueue_alloc);
+ MPIR_T_PVAR_TIMER_END(RMA, rma_lockqueue_alloc);
if (!new_ptr) {
MPIU_ERR_SETANDJUMP1(mpi_errno,MPI_ERR_OTHER,"**nomem","**nomem %s",
"MPIDI_Win_lock_queue");
@@ -4473,9 +5073,9 @@ int MPIDI_CH3_PktHandler_LockGetUnlock( MPIDI_VC_t *vc, MPIDI_CH3_Pkt_t *pkt,
curr_ptr = curr_ptr->next;
}
- MPIU_INSTR_DURATION_START(lockqueue_alloc);
+ MPIR_T_PVAR_TIMER_START(RMA, rma_lockqueue_alloc);
new_ptr = (MPIDI_Win_lock_queue *) MPIU_Malloc(sizeof(MPIDI_Win_lock_queue));
- MPIU_INSTR_DURATION_END(lockqueue_alloc);
+ MPIR_T_PVAR_TIMER_END(RMA, rma_lockqueue_alloc);
if (!new_ptr) {
MPIU_ERR_SETANDJUMP1(mpi_errno,MPI_ERR_OTHER,"**nomem","**nomem %s",
"MPIDI_Win_lock_queue");
@@ -4555,9 +5155,9 @@ int MPIDI_CH3_PktHandler_LockAccumUnlock( MPIDI_VC_t *vc, MPIDI_CH3_Pkt_t *pkt,
/* queue the information */
- MPIU_INSTR_DURATION_START(lockqueue_alloc);
+ MPIR_T_PVAR_TIMER_START(RMA, rma_lockqueue_alloc);
new_ptr = (MPIDI_Win_lock_queue *) MPIU_Malloc(sizeof(MPIDI_Win_lock_queue));
- MPIU_INSTR_DURATION_END(lockqueue_alloc);
+ MPIR_T_PVAR_TIMER_END(RMA, rma_lockqueue_alloc);
if (!new_ptr) {
MPIU_ERR_SETANDJUMP1(mpi_errno,MPI_ERR_OTHER,"**nomem","**nomem %s",
"MPIDI_Win_lock_queue");
@@ -4839,7 +5439,7 @@ int MPIDI_CH3_PktHandler_Flush( MPIDI_VC_t *vc, MPIDI_CH3_Pkt_t *pkt,
/* ------------------------------------------------------------------------ */
-/* list_complete and list_block defined above */
+/* list_complete_timer/counter and list_block_timer defined above */
static int MPIDI_CH3I_RMAListComplete( MPID_Win *win_ptr,
MPIDI_RMA_Ops_list_t *ops_list )
@@ -4848,7 +5448,7 @@ static int MPIDI_CH3I_RMAListComplete( MPID_Win *win_ptr,
MPIDI_RMA_Op_t *curr_ptr;
MPID_Progress_state progress_state;
- MPIU_INSTR_DURATION_START_VAR(list_complete);
+ MPIR_T_PVAR_TIMER_START_VAR(RMA, list_complete_timer);
MPID_Progress_start(&progress_state);
/* Process all operations until they are complete */
while (!MPIDI_CH3I_RMA_Ops_isempty(ops_list)) {
@@ -4893,7 +5493,7 @@ static int MPIDI_CH3I_RMAListComplete( MPID_Win *win_ptr,
there was an incomplete request. */
curr_ptr = MPIDI_CH3I_RMA_Ops_head(ops_list);
if (curr_ptr && !MPID_Request_is_complete(curr_ptr->request) ) {
- MPIU_INSTR_DURATION_START_VAR(list_block);
+ MPIR_T_PVAR_TIMER_START_VAR(RMA, list_block_timer);
mpi_errno = MPID_Progress_wait(&progress_state);
/* --BEGIN ERROR HANDLING-- */
if (mpi_errno != MPI_SUCCESS) {
@@ -4901,12 +5501,12 @@ static int MPIDI_CH3I_RMAListComplete( MPID_Win *win_ptr,
MPIU_ERR_SETANDJUMP(mpi_errno,MPI_ERR_OTHER,"**winnoprogress");
}
/* --END ERROR HANDLING-- */
- MPIU_INSTR_DURATION_END_VAR(list_block);
+ MPIR_T_PVAR_TIMER_END_VAR(RMA, list_block_timer);
}
} /* While list of rma operation is non-empty */
MPID_Progress_end(&progress_state);
- MPIU_INSTR_DURATION_INCR_VAR(list_complete,0,ntimes);
- MPIU_INSTR_DURATION_END_VAR(list_complete);
+ MPIR_T_PVAR_COUNTER_INC_VAR(RMA, list_complete_counter, ntimes);
+ MPIR_T_PVAR_TIMER_END_VAR(RMA, list_complete_timer);
fn_fail:
return mpi_errno;
@@ -4932,7 +5532,7 @@ static int MPIDI_CH3I_RMAListPartialComplete( MPID_Win *win_ptr,
MPID_Progress_state progress_state;
int nComplete = 0;
- MPIU_INSTR_DURATION_START_VAR(list_complete);
+ MPIR_T_PVAR_TIMER_START_VAR(RMA, list_complete_timer);
MPID_Progress_start(&progress_state);
curr_ptr = MPIDI_CH3I_RMA_Ops_head(ops_list);
@@ -4969,8 +5569,8 @@ static int MPIDI_CH3I_RMAListPartialComplete( MPID_Win *win_ptr,
/* if (nComplete) printf( "Completed %d requests\n", nComplete ); */
MPID_Progress_end(&progress_state);
- MPIU_INSTR_DURATION_INCR_VAR(list_complete,0,1);
- MPIU_INSTR_DURATION_END_VAR(list_complete);
+ MPIR_T_PVAR_COUNTER_INC_VAR(RMA, list_complete_counter, 1);
+ MPIR_T_PVAR_TIMER_END_VAR(RMA, list_complete_timer);
*nDone = nComplete;
diff --git a/src/mpid/ch3/src/ch3u_win_fns.c b/src/mpid/ch3/src/ch3u_win_fns.c
index 66329cf..06ab46a 100644
--- a/src/mpid/ch3/src/ch3u_win_fns.c
+++ b/src/mpid/ch3/src/ch3u_win_fns.c
@@ -8,9 +8,7 @@
#include "mpiinfo.h"
#include "mpidrma.h"
-#ifdef USE_MPIU_INSTR
-MPIU_INSTR_DURATION_EXTERN_DECL(wincreate_allgather);
-#endif
+MPIR_T_PVAR_DOUBLE_TIMER_DECL_EXTERN(RMA, rma_wincreate_allgather);
#undef FUNCNAME
#define FUNCNAME MPIDI_Win_fns_init
@@ -56,7 +54,7 @@ int MPIDI_CH3U_Win_create_gather( void *base, MPI_Aint size, int disp_unit,
/* RMA handlers should be set before calling this function */
mpi_errno = (*win_ptr)->RMAFns.Win_set_info(*win_ptr, info);
- MPIU_INSTR_DURATION_START(wincreate_allgather);
+ MPIR_T_PVAR_TIMER_START(RMA, rma_wincreate_allgather);
/* allocate memory for the base addresses, disp_units, and
completion counters of all processes */
MPIU_CHKPMEM_MALLOC((*win_ptr)->base_addrs, void **,
@@ -94,7 +92,7 @@ int MPIDI_CH3U_Win_create_gather( void *base, MPI_Aint size, int disp_unit,
mpi_errno = MPIR_Allgather_impl(MPI_IN_PLACE, 0, MPI_DATATYPE_NULL,
tmp_buf, 4, MPI_AINT,
(*win_ptr)->comm_ptr, &errflag);
- MPIU_INSTR_DURATION_END(wincreate_allgather);
+ MPIR_T_PVAR_TIMER_END(RMA, rma_wincreate_allgather);
if (mpi_errno) { MPIU_ERR_POP(mpi_errno); }
MPIU_ERR_CHKANDJUMP(errflag, mpi_errno, MPI_ERR_OTHER, "**coll_fail");
diff --git a/src/mpid/ch3/src/mpid_rma.c b/src/mpid/ch3/src/mpid_rma.c
index 3c0e86c..69d20aa 100644
--- a/src/mpid/ch3/src/mpid_rma.c
+++ b/src/mpid/ch3/src/mpid_rma.c
@@ -9,15 +9,14 @@
MPIU_THREADSAFE_INIT_DECL(initRMAoptions);
-#ifdef USE_MPIU_INSTR
-MPIU_INSTR_DURATION_DECL(wincreate_allgather);
-MPIU_INSTR_DURATION_DECL(winfree_rs);
-MPIU_INSTR_DURATION_DECL(winfree_complete);
-MPIU_INSTR_DURATION_DECL(rmaqueue_alloc);
-MPIU_INSTR_DURATION_DECL(rmaqueue_set);
-extern void MPIDI_CH3_RMA_InitInstr(void);
-#endif
+MPIR_T_PVAR_DOUBLE_TIMER_DECL_EXTERN(RMA, rma_wincreate_allgather);
+MPIR_T_PVAR_DOUBLE_TIMER_DECL_EXTERN(RMA, rma_winfree_rs);
+MPIR_T_PVAR_DOUBLE_TIMER_DECL_EXTERN(RMA, rma_winfree_complete);
+MPIR_T_PVAR_DOUBLE_TIMER_DECL_EXTERN(RMA, rma_rmaqueue_alloc);
+MPIR_T_PVAR_DOUBLE_TIMER_DECL_EXTERN(RMA, rma_rmaqueue_set);
+
+extern void MPIDI_CH3_RMA_Init_Pvars(void);
static int win_init(MPI_Aint size, int disp_unit, int create_flavor, int model,
MPID_Comm *comm_ptr, MPID_Win **win_ptr);
@@ -255,15 +254,8 @@ static int win_init(MPI_Aint size, int disp_unit, int create_flavor, int model,
if(initRMAoptions) {
MPIU_THREADSAFE_INIT_BLOCK_BEGIN(initRMAoptions);
-#ifdef USE_MPIU_INSTR
- /* Define all instrumentation handles used in the CH3 RMA here*/
- MPIU_INSTR_DURATION_INIT(wincreate_allgather,0,"WIN_CREATE:Allgather");
- MPIU_INSTR_DURATION_INIT(winfree_rs,0,"WIN_FREE:ReduceScatterBlock");
- MPIU_INSTR_DURATION_INIT(winfree_complete,0,"WIN_FREE:Complete");
- MPIU_INSTR_DURATION_INIT(rmaqueue_alloc,0,"Allocate RMA Queue element");
- MPIU_INSTR_DURATION_INIT(rmaqueue_set,0,"Set fields in RMA Queue element");
- MPIDI_CH3_RMA_InitInstr();
-#endif
+
+ MPIDI_CH3_RMA_Init_Pvars();
MPIU_THREADSAFE_INIT_CLEAR(initRMAoptions);
MPIU_THREADSAFE_INIT_BLOCK_END(initRMAoptions);
http://git.mpich.org/mpich.git/commitdiff/fb4c0182d92c2780bbd554b3ef126f1a2…
commit fb4c0182d92c2780bbd554b3ef126f1a244dd0ed
Author: Junchao Zhang <jczhang(a)mcs.anl.gov>
Date: Thu Nov 7 16:22:19 2013 -0600
Fix a bug in MPI_T watermark pvar registeration
Signed-off-by: Junchao Zhang<jczhang(a)mcs.anl.gov> (Reviewed by Bill Gropp)
diff --git a/src/include/mpitimpl.h b/src/include/mpitimpl.h
index 47ac6c7..e799e0c 100644
--- a/src/include/mpitimpl.h
+++ b/src/include/mpitimpl.h
@@ -1083,7 +1083,7 @@ void get_timer_time_in_double(MPIR_T_pvar_timer_t *timer, void *obj_handle,
}; \
void *addr_ = &PVAR_HIGHWATERMARK_##name_; \
MPIR_T_PVAR_REGISTER_impl(MPI_T_PVAR_CLASS_HIGHWATERMARK, dtype_, #name_, \
- addr_, 1, MPI_T_ENUM_NULL, verb_, bind_, flags_, NULL, cat_, desc_); \
+ addr_, 1, MPI_T_ENUM_NULL, verb_, bind_, flags_, NULL, NULL, cat_, desc_); \
} while (0)
/* Registration for dynamic pvar w/ or w/o callback. Init is left to users */
@@ -1271,7 +1271,7 @@ void get_timer_time_in_double(MPIR_T_pvar_timer_t *timer, void *obj_handle,
}; \
void *addr_ = &PVAR_LOWWATERMARK_##name_; \
MPIR_T_PVAR_REGISTER_impl(MPI_T_PVAR_CLASS_LOWWATERMARK, dtype_, #name_, \
- addr_, 1, MPI_T_ENUM_NULL, verb_, bind_, flags_, NULL, cat_, desc_); \
+ addr_, 1, MPI_T_ENUM_NULL, verb_, bind_, flags_, NULL, NULL, cat_, desc_); \
} while (0)
/* Registration for dynamic pvar w/ or w/o callback. Init is left to users */
http://git.mpich.org/mpich.git/commitdiff/379fcf521f16cb906d42c2d8c1c97c23e…
commit 379fcf521f16cb906d42c2d8c1c97c23ed9a98b5
Author: Junchao Zhang <jczhang(a)mcs.anl.gov>
Date: Thu Nov 7 16:16:10 2013 -0600
Add macro MPIR_T_PVAR_{COUNTER, TIMER}_ADDR
With the macro, we can get pointers on counter/timer pvars.
Signed-off-by: Junchao Zhang<jczhang(a)mcs.anl.gov> (Reviewed by Bill Gropp)
diff --git a/src/include/mpit.h b/src/include/mpit.h
index a3887c1..549ae46 100644
--- a/src/include/mpit.h
+++ b/src/include/mpit.h
@@ -330,6 +330,8 @@ static inline cvar_table_entry_t * LOOKUP_CVAR_BY_NAME(const char* cvar_name)
MPIR_T_PVAR_COUNTER_GET_impl(name_)
#define MPIR_T_PVAR_COUNTER_INC(MODULE, name_, inc_) \
PVAR_GATED_ACTION(MODULE, MPIR_T_PVAR_COUNTER_INC_impl(name_, inc_))
+#define MPIR_T_PVAR_COUNTER_ADDR(name_) \
+ MPIR_T_PVAR_COUNTER_ADDR_impl(name_)
#define MPIR_T_PVAR_COUNTER_REGISTER_STATIC(MODULE, dtype_, name_, \
verb_, bind_, flags_, cat_, desc_) \
@@ -468,6 +470,8 @@ static inline cvar_table_entry_t * LOOKUP_CVAR_BY_NAME(const char* cvar_name)
PVAR_GATED_ACTION(MODULE, MPIR_T_PVAR_TIMER_START_impl(name_))
#define MPIR_T_PVAR_TIMER_END(MODULE, name_) \
PVAR_GATED_ACTION(MODULE, MPIR_T_PVAR_TIMER_END_impl(name_))
+#define MPIR_T_PVAR_TIMER_ADDR(name_) \
+ MPIR_T_PVAR_TIMER_ADDR_impl(name_)
/* This macro actually register twins of a timer and a counter to MPIR_T */
#define MPIR_T_PVAR_TIMER_REGISTER_STATIC(MODULE, dtype_, name_, \
diff --git a/src/include/mpitimpl.h b/src/include/mpitimpl.h
index 0ec700b..47ac6c7 100644
--- a/src/include/mpitimpl.h
+++ b/src/include/mpitimpl.h
@@ -665,6 +665,8 @@ extern void MPIR_T_PVAR_REGISTER_impl(
MPIR_T_PVAR_COUNTER_GET_VAR_impl(&PVAR_COUNTER_##name_)
#define MPIR_T_PVAR_COUNTER_INC_impl(name_, inc_) \
MPIR_T_PVAR_COUNTER_INC_VAR_impl(&PVAR_COUNTER_##name_, inc_)
+#define MPIR_T_PVAR_COUNTER_ADDR_impl(name_) \
+ (&PVAR_COUNTER_##name_)
/* Registration AND initialization to zero for static pvar. */
#define MPIR_T_PVAR_COUNTER_REGISTER_STATIC_impl(dtype_, name_, \
@@ -875,6 +877,8 @@ extern void MPIR_T_PVAR_REGISTER_impl(
MPIR_T_PVAR_TIMER_START_VAR_impl(&PVAR_TIMER_##name_)
#define MPIR_T_PVAR_TIMER_END_impl(name_) \
MPIR_T_PVAR_TIMER_END_VAR_impl(&PVAR_TIMER_##name_)
+#define MPIR_T_PVAR_TIMER_ADDR_impl(name_) \
+ (&PVAR_TIMER_##name_)
/* Customized get_value() for MPIR_T_pvar_timer_t */
static inline
http://git.mpich.org/mpich.git/commitdiff/a2299cd54c4893262bbf1a77da0b31988…
commit a2299cd54c4893262bbf1a77da0b3198865650e4
Author: Junchao Zhang <jczhang(a)mcs.anl.gov>
Date: Thu Nov 7 16:07:55 2013 -0600
Add a counter into structure MPIR_T_pvar_timer_t
To record how many times a timer is started, so we can easily
calculate the average time of events.
Signed-off-by: Junchao Zhang<jczhang(a)mcs.anl.gov> (Reviewed by Bill Gropp)
diff --git a/src/include/mpit.h b/src/include/mpit.h
index a6478a8..a3887c1 100644
--- a/src/include/mpit.h
+++ b/src/include/mpit.h
@@ -435,6 +435,13 @@ static inline cvar_table_entry_t * LOOKUP_CVAR_BY_NAME(const char* cvar_name)
addr_, count_, verb_, bind_, flags_, get_value_, get_count_, cat_, desc_))
/* TIMER */
+
+/* A timer actually has a twin, i.e., a counter, which counts how many times
+ the timer is started/stopped so that we could know the average time
+ for events measured. In our impl, the twins are exposed to MPI_T through the
+ same name, but in two MPI_T_PVAR classes (timer and counter) and two data types
+ (double and unsigned long long) respectively.
+*/
#define MPIR_T_PVAR_DOUBLE_TIMER_DECL(MODULE, name_) \
PVAR_GATED_DECL(MODULE, MPIR_T_PVAR_DOUBLE_TIMER_DECL_impl(name_))
@@ -462,16 +469,12 @@ static inline cvar_table_entry_t * LOOKUP_CVAR_BY_NAME(const char* cvar_name)
#define MPIR_T_PVAR_TIMER_END(MODULE, name_) \
PVAR_GATED_ACTION(MODULE, MPIR_T_PVAR_TIMER_END_impl(name_))
+/* This macro actually register twins of a timer and a counter to MPIR_T */
#define MPIR_T_PVAR_TIMER_REGISTER_STATIC(MODULE, dtype_, name_, \
verb_, bind_, flags_, cat_, desc_) \
PVAR_GATED_ACTION(MODULE, MPIR_T_PVAR_TIMER_REGISTER_STATIC_impl(dtype_, name_, \
verb_, bind_, flags_, cat_, desc_))
-#define MPIR_T_PVAR_TIMER_REGISTER_DYNAMIC(MODULE, dtype_, name_, \
- addr_, count_, verb_, bind_, flags_, get_value_, get_count_, cat_, desc_) \
- PVAR_GATED_ACTION(MODULE, MPIR_T_PVAR_TIMER_REGISTER_DYNAMIC_impl(dtype_, name_, \
- addr_, count_, verb_, bind_, flags_, get_value_, get_count_, cat_, desc_))
-
/* HIGHWATERMARK */
#define MPIR_T_PVAR_UINT_HIGHWATERMARK_DECL(MODULE, name_) \
PVAR_GATED_DECL(MODULE, MPIR_T_PVAR_UINT_HIGHWATERMARK_DECL_impl(name_))
diff --git a/src/include/mpitimpl.h b/src/include/mpitimpl.h
index d4b66cb..0ec700b 100644
--- a/src/include/mpitimpl.h
+++ b/src/include/mpitimpl.h
@@ -241,8 +241,14 @@ typedef struct {
/* Timer type */
typedef struct {
+ /* Accumulated time */
MPID_Time_t total;
+
+ /* Time when the timer was started recently */
MPID_Time_t curstart;
+
+ /* A counter recording how many times the timer is started */
+ unsigned long long count;
} MPIR_T_pvar_timer_t;
/* An union to represent a watermark value */
@@ -852,6 +858,7 @@ extern void MPIR_T_PVAR_REGISTER_impl(
#define MPIR_T_PVAR_TIMER_START_VAR_impl(ptr_) \
do { \
MPID_Wtime(&((ptr_)->curstart)); \
+ (ptr_)->count++; \
} while (0)
#define MPIR_T_PVAR_TIMER_END_VAR_impl(ptr_) \
do { \
@@ -871,7 +878,7 @@ extern void MPIR_T_PVAR_REGISTER_impl(
/* Customized get_value() for MPIR_T_pvar_timer_t */
static inline
-void get_timer_in_double(MPIR_T_pvar_timer_t *timer, void *obj_handle,
+void get_timer_time_in_double(MPIR_T_pvar_timer_t *timer, void *obj_handle,
int count, double *buf)
{
int i;
@@ -887,23 +894,13 @@ void get_timer_in_double(MPIR_T_pvar_timer_t *timer, void *obj_handle,
MPIU_Assert(dtype_ == MPI_DOUBLE); \
MPIR_T_PVAR_TIMER_INIT_impl(name_); \
void *addr_ = &PVAR_TIMER_##name_; \
+ void *count_addr_ = &(PVAR_TIMER_##name_.count); \
MPIR_T_PVAR_REGISTER_impl(MPI_T_PVAR_CLASS_TIMER, dtype_, #name_, \
addr_, 1, MPI_T_ENUM_NULL, verb_, bind_, flags_, \
- (MPIR_T_pvar_get_value_cb *)&get_timer_in_double, NULL, cat_, desc_); \
- } while (0)
-
-/* Registration for dynamic pvar w/ or w/o callback. Init is left to users.
- * (Probably, the callback still is get_timer_in_double)
- */
-#define MPIR_T_PVAR_TIMER_REGISTER_DYNAMIC_impl(dtype_, name_, \
- addr_, count_, verb_, bind_, flags_, get_value_, get_count_, cat_, desc_) \
- do { \
- /* Allowable datatypes only */ \
- MPIU_Assert(dtype_ == MPI_DOUBLE); \
- MPIU_Assert(addr_ != NULL || get_value_ != NULL); \
- MPIR_T_PVAR_REGISTER_impl(MPI_T_PVAR_CLASS_TIMER, dtype_, #name_, \
- addr_, count_, MPI_T_ENUM_NULL, verb_, bind_, flags_, \
- get_value_, get_count_, cat_, desc_); \
+ (MPIR_T_pvar_get_value_cb *)&get_timer_time_in_double, NULL, cat_, desc_); \
+ MPIR_T_PVAR_REGISTER_impl(MPI_T_PVAR_CLASS_COUNTER, MPI_UNSIGNED_LONG_LONG, #name_, \
+ count_addr_, 1, MPI_T_ENUM_NULL, verb_, bind_, flags_, \
+ NULL, NULL, cat_, desc_); \
} while (0)
http://git.mpich.org/mpich.git/commitdiff/c12bbcd87d8d1ecd62fb4f37f5de95a76…
commit c12bbcd87d8d1ecd62fb4f37f5de95a76ea2d87d
Author: Junchao Zhang <jczhang(a)mcs.anl.gov>
Date: Thu Nov 7 15:49:02 2013 -0600
Let MPIR_T_PVAR_*_GET_VAR() act as a rvalue
Removed the gate surrounding this macro.
Signed-off-by: Junchao Zhang<jczhang(a)mcs.anl.gov> (Reviewed by Bill Gropp)
diff --git a/src/include/mpit.h b/src/include/mpit.h
index 68d67af..a6478a8 100644
--- a/src/include/mpit.h
+++ b/src/include/mpit.h
@@ -122,6 +122,9 @@ static inline cvar_table_entry_t * LOOKUP_CVAR_BY_NAME(const char* cvar_name)
verb_, bind_, scope_, get_addr_, get_count_, default_, cat_, desc_); \
} while (0)
+/* stmt_ is executed only when ENABLE_PVAR_#MODULE is defined as 1 */
+#define MPIR_T_PVAR_STMT(MODULE, stmt_) \
+ PVAR_GATED_ACTION(MODULE, stmt_)
/* The following are interfaces for each pvar classe,
* basically including delcaration, access and registeration.
@@ -139,13 +142,14 @@ static inline cvar_table_entry_t * LOOKUP_CVAR_BY_NAME(const char* cvar_name)
#define MPIR_T_PVAR_STATE_SET_VAR(MODULE, ptr_, val_) \
PVAR_GATED_ACTION(MODULE, MPIR_T_PVAR_STATE_SET_VAR_impl(ptr_, val_))
-#define MPIR_T_PVAR_STATE_GET_VAR(MODULE, ptr_) \
- PVAR_GATED_ACTION(MODULE, MPIR_T_PVAR_STATE_GET_VAR_impl(ptr_))
+/* Not gated by MODULE, since it is supposed to be a rvalue */
+#define MPIR_T_PVAR_STATE_GET_VAR(ptr_) \
+ MPIR_T_PVAR_STATE_GET_VAR_impl(ptr_)
#define MPIR_T_PVAR_STATE_SET(MODULE, name_, val_) \
PVAR_GATED_ACTION(MODULE, MPIR_T_PVAR_STATE_SET_impl(name_, val_))
-#define MPIR_T_PVAR_STATE_GET(MODULE, name_) \
- PVAR_GATED_ACTION(MODULE, MPIR_T_PVAR_STATE_GET_impl(name_))
+#define MPIR_T_PVAR_STATE_GET(name_) \
+ MPIR_T_PVAR_STATE_GET_impl(name_)
#define MPIR_T_PVAR_STATE_REGISTER_STATIC(MODULE, dtype_, name_, \
initval_, etype_, verb_, bind_, flags_, cat_, desc_) \
@@ -187,8 +191,8 @@ static inline cvar_table_entry_t * LOOKUP_CVAR_BY_NAME(const char* cvar_name)
#define MPIR_T_PVAR_LEVEL_SET_VAR(MODULE, ptr_, val_) \
PVAR_GATED_ACTION(MODULE, MPIR_T_PVAR_LEVEL_SET_VAR_impl(ptr_, val_))
-#define MPIR_T_PVAR_LEVEL_GET_VAR(MODULE, ptr_) \
- PVAR_GATED_ACTION(MODULE, MPIR_T_PVAR_LEVEL_GET_VAR_impl(ptr_))
+#define MPIR_T_PVAR_LEVEL_GET_VAR(ptr_) \
+ MPIR_T_PVAR_LEVEL_GET_VAR_impl(ptr_)
#define MPIR_T_PVAR_LEVEL_INC_VAR(MODULE, ptr_, val_) \
PVAR_GATED_ACTION(MODULE, MPIR_T_PVAR_LEVEL_INC_VAR_impl(ptr_, val_))
#define MPIR_T_PVAR_LEVEL_DEC_VAR(MODULE, ptr_, val_) \
@@ -196,8 +200,8 @@ static inline cvar_table_entry_t * LOOKUP_CVAR_BY_NAME(const char* cvar_name)
#define MPIR_T_PVAR_LEVEL_SET(MODULE, name_, val_) \
PVAR_GATED_ACTION(MODULE, MPIR_T_PVAR_LEVEL_SET_impl(name_, val_))
-#define MPIR_T_PVAR_LEVEL_GET(MODULE, name_) \
- PVAR_GATED_ACTION(MODULE, MPIR_T_PVAR_LEVEL_GET_impl(name_))
+#define MPIR_T_PVAR_LEVEL_GET(name_) \
+ MPIR_T_PVAR_LEVEL_GET_impl(name_)
#define MPIR_T_PVAR_LEVEL_INC(MODULE, name_, val_) \
PVAR_GATED_ACTION(MODULE, MPIR_T_PVAR_LEVEL_INC_impl(name_, val_))
#define MPIR_T_PVAR_LEVEL_DEC(MODULE, name_, val_) \
@@ -243,13 +247,13 @@ static inline cvar_table_entry_t * LOOKUP_CVAR_BY_NAME(const char* cvar_name)
#define MPIR_T_PVAR_SIZE_SET_VAR(MODULE, ptr_, val_) \
PVAR_GATED_ACTION(MODULE, MPIR_T_PVAR_SIZE_SET_VAR_impl(ptr_, val_))
-#define MPIR_T_PVAR_SIZE_GET_VAR(MODULE, ptr_) \
- PVAR_GATED_ACTION(MODULE, MPIR_T_PVAR_SIZE_GET_VAR_impl(ptr_))
+#define MPIR_T_PVAR_SIZE_GET_VAR(ptr_) \
+ MPIR_T_PVAR_SIZE_GET_VAR_impl(ptr_)
#define MPIR_T_PVAR_SIZE_SET(MODULE, name_, val_) \
PVAR_GATED_ACTION(MODULE, MPIR_T_PVAR_SIZE_SET_impl(name_, val_))
-#define MPIR_T_PVAR_SIZE_GET(MODULE, name_) \
- PVAR_GATED_ACTION(MODULE, MPIR_T_PVAR_SIZE_GET_impl(name_))
+#define MPIR_T_PVAR_SIZE_GET(name_) \
+ MPIR_T_PVAR_SIZE_GET_impl(name_)
#define MPIR_T_PVAR_SIZE_REGISTER_STATIC(MODULE, dtype_, name_, \
initval_, verb_, bind_, flags_, cat_, desc_) \
@@ -274,12 +278,12 @@ static inline cvar_table_entry_t * LOOKUP_CVAR_BY_NAME(const char* cvar_name)
#define MPIR_T_PVAR_PERCENTAGE_SET_VAR(MODULE, ptr_, val_) \
PVAR_GATED_ACTION(MODULE, MPIR_T_PVAR_PERCENTAGE_SET_VAR_impl(ptr_, val_))
#define MPIR_T_PVAR_PERCENTAGE_GET_VAR(MODULE, ptr_) \
- PVAR_GATED_ACTION(MODULE, MPIR_T_PVAR_PERCENTAGE_GET_VAR_impl(ptr_))
+ MPIR_T_PVAR_PERCENTAGE_GET_VAR_impl(ptr_)
#define MPIR_T_PVAR_PERCENTAGE_SET(MODULE, name_, val_) \
PVAR_GATED_ACTION(MODULE, MPIR_T_PVAR_PERCENTAGE_SET_impl(name_, val_))
#define MPIR_T_PVAR_PERCENTAGE_GET(MODULE, name_) \
- PVAR_GATED_ACTION(MODULE, MPIR_T_PVAR_PERCENTAGE_GET_impl(name_))
+ MPIR_T_PVAR_PERCENTAGE_GET_impl(name_)
#define MPIR_T_PVAR_PERCENTAGE_REGISTER_STATIC(MODULE, dtype_, name_, \
initval_, verb_, bind_, flags_, cat_, desc_) \
@@ -315,15 +319,15 @@ static inline cvar_table_entry_t * LOOKUP_CVAR_BY_NAME(const char* cvar_name)
#define MPIR_T_PVAR_COUNTER_INIT_VAR(MODULE, ptr_) \
PVAR_GATED_ACTION(MODULE, MPIR_T_PVAR_COUNTER_INIT_VAR_impl(ptr_))
-#define MPIR_T_PVAR_COUNTER_GET_VAR(MODULE, ptr_) \
- PVAR_GATED_ACTION(MODULE, MPIR_T_PVAR_COUNTER_GET_VAR_impl(ptr_))
+#define MPIR_T_PVAR_COUNTER_GET_VAR(ptr_) \
+ MPIR_T_PVAR_COUNTER_GET_VAR_impl(ptr_)
#define MPIR_T_PVAR_COUNTER_INC_VAR(MODULE, ptr_, inc_) \
PVAR_GATED_ACTION(MODULE, MPIR_T_PVAR_COUNTER_INC_VAR_impl(ptr_, inc_))
#define MPIR_T_PVAR_COUNTER_INIT(MODULE, name_) \
PVAR_GATED_ACTION(MODULE, MPIR_T_PVAR_COUNTER_INIT_impl(name_))
-#define MPIR_T_PVAR_COUNTER_GET(MODULE, name_) \
- PVAR_GATED_ACTION(MODULE, MPIR_T_PVAR_COUNTER_GET_impl(name_))
+#define MPIR_T_PVAR_COUNTER_GET(name_) \
+ MPIR_T_PVAR_COUNTER_GET_impl(name_)
#define MPIR_T_PVAR_COUNTER_INC(MODULE, name_, inc_) \
PVAR_GATED_ACTION(MODULE, MPIR_T_PVAR_COUNTER_INC_impl(name_, inc_))
@@ -361,15 +365,15 @@ static inline cvar_table_entry_t * LOOKUP_CVAR_BY_NAME(const char* cvar_name)
#define MPIR_T_PVAR_COUNTER_ARRAY_INIT_VAR(MODULE, ptr_, count_) \
PVAR_GATED_ACTION(MODULE, MPIR_T_PVAR_COUNTER_ARRAY_INIT_VAR_impl(ptr_, count_))
-#define MPIR_T_PVAR_COUNTER_ARRAY_GET_VAR(MODULE, ptr_, idx_) \
- PVAR_GATED_ACTION(MODULE, MPIR_T_PVAR_COUNTER_ARRAY_GET_VAR_impl(ptr_, idx_))
+#define MPIR_T_PVAR_COUNTER_ARRAY_GET_VAR(ptr_, idx_) \
+ MPIR_T_PVAR_COUNTER_ARRAY_GET_VAR_impl(ptr_, idx_)
#define MPIR_T_PVAR_COUNTER_ARRAY_INC_VAR(MODULE, ptr_, idx_, inc_) \
PVAR_GATED_ACTION(MODULE, MPIR_T_PVAR_COUNTER_ARRAY_INC_VAR_impl(ptr_, idx_, inc_))
#define MPIR_T_PVAR_COUNTER_ARRAY_INIT(MODULE, name_) \
PVAR_GATED_ACTION(MODULE, MPIR_T_PVAR_COUNTER_ARRAY_INIT_impl(name_))
-#define MPIR_T_PVAR_COUNTER_ARRAY_GET(MODULE, name_, idx_) \
- PVAR_GATED_ACTION(MODULE, MPIR_T_PVAR_COUNTER_ARRAY_GET_impl(name_, idx_))
+#define MPIR_T_PVAR_COUNTER_ARRAY_GET(name_, idx_) \
+ MPIR_T_PVAR_COUNTER_ARRAY_GET_impl(name_, idx_)
#define MPIR_T_PVAR_COUNTER_ARRAY_INC(MODULE, ptr_, idx_, inc_) \
PVAR_GATED_ACTION(MODULE, MPIR_T_PVAR_COUNTER_ARRAY_INC_impl(ptr_, idx_, inc_))
@@ -408,15 +412,15 @@ static inline cvar_table_entry_t * LOOKUP_CVAR_BY_NAME(const char* cvar_name)
#define MPIR_T_PVAR_AGGREGATE_INIT_VAR(MODULE, ptr_) \
PVAR_GATED_ACTION(MODULE, MPIR_T_PVAR_AGGREGATE_INIT_VAR_impl(ptr_))
-#define MPIR_T_PVAR_AGGREGATE_GET_VAR(MODULE, ptr_) \
- PVAR_GATED_ACTION(MODULE, MPIR_T_PVAR_AGGREGATE_GET_VAR_impl(ptr_))
+#define MPIR_T_PVAR_AGGREGATE_GET_VAR(ptr_) \
+ MPIR_T_PVAR_AGGREGATE_GET_VAR_impl(ptr_)
#define MPIR_T_PVAR_AGGREGATE_INC_VAR(MODULE, ptr_, inc_) \
PVAR_GATED_ACTION(MODULE, MPIR_T_PVAR_AGGREGATE_INC_VAR_impl(ptr_, inc_))
#define MPIR_T_PVAR_AGGREGATE_INIT(MODULE, name_) \
PVAR_GATED_ACTION(MODULE, MPIR_T_PVAR_AGGREGATE_INIT_impl(name_))
-#define MPIR_T_PVAR_AGGREGATE_GET(MODULE, name_) \
- PVAR_GATED_ACTION(MODULE, MPIR_T_PVAR_AGGREGATE_GET_impl(name_))
+#define MPIR_T_PVAR_AGGREGATE_GET(name_) \
+ MPIR_T_PVAR_AGGREGATE_GET_impl(name_)
#define MPIR_T_PVAR_AGGREGATE_INC(MODULE, name_, inc_) \
PVAR_GATED_ACTION(MODULE, MPIR_T_PVAR_AGGREGATE_INC_impl(name_, inc_))
@@ -618,5 +622,4 @@ static inline cvar_table_entry_t * LOOKUP_CVAR_BY_NAME(const char* cvar_name)
addr_, count_, verb_, bind_, flags_, get_value_, get_count_, cat_, desc_) \
PVAR_GATED_ACTION(MODULE, MPIR_T_PVAR_LOWWATERMARK_REGISTER_DYNAMIC_impl(dtype_, name_, \
addr_, count_, verb_, bind_, flags_, get_value_, get_count_, cat_, desc_))
-
#endif
diff --git a/src/include/mpitimpl.h b/src/include/mpitimpl.h
index dd63b71..d4b66cb 100644
--- a/src/include/mpitimpl.h
+++ b/src/include/mpitimpl.h
@@ -371,7 +371,7 @@ extern void MPIR_T_PVAR_REGISTER_impl(
#define MPIR_T_PVAR_STATE_SET_VAR_impl(ptr_, val_) \
do { *ptr_ = val_; } while (0)
#define MPIR_T_PVAR_STATE_GET_VAR_impl(ptr_) \
- *(ptr_)
+ (*(ptr_))
#define MPIR_T_PVAR_STATE_SET_impl(name_, val_) \
MPIR_T_PVAR_STATE_SET_VAR_impl(&PVAR_STATE_##name_, val_)
@@ -444,7 +444,7 @@ extern void MPIR_T_PVAR_REGISTER_impl(
#define MPIR_T_PVAR_LEVEL_SET_VAR_impl(ptr_, val_) \
do { *(ptr_) = val_; } while (0)
#define MPIR_T_PVAR_LEVEL_GET_VAR_impl(ptr_) \
- *(ptr)
+ (*(ptr_))
#define MPIR_T_PVAR_LEVEL_INC_VAR_impl(ptr_, val_) \
do { *(ptr_) += val_; } while (0)
#define MPIR_T_PVAR_LEVEL_DEC_VAR_impl(ptr_, val_) \
@@ -525,7 +525,7 @@ extern void MPIR_T_PVAR_REGISTER_impl(
#define MPIR_T_PVAR_SIZE_SET_VAR_impl(ptr_, val_) \
do { *(ptr_) = val_; } while (0)
#define MPIR_T_PVAR_SIZE_GET_VAR_impl(ptr_) \
- *(ptr_)
+ (*(ptr_))
#define MPIR_T_PVAR_SIZE_SET_impl(name_, val_) \
MPIR_T_PVAR_SIZE_SET_VAR_impl(&PVAR_SIZE_##name_, val_)
@@ -583,7 +583,7 @@ extern void MPIR_T_PVAR_REGISTER_impl(
*ptr_ = val_; \
} while (0)
#define MPIR_T_PVAR_PERCENTAGE_GET_VAR_impl(ptr_) \
- *(ptr_)
+ (*(ptr_))
#define MPIR_T_PVAR_PERCENTAGE_SET_impl(name_, val_) \
MPIR_T_PVAR_PERCENTAGE_SET_VAR_impl(&PVAR_PERCENTAGE_##name_, val_)
@@ -649,7 +649,7 @@ extern void MPIR_T_PVAR_REGISTER_impl(
do { *(ptr_) = 0; } while (0)
/* _COUNTER_SET is intentionally not provided. Users should only INC counters */
#define MPIR_T_PVAR_COUNTER_GET_VAR_impl(ptr_) \
- *(ptr_)
+ (*(ptr_))
#define MPIR_T_PVAR_COUNTER_INC_VAR_impl(ptr_, inc_) \
do { *(ptr_) += inc_; } while (0)
@@ -786,7 +786,7 @@ extern void MPIR_T_PVAR_REGISTER_impl(
do { *(ptr_) = 0; } while (0)
/* _AGGREGATE_SET is intentionally not provided as for counters */
#define MPIR_T_PVAR_AGGREGATE_GET_VAR_impl(ptr_) \
- *(ptr_)
+ (*(ptr_))
#define MPIR_T_PVAR_AGGREGATE_INC_VAR_impl(ptr_, inc_) \
do { *(ptr_) += inc_; } while (0)
http://git.mpich.org/mpich.git/commitdiff/fd2ac8b5fdc4e16c67affdd1acd811db2…
commit fd2ac8b5fdc4e16c67affdd1acd811db239310fe
Author: Junchao Zhang <jczhang(a)mcs.anl.gov>
Date: Thu Nov 7 15:08:13 2013 -0600
Change prototype of MPIR_T_pvar_get_value_cb etc
The return value of the callbacks is of less value.
Signed-off-by: Junchao Zhang<jczhang(a)mcs.anl.gov> (Reviewed by Bill Gropp)
diff --git a/src/include/mpitimpl.h b/src/include/mpitimpl.h
index 9763e6f..dd63b71 100644
--- a/src/include/mpitimpl.h
+++ b/src/include/mpitimpl.h
@@ -142,8 +142,8 @@ void MPIR_T_CVAR_REGISTER_impl(
struct MPIR_T_pvar_handle_s;
struct MPIR_T_pvar_session_s;
-typedef int MPIR_T_pvar_get_value_cb(void *addr, void *obj_handle, int count, void *buf);
-typedef int MPIR_T_pvar_get_count_cb(void *addr, void *obj_handle, int *count);
+typedef void MPIR_T_pvar_get_value_cb(void *addr, void *obj_handle, int count, void *buf);
+typedef void MPIR_T_pvar_get_count_cb(void *addr, void *obj_handle, int *count);
/* Basic pvar flags defined by MPI_T standard */
#define MPIR_T_PVAR_FLAG_READONLY 0x01
@@ -871,15 +871,12 @@ extern void MPIR_T_PVAR_REGISTER_impl(
/* Customized get_value() for MPIR_T_pvar_timer_t */
static inline
-int get_timer_in_double(MPIR_T_pvar_timer_t *timer, void *obj_handle,
+void get_timer_in_double(MPIR_T_pvar_timer_t *timer, void *obj_handle,
int count, double *buf)
{
- int i, mpi_errno = MPI_SUCCESS;
-
+ int i;
for (i = 0; i < count; i++)
MPID_Wtime_todouble(&(timer[i].total), &buf[i]);
-
- return mpi_errno;
}
/* Registration for static storage */
diff --git a/src/mpi_t/pvar_handle_alloc.c b/src/mpi_t/pvar_handle_alloc.c
index e3bdc07..ec1883a 100644
--- a/src/mpi_t/pvar_handle_alloc.c
+++ b/src/mpi_t/pvar_handle_alloc.c
@@ -55,8 +55,7 @@ int MPIR_T_pvar_handle_alloc_impl(MPI_T_pvar_session session, int pvar_index,
if (info->get_count == NULL) {
cnt = info->count;
} else {
- mpi_errno = info->get_count(info->addr, obj_handle, &cnt);
- if (mpi_errno) MPIU_ERR_POP(mpi_errno);
+ info->get_count(info->addr, obj_handle, &cnt);
}
bytes = MPID_Datatype_get_basic_size(info->datatype);
http://git.mpich.org/mpich.git/commitdiff/4c784c5d2bb41eb069df5d338a1ca0256…
commit 4c784c5d2bb41eb069df5d338a1ca025651a12e9
Author: Junchao Zhang <jczhang(a)mcs.anl.gov>
Date: Thu Nov 7 14:49:14 2013 -0600
Add rma to option --enable-mpit-pvars=list
Make the default of --enable-mpit-pvars= be 'none' instead of 'all'
Signed-off-by: Junchao Zhang<jczhang(a)mcs.anl.gov> (Reviewed by Bill Gropp)
diff --git a/configure.ac b/configure.ac
index 5e70cd5..3c27a6b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -375,12 +375,13 @@ AC_ARG_ENABLE(g,
AC_ARG_ENABLE([mpit_pvars],
[ --enable-mpit-pvars=list - Selectively enable MPI_T performance variables in
modules. list is a comma-separated module names,
- including (Default is "all"):
+ including (Default is "none"):
none - No performance info recorded
recvq - All message queue-related
nem - All nemesis-related
+ rma - All rma-related
all - All variables above
-],[],[enable_mpit_pvars=all])
+],[],[enable_mpit_pvars=none])
dnl We may want to force MPI_Aint to be the same size as MPI_Offset,
dnl particularly on 32 bit systems with large (64 bit) file systems.
@@ -1833,9 +1834,11 @@ for var in $enable_mpit_pvars ; do
AS_CASE(["$var"],
[nem],[enable_pvar_nem=yes],
[recvq],[enable_pvar_recvq=yes],
+ [rma],[enable_pvar_rma=yes],
[all|yes],
[enable_pvar_nem=yes
- enable_pvar_recvq=yes],
+ enable_pvar_recvq=yes
+ enable_pvar_rma=yes],
[no|none],[],
[IFS=$save_IFS
AC_MSG_WARN([Unknown value ($option) for enable-mpit-pvars])
@@ -1859,6 +1862,13 @@ fi
AC_DEFINE_UNQUOTED(ENABLE_PVAR_RECVQ,$status_recvq_pvars,
[Define to 1 to enable message receive queue-related MPI_T performance variables])
+if test -n "$enable_pvar_rma" ; then
+ status_rma_pvars=1
+else
+ status_rma_pvars=0
+fi
+AC_DEFINE_UNQUOTED(ENABLE_PVAR_RMA,$status_rma_pvars,
+ [Define to 1 to enable rma-related MPI_T performance variables])
# ---------------------------------------------------------------------------
# Support for the language bindings: Fortran 77, Fortran 90, and C++
#
http://git.mpich.org/mpich.git/commitdiff/f8501113cb31e6f4a8120d3fd03f51e99…
commit f8501113cb31e6f4a8120d3fd03f51e99a21ec3a
Author: Junchao Zhang <jczhang(a)mcs.anl.gov>
Date: Thu Nov 7 14:42:58 2013 -0600
Delete mpiinstr.h since it is superceeded by MPI_T
Also deleted instr option in configure.ac
Signed-off-by: Junchao Zhang<jczhang(a)mcs.anl.gov> (Reviewed by Bill Gropp)
diff --git a/configure.ac b/configure.ac
index a3971c6..5e70cd5 100644
--- a/configure.ac
+++ b/configure.ac
@@ -359,7 +359,6 @@ AC_ARG_ENABLE(g,
compiler flags, i.e. MPICHLIB_CFLAGS, MPICHLIB_CXXFLAGS,
MPICHLIB_FFLAGS, and MPICHLIB_FCFLAGS.
debug - Synonym for dbg
- instr - Enable instrumentation
log - Enable debug event logging
mem - Memory usage tracing
meminit - Preinitialize memory associated structures and unions to
@@ -1442,9 +1441,6 @@ for option in $enable_g ; do
handle)
perform_handle=yes
;;
- instr)
- perform_instr=yes
- ;;
meminit)
perform_meminit=yes
;;
@@ -1469,7 +1465,6 @@ for option in $enable_g ; do
perform_dbglog=yes
enable_append_g=yes
perform_meminit=yes
- perform_instr=yes
perform_dbgmutex=yes
perform_mutexnesting=yes
perform_handlealloc=yes
@@ -1481,7 +1476,6 @@ for option in $enable_g ; do
perform_dbglog=yes
enable_append_g=yes
perform_meminit=yes
- perform_instr=yes
perform_dbgmutex=yes
perform_mutexnesting=yes
perform_handlealloc=yes
@@ -1515,9 +1509,6 @@ fi
if test "$perform_handlealloc" = yes ; then
AC_DEFINE(MPICH_DEBUG_HANDLEALLOC,1,[Define to enable checking of handles still allocated at MPI_Finalize])
fi
-if test "$perform_instr" = yes ; then
- AC_DEFINE(USE_MPIU_INSTR,1,[Define this to enable internal instrumentation] )
-fi
AS_IF([test "X$perform_handle" = "Xyes"],
[AC_DEFINE(MPICH_DEBUG_HANDLES,1,[Define to enable handle checking])])
diff --git a/src/include/Makefile.mk b/src/include/Makefile.mk
index 3ff7407..6aa9bf2 100644
--- a/src/include/Makefile.mk
+++ b/src/include/Makefile.mk
@@ -45,7 +45,6 @@ noinst_HEADERS += \
src/include/mpiimpl.h \
src/include/mpiimplthread.h \
src/include/mpiimplthreadpost.h \
- src/include/mpiinstr.h \
src/include/mpiiov.h \
src/include/mpimem.h \
src/include/mpir_nbc.h \
diff --git a/src/include/mpiimpl.h b/src/include/mpiimpl.h
index 4987129..9716a70 100644
--- a/src/include/mpiimpl.h
+++ b/src/include/mpiimpl.h
@@ -2277,9 +2277,6 @@ extern MPICH_PerProcess_t MPIR_Process;
#include "mpierror.h"
#include "mpierrs.h"
-/* Definitions for instrumentation (currently used within RMA code) */
-#include "mpiinstr.h"
-
/* FIXME: This routine is only used within mpi/src/err/errutil.c and
smpd. We may not want to export it. */
void MPIR_Err_print_stack(FILE *, int);
diff --git a/src/include/mpiinstr.h b/src/include/mpiinstr.h
deleted file mode 100644
index 8789b1e..0000000
--- a/src/include/mpiinstr.h
+++ /dev/null
@@ -1,158 +0,0 @@
-/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
-/*
- * (C) 2010 by Argonne National Laboratory.
- * See COPYRIGHT in top-level directory.
- */
-#ifndef MPIINSTR_H_INCLUDED
-#define MPIINSTR_H_INCLUDED
-
-#ifdef USE_MPIU_INSTR
-/*
- * These instrumentation macros provide easy, lightweight instrumentation
- *
- * Thread-safety: These are not thread-safe. They should either be used
- * only in single-threaded code or in code where single-threadedness is
- * assured. This is by design to keep the overhead low. Should a thread-safe
- * version be desired, specific thread-safe interfaces should be added.
- * These should have _MT_ in the name (for multi-threaded).
- */
-
-/*
- * TODO: Add a connection to the MPI-3 MPIT interface.
- */
-
-#define MPIU_INSTR_TYPE_DURATION 1
-#define MPIU_INSTR_TYPE_COUNTER 2
-
-typedef struct MPIU_INSTR_Generic_t {
- int instrType;
- void *next;
- int count;
- const char *desc;
- int (*toStr)( char *buf, size_t maxlen, void *handlePtr );
-} MPIU_INSTR_Generic_t;
-
-#define MPIU_INSTR_MAX_DATA 8
-typedef struct MPIU_INSTR_Duration_count_t {
- int instrType;
- void *next;
- int count; /* Number of times in duration */
- const char *desc; /* Character string describing duration */
- int (*toStr)( char *buf, size_t maxlen, void *handlePtr );
- MPID_Time_t ttime, /* Time in duration */
- curstart; /* Time of entry into current duration */
- int nitems; /* Number of items in data */
- int data[MPIU_INSTR_MAX_DATA]; /* Used to hold additional data */
- } MPIU_INSTR_Duration_count;
-
-typedef struct MPIU_INSTR_Counter_t {
- int instrType;
- void *next;
- int count;
- const char *desc; /* Character string describing duration */
- int (*toStr)( char *buf, size_t maxlen, void *handlePtr );
- int curcount;
- int totalcount;
- int maxcount;
-} MPIU_INSTR_Counter;
-
-/* Prototypes for visible routines */
-int MPIU_INSTR_AddHandle( void * );
-int MPIU_INSTR_ToStr_Duration_Count( char *, size_t, void * );
-int MPIU_INSTR_ToStr_Counter( char *, size_t, void * );
-
-/* Definitions for including instrumentation in files*/
-
-#define MPIU_INSTR_GET_VAR(name_) \
- &MPIU_INSTR_HANDLE_##name_
-#define MPIU_INSTR_STMT( stmt_ ) stmt_
-
-/* Durations: These measure the time for an operation. In addition to
- the elapsed time, additional data can be stored.
- */
-#define MPIU_INSTR_DURATION_DECL(name_) \
- struct MPIU_INSTR_Duration_count_t MPIU_INSTR_HANDLE_##name_ = { 0 };
-#define MPIU_INSTR_DURATION_EXTERN_DECL(name_) \
- extern struct MPIU_INSTR_Duration_count_t MPIU_INSTR_HANDLE_##name_;
-/* FIXME: Need a generic way to zero the time */
-#define MPIU_INSTR_DURATION_INIT(name_,nitems_,desc_) \
- MPIU_INSTR_HANDLE_##name_.count = 0; \
- MPIU_INSTR_HANDLE_##name_.desc = (const char *)MPIU_Strdup( desc_ ); \
- memset( &MPIU_INSTR_HANDLE_##name_.ttime,0,sizeof(MPID_Time_t));\
- MPIU_INSTR_HANDLE_##name_.toStr = MPIU_INSTR_ToStr_Duration_Count;\
- MPIU_INSTR_HANDLE_##name_.nitems = nitems_;\
- memset( MPIU_INSTR_HANDLE_##name_.data,0,MPIU_INSTR_MAX_DATA*sizeof(int));\
- MPIU_INSTR_AddHandle( &MPIU_INSTR_HANDLE_##name_ );
-
-#define MPIU_INSTR_DURATION_START_VAR(ptr_) \
- MPID_Wtime( &ptr_->curstart )
-#define MPIU_INSTR_DURATION_END_VAR(ptr_) \
- do { \
- MPID_Time_t curend; MPID_Wtime( &curend );\
- MPID_Wtime_acc( &ptr_->curstart, &curend, &ptr_->ttime );\
- ptr_->count++; } while(0)
-#define MPIU_INSTR_DURATION_INCR_VAR(ptr_,idx_,incr_) \
- ptr_->data[idx_] += incr_;
-
-#define MPIU_INSTR_DURATION_START(name_) \
- MPID_Wtime( &MPIU_INSTR_HANDLE_##name_.curstart )
-#define MPIU_INSTR_DURATION_END(name_) \
- do { \
- MPID_Time_t curend; MPID_Wtime( &curend );\
- MPID_Wtime_acc( &MPIU_INSTR_HANDLE_##name_.curstart, \
- &curend, \
- &MPIU_INSTR_HANDLE_##name_.ttime );\
- MPIU_INSTR_HANDLE_##name_.count++; } while(0)
-
-#define MPIU_INSTR_DURATION_INCR(name_,idx_,incr_) \
- MPIU_INSTR_HANDLE_##name_.data[idx_] += incr_;
-#define MPIU_INSTR_DURATION_MAX(name_,idx_,incr_) \
- MPIU_INSTR_HANDLE_##name_.data[idx_] = \
- incr_ > MPIU_INSTR_HANDLE_##name_.data[idx_] ? \
- incr_ : MPIU_INSTR_HANDLE_##name_.data[idx_];
-
-/* Counters: Maintain total count, maximum, and number of times used */
-#define MPIU_INSTR_COUNTER_DECL(name_) \
- struct MPIU_INSTR_Counter_t MPIU_INSTR_HANDLE_##name_ = { 0 };
-#define MPIU_INSTR_COUNTER_INIT(name_,desc_) \
- MPIU_INSTR_HANDLE_##name_.curcount = 0; \
- MPIU_INSTR_HANDLE_##name_.maxcount = 0; \
- MPIU_INSTR_HANDLE_##name_.totalcount = 0; \
- MPIU_INSTR_HANDLE_##name_.desc = (const char *)MPIU_Strdup( desc_ ); \
- MPIU_INSTR_HANDLE_##name_.toStr = MPIU_INSTR_ToStr_Counter;\
- MPIU_INSTR_AddHandle( &MPIU_INSTR_HANDLE_##name_ );
-
-#define MPIU_INSTR_COUNTER_INCR(name_,incr_) \
- MPIU_INSTR_HANDLE_##name_.curcount += incr_;
-#define MPIU_INSTR_COUNTER_RESET(name_) \
- do { MPIU_INSTR_Counter *p_ = &MPIU_INSTR_HANDLE_##name_;\
- p_->count++; \
- p_->totalcount += p_->curcount; \
- if (p_->curcount > p_->maxcount) p_->maxcount = p_->curcount; \
- p_->curcount = 0;} while(0)
-
-#else
-/* Define null versions of macros (these are empty statements) */
-
-#define MPIU_INSTR_GET_VAR(name_)
-#define MPIU_INSTR_STMT(stmt_)
-
-#define MPIU_INSTR_DURATION_DECL(name_)
-#define MPIU_INSTR_DURATION_EXTERN_DECL(name_)
-#define MPIU_INSTR_DURATION_INIT(name_,nitems_,desc_)
-#define MPIU_INSTR_DURATION_START(name_)
-#define MPIU_INSTR_DURATION_END(name_)
-#define MPIU_INSTR_DURATION_INCR(name_,idx_,incr_)
-#define MPIU_INSTR_DURATION_MAX(name_,idx_,incr_)
-#define MPIU_INSTR_DURATION_START_VAR(ptr_)
-#define MPIU_INSTR_DURATION_END_VAR(ptr_)
-#define MPIU_INSTR_DURATION_INCR_VAR(ptr_,idx_,incr_)
-
-#define MPIU_INSTR_COUNTER_DECL(name_)
-#define MPIU_INSTR_COUNTER_INIT(name_,desc_)
-#define MPIU_INSTR_COUNTER_INCR(name_,incr_)
-#define MPIU_INSTR_COUNTER_RESET(name_)
-
-#endif /* USE_MPIU_INSTR */
-
-#endif
diff --git a/src/include/mpitimerimpl.h b/src/include/mpitimerimpl.h
index b261ddc..ea6eae3 100644
--- a/src/include/mpitimerimpl.h
+++ b/src/include/mpitimerimpl.h
@@ -162,7 +162,7 @@ int MPIU_Timer_finalize(void);
int MPIR_Describe_timer_states(void);
/* The original statistics macros (see the design documentation)
- have been superceeded by the instrumentation macros (see mpiinstr.h) */
+ have been superceeded by the MPIR_T_PVAR_* macros (see mpit.h) */
#else /* HAVE_TIMING and doing logging */
-----------------------------------------------------------------------
Summary of changes:
configure.ac | 25 +-
src/include/Makefile.mk | 1 -
src/include/mpiimpl.h | 3 -
src/include/mpiinstr.h | 158 ----
src/include/mpit.h | 74 +-
src/include/mpitimerimpl.h | 2 +-
src/include/mpitimpl.h | 58 +-
src/mpi_t/pvar_handle_alloc.c | 3 +-
src/mpid/ch3/channels/nemesis/src/ch3_win_fns.c | 8 +-
.../ch3/channels/nemesis/src/mpid_nem_finalize.c | 6 +-
src/mpid/ch3/channels/nemesis/src/mpid_nem_init.c | 6 +-
src/mpid/ch3/include/mpidrma.h | 16 +-
src/mpid/ch3/src/ch3u_rma_acc_ops.c | 32 +-
src/mpid/ch3/src/ch3u_rma_ops.c | 36 +-
src/mpid/ch3/src/ch3u_rma_sync.c | 912 ++++++++++++++++----
src/mpid/ch3/src/ch3u_win_fns.c | 8 +-
src/mpid/ch3/src/mpid_rma.c | 26 +-
17 files changed, 901 insertions(+), 473 deletions(-)
delete mode 100644 src/include/mpiinstr.h
hooks/post-receive
--
MPICH primary repository
1
0
[mpich] MPICH primary repository branch, master, updated. v3.1rc2-56-g82e2a82
by noreply@mpich.org 17 Dec '13
by noreply@mpich.org 17 Dec '13
17 Dec '13
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 82e2a8221f2bb6f5e13329d59f0aca443b16ae70 (commit)
from 2be07a46ce1a4e336234814919c213e56e2ca56d (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/82e2a8221f2bb6f5e13329d59f0aca443…
commit 82e2a8221f2bb6f5e13329d59f0aca443b16ae70
Author: Michael Blocksome <blocksom(a)us.ibm.com>
Date: Fri Dec 13 14:06:08 2013 -0600
Add missing FCNAME #define for error reporting.
diff --git a/src/mpid/pamid/src/dyntask/mpid_comm_spawn_multiple.c b/src/mpid/pamid/src/dyntask/mpid_comm_spawn_multiple.c
index 12bf3a7..be71200 100644
--- a/src/mpid/pamid/src/dyntask/mpid_comm_spawn_multiple.c
+++ b/src/mpid/pamid/src/dyntask/mpid_comm_spawn_multiple.c
@@ -101,6 +101,10 @@ static void MPIDI_free_pmi_keyvals(PMI_keyval_t **kv, int size, int *counts)
.N Errors
.N MPI_SUCCESS
@*/
+#undef FUNCNAME
+#define FUNCNAME MPID_Comm_spawn_multiple
+#undef FCNAME
+#define FCNAME MPIU_QUOTE(FUNCNAME)
int MPID_Comm_spawn_multiple(int count, char *array_of_commands[],
char ** array_of_argv[], const int array_of_maxprocs[],
MPID_Info * array_of_info_ptrs[], int root,
diff --git a/src/mpid/pamid/src/dyntask/mpid_port.c b/src/mpid/pamid/src/dyntask/mpid_port.c
index b587ef6..e6f8810 100644
--- a/src/mpid/pamid/src/dyntask/mpid_port.c
+++ b/src/mpid/pamid/src/dyntask/mpid_port.c
@@ -90,6 +90,10 @@ int MPID_Close_port(const char *port_name)
return mpi_errno;
}
+#undef FUNCNAME
+#define FUNCNAME MPID_Comm_accept
+#undef FCNAME
+#define FCNAME MPIU_QUOTE(FUNCNAME)
int MPID_Comm_accept(const char * port_name, MPID_Info * info, int root,
MPID_Comm * comm, MPID_Comm ** newcomm_ptr)
{
@@ -114,6 +118,10 @@ int MPID_Comm_accept(const char * port_name, MPID_Info * info, int root,
return mpi_errno;
}
+#undef FUNCNAME
+#define FUNCNAME MPID_Comm_connect
+#undef FCNAME
+#define FCNAME MPIU_QUOTE(FUNCNAME)
int MPID_Comm_connect(const char * port_name, MPID_Info * info, int root,
MPID_Comm * comm, MPID_Comm ** newcomm_ptr)
{
-----------------------------------------------------------------------
Summary of changes:
.../pamid/src/dyntask/mpid_comm_spawn_multiple.c | 4 ++++
src/mpid/pamid/src/dyntask/mpid_port.c | 8 ++++++++
2 files changed, 12 insertions(+), 0 deletions(-)
hooks/post-receive
--
MPICH primary repository
1
0
[mpich] MPICH primary repository branch, master, updated. v3.1rc2-55-g2be07a4
by noreply@mpich.org 13 Dec '13
by noreply@mpich.org 13 Dec '13
13 Dec '13
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 2be07a46ce1a4e336234814919c213e56e2ca56d (commit)
from c5890463725b658ebe88da4aa8abe0d0ea794ff4 (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/2be07a46ce1a4e336234814919c213e56…
commit 2be07a46ce1a4e336234814919c213e56e2ca56d
Author: Ken Raffenetti <raffenet(a)mcs.anl.gov>
Date: Mon Dec 9 15:17:52 2013 -0600
patch to detect bgq compilers in config.rpath
Fixes #1883
Reviewed-by: Michael Blocksome <blocksom(a)us.ibm.com>
diff --git a/confdb/config.rpath b/confdb/config.rpath
index 70f614e..45bd85c 100755
--- a/confdb/config.rpath
+++ b/confdb/config.rpath
@@ -86,7 +86,7 @@ else
ccc*)
wl='-Wl,'
;;
- xl* | bgxl* | bgf* | mpixl*)
+ xl* | bgxl* | bgf* | mpixl* | *bgq-linux-xl* )
wl='-Wl,'
;;
como)
-----------------------------------------------------------------------
Summary of changes:
confdb/config.rpath | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
hooks/post-receive
--
MPICH primary repository
1
0
[mpich] MPICH primary repository branch, master, updated. v3.1rc2-54-gc589046
by noreply@mpich.org 13 Dec '13
by noreply@mpich.org 13 Dec '13
13 Dec '13
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 c5890463725b658ebe88da4aa8abe0d0ea794ff4 (commit)
from b250d338e66667a8a1071a5f73a4151fd59f83b2 (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/c5890463725b658ebe88da4aa8abe0d0e…
commit c5890463725b658ebe88da4aa8abe0d0ea794ff4
Author: Ken Raffenetti <raffenet(a)mcs.anl.gov>
Date: Fri Dec 13 13:05:49 2013 -0600
format warning squash
Use the string format macro for MPI_Aint
Signed-off-by: Rob Latham <robl(a)mcs.anl.gov>
diff --git a/src/mpi/pt2pt/bsendutil.c b/src/mpi/pt2pt/bsendutil.c
index 5309e9f..1b925a3 100644
--- a/src/mpi/pt2pt/bsendutil.c
+++ b/src/mpi/pt2pt/bsendutil.c
@@ -235,7 +235,7 @@ int MPIR_Bsend_isend(const void *buf, int count, MPI_Datatype dtype,
else
packsize = count;
- MPIU_DBG_MSG_D(BSEND,TYPICAL,"looking for buffer of size %ld", packsize);
+ MPIU_DBG_MSG_D(BSEND,TYPICAL,"looking for buffer of size " MPI_AINT_FMT_DEC_SPEC, packsize);
/*
* Use two passes. Each pass is the same; between the two passes,
* attempt to complete any active requests, and start any pending
@@ -247,7 +247,7 @@ int MPIR_Bsend_isend(const void *buf, int count, MPI_Datatype dtype,
p = MPIR_Bsend_find_buffer( packsize );
if (p) {
MPIU_DBG_MSG_FMT(BSEND,TYPICAL,(MPIU_DBG_FDEST,
- "found buffer of size %ld with address %p",packsize,p));
+ "found buffer of size " MPI_AINT_FMT_DEC_SPEC " with address %p",packsize,p));
/* Found a segment */
msg = &p->msg;
-----------------------------------------------------------------------
Summary of changes:
src/mpi/pt2pt/bsendutil.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
hooks/post-receive
--
MPICH primary repository
1
0
[mpich] MPICH primary repository branch, master, updated. v3.1rc2-53-gb250d33
by noreply@mpich.org 13 Dec '13
by noreply@mpich.org 13 Dec '13
13 Dec '13
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 b250d338e66667a8a1071a5f73a4151fd59f83b2 (commit)
from 6395fbaea13f9c1e92be521d15857562f5c84466 (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/b250d338e66667a8a1071a5f73a4151fd…
commit b250d338e66667a8a1071a5f73a4151fd59f83b2
Author: Rob Latham <robl(a)mcs.anl.gov>
Date: Fri Dec 13 12:08:09 2013 -0600
deal with "infinitely stale" case
Dave Goodell reported a situation where ROMIO would retry "forever" and
suggested we give up after a large number of retries.
Signed-off-by: "Dave Goodell (dgoodell)" <dgoodell(a)cisco.com>
diff --git a/src/mpi/romio/adio/common/ad_fstype.c b/src/mpi/romio/adio/common/ad_fstype.c
index 4bd1a11..145bda2 100644
--- a/src/mpi/romio/adio/common/ad_fstype.c
+++ b/src/mpi/romio/adio/common/ad_fstype.c
@@ -262,12 +262,17 @@ static void ADIO_FileSysType_fncall(const char *filename, int *fstype, int *erro
#endif
static char myname[] = "ADIO_RESOLVEFILETYPE_FNCALL";
+/* NFS can get stuck and end up returing ESTALE "forever" */
+#define MAX_ESTALE_RETRY 10000
+ int retry_cnt;
+
*error_code = MPI_SUCCESS;
#ifdef ROMIO_HAVE_STRUCT_STATVFS_WITH_F_BASETYPE
+ retry_cnt=0;
do {
err = statvfs(filename, &vfsbuf);
- } while (err && (errno == ESTALE));
+ } while (err && (errno == ESTALE) && retry_cnt++ < MAX_ESTALE_RETRY);
if (err) {
/* ENOENT may be returned in two cases:
@@ -322,9 +327,10 @@ static void ADIO_FileSysType_fncall(const char *filename, int *fstype, int *erro
#endif /* STATVFS APPROACH */
#ifdef HAVE_STRUCT_STATFS
+ retry_cnt = 0;
do {
err = statfs(filename, &fsbuf);
- } while (err && (errno == ESTALE));
+ } while (err && (errno == ESTALE) && retry_cnt++ < MAX_ESTALE_RETRY);
if (err) {
if(errno == ENOENT) {
@@ -451,9 +457,10 @@ static void ADIO_FileSysType_fncall(const char *filename, int *fstype, int *erro
#endif /* STATFS APPROACH */
#ifdef ROMIO_HAVE_STRUCT_STAT_WITH_ST_FSTYPE
+ retry_cnt = 0;
do {
err = stat(filename, &sbuf);
- } while (err && (errno == ESTALE));
+ } while (err && (errno == ESTALE) && retry_cnt++ < MAX_ESTALE_RETRY);
if (err) {
if(errno == ENOENT) {
-----------------------------------------------------------------------
Summary of changes:
src/mpi/romio/adio/common/ad_fstype.c | 13 ++++++++++---
1 files changed, 10 insertions(+), 3 deletions(-)
hooks/post-receive
--
MPICH primary repository
1
0
[mpich] MPICH primary repository branch, master, updated. v3.1rc2-52-g6395fba
by noreply@mpich.org 10 Dec '13
by noreply@mpich.org 10 Dec '13
10 Dec '13
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 6395fbaea13f9c1e92be521d15857562f5c84466 (commit)
via 1dbbd09a9bf22dc3121f7fab9c75a382e7792c2e (commit)
via 86d7bea5cd7c62fff00ba2cd6ef7cf27b1133fd4 (commit)
via 5787d1e29260a9379348678eaf5a2615874ad426 (commit)
from fb0cc7ec359da14a3811b852ff9e0fe2d9a7576c (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/6395fbaea13f9c1e92be521d15857562f…
commit 6395fbaea13f9c1e92be521d15857562f5c84466
Author: Rob Latham <robl(a)mcs.anl.gov>
Date: Mon Dec 9 13:23:21 2013 -0600
ROMIO standalone: check for need of const
const-ificaiton of MPI routines happened only in MPI-3. making ROMIO's
const-ification optional lets us work standalone with older libraries.
Signed-off-by: Ken Raffenetti <raffenet(a)mcs.anl.gov>
diff --git a/src/mpi/romio/configure.ac b/src/mpi/romio/configure.ac
index 8b867a5..726237f 100644
--- a/src/mpi/romio/configure.ac
+++ b/src/mpi/romio/configure.ac
@@ -1548,6 +1548,7 @@ elif test $FROM_MPICH = yes ; then
DEFINE_HAVE_MPI_GREQUEST="#define HAVE_MPI_GREQUEST 1"
AC_DEFINE(HAVE_MPIU_FUNCS,1,[Define if MPICH memory tracing macros defined])
AC_DEFINE(HAVE_MPIX_H, 1, [])
+ AC_DEFINE(HAVE_MPIIO_CONST, const, Set if MPI-IO prototypes use const qualifier),
fi
#
#
@@ -1560,6 +1561,7 @@ if test $WITHIN_KNOWN_MPI_IMPL = no ; then
PAC_TEST_MPIU_FUNCS
AC_DEFINE(PRINT_ERR_MSG,1,[Define for printing error messages])
AC_CHECK_TYPE(MPI_Count,[],[AC_DEFINE_UNQUOTED([MPI_Count],[MPI_Aint],[Define to "MPI_Aint" if MPI does not provide MPI_Count]) ])
+ PAC_TEST_NEEDS_CONST
AC_CHECK_DECLS([MPI_COMBINER_HINDEXED_BLOCK], [], [], [[#include <mpi.h>]])
fi
#
diff --git a/src/mpi/romio/mpi-io/delete.c b/src/mpi/romio/mpi-io/delete.c
index bb15314..ed49e44 100644
--- a/src/mpi/romio/mpi-io/delete.c
+++ b/src/mpi/romio/mpi-io/delete.c
@@ -32,7 +32,7 @@ Input Parameters:
.N fortran
@*/
-int MPI_File_delete(const char *filename, MPI_Info info)
+int MPI_File_delete(ROMIO_CONST char *filename, MPI_Info info)
{
int error_code, file_system;
char *tmp;
diff --git a/src/mpi/romio/mpi-io/iwrite.c b/src/mpi/romio/mpi-io/iwrite.c
index e6a2026..fa50fbe 100644
--- a/src/mpi/romio/mpi-io/iwrite.c
+++ b/src/mpi/romio/mpi-io/iwrite.c
@@ -41,7 +41,7 @@ Output Parameters:
#include "mpiu_greq.h"
#endif
-int MPI_File_iwrite(MPI_File fh, const void *buf, int count,
+int MPI_File_iwrite(MPI_File fh, ROMIO_CONST void *buf, int count,
MPI_Datatype datatype, MPI_Request *request)
{
int error_code=MPI_SUCCESS;
diff --git a/src/mpi/romio/mpi-io/iwrite_at.c b/src/mpi/romio/mpi-io/iwrite_at.c
index 6974ed5..05f0b39 100644
--- a/src/mpi/romio/mpi-io/iwrite_at.c
+++ b/src/mpi/romio/mpi-io/iwrite_at.c
@@ -42,7 +42,7 @@ Output Parameters:
#include "mpiu_greq.h"
#endif
-int MPI_File_iwrite_at(MPI_File fh, MPI_Offset offset, const void *buf,
+int MPI_File_iwrite_at(MPI_File fh, MPI_Offset offset, ROMIO_CONST void *buf,
int count, MPI_Datatype datatype,
MPIO_Request *request)
{
diff --git a/src/mpi/romio/mpi-io/iwrite_sh.c b/src/mpi/romio/mpi-io/iwrite_sh.c
index 8d3c7cd..4221d33 100644
--- a/src/mpi/romio/mpi-io/iwrite_sh.c
+++ b/src/mpi/romio/mpi-io/iwrite_sh.c
@@ -41,7 +41,7 @@ Output Parameters:
#include "mpiu_greq.h"
#endif
-int MPI_File_iwrite_shared(MPI_File fh, const void *buf, int count,
+int MPI_File_iwrite_shared(MPI_File fh, ROMIO_CONST void *buf, int count,
MPI_Datatype datatype, MPIO_Request *request)
{
int error_code, buftype_is_contig, filetype_is_contig;
diff --git a/src/mpi/romio/mpi-io/mpioimpl.h b/src/mpi/romio/mpi-io/mpioimpl.h
index e869684..77b18cb 100644
--- a/src/mpi/romio/mpi-io/mpioimpl.h
+++ b/src/mpi/romio/mpi-io/mpioimpl.h
@@ -14,7 +14,6 @@
#include "adio.h"
#include "mpio.h"
-#include "mpiu_external32.h"
#ifdef ROMIO_INSIDE_MPICH
#include "glue_romio.h"
@@ -59,6 +58,14 @@ MPI_Delete_function ADIOI_End_call;
/* common initialization routine */
void MPIR_MPIOInit(int * error_code);
+#ifdef HAVE_MPIIO_CONST
+#define ROMIO_CONST const
+#else
+#define ROMIO_CONST
+#endif
+
+#include "mpiu_external32.h"
+
#include "mpioprof.h"
diff --git a/src/mpi/romio/mpi-io/mpiu_external32.c b/src/mpi/romio/mpi-io/mpiu_external32.c
index ba22df2..ce2253b 100644
--- a/src/mpi/romio/mpi-io/mpiu_external32.c
+++ b/src/mpi/romio/mpi-io/mpiu_external32.c
@@ -28,8 +28,13 @@ int MPIU_write_external32_conversion_fn (const void *userbuf, MPI_Datatype datat
if (is_contig)
{
+#ifdef HAVE_MPIIO_CONST
mpi_errno = MPI_Pack_external("external32", userbuf, count,
datatype, filebuf, bytes, &position);
+#else
+ mpi_errno = MPI_Pack_external("external32", (void *)userbuf, count,
+ datatype, filebuf, bytes, &position);
+#endif
if (mpi_errno != MPI_SUCCESS)
goto fn_exit;
}
@@ -43,8 +48,13 @@ int MPIU_write_external32_conversion_fn (const void *userbuf, MPI_Datatype datat
goto fn_exit;
}
+#ifdef HAVE_MPIIO_CONST
mpi_errno = MPI_Pack_external("external32", userbuf, count,
datatype, tmp_buf, bytes, &position);
+#else
+ mpi_errno = MPI_Pack_external("external32", (void *)userbuf, count,
+ datatype, tmp_buf, bytes, &position);
+#endif
if (mpi_errno != MPI_SUCCESS)
{
ADIOI_Free(tmp_buf);
diff --git a/src/mpi/romio/mpi-io/open.c b/src/mpi/romio/mpi-io/open.c
index 80ea26e..e8cdea3 100644
--- a/src/mpi/romio/mpi-io/open.c
+++ b/src/mpi/romio/mpi-io/open.c
@@ -43,7 +43,7 @@ Output Parameters:
.N fortran
@*/
-int MPI_File_open(MPI_Comm comm, const char *filename, int amode,
+int MPI_File_open(MPI_Comm comm, ROMIO_CONST char *filename, int amode,
MPI_Info info, MPI_File *fh)
{
int error_code = MPI_SUCCESS, file_system, flag, tmp_amode=0, rank;
diff --git a/src/mpi/romio/mpi-io/register_datarep.c b/src/mpi/romio/mpi-io/register_datarep.c
index 84767e8..c2dba7b 100644
--- a/src/mpi/romio/mpi-io/register_datarep.c
+++ b/src/mpi/romio/mpi-io/register_datarep.c
@@ -48,7 +48,7 @@ Input Parameters:
.N fortran
@*/
-int MPI_Register_datarep(const char *datarep,
+int MPI_Register_datarep(ROMIO_CONST char *datarep,
MPI_Datarep_conversion_function *read_conversion_fn,
MPI_Datarep_conversion_function *write_conversion_fn,
MPI_Datarep_extent_function *dtype_file_extent_fn,
diff --git a/src/mpi/romio/mpi-io/set_view.c b/src/mpi/romio/mpi-io/set_view.c
index 89762b5..482b9ac 100644
--- a/src/mpi/romio/mpi-io/set_view.c
+++ b/src/mpi/romio/mpi-io/set_view.c
@@ -37,7 +37,7 @@ Input Parameters:
.N fortran
@*/
int MPI_File_set_view(MPI_File fh, MPI_Offset disp, MPI_Datatype etype,
- MPI_Datatype filetype, const char *datarep, MPI_Info info)
+ MPI_Datatype filetype, ROMIO_CONST char *datarep, MPI_Info info)
{
int error_code;
MPI_Count filetype_size, etype_size;
diff --git a/src/mpi/romio/mpi-io/wr_atallb.c b/src/mpi/romio/mpi-io/wr_atallb.c
index 07fe989..17de197 100644
--- a/src/mpi/romio/mpi-io/wr_atallb.c
+++ b/src/mpi/romio/mpi-io/wr_atallb.c
@@ -36,7 +36,7 @@ Input Parameters:
.N fortran
@*/
-int MPI_File_write_at_all_begin(MPI_File fh, MPI_Offset offset, const void *buf,
+int MPI_File_write_at_all_begin(MPI_File fh, MPI_Offset offset, ROMIO_CONST void *buf,
int count, MPI_Datatype datatype)
{
int error_code;
diff --git a/src/mpi/romio/mpi-io/wr_atalle.c b/src/mpi/romio/mpi-io/wr_atalle.c
index dc41651..50b4732 100644
--- a/src/mpi/romio/mpi-io/wr_atalle.c
+++ b/src/mpi/romio/mpi-io/wr_atalle.c
@@ -35,7 +35,7 @@ Output Parameters:
.N fortran
@*/
-int MPI_File_write_at_all_end(MPI_File fh, const void *buf, MPI_Status *status)
+int MPI_File_write_at_all_end(MPI_File fh, ROMIO_CONST void *buf, MPI_Status *status)
{
int error_code;
static char myname[] = "MPI_FILE_WRITE_AT_ALL_END";
diff --git a/src/mpi/romio/mpi-io/write.c b/src/mpi/romio/mpi-io/write.c
index ef066a1..2544db3 100644
--- a/src/mpi/romio/mpi-io/write.c
+++ b/src/mpi/romio/mpi-io/write.c
@@ -38,7 +38,7 @@ Output Parameters:
.N fortran
@*/
-int MPI_File_write(MPI_File fh, const void *buf, int count,
+int MPI_File_write(MPI_File fh, ROMIO_CONST void *buf, int count,
MPI_Datatype datatype, MPI_Status *status)
{
int error_code;
diff --git a/src/mpi/romio/mpi-io/write_all.c b/src/mpi/romio/mpi-io/write_all.c
index 822330a..f4307bb 100644
--- a/src/mpi/romio/mpi-io/write_all.c
+++ b/src/mpi/romio/mpi-io/write_all.c
@@ -39,7 +39,7 @@ Output Parameters:
.N fortran
@*/
-int MPI_File_write_all(MPI_File fh, const void *buf, int count,
+int MPI_File_write_all(MPI_File fh, ROMIO_CONST void *buf, int count,
MPI_Datatype datatype, MPI_Status *status)
{
int error_code;
diff --git a/src/mpi/romio/mpi-io/write_allb.c b/src/mpi/romio/mpi-io/write_allb.c
index e7e2fc2..adeeeee 100644
--- a/src/mpi/romio/mpi-io/write_allb.c
+++ b/src/mpi/romio/mpi-io/write_allb.c
@@ -35,7 +35,7 @@ Input Parameters:
.N fortran
@*/
-int MPI_File_write_all_begin(MPI_File fh, const void *buf, int count,
+int MPI_File_write_all_begin(MPI_File fh, ROMIO_CONST void *buf, int count,
MPI_Datatype datatype)
{
int error_code;
diff --git a/src/mpi/romio/mpi-io/write_alle.c b/src/mpi/romio/mpi-io/write_alle.c
index 3e3d1a0..28972f1 100644
--- a/src/mpi/romio/mpi-io/write_alle.c
+++ b/src/mpi/romio/mpi-io/write_alle.c
@@ -35,7 +35,7 @@ Output Parameters:
.N fortran
@*/
-int MPI_File_write_all_end(MPI_File fh, const void *buf, MPI_Status *status)
+int MPI_File_write_all_end(MPI_File fh, ROMIO_CONST void *buf, MPI_Status *status)
{
int error_code;
static char myname[] = "MPI_FILE_WRITE_ALL_END";
diff --git a/src/mpi/romio/mpi-io/write_at.c b/src/mpi/romio/mpi-io/write_at.c
index 16980ff..db1066d 100644
--- a/src/mpi/romio/mpi-io/write_at.c
+++ b/src/mpi/romio/mpi-io/write_at.c
@@ -39,7 +39,7 @@ Output Parameters:
.N fortran
@*/
-int MPI_File_write_at(MPI_File fh, MPI_Offset offset, const void *buf,
+int MPI_File_write_at(MPI_File fh, MPI_Offset offset, ROMIO_CONST void *buf,
int count, MPI_Datatype datatype, MPI_Status *status)
{
int error_code;
diff --git a/src/mpi/romio/mpi-io/write_atall.c b/src/mpi/romio/mpi-io/write_atall.c
index fda31ee..8f8328d 100644
--- a/src/mpi/romio/mpi-io/write_atall.c
+++ b/src/mpi/romio/mpi-io/write_atall.c
@@ -40,7 +40,7 @@ Output Parameters:
.N fortran
@*/
-int MPI_File_write_at_all(MPI_File fh, MPI_Offset offset, const void *buf,
+int MPI_File_write_at_all(MPI_File fh, MPI_Offset offset, ROMIO_CONST void *buf,
int count, MPI_Datatype datatype,
MPI_Status *status)
{
diff --git a/src/mpi/romio/mpi-io/write_ord.c b/src/mpi/romio/mpi-io/write_ord.c
index fd28480..3bd45ee 100644
--- a/src/mpi/romio/mpi-io/write_ord.c
+++ b/src/mpi/romio/mpi-io/write_ord.c
@@ -40,7 +40,7 @@ Output Parameters:
.N fortran
@*/
-int MPI_File_write_ordered(MPI_File fh, const void *buf, int count,
+int MPI_File_write_ordered(MPI_File fh, ROMIO_CONST void *buf, int count,
MPI_Datatype datatype, MPI_Status *status)
{
int error_code, nprocs, myrank;
diff --git a/src/mpi/romio/mpi-io/write_ordb.c b/src/mpi/romio/mpi-io/write_ordb.c
index 968df19..1f16f45 100644
--- a/src/mpi/romio/mpi-io/write_ordb.c
+++ b/src/mpi/romio/mpi-io/write_ordb.c
@@ -36,7 +36,7 @@ Output Parameters:
.N fortran
@*/
-int MPI_File_write_ordered_begin(MPI_File fh, const void *buf, int count,
+int MPI_File_write_ordered_begin(MPI_File fh, ROMIO_CONST void *buf, int count,
MPI_Datatype datatype)
{
int error_code, nprocs, myrank;
diff --git a/src/mpi/romio/mpi-io/write_orde.c b/src/mpi/romio/mpi-io/write_orde.c
index 75836fb..c8db36c 100644
--- a/src/mpi/romio/mpi-io/write_orde.c
+++ b/src/mpi/romio/mpi-io/write_orde.c
@@ -35,7 +35,7 @@ Output Parameters:
.N fortran
@*/
-int MPI_File_write_ordered_end(MPI_File fh, const void *buf, MPI_Status *status)
+int MPI_File_write_ordered_end(MPI_File fh, ROMIO_CONST void *buf, MPI_Status *status)
{
int error_code;
static char myname[] = "MPI_FILE_WRITE_ORDERED_END";
diff --git a/src/mpi/romio/mpi-io/write_sh.c b/src/mpi/romio/mpi-io/write_sh.c
index 39b72ce..622dd27 100644
--- a/src/mpi/romio/mpi-io/write_sh.c
+++ b/src/mpi/romio/mpi-io/write_sh.c
@@ -39,7 +39,7 @@ Output Parameters:
.N fortran
@*/
-int MPI_File_write_shared(MPI_File fh, const void *buf, int count,
+int MPI_File_write_shared(MPI_File fh, ROMIO_CONST void *buf, int count,
MPI_Datatype datatype, MPI_Status *status)
{
int error_code, buftype_is_contig, filetype_is_contig;
http://git.mpich.org/mpich.git/commitdiff/1dbbd09a9bf22dc3121f7fab9c75a382e…
commit 1dbbd09a9bf22dc3121f7fab9c75a382e7792c2e
Author: Rob Latham <robl(a)mcs.anl.gov>
Date: Mon Dec 9 13:16:35 2013 -0600
ROMIO standalone: check HINDEXED_BLOCK
the HINDEXED_BLOCK combiner did not exist in older MPI implementations
Signed-off-by: Ken Raffenetti <raffenet(a)mcs.anl.gov>
diff --git a/src/mpi/romio/adio/common/flatten.c b/src/mpi/romio/adio/common/flatten.c
index 420ef21..6437705 100644
--- a/src/mpi/romio/adio/common/flatten.c
+++ b/src/mpi/romio/adio/common/flatten.c
@@ -454,7 +454,9 @@ void ADIOI_Flatten(MPI_Datatype datatype, ADIOI_Flatlist_node *flat,
/* FIXME: using the same code as indexed_block for
* hindexed_block doesn't look correct. Needs to be carefully
* looked into. */
+#if defined HAVE_DECL_MPI_COMBINER_HINDEXED_BLOCK && HAVE_DECL_MPI_COMBINER_HINDEXED_BLOCK
case MPI_COMBINER_HINDEXED_BLOCK:
+#endif
case MPI_COMBINER_INDEXED_BLOCK:
#ifdef FLATTEN_DEBUG
DBG_FPRINTF(stderr,"ADIOI_Flatten:: MPI_COMBINER_INDEXED_BLOCK\n");
diff --git a/src/mpi/romio/configure.ac b/src/mpi/romio/configure.ac
index 45be7c0..8b867a5 100644
--- a/src/mpi/romio/configure.ac
+++ b/src/mpi/romio/configure.ac
@@ -1560,6 +1560,7 @@ if test $WITHIN_KNOWN_MPI_IMPL = no ; then
PAC_TEST_MPIU_FUNCS
AC_DEFINE(PRINT_ERR_MSG,1,[Define for printing error messages])
AC_CHECK_TYPE(MPI_Count,[],[AC_DEFINE_UNQUOTED([MPI_Count],[MPI_Aint],[Define to "MPI_Aint" if MPI does not provide MPI_Count]) ])
+ AC_CHECK_DECLS([MPI_COMBINER_HINDEXED_BLOCK], [], [], [[#include <mpi.h>]])
fi
#
if test -z "$TEST_CC" ; then
http://git.mpich.org/mpich.git/commitdiff/86d7bea5cd7c62fff00ba2cd6ef7cf27b…
commit 86d7bea5cd7c62fff00ba2cd6ef7cf27b1133fd4
Author: Rob Latham <robl(a)mcs.anl.gov>
Date: Mon Dec 9 13:14:47 2013 -0600
ROMIO standalone: remove internal headers
the bluegene drivers can rely on MPIX routines (declared in mpix.h)
instead of device-internal routines (e.g. MPIX_Hardware() )
Signed-off-by: Ken Raffenetti <raffenet(a)mcs.anl.gov>
diff --git a/src/mpi/romio/adio/ad_bg/ad_bg_aggrs.c b/src/mpi/romio/adio/ad_bg/ad_bg_aggrs.c
index d8b42ef..d6eeff4 100644
--- a/src/mpi/romio/adio/ad_bg/ad_bg_aggrs.c
+++ b/src/mpi/romio/adio/ad_bg/ad_bg_aggrs.c
@@ -23,7 +23,6 @@
#include "mpe.h"
#endif
-#include "mpidi_macros.h"
#ifdef USE_DBG_LOGGING
#define AGG_DEBUG 1
diff --git a/src/mpi/romio/adio/ad_bg/ad_bg_pset.c b/src/mpi/romio/adio/ad_bg/ad_bg_pset.c
index 5eaf1c1..ea6774f 100644
--- a/src/mpi/romio/adio/ad_bg/ad_bg_pset.c
+++ b/src/mpi/romio/adio/ad_bg/ad_bg_pset.c
@@ -16,9 +16,11 @@
#include <stdlib.h>
#include "ad_bg.h"
#include "ad_bg_pset.h"
-#include "mpidimpl.h"
#include <firmware/include/personality.h>
+#ifdef HAVE_MPIX_H
+#include <mpix.h>
+#endif
ADIOI_BG_ProcInfo_t *
ADIOI_BG_ProcInfo_new()
diff --git a/src/mpi/romio/adio/ad_bg/ad_bg_rdcoll.c b/src/mpi/romio/adio/ad_bg/ad_bg_rdcoll.c
index fe48755..2307dfd 100644
--- a/src/mpi/romio/adio/ad_bg/ad_bg_rdcoll.c
+++ b/src/mpi/romio/adio/ad_bg/ad_bg_rdcoll.c
@@ -19,7 +19,6 @@
#include "ad_bg_pset.h"
#include "ad_bg_aggrs.h"
-#include "mpitypedefs.h"
#ifdef PROFILE
#include "mpe.h"
diff --git a/src/mpi/romio/adio/ad_bg/ad_bg_wrcoll.c b/src/mpi/romio/adio/ad_bg/ad_bg_wrcoll.c
index c9312f3..a25fd04 100644
--- a/src/mpi/romio/adio/ad_bg/ad_bg_wrcoll.c
+++ b/src/mpi/romio/adio/ad_bg/ad_bg_wrcoll.c
@@ -18,7 +18,6 @@
#include "ad_bg_pset.h"
#include "ad_bg_aggrs.h"
-#include "mpitypedefs.h"
#ifdef AGGREGATION_PROFILE
#include "mpe.h"
diff --git a/src/mpi/romio/configure.ac b/src/mpi/romio/configure.ac
index ee592ff..45be7c0 100644
--- a/src/mpi/romio/configure.ac
+++ b/src/mpi/romio/configure.ac
@@ -427,6 +427,7 @@ AC_TYPE_OFF_T
# Find the CPP before the header check
AC_PROG_CPP
AC_CHECK_HEADERS([unistd.h fcntl.h malloc.h stddef.h sys/types.h])
+AC_CHECK_HEADERS(mpix.h,,,[#include <mpi.h>])
#
# When compiling ROMIO on Darwin with _POSIX_C_SOURCE defined (such as when
@@ -1546,6 +1547,7 @@ elif test $FROM_MPICH = yes ; then
AC_DEFINE(HAVE_STATUS_SET_BYTES,1,[Define if status_set_bytes available])
DEFINE_HAVE_MPI_GREQUEST="#define HAVE_MPI_GREQUEST 1"
AC_DEFINE(HAVE_MPIU_FUNCS,1,[Define if MPICH memory tracing macros defined])
+ AC_DEFINE(HAVE_MPIX_H, 1, [])
fi
#
#
http://git.mpich.org/mpich.git/commitdiff/5787d1e29260a9379348678eaf5a26158…
commit 5787d1e29260a9379348678eaf5a2615874ad426
Author: Rob Latham <robl(a)mcs.anl.gov>
Date: Mon Dec 9 11:28:11 2013 -0600
ROMIO standalone: check for MPI_Count
older MPI implementations may not have MPI_Count. MPI_Aint is an ok
substitute.
Signed-off-by: Ken Raffenetti <raffenet(a)mcs.anl.gov>
diff --git a/src/mpi/romio/configure.ac b/src/mpi/romio/configure.ac
index ba39b6f..ee592ff 100644
--- a/src/mpi/romio/configure.ac
+++ b/src/mpi/romio/configure.ac
@@ -1557,6 +1557,7 @@ if test $WITHIN_KNOWN_MPI_IMPL = no ; then
PAC_TEST_MPI_GREQUEST
PAC_TEST_MPIU_FUNCS
AC_DEFINE(PRINT_ERR_MSG,1,[Define for printing error messages])
+ AC_CHECK_TYPE(MPI_Count,[],[AC_DEFINE_UNQUOTED([MPI_Count],[MPI_Aint],[Define to "MPI_Aint" if MPI does not provide MPI_Count]) ])
fi
#
if test -z "$TEST_CC" ; then
-----------------------------------------------------------------------
Summary of changes:
src/mpi/romio/adio/ad_bg/ad_bg_aggrs.c | 1 -
src/mpi/romio/adio/ad_bg/ad_bg_pset.c | 4 +++-
src/mpi/romio/adio/ad_bg/ad_bg_rdcoll.c | 1 -
src/mpi/romio/adio/ad_bg/ad_bg_wrcoll.c | 1 -
src/mpi/romio/adio/common/flatten.c | 2 ++
src/mpi/romio/configure.ac | 6 ++++++
src/mpi/romio/mpi-io/delete.c | 2 +-
src/mpi/romio/mpi-io/iwrite.c | 2 +-
src/mpi/romio/mpi-io/iwrite_at.c | 2 +-
src/mpi/romio/mpi-io/iwrite_sh.c | 2 +-
src/mpi/romio/mpi-io/mpioimpl.h | 9 ++++++++-
src/mpi/romio/mpi-io/mpiu_external32.c | 10 ++++++++++
src/mpi/romio/mpi-io/open.c | 2 +-
src/mpi/romio/mpi-io/register_datarep.c | 2 +-
src/mpi/romio/mpi-io/set_view.c | 2 +-
src/mpi/romio/mpi-io/wr_atallb.c | 2 +-
src/mpi/romio/mpi-io/wr_atalle.c | 2 +-
src/mpi/romio/mpi-io/write.c | 2 +-
src/mpi/romio/mpi-io/write_all.c | 2 +-
src/mpi/romio/mpi-io/write_allb.c | 2 +-
src/mpi/romio/mpi-io/write_alle.c | 2 +-
src/mpi/romio/mpi-io/write_at.c | 2 +-
src/mpi/romio/mpi-io/write_atall.c | 2 +-
src/mpi/romio/mpi-io/write_ord.c | 2 +-
src/mpi/romio/mpi-io/write_ordb.c | 2 +-
src/mpi/romio/mpi-io/write_orde.c | 2 +-
src/mpi/romio/mpi-io/write_sh.c | 2 +-
27 files changed, 48 insertions(+), 24 deletions(-)
hooks/post-receive
--
MPICH primary repository
1
0