Workflow Automation
Parameter Grid
Count Planned Runs
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.
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 = "")
level_count ← 2
1level_count <- 22alpha <- c(0.1, 0.2, 0.3)[seq_len(level_count)]values this step2level_countalpha ← 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_countbeta ← 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, largebetagrid_size ← 4
3beta <- c("small", "large")4grid_size <- length(alpha) * length(beta)5label <- paste("runs", grid_size, sep = ":")values this step4grid_size2 valuesalpha2 valuesbetalabel ← runs:4
4grid_size <- length(alpha) * length(beta)5label <- paste("runs", grid_size, sep = ":")6cat(label, "\n", sep = "")values this stepruns:4label4grid_sizecat(label, " ", sep = "")
5label <- paste("runs", grid_size, sep = ":")6cat(label, "\n", sep = "")outputruns:4values this stepruns:4label
level_count ← 1
1level_count <- 12alpha <- c(0.1, 0.2, 0.3)[seq_len(level_count)]values this step1level_countalpha ← 0.1
1level_count <- 12alpha <- c(0.1, 0.2, 0.3)[seq_len(level_count)]3beta <- c("small", "large")values this step0.1alpha1level_countbeta ← 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, largebetagrid_size ← 2
3beta <- c("small", "large")4grid_size <- length(alpha) * length(beta)5label <- paste("runs", grid_size, sep = ":")values this step2grid_size1 valuealpha2 valuesbetalabel ← runs:2
4grid_size <- length(alpha) * length(beta)5label <- paste("runs", grid_size, sep = ":")6cat(label, "\n", sep = "")values this stepruns:2label2grid_sizecat(label, " ", sep = "")
5label <- paste("runs", grid_size, sep = ":")6cat(label, "\n", sep = "")outputruns:2values this stepruns:2label
level_count ← 3
1level_count <- 32alpha <- c(0.1, 0.2, 0.3)[seq_len(level_count)]values this step3level_countalpha ← 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_countbeta ← 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, largebetagrid_size ← 6
3beta <- c("small", "large")4grid_size <- length(alpha) * length(beta)5label <- paste("runs", grid_size, sep = ":")values this step6grid_size3 valuesalpha2 valuesbetalabel ← runs:6
4grid_size <- length(alpha) * length(beta)5label <- paste("runs", grid_size, sep = ":")6cat(label, "\n", sep = "")values this stepruns:6label6grid_sizecat(label, " ", sep = "")
5label <- paste("runs", grid_size, sep = ":")6cat(label, "\n", sep = "")outputruns:6values 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.