nextmv Docs

Environment Variables and Cli Options

Environment Variables and Cli Options

All runners are configurable through the following environment variables. Runner options change how the runner outputs solutions. For instance, HOP_RUNNER_OUTPUT_SOLUTIONS default of last will only output the final improving solution in a Hop model. Solver options change how many states Hop allows in a diagram, how many states it pulls from the search queue, termination criteria, and randomization.

Environment VariableDefault
HOP_RUNNER_OUTPUT_QUIETnull
HOP_RUNNER_OUTPUT_SOLUTIONSlast
HOP_RUNNER_INPUT_PATH- (required for test runner)
HOP_RUNNER_OUTPUT_PATH- (required for test runner)
HOP_RUNNER_OUTPUT_STREAMnull
HOP_RUNNER_PROFILE_CPUnull
HOP_SOLVER_DIAGRAM_EXPANSION_LIMIT0
HOP_SOLVER_DIAGRAM_WIDTH10
HOP_SOLVER_LIMITS_DURATION0 (no limit)
HOP_SOLVER_LIMITS_NODES0 (no limit)
HOP_SOLVER_LIMITS_SOLUTIONS0 (no limit)
HOP_SOLVER_RANDOM_SEED0
HOP_SOLVER_SEARCH_BUFFER100

Solver options are automatically marshaled into model output in the options section of the JSON.

Similarly, Dash runner options affect the output of simulation events and where to create a CPU profile. Simulator options allow one to set simulation duration, and set a seed for randomization. Note that the default value of null for DASH_RUNNER_OUTPUT_EVENTS and DASH_RUNNER_OUTPUT_MEASURES means that events and measures data are not included in the output. Any other value tells the runner to include this data.

Environment VariableDefault
DASH_RUNNER_OUTPUT_EVENTSnull
DASH_RUNNER_OUTPUT_MEASURESnull
DASH_RUNNER_OUTPUT_LOG_LEVELall
DASH_RUNNER_OUTPUT_LOG_TYPESnull
DASH_RUNNER_OUTPUT_LOG_WARMUP_DURATION0 (no warmup)
DASH_RUNNER_OUTPUT_LOG_WARMUP_INCLUDEfalse
DASH_RUNNER_INPUT_PATH-
DASH_RUNNER_OUTPUT_PATH-
DASH_RUNNER_PROFILE_CPUnull
DASH_SIMULATOR_LIMITS_DURATION0 (no limit)
DASH_SIMULATOR_RANDOM_SEED0
DASH_SIMULATOR_TIME_DURATION0 (no limit)

To set a command-line flag, convert its corresponding environment variable to lowercase, replacing each underscore (_) with a period (.). For example,

-hop.solver.limits.solutions is equivalent to HOP_SOLVER_LIMITS_SOLUTIONS.

If both an environment variable and its corresponding flag are defined, the flag will overwrite the variable.

HOP_SOLVER_LIMITS_DURATION should be set to a non-zero value in production i.e. 1h or 1m30s. Valid time units are as follows, according to time.ParseDuration from Go's standard library.

  • ns (nanoseconds)
  • us/µs (microseconds)
  • ms (milliseconds)
  • s (seconds)
  • m (minutes)
  • h (hours)