Automatic time-based configuration
Variable configuration is used to automatically change LSF configuration based on time windows. It is supported in the following files:
You define automatic configuration changes in configuration files by using if-else constructs and time expressions. After you change the files, reconfigure the cluster with the badmin reconfig command.
The expressions are evaluated by LSF every 10 minutes based on mbatchd start time. When an expression evaluates true, LSF dynamically changes the configuration based on the associated configuration statements. Reconfiguration is done in real time without restarting mbatchd, providing continuous system availability.
In the following examples, the #if, #else, #endif are not interpreted as comments by LSF but as if-else constructs.
Begin Host HOST_NAME r15s r1m pg host1 3/5 3/5 12/20 #if time(5:16:30-1:8:30
EDT) host2 3/5 3/5 12/20 #else host2 2/3 2/3 10/12 #endif host3 3/5 3/5 12/20 End Host
# if 18:30-19:30 is your short job express period, but # you want all jobs going to the short queue by default # and be subject to the thresholds of that queue # for all other hours, normal is the default queue #if time(18:30-19:30
EDT) DEFAULT_QUEUE=short #else DEFAULT_QUEUE=normal #endif
Begin Queue ... #if time(8:30-18:30
EDT) INTERACTIVE = ONLY # interactive only during day shift #endif #endif ... End Queue
From 12 - 1 p.m. daily, user smith has 10 job slots, but during other hours, user has only five job slots.
Begin User USER_NAME MAX_JOBS JL/P #if time(12-13
EDT) smith 10 - #else smith 5 - default 1 - #endif End User
Create if-else constructs
The if-else construct can express single decisions and multi-way decisions by including elif statements in the construct.
The syntax for constructing if-else expressions is:
The #endif part is mandatory and the #else part is optional.
The #elif expressions are evaluated in order. If any expression is true, the associated statement is used, and this terminates the whole chain.
The #else part handles the default case where none of the other conditions are satisfied.
When you use #elif, the #else and #endif parts are mandatory.
#if time(expression) statement #elif time(expression) statement #elif time(expression) statement #else statement #endif