File size: 1,223 Bytes
e2d54c9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#!/usr/bin/env bash
# The fixed reproduction command for EVERY node in this project: `bash run.sh`.
# What a node does is decided by the committed file repro/config/active.json,
# never by this script, the command line, or environment variables.
set -euo pipefail

echo "== run.sh: pinned environment via uv (no conda, no unmanaged pip) =="

if ! command -v uv >/dev/null 2>&1; then
  echo "-- installing uv"
  curl -LsSf https://astral.sh/uv/install.sh | sh
  export PATH="$HOME/.local/bin:$PATH"
fi

uv --version

# One repository-level .venv, reused by every stage and every node.
uv sync --frozen --no-progress

echo "== resolved environment =="
uv run python -c "import sys, numpy, scipy, sympy, torch; \
print('python  ', sys.version.split()[0]); \
print('numpy   ', numpy.__version__); \
print('scipy   ', scipy.__version__); \
print('sympy   ', sympy.__version__); \
print('torch   ', torch.__version__, '| cuda available:', torch.cuda.is_available())"

# Hard guard: this campaign is authorised for CPU only.
uv run python -c "import torch, sys; \
sys.exit('REFUSING TO RUN: GPU visible but this campaign is CPU-only') if torch.cuda.is_available() else None"

echo "== reproduction =="
uv run python -m repro.main