diff options
Diffstat (limited to 'experiments/analyze_resnet_crossover_p1.py')
| -rw-r--r-- | experiments/analyze_resnet_crossover_p1.py | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/experiments/analyze_resnet_crossover_p1.py b/experiments/analyze_resnet_crossover_p1.py index cbce299..b030755 100644 --- a/experiments/analyze_resnet_crossover_p1.py +++ b/experiments/analyze_resnet_crossover_p1.py @@ -7,7 +7,7 @@ import json import math import os -from experiments.resnet_crossover_grid import p1_jobs +from experiments.resnet_crossover_grid import p1_jobs, registry_sha256 ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) @@ -86,6 +86,9 @@ def audit_job(job, expected_source): assert manifest[key] == job[key], ( f"{job['experiment_name']}: drift in {key}") assert manifest["source"] == expected_source + hardware = manifest["hardware_lock"] + assert hardware["physical_gpu_index"] in (5, 7) + assert hardware["physical_gpu_uuid"] assert manifest["status"] == "completed" assert manifest["output_exists"] is True assert manifest["output_sha256"] == sha256(job["output"]) @@ -155,7 +158,17 @@ def main(): audit_job(job, expected_source) for job in jobs if os.path.isfile(job["output"] + ".manifest.json")] selected = {} + launch = None if not missing: + launch_path = os.path.join( + ROOT, "results", "resnet_crossover", "p1_launch.json") + assert os.path.isfile(launch_path), "missing ResNet P1 launch lock" + launch = read_json(launch_path) + assert launch["stage"] == "p1" + assert launch["source"] == expected_source + assert launch["registry_sha256"] == registry_sha256(jobs) + assert launch["num_jobs"] == len(jobs) + assert launch["allowed_physical_gpus"] == [5, 7] for method in dict((job["method"], None) for job in jobs): candidates = [ record for record in records if record["method"] == method] @@ -178,6 +191,7 @@ def main(): "num_audited_records": len(records), "missing_experiments": missing, "test_policy": "none", + "launch_lock": launch, "records": records, "selected": selected, } |
