A batch workflow often expands a few parameter choices into repeated runs.

Program

Play the script to change the number of alpha values and watch the run count update.

level_count
parameter_grid.R
Replay: real traced execution (multi-file project)
level_count <- 2
alpha <- c(0.1, 0.2, 0.3)[seq_len(level_count)]
beta <- c("small", "large")
grid_size <- length(alpha) * length(beta)
label <- paste("runs", grid_size, sep = ":")
cat(label, "\n", sep = "")
level_count <- 1
alpha <- c(0.1, 0.2, 0.3)[seq_len(level_count)]
beta <- c("small", "large")
grid_size <- length(alpha) * length(beta)
label <- paste("runs", grid_size, sep = ":")
cat(label, "\n", sep = "")
level_count <- 3
alpha <- c(0.1, 0.2, 0.3)[seq_len(level_count)]
beta <- c("small", "large")
grid_size <- length(alpha) * length(beta)
label <- paste("runs", grid_size, sep = ":")
cat(label, "\n", sep = "")
  1. level_count ← 2

    1level_count <- 22alpha <- c(0.1, 0.2, 0.3)[seq_len(level_count)]
    values this step2level_count
  2. alpha ← 0.1, 0.2

    1level_count <- 22alpha <- c(0.1, 0.2, 0.3)[seq_len(level_count)]3beta <- c("small", "large")
    values this step0.1, 0.2alpha2level_count
  3. beta ← small, large

    2alpha <- c(0.1, 0.2, 0.3)[seq_len(level_count)]3beta <- c("small", "large")4grid_size <- length(alpha) * length(beta)
    values this stepsmall, largebeta
  4. grid_size ← 4

    3beta <- c("small", "large")4grid_size <- length(alpha) * length(beta)5label <- paste("runs", grid_size, sep = ":")
    values this step4grid_size2 valuesalpha2 valuesbeta
  5. label ← runs:4

    4grid_size <- length(alpha) * length(beta)5label <- paste("runs", grid_size, sep = ":")6cat(label, "\n", sep = "")
    values this stepruns:4label4grid_size
  6. cat(label, " ", sep = "")

    5label <- paste("runs", grid_size, sep = ":")6cat(label, "\n", sep = "")
    outputruns:4
    values this stepruns:4label
  1. level_count ← 1

    1level_count <- 12alpha <- c(0.1, 0.2, 0.3)[seq_len(level_count)]
    values this step1level_count
  2. alpha ← 0.1

    1level_count <- 12alpha <- c(0.1, 0.2, 0.3)[seq_len(level_count)]3beta <- c("small", "large")
    values this step0.1alpha1level_count
  3. beta ← small, large

    2alpha <- c(0.1, 0.2, 0.3)[seq_len(level_count)]3beta <- c("small", "large")4grid_size <- length(alpha) * length(beta)
    values this stepsmall, largebeta
  4. grid_size ← 2

    3beta <- c("small", "large")4grid_size <- length(alpha) * length(beta)5label <- paste("runs", grid_size, sep = ":")
    values this step2grid_size1 valuealpha2 valuesbeta
  5. label ← runs:2

    4grid_size <- length(alpha) * length(beta)5label <- paste("runs", grid_size, sep = ":")6cat(label, "\n", sep = "")
    values this stepruns:2label2grid_size
  6. cat(label, " ", sep = "")

    5label <- paste("runs", grid_size, sep = ":")6cat(label, "\n", sep = "")
    outputruns:2
    values this stepruns:2label
  1. level_count ← 3

    1level_count <- 32alpha <- c(0.1, 0.2, 0.3)[seq_len(level_count)]
    values this step3level_count
  2. alpha ← 0.1, 0.2, 0.3

    1level_count <- 32alpha <- c(0.1, 0.2, 0.3)[seq_len(level_count)]3beta <- c("small", "large")
    values this step0.1, 0.2, 0.3alpha3level_count
  3. beta ← small, large

    2alpha <- c(0.1, 0.2, 0.3)[seq_len(level_count)]3beta <- c("small", "large")4grid_size <- length(alpha) * length(beta)
    values this stepsmall, largebeta
  4. grid_size ← 6

    3beta <- c("small", "large")4grid_size <- length(alpha) * length(beta)5label <- paste("runs", grid_size, sep = ":")
    values this step6grid_size3 valuesalpha2 valuesbeta
  5. label ← runs:6

    4grid_size <- length(alpha) * length(beta)5label <- paste("runs", grid_size, sep = ":")6cat(label, "\n", sep = "")
    values this stepruns:6label6grid_size
  6. cat(label, " ", sep = "")

    5label <- paste("runs", grid_size, sep = ":")6cat(label, "\n", sep = "")
    outputruns:6
    values this stepruns:6label
parameter vector Each vector represents one set of choices for repeated runs.
grid size Multiplying vector lengths counts how many combinations will run.
batch planning A run-count label checks the workflow before any expensive work starts.