torc 0.23.0

Workflow management system
// Zip Parameter Mode Example
// Demonstrates using parameter_mode "zip" for paired parameter expansion
//
// When using Cartesian product (default): 3 datasets x 3 models = 9 jobs
// When using zip mode: 3 pairs = 3 jobs (dataset[i] paired with model[i])
//
// This is useful when you have pre-determined parameter combinations rather than
// wanting to test all possible combinations.

name "zip_parameter_example"
description "Example workflow demonstrating zip parameter mode for paired parameters"

// Training jobs using zip mode - each dataset is paired with a specific model
// Instead of 3x3=9 combinations, we get exactly 3 jobs:
//   - cifar10 with resnet
//   - mnist with cnn
//   - imagenet with transformer
job "train_{dataset}_{model}" {
    command "python train.py --dataset={dataset} --model={model}"
    output_files "model_{dataset}_{model}"
    parameters {
        dataset "['cifar10', 'mnist', 'imagenet']"
        model "['resnet', 'cnn', 'transformer']"
    }
    parameter_mode "zip"
}

// Evaluation jobs also use zip mode to match the training jobs
job "evaluate_{dataset}_{model}" {
    command "python evaluate.py --model=/models/{dataset}_{model}.pt"
    depends_on_job "train_{dataset}_{model}"
    input_files "model_{dataset}_{model}"
    parameters {
        dataset "['cifar10', 'mnist', 'imagenet']"
        model "['resnet', 'cnn', 'transformer']"
    }
    parameter_mode "zip"
}

// File specifications also support zip mode
file "model_{dataset}_{model}" {
    path "/models/{dataset}_{model}.pt"
    parameters {
        dataset "['cifar10', 'mnist', 'imagenet']"
        model "['resnet', 'cnn', 'transformer']"
    }
    parameter_mode "zip"
}