11#! /bin/bash
2- # SBATCH --job-name=pp_evo
3- # SBATCH --partition=genoa
2+ # SBATCH --job-name=pp_phase1
3+ # SBATCH --partition=rome
44# SBATCH --nodes=1
55# SBATCH --ntasks=1
66# SBATCH --cpus-per-task=32
7- # SBATCH --time=08 :00:00
8- # SBATCH --mem=32G
9- # SBATCH --output=pp_analysis_ %j.out
10- # SBATCH --error=pp_analysis_ %j.err
7+ # SBATCH --time=04 :00:00
8+ # SBATCH --mem=16G
9+ # SBATCH --output=pp_phase1_ %j.out
10+ # SBATCH --error=pp_phase1_ %j.err
1111
1212# =============================================================================
13- # PP Evolutionary Analysis - Snellius Job Script
13+ # PP Hydra Effect - Phase 1: Parameter Sweep
1414# =============================================================================
1515#
16- # ESTIMATED RESOURCES:
17- # - Runtime: ~1.5-2 hours on 32 cores (15×15 grid, 25 reps)
16+ # PHASE 1: Find critical point via 2D sweep of prey_birth × prey_death
17+ # - 15 × 15 × 15 reps × 2 (evo/non-evo) = 6,750 simulations
18+ # - Estimated runtime: ~2 min on 32 cores
1819# - Memory: ~8 GB peak
19- # - CPU hours: ~50-60 core-hours
2020#
21- # SUBMIT: sbatch run_analysis .sh
21+ # SUBMIT: sbatch run_phase1 .sh
2222# MONITOR: squeue -u $USER
2323# CANCEL: scancel <job_id>
24- # OUTPUT: results/ directory
2524#
2625# =============================================================================
2726
2827echo " ========================================"
29- echo " PP Evolutionary Analysis "
28+ echo " PP Hydra Effect - Phase 1 "
3029echo " ========================================"
3130echo " Job ID: $SLURM_JOB_ID "
3231echo " Node: $( hostname) "
3332echo " CPUs: $SLURM_CPUS_PER_TASK "
34- echo " Memory: $SLURM_MEM_PER_NODE "
3533echo " Start: $( date) "
3634echo " Working dir: $( pwd) "
3735echo " ========================================"
@@ -40,49 +38,60 @@ echo "========================================"
4038# Environment Setup
4139# -----------------------------------------------------------------------------
4240
43- # Load modules (adjust to your Snellius setup)
4441source ~ /snellius_venv/bin/activate
4542
46- # If you have a virtual environment with your models package:
47- # source ~/venvs/ca_analysis/bin/activate
48-
49- # Prevent numpy/scipy from spawning extra threads (we use joblib instead)
43+ # Prevent numpy/scipy from spawning extra threads (joblib handles parallelism)
5044export OMP_NUM_THREADS=1
5145export OPENBLAS_NUM_THREADS=1
5246export MKL_NUM_THREADS=1
5347export NUMEXPR_NUM_THREADS=1
5448
5549# -----------------------------------------------------------------------------
56- # Run Analysis
50+ # Run Phase 1
5751# -----------------------------------------------------------------------------
5852
59- OUTPUT_DIR=" results_ ${SLURM_JOB_ID} "
53+ OUTPUT_DIR=" results/phase1_ ${SLURM_JOB_ID} "
6054mkdir -p $OUTPUT_DIR
6155
6256echo " "
6357echo " Output directory: $OUTPUT_DIR "
6458echo " "
6559
66- # Run the full analysis
67- python3 -u scripts/pp_analysis.py \
68- --mode full \
60+ # Dry run first to verify setup
61+ echo " Dry run check:"
62+ python3 -u scripts/experiments.py \
63+ --phase 1 \
6964 --output $OUTPUT_DIR \
70- --cores $SLURM_CPUS_PER_TASK
65+ --cores $SLURM_CPUS_PER_TASK \
66+ --dry-run
67+
68+ echo " "
69+ echo " Starting Phase 1..."
70+ echo " "
7171
72- # For asynchronous execution (uncomment if needed)
73- # python3 pp_analysis.py --mode full --output $OUTPUT_DIR --cores $SLURM_CPUS_PER_TASK --async
72+ # Run phase 1
73+ python3 -u scripts/experiments.py \
74+ --phase 1 \
75+ --output $OUTPUT_DIR \
76+ --cores $SLURM_CPUS_PER_TASK
7477
7578# -----------------------------------------------------------------------------
7679# Completion
7780# -----------------------------------------------------------------------------
7881
7982echo " "
8083echo " ========================================"
81- echo " Analysis Complete"
84+ echo " Phase 1 Complete"
8285echo " ========================================"
8386echo " End time: $( date) "
8487echo " Results in: $OUTPUT_DIR /"
8588echo " "
8689echo " Output files:"
8790ls -lh $OUTPUT_DIR /
91+ echo " "
92+ echo " Next steps:"
93+ echo " 1. Download phase1_results.jsonl"
94+ echo " 2. Run analysis.py to find critical point"
95+ echo " 3. Update config.py with critical_prey_birth/death"
96+ echo " 4. Run phase 2-5"
8897echo " ========================================"
0 commit comments