Module neuralops.runners.run_master_pipeline

Master pipeline orchestrator. Runs 2 workers total across all task types. Priority order: zeroshot > rank_sweep > c4_ppl > latency > multiseed. Idempotent: skips completed tasks.

Functions

def main()
Expand source code
def main():
    ap = argparse.ArgumentParser()
    ap.add_argument("--queue", default="audit/master_queue.csv")
    ap.add_argument("--parallel", type=int, default=1)
    ap.add_argument("--max_tasks", type=int, default=None, help="Stop after N tasks (for testing)")
    ap.add_argument("--task_filter", default=None, help="Only run this task type (e.g., zeroshot)")
    args = ap.parse_args()

    with open(args.queue) as f:
        reader = csv.DictReader(f)
        tasks = list(reader)

    if args.task_filter:
        tasks = [t for t in tasks if t["task"] == args.task_filter]

    if args.max_tasks:
        tasks = tasks[: args.max_tasks]

    print(f"[INIT] {len(tasks)} tasks, parallel={args.parallel}")

    completed = 0
    failed = 0
    t_start = time.time()

    with ThreadPoolExecutor(max_workers=args.parallel) as ex:
        futures = {ex.submit(run_task, t): t for t in tasks}
        for fut in as_completed(futures):
            task = futures[fut]
            completed += 1
            try:
                r = fut.result()
                status = "OK" if r["returncode"] == 0 else "FAIL"
                if status == "FAIL":
                    failed += 1
                print(
                    f"[{completed}/{len(tasks)}] {r['task']}/{r['module']}/{r['dataset']} "
                    f"| {status} | {r.get('elapsed_s', 0):.1f}s"
                )
            except Exception as e:
                failed += 1
                print(f"[ERROR] {task} | {e}")

            # Report every 10 tasks
            if completed % 10 == 0:
                elapsed = time.time() - t_start
                rate = completed / elapsed * 60  # tasks/min
                eta = (len(tasks) - completed) / max(rate, 0.01)
                print(
                    f"[PROGRESS] {completed}/{len(tasks)} | {rate:.1f} tasks/min | ETA {eta:.0f} min"
                )

    total = time.time() - t_start
    print(f"[DONE] {completed}/{len(tasks)} finished ({failed} failed) in {total / 60:.1f} min")
def run_task(task: dict) ‑> dict
Expand source code
def run_task(task: dict) -> dict:
    t = task["task"]
    module = task["module"]
    dataset = task["dataset"]
    backbone = task["backbone"]

    if t == "zeroshot":
        cmd = [
            sys.executable,
            "-u",
            "scripts/run_zeroshot_parallel.py",
            "--module",
            module,
            "--model",
            "models/gpt2",
            "--tasks",
            "piqa,arc_easy,arc_challenge,hellaswag,winogrande",
            "--num_samples",
            "500",
            "--batch_size",
            "16",
            "--output_dir",
            f"results/03_zeroshot_evals/zeroshot_parallel/{module}",
        ]
    elif t == "rank_sweep":
        model = f"models/base_checkpoints/{backbone}_{dataset}"
        cmd = [
            sys.executable,
            "-u",
            "neuralops/benchmarks/run_rank_sweeper.py",
            "--modules",
            module,
            "--ranks",
            "64,128,256,384",
            "--model",
            model,
            "--model_family",
            "bert",
            "--dataset",
            dataset,
            "--output_base",
            f"results/02_rank_sweeps/rank_sweep_{dataset}",
            "--parallel_ranks",
            "1",
            "--batch_size",
            "16",
        ]
    elif t == "c4_ppl":
        cmd = [
            sys.executable,
            "-u",
            "neuralops/benchmarks/run_quality_sweep.py",
            "--modules",
            module,
            "--model",
            "models/gpt2",
            "--model_family",
            "gpt2",
            "--dataset",
            "c4",
            "--rank",
            "384",
            "--batch_size",
            "8",
            "--output_dir",
            f"results/04_baselines/c4_baselines/{module}",
        ]
    else:
        return {"task": t, "module": module, "status": "UNKNOWN_TASK"}

    t0 = time.time()
    log_dir = Path(f"logs/pipeline/{t}")
    log_dir.mkdir(parents=True, exist_ok=True)
    log_file = log_dir / f"{module}_{dataset}.log"

    with open(log_file, "w") as lf:
        res = subprocess.run(cmd, stdout=lf, stderr=subprocess.STDOUT, timeout=3600)

    elapsed = time.time() - t0
    return {
        "task": t,
        "module": module,
        "dataset": dataset,
        "returncode": res.returncode,
        "elapsed_s": round(elapsed, 1),
    }