spb/prime-mystery-engine
Public
Python 64.3%
TeX 35.7%
1#!/usr/bin/env python32# =============================================================================3# gpu_runner.py — Cycle 4: persistent GPU worker looping over a chunk list4# Author: Simon-Pierre Boucher — contact@spboucher.ai5# =============================================================================6# Processes chunks sequentially in ONE process so the compiled Metal kernel7# and base-prime array are reused. Skips chunks whose output already exists8# (idempotent restart). Usage: python3 gpu_runner.py <chunks_file>9# =============================================================================1011import sys12from pathlib import Path1314from gpu_sieve import sieve_segment_gpu15from worker_c4 import run1617def main():18 chunks = Path(sys.argv[1]).read_text().split()19 for i in range(0, len(chunks), 3):20 lo, hi, out = chunks[i], chunks[i + 1], chunks[i + 2]21 if Path(out).exists():22 continue23 run(int(float(lo)), int(float(hi)), out,24 sieve_fn=sieve_segment_gpu, tag="/gpu")252627if __name__ == "__main__":28 main()29