# pipeline-parallel-inference — run profile (.env style) # ---------------------------------------------------------------------------- # This is the single source of truth for the knobs that used to be scattered # across the binaries and one operator's shell. Copy it to set up a run: # # cp profiles/example.env profiles/local.env # untracked; put real secrets here # PP_PROFILE=profiles/local.env cargo run --bin pp-orchestrator -- --seed ... # # When PP_PROFILE is unset, profiles/local.env is loaded automatically if it # exists. The run scripts pick this up too (the binaries load it at startup). # # PRECEDENCE (lowest -> highest): # compiled default < this profile < real process env < CLI flag # i.e. anything already exported in your shell wins over the file, and a # --flag wins over everything. The profile only fills in what is unset. # # Lines are KEY=VALUE; `export ` prefix and surrounding quotes are tolerated; # `#` comments and blank lines are ignored. # ---------------------------------------------------------------------------- # --- Networking / relay ----------------------------------------------------- # Custom iroh relay the whole cluster homes onto (a swactor-iroh-relay on a # VPS). Leave unset to use the iroh default relays. Placeholder below — put # YOUR real relay only in profiles/local.env (gitignored), not here. #SWACTOR_IROH_RELAY_URL=https://relay.example.com # --- Topology --------------------------------------------------------------- # Number of pipeline stages (>= 2). pp-orchestrator also accepts --num-stages. #NUM_STAGES=2 # --- Compute target (vast.ai / docker) -------------------------------------- # Container image to run on each node. The run scripts already read PP_IMAGE; # pp-orchestrator's --image default now reads it too. Set to your registry tag. #PP_IMAGE=swactor-pp-gpu:latest # GPU class requested when leasing on vast.ai (pp-orchestrator --gpu overrides). #PP_GPU=RTX 3060 # --- Workload (what each stage computes) ------------------------------------ # Model identifier handed to the worker. #MODEL= # Python worker script + interpreter (per-stage compute). WORKER_SCRIPT is the # pp-worker default; pp-orchestrator --worker ships a script to remote nodes. #WORKER_SCRIPT=./pp_tinygrad_worker.py #WORKER_CMD=python3 #PYTHON=python3 # Stub mode: skip the real worker, echo activations (fast local smoke runs). #PP_WORKER_STUB=1 # Inference request prompt + token budget (pp-orchestrator --prompt/--max-tokens). #MAX_TOKENS=64 # --- Timeouts (seconds; sane defaults baked in — override only if needed) --- #PP_CONVERGE_TIMEOUT_SECS=1200 #PP_WORKER_READY_TIMEOUT_SECS=1800 #PP_NEIGHBOR_RESOLVE_TIMEOUT_SECS=1800 #PP_PIPELINE_WIRED_TIMEOUT_SECS=1800 #PP_AWAIT_RESPONSE_TIMEOUT_SECS=600 #PP_RESOLVE_TIMEOUT_SECS=1200 # --- Diagnostics / dashboards (optional) ------------------------------------ #PP_DASHBOARD=1 #PP_DASHBOARD_PORT=9090 #SWACTOR_DIAG_COLLECTOR_URL=http://127.0.0.1:9080 # Secrets (orchestrator / stage identity). Keep real values in local.env only. #PP_ORCH_SECRET= #PP_STAGE_SECRET=