Skip to content

Commit e82f43d

Browse files
committed
parsed small sim data; everything looks good
1 parent 04a2c9c commit e82f43d

5 files changed

Lines changed: 416 additions & 30 deletions

File tree

.rsync-exclude

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# .rsync-exclude
2+
.venv/
3+
__pycache__/
4+
*.pyc
5+
.git/
6+
*.nbc
7+
*.nbi
8+
.pytest_cache/
9+
results/
10+
*.png
11+
*.pdf
12+
.DS_Store
13+
.ipynb_checkpoints/
14+
15+

docs/HPC_GUIDE.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@ ssh kanagnostopoul@snellius.surf.nl
66
# On a separate terminal run the following
77
88
# Upload the entire project directory (including your models/ folder)
9-
scp -r ~/CSS_Project kanagnostopoul@snellius.surf.nl:~/
9+
rsync -avz --progress --exclude-from='.rsync-exclude' \
10+
~/CSS_Project/ kanagnostopoul@snellius.surf.nl:~/CSS_Project/
1011
1112
# On the Snellius terminal
1213
@@ -41,6 +42,7 @@ tail -f logs_<JOBID>.err
4142
4243
# Watch task completetion
4344
45+
watch -n 5 squeue -u $USER
4446
watch -n 10 "ls -1 results_JOBID | wc -l"
4547
4648
# Fetching the results once the job is done

hpc/run_analysis.sh

Lines changed: 37 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,35 @@
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

2827
echo "========================================"
29-
echo "PP Evolutionary Analysis"
28+
echo "PP Hydra Effect - Phase 1"
3029
echo "========================================"
3130
echo "Job ID: $SLURM_JOB_ID"
3231
echo "Node: $(hostname)"
3332
echo "CPUs: $SLURM_CPUS_PER_TASK"
34-
echo "Memory: $SLURM_MEM_PER_NODE"
3533
echo "Start: $(date)"
3634
echo "Working dir: $(pwd)"
3735
echo "========================================"
@@ -40,49 +38,60 @@ echo "========================================"
4038
# Environment Setup
4139
# -----------------------------------------------------------------------------
4240

43-
# Load modules (adjust to your Snellius setup)
4441
source ~/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)
5044
export OMP_NUM_THREADS=1
5145
export OPENBLAS_NUM_THREADS=1
5246
export MKL_NUM_THREADS=1
5347
export 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}"
6054
mkdir -p $OUTPUT_DIR
6155

6256
echo ""
6357
echo "Output directory: $OUTPUT_DIR"
6458
echo ""
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

7982
echo ""
8083
echo "========================================"
81-
echo "Analysis Complete"
84+
echo "Phase 1 Complete"
8285
echo "========================================"
8386
echo "End time: $(date)"
8487
echo "Results in: $OUTPUT_DIR/"
8588
echo ""
8689
echo "Output files:"
8790
ls -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"
8897
echo "========================================"

models/config.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -196,7 +196,7 @@ def estimate_runtime(self, n_cores: int = 32) -> str:
196196
n_prey_death=15,
197197
prey_birth_range=(0.10, 0.35),
198198
prey_death_range=(0.001, 0.10),
199-
n_replicates=15,
199+
n_replicates=20,
200200
warmup_steps=300,
201201
measurement_steps=1000,
202202
collect_pcf=True,

0 commit comments

Comments
 (0)