PYTHON := python3 REPO_ROOT := $(abspath .) LEGACY_ROOT := $(REPO_ROOT)/../collaborations/to_ptbc/evc/cost_of_substitution ORCH := $(REPO_ROOT)/scripts/run_orchestration.py DB := $(REPO_ROOT)/runs/state/cos-orch.sqlite RESULT_ROOT := $(REPO_ROOT)/runs/results SCRATCH_ROOT := $(REPO_ROOT)/runs/scratch FIG1_M005 := $(LEGACY_ROOT)/examples/track1_figure1_paper_M_0_05.json FIG1_M025 := $(LEGACY_ROOT)/examples/track1_figure1_paper_M_0_25.json FIG1_M05 := $(LEGACY_ROOT)/examples/track1_figure1_paper_M_0_5.json FIG1_M10 := $(LEGACY_ROOT)/examples/track1_figure1_paper_M_1_0.json FIG1_M100 := $(LEGACY_ROOT)/examples/track1_figure1_paper_M_10_0.json .PHONY: help init doctor list-jobs run-one run-loop run-loop-one collate-figure1 \ submit-figure1-m005 submit-figure1-m025 submit-figure1-m05 submit-figure1-m10 submit-figure1-m100 \ submit-all-figure1 status results-tree help: @echo "Targets:" @echo " init Create run directories and initialize the SQLite registry" @echo " doctor Show key paths and verify local orchestration and legacy backend paths" @echo " list-jobs List jobs in the local registry" @echo " run-one Claim and run one queued job" @echo " run-loop Run worker loop until queue empty" @echo " run-loop-one Run exactly one queued job through the worker loop" @echo " collate-figure1 Collate completed Track 1 Figure 1 jobs" @echo " submit-figure1-m005 Submit Figure 1 paper-scale jobs for M=0.05" @echo " submit-figure1-m025 Submit Figure 1 paper-scale jobs for M=0.25" @echo " submit-figure1-m05 Submit Figure 1 paper-scale jobs for M=0.5" @echo " submit-figure1-m10 Submit Figure 1 paper-scale jobs for M=1.0" @echo " submit-figure1-m100 Submit Figure 1 paper-scale jobs for M=10.0" @echo " submit-all-figure1 Submit all paper-scale Figure 1 treatments" @echo " status Show job status and current result tree" @echo " results-tree List the current result files" init: mkdir -p $(REPO_ROOT)/runs/state $(REPO_ROOT)/runs/results $(REPO_ROOT)/runs/scratch $(PYTHON) $(ORCH) init-db --db $(DB) doctor: @echo "REPO_ROOT=$(REPO_ROOT)" @echo "LEGACY_ROOT=$(LEGACY_ROOT)" @echo "ORCH=$(ORCH)" @echo "DB=$(DB)" @echo "RESULT_ROOT=$(RESULT_ROOT)" @echo "SCRATCH_ROOT=$(SCRATCH_ROOT)" test -f $(ORCH) test -d $(LEGACY_ROOT)/python list-jobs: $(PYTHON) $(ORCH) list --db $(DB) run-one: $(PYTHON) $(ORCH) run-one --db $(DB) --result-root $(RESULT_ROOT) --scratch-root $(SCRATCH_ROOT) run-loop: $(PYTHON) $(ORCH) run-loop --db $(DB) --result-root $(RESULT_ROOT) --scratch-root $(SCRATCH_ROOT) run-loop-one: $(PYTHON) $(ORCH) run-loop --db $(DB) --result-root $(RESULT_ROOT) --scratch-root $(SCRATCH_ROOT) --max-jobs 1 collate-figure1: $(PYTHON) $(ORCH) collate-figure1 --db $(DB) --output $(RESULT_ROOT)/figure1-collated.json submit-figure1-m005: $(PYTHON) $(ORCH) submit-figure1 --db $(DB) --config $(FIG1_M005) --job-prefix fig1-m005 --created-by make submit-figure1-m025: $(PYTHON) $(ORCH) submit-figure1 --db $(DB) --config $(FIG1_M025) --job-prefix fig1-m025 --created-by make submit-figure1-m05: $(PYTHON) $(ORCH) submit-figure1 --db $(DB) --config $(FIG1_M05) --job-prefix fig1-m05 --created-by make submit-figure1-m10: $(PYTHON) $(ORCH) submit-figure1 --db $(DB) --config $(FIG1_M10) --job-prefix fig1-m10 --created-by make submit-figure1-m100: $(PYTHON) $(ORCH) submit-figure1 --db $(DB) --config $(FIG1_M100) --job-prefix fig1-m100 --created-by make submit-all-figure1: submit-figure1-m005 submit-figure1-m025 submit-figure1-m05 submit-figure1-m10 submit-figure1-m100 results-tree: find $(RESULT_ROOT) -maxdepth 4 -type f | sort status: @echo "Jobs:" $(PYTHON) $(ORCH) list --db $(DB) @echo @echo "Results:" find $(RESULT_ROOT) -maxdepth 4 -type f | sort || true