@@ -1028,8 +1028,6 @@ extern int __kmp_place_num_threads_per_core;
1028
1028
# define KMP_DEFAULT_STKSIZE ((size_t )(1024 * 1024 ))
1029
1029
#endif
1030
1030
1031
- #define KMP_DEFAULT_MONITOR_STKSIZE ((size_t )(64 * 1024 ))
1032
-
1033
1031
#define KMP_DEFAULT_MALLOC_POOL_INCR ((size_t ) (1024 * 1024 ))
1034
1032
#define KMP_MIN_MALLOC_POOL_INCR ((size_t ) (4 * 1024 ))
1035
1033
#define KMP_MAX_MALLOC_POOL_INCR (~((size_t )1 <<((sizeof (size_t )*(1 <<3 ))-1 )))
@@ -1045,12 +1043,16 @@ extern int __kmp_place_num_threads_per_core;
1045
1043
#define KMP_MIN_STKPADDING (0 )
1046
1044
#define KMP_MAX_STKPADDING (2 * 1024 * 1024 )
1047
1045
1048
- #define KMP_MIN_MONITOR_WAKEUPS (1 ) /* min number of times monitor wakes up per second */
1049
- #define KMP_MAX_MONITOR_WAKEUPS (1000 ) /* maximum number of times monitor can wake up per second */
1050
1046
#define KMP_BLOCKTIME_MULTIPLIER (1000 ) /* number of blocktime units per second */
1051
1047
#define KMP_MIN_BLOCKTIME (0 )
1052
1048
#define KMP_MAX_BLOCKTIME (INT_MAX) /* Must be this for "infinite" setting the work */
1053
1049
#define KMP_DEFAULT_BLOCKTIME (200 ) /* __kmp_blocktime is in milliseconds */
1050
+
1051
+ #if KMP_USE_MONITOR
1052
+ #define KMP_DEFAULT_MONITOR_STKSIZE ((size_t )(64 * 1024 ))
1053
+ #define KMP_MIN_MONITOR_WAKEUPS (1 ) /* min number of times monitor wakes up per second */
1054
+ #define KMP_MAX_MONITOR_WAKEUPS (1000 ) /* maximum number of times monitor can wake up per second */
1055
+
1054
1056
/* Calculate new number of monitor wakeups for a specific block time based on previous monitor_wakeups */
1055
1057
/* Only allow increasing number of wakeups */
1056
1058
#define KMP_WAKEUPS_FROM_BLOCKTIME (blocktime, monitor_wakeups ) \
@@ -1063,6 +1065,7 @@ extern int __kmp_place_num_threads_per_core;
1063
1065
#define KMP_INTERVALS_FROM_BLOCKTIME (blocktime, monitor_wakeups ) \
1064
1066
( ( (blocktime) + (KMP_BLOCKTIME_MULTIPLIER / (monitor_wakeups)) - 1 ) / \
1065
1067
(KMP_BLOCKTIME_MULTIPLIER / (monitor_wakeups)) )
1068
+ #endif // KMP_USE_MONITOR
1066
1069
1067
1070
#define KMP_MIN_STATSCOLS 40
1068
1071
#define KMP_MAX_STATSCOLS 4096
@@ -1810,7 +1813,9 @@ typedef struct kmp_internal_control {
1810
1813
kmp_int8 dynamic; /* internal control for dynamic adjustment of threads (per thread) */
1811
1814
kmp_int8 bt_set; /* internal control for whether blocktime is explicitly set */
1812
1815
int blocktime; /* internal control for blocktime */
1816
+ #if KMP_USE_MONITOR
1813
1817
int bt_intervals; /* internal control for blocktime intervals */
1818
+ #endif
1814
1819
int nproc; /* internal control for #threads for next parallel region (per thread) */
1815
1820
int max_active_levels; /* internal control for max_active_levels */
1816
1821
kmp_r_sched_t sched; /* internal control for runtime schedule {sched,chunk} pair */
@@ -2001,7 +2006,9 @@ typedef struct kmp_local {
2001
2006
2002
2007
#define get__blocktime ( xteam, xtid ) ((xteam)->t.t_threads[(xtid)]->th.th_current_task->td_icvs.blocktime)
2003
2008
#define get__bt_set ( xteam, xtid ) ((xteam)->t.t_threads[(xtid)]->th.th_current_task->td_icvs.bt_set)
2009
+ #if KMP_USE_MONITOR
2004
2010
#define get__bt_intervals ( xteam, xtid ) ((xteam)->t.t_threads[(xtid)]->th.th_current_task->td_icvs.bt_intervals)
2011
+ #endif
2005
2012
2006
2013
#define get__nested_2 (xteam,xtid ) ((xteam)->t.t_threads[(xtid)]->th.th_current_task->td_icvs.nested)
2007
2014
#define get__dynamic_2 (xteam,xtid ) ((xteam)->t.t_threads[(xtid)]->th.th_current_task->td_icvs.dynamic)
@@ -2011,8 +2018,10 @@ typedef struct kmp_local {
2011
2018
#define set__blocktime_team ( xteam, xtid, xval ) \
2012
2019
( ( (xteam)->t.t_threads[(xtid)]->th.th_current_task->td_icvs.blocktime ) = (xval) )
2013
2020
2021
+ #if KMP_USE_MONITOR
2014
2022
#define set__bt_intervals_team ( xteam, xtid, xval ) \
2015
2023
( ( (xteam)->t.t_threads[(xtid)]->th.th_current_task->td_icvs.bt_intervals ) = (xval) )
2024
+ #endif
2016
2025
2017
2026
#define set__bt_set_team ( xteam, xtid, xval ) \
2018
2027
( ( (xteam)->t.t_threads[(xtid)]->th.th_current_task->td_icvs.bt_set ) = (xval) )
@@ -2380,7 +2389,9 @@ typedef struct KMP_ALIGN_CACHE kmp_base_info {
2380
2389
/* at the start of a barrier, and the values stored in the team are used */
2381
2390
/* at points in the code where the team struct is no longer guaranteed */
2382
2391
/* to exist (from the POV of worker threads). */
2392
+ #if KMP_USE_MONITOR
2383
2393
int th_team_bt_intervals;
2394
+ #endif
2384
2395
int th_team_bt_set;
2385
2396
2386
2397
@@ -2835,8 +2846,10 @@ extern int __kmp_tp_capacity; /* capacity of __kmp_threads if threadpr
2835
2846
extern int __kmp_tp_cached; /* whether threadprivate cache has been created (__kmpc_threadprivate_cached()) */
2836
2847
extern int __kmp_dflt_nested; /* nested parallelism enabled by default a la OMP_NESTED */
2837
2848
extern int __kmp_dflt_blocktime; /* number of milliseconds to wait before blocking (env setting) */
2849
+ #if KMP_USE_MONITOR
2838
2850
extern int __kmp_monitor_wakeups;/* number of times monitor wakes up per second */
2839
2851
extern int __kmp_bt_intervals; /* number of monitor timestamp intervals before blocking */
2852
+ #endif
2840
2853
#ifdef KMP_ADJUST_BLOCKTIME
2841
2854
extern int __kmp_zero_bt; /* whether blocktime has been forced to zero */
2842
2855
#endif /* KMP_ADJUST_BLOCKTIME */
0 commit comments