Skip to content

Commit 2dfe463

Browse files
committed
One runner to rule them all, One runner to find them, One runner to bring them all, and in the darkness bind them
1 parent 4f3583e commit 2dfe463

File tree

7 files changed

+143
-137
lines changed

7 files changed

+143
-137
lines changed

CDB_study.slurm

Lines changed: 25 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -7,22 +7,14 @@
77
#SBATCH --mem=32G
88
#SBATCH --time=48:00:00
99
#SBATCH --partition=plgrid-gpu-a100
10-
#SBATCH --array=0-9 # 10 tasks total
10+
#SBATCH --array=0-11 # 12 tasks total
1111

12-
CDB_VAL=${1:-1.5}
12+
SEED=${1:-42}
13+
CDB_VAL=${2:-1.5}
1314

14-
if [ "$#" -gt 0 ]; then
15-
shift
16-
fi
17-
18-
if [ "$#" -eq 0 ]; then
19-
PORTFOLIO=('G3PCX' 'LMCMAES' 'SPSOL')
20-
else
21-
PORTFOLIO=("$@")
22-
fi
15+
PORTFOLIO=('G3PCX' 'LMCMAES' 'SPSOL')
2316
PORTFOLIO_STR=$(IFS="_"; echo "${PORTFOLIO[*]}")
2417

25-
2618
# CONFIGURATION
2719
ENV_PATH="$SCRATCH/DynamicAlgorithmSelection/.venv/bin/activate"
2820
source "$ENV_PATH"
@@ -31,14 +23,16 @@ mkdir -p logs
3123
# Array of Dimensions
3224
DIMS=(2 3 5 10)
3325

26+
echo "Initializing Array Job $SLURM_ARRAY_TASK_ID | SEED: $SEED | CDB: $CDB_VAL | PORTFOLIO: ${PORTFOLIO[*]}"
27+
3428
# 1. Dimension-specific CV-LOIO (Indices 0-3)
3529
if [[ $SLURM_ARRAY_TASK_ID -ge 0 && $SLURM_ARRAY_TASK_ID -le 3 ]]; then
3630
MODE="CV-LOIO"
3731
DIM=${DIMS[$SLURM_ARRAY_TASK_ID]}
3832
echo "Running Mode: $MODE | Dimension: $DIM"
3933

4034
python3 dynamicalgorithmselection/main.py ${PORTFOLIO_STR}_PG_${MODE}_CDB${CDB_VAL}_DIM${DIM}_SEED${SEED} \
41-
-p "${PORTFOLIO[@]}" -r ELA --mode $MODE --dimensionality $DIM \
35+
-p "${PORTFOLIO[@]}" --mode $MODE --dimensionality $DIM \
4236
--cdb $CDB_VAL --n_epochs 3 --agent policy-gradient -S $SEED
4337

4438
# 2. Dimension-specific CV-LOPO (Indices 4-7)
@@ -47,21 +41,35 @@ elif [[ $SLURM_ARRAY_TASK_ID -ge 4 && $SLURM_ARRAY_TASK_ID -le 7 ]]; then
4741
DIM=${DIMS[$((SLURM_ARRAY_TASK_ID - 4))]}
4842
echo "Running Mode: $MODE | Dimension: $DIM"
4943

50-
python3 dynamicalgorithmselection/main.py ${PORTFOLIO_STR}_PG_${MODE}_${CDB_VAL}_DIM${DIM}_SEED${SEED} \
51-
-p "${PORTFOLIO[@]}" -r ELA --mode $MODE --dimensionality $DIM \
44+
python3 dynamicalgorithmselection/main.py ${PORTFOLIO_STR}_PG_${MODE}_CDB${CDB_VAL}_DIM${DIM}_SEED${SEED} \
45+
-p "${PORTFOLIO[@]}" --mode $MODE --dimensionality $DIM \
5246
--cdb $CDB_VAL --n_epochs 3 --agent policy-gradient -S $SEED
5347

5448
# 3. Multidimensional CV-LOIO (Index 8)
5549
elif [[ $SLURM_ARRAY_TASK_ID -eq 8 ]]; then
5650
MODE="CV-LOIO"
5751
echo "Running Mode: $MODE | Multidimensional PG"
5852
python3 dynamicalgorithmselection/main.py ${PORTFOLIO_STR}_PG_MULTIDIMENSIONAL_${MODE}_CDB${CDB_VAL}_SEED${SEED} \
59-
-p "${PORTFOLIO[@]}" -r ELA --mode $MODE --cdb $CDB_VAL --agent policy-gradient -S $SEED
53+
-p "${PORTFOLIO[@]}" --mode $MODE --cdb $CDB_VAL --agent policy-gradient -S $SEED
6054

6155
# 4. Multidimensional CV-LOPO (Index 9)
6256
elif [[ $SLURM_ARRAY_TASK_ID -eq 9 ]]; then
6357
MODE="CV-LOPO"
6458
echo "Running Mode: $MODE | Multidimensional PG"
6559
python3 dynamicalgorithmselection/main.py ${PORTFOLIO_STR}_PG_MULTIDIMENSIONAL_${MODE}_CDB${CDB_VAL}_SEED${SEED} \
66-
-p "${PORTFOLIO[@]}" -r ELA --mode $MODE --cdb $CDB_VAL --agent policy-gradient -S $SEED
60+
-p "${PORTFOLIO[@]}" --mode $MODE --cdb $CDB_VAL --agent policy-gradient -S $SEED
61+
62+
# 5. Multidimensional CV-LODO (Index 10)
63+
elif [[ $SLURM_ARRAY_TASK_ID -eq 10 ]]; then
64+
MODE="CV-LODO"
65+
echo "Running Mode: $MODE | Multidimensional PG"
66+
python3 dynamicalgorithmselection/main.py ${PORTFOLIO_STR}_PG_MULTIDIMENSIONAL_${MODE}_CDB${CDB_VAL}_SEED${SEED} \
67+
-p "${PORTFOLIO[@]}" --mode $MODE --cdb $CDB_VAL --agent policy-gradient -S $SEED
68+
69+
# 6. Global Random Agent (Index 11)
70+
elif [[ $SLURM_ARRAY_TASK_ID -eq 11 ]]; then
71+
echo "Running Mode: Global Random Agent"
72+
python3 dynamicalgorithmselection/main.py JDE21_MADDE_NL_SHADE_RSP_RANDOM_${CDB_VAL}_SEED${SEED} \
73+
-p "${PORTFOLIO[@]}" --cdb $CDB_VAL --agent random -S "$SEED"
74+
6775
fi

comprehensive_study.slurm

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
#!/bin/bash
2+
#SBATCH --job-name=rl_das_experiment
3+
#SBATCH --output=logs/experiment_%A_%a.out
4+
#SBATCH --error=logs/experiment_%A_%a.err
5+
#SBATCH --ntasks=1
6+
#SBATCH --cpus-per-task=1
7+
#SBATCH --mem=32G
8+
#SBATCH --time=48:00:00
9+
#SBATCH --partition=plgrid-gpu-a100
10+
#SBATCH -A plgautopt26-gpu-a100
11+
#SBATCH --array=0-12 # Increased to 13 tasks total to split sequential runs
12+
13+
# 1st argument: SEED (Default: 42)
14+
SEED=${1:-1.5}
15+
16+
# Fixed PORTFOLIO variable
17+
PORTFOLIO=('JDE21' 'MADDE' 'NL_SHADE_RSP')
18+
19+
# CONFIGURATION
20+
ENV_PATH="$SCRATCH/DynamicAlgorithmSelection/.venv/bin/activate"
21+
source "$ENV_PATH"
22+
mkdir -p logs
23+
24+
# Array of Dimensions
25+
DIMS=(2 3 5 10)
26+
27+
# 1. Dimension-specific CV-LOIO | RL-DAS (Indices 0-3)
28+
if [[ $SLURM_ARRAY_TASK_ID -ge 0 && $SLURM_ARRAY_TASK_ID -le 3 ]]; then
29+
MODE="CV-LOIO"
30+
DIM=${DIMS[$SLURM_ARRAY_TASK_ID]}
31+
echo "Running Mode: $MODE | Agent: RL-DAS | Dimension: $DIM"
32+
33+
python3 dynamicalgorithmselection/main.py JDE21_MADDE_NL_SHADE_RSP_RLDAS_${MODE}_DIM${DIM}_SEED${SEED} \
34+
-p "${PORTFOLIO[@]}" --mode $MODE --dimensionality $DIM --n_epochs 40 --agent RL-DAS -S "$SEED"
35+
36+
# 3. Dimension-specific CV-LOPO | RL-DAS (Indices 4-7)
37+
elif [[ $SLURM_ARRAY_TASK_ID -ge 4 && $SLURM_ARRAY_TASK_ID -le 7 ]]; then
38+
MODE="CV-LOPO"
39+
DIM=${DIMS[$((SLURM_ARRAY_TASK_ID - 4))]}
40+
echo "Running Mode: $MODE | Agent: RL-DAS | Dimension: $DIM"
41+
42+
python3 dynamicalgorithmselection/main.py JDE21_MADDE_NL_SHADE_RSP_RLDAS_${MODE}_DIM${DIM}_SEED${SEED} \
43+
-p "${PORTFOLIO[@]}" --mode $MODE --dimensionality $DIM --n_epochs 40 --agent RL-DAS -S "$SEED"
44+
45+
# 5. Dimension-specific RL-DAS-random (Indices 8-11)
46+
elif [[ $SLURM_ARRAY_TASK_ID -ge 8 && $SLURM_ARRAY_TASK_ID -le 11 ]]; then
47+
DIM=${DIMS[$((SLURM_ARRAY_TASK_ID - 8))]}
48+
echo "Running Mode: Random Agent - RLDAS variant | Dimension: $DIM"
49+
50+
python3 dynamicalgorithmselection/main.py JDE21_MADDE_NL_SHADE_RSP_RANDOM_DAS_DIM${DIM}_SEED${SEED} \
51+
-p "${PORTFOLIO[@]}" --agent RL-DAS-random --dimensionality $DIM -S "$SEED"
52+
53+
# 6. Global Baselines (Index 12)
54+
elif [[ $SLURM_ARRAY_TASK_ID -eq 12 ]]; then
55+
echo "Running Mode: Baselines"
56+
python3 dynamicalgorithmselection/main.py BASELINES \
57+
-p "${PORTFOLIO[@]}" --mode baselines -S "$SEED"
58+
fi

portfolio_study.slurm

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,16 @@
1212

1313
CDB_VAL=1.2
1414

15-
PORTFOLIO=('MADDE' 'CMAES' 'SPSO')
15+
SEED=${1:-42}
1616

17-
PORTFOLIO_STR=$(IFS="_"; echo "${PORTFOLIO[*]}")
17+
# If no additional arguments are passed, use the default portfolio
18+
if [ "$#" -lt 2 ]; then
19+
PORTFOLIO=('G3PCX' 'LMCMAES' 'SPSO')
20+
else
21+
PORTFOLIO=("${@:2}")
22+
fi
1823

24+
PORTFOLIO_STR=$(IFS="_"; echo "${PORTFOLIO[*]}")
1925

2026
# CONFIGURATION
2127
ENV_PATH="$SCRATCH/DynamicAlgorithmSelection/.venv/bin/activate"
@@ -25,13 +31,15 @@ mkdir -p logs
2531
# Array of Dimensions
2632
DIMS=(2 3 5 10)
2733

34+
echo "Initializing Array Job $SLURM_ARRAY_TASK_ID | SEED: $SEED | PORTFOLIO: ${PORTFOLIO[*]}"
35+
2836
# 1. Dimension-specific CV-LOIO (Indices 0-3)
2937
if [[ $SLURM_ARRAY_TASK_ID -ge 0 && $SLURM_ARRAY_TASK_ID -le 3 ]]; then
3038
MODE="CV-LOIO"
3139
DIM=${DIMS[$SLURM_ARRAY_TASK_ID]}
3240
echo "Running Mode: $MODE | Dimension: $DIM"
3341

34-
python3 dynamicalgorithmselection/main.py ${PORTFOLIO_STR}_PG_${MODE}_$_CDB${CDB_VAL}_DIM${DIM}_SEED${SEED} \
42+
python3 dynamicalgorithmselection/main.py ${PORTFOLIO_STR}_PG_${MODE}_CDB${CDB_VAL}_DIM${DIM}_SEED${SEED} \
3543
-p "${PORTFOLIO[@]}" --mode $MODE --dimensionality $DIM \
3644
--cdb $CDB_VAL --n_epochs 3 --agent policy-gradient -S $SEED
3745

@@ -49,13 +57,13 @@ elif [[ $SLURM_ARRAY_TASK_ID -ge 4 && $SLURM_ARRAY_TASK_ID -le 7 ]]; then
4957
elif [[ $SLURM_ARRAY_TASK_ID -eq 8 ]]; then
5058
MODE="CV-LOIO"
5159
echo "Running Mode: $MODE | Multidimensional PG"
52-
python3 dynamicalgorithmselection/main.py ${PORTFOLIO_STR}_PG_MULTIDIMENSIONAL_${MODE}_CDB${CDB_VAL}_DIM${DIM}_SEED${SEED} \
53-
-p "${PORTFOLIO[@]}" --mode $MODE --cdb $CDB_VAL --agent policy-gradient --dimensionality 2 3 5 10 -S $SEED
60+
python3 dynamicalgorithmselection/main.py ${PORTFOLIO_STR}_PG_MULTIDIMENSIONAL_${MODE}_CDB${CDB_VAL}_SEED${SEED} \
61+
-p "${PORTFOLIO[@]}" --mode $MODE --cdb $CDB_VAL --agent policy-gradient --dimensionality 2 3 5 10 -S $SEED
5462

5563
# 4. Multidimensional CV-LOPO (Index 9)
5664
elif [[ $SLURM_ARRAY_TASK_ID -eq 9 ]]; then
5765
MODE="CV-LOPO"
5866
echo "Running Mode: $MODE | Multidimensional PG"
59-
python3 dynamicalgorithmselection/main.py ${PORTFOLIO_STR}_PG_MULTIDIMENSIONAL_${MODE}_CDB${CDB_VAL}_DIM${DIM}_SEED${SEED} \
60-
-p "${PORTFOLIO[@]}" --mode $MODE --cdb $CDB_VAL --agent policy-gradient --dimensionality 2 3 5 10 -S $SEED
67+
python3 dynamicalgorithmselection/main.py ${PORTFOLIO_STR}_PG_MULTIDIMENSIONAL_${MODE}_CDB${CDB_VAL}_SEED${SEED} \
68+
-p "${PORTFOLIO[@]}" --mode $MODE --cdb $CDB_VAL --agent policy-gradient --dimensionality 2 3 5 10 -S $SEED
6169
fi

runner.sh

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
#!/bin/bash
2+
3+
SEEDS=(123 234 345 456)
4+
5+
CDB_VALUES=(1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7)
6+
7+
PORTFOLIOS=(
8+
"CMAES SPSOL OPOA2015"
9+
"G3PCX LMCMAES SPSO"
10+
"MADDE JDE21 NL_SHADE_RSP"
11+
)
12+
13+
echo "Starting Cartesian product job submissions..."
14+
15+
for SEED in "${SEEDS[@]}"; do
16+
for PORTFOLIO in "${PORTFOLIOS[@]}"; do
17+
18+
echo "Submitting portfolio study with: SEED=${SEED} | PORTFOLIO=${PORTFOLIO}"
19+
20+
sbatch portfolio_study.slurm $SEED $PORTFOLIO
21+
22+
sleep 1
23+
24+
done
25+
26+
for CDB in "${CDB_VALUES[@]}"; do
27+
28+
echo "Submitting single algorithm study with: SEED=${SEED} | CDB=${CDB}"
29+
sbatch single_algorithm.slurm $SEED $CDB
30+
echo "Submitting CDB study with: SEED=${SEED} | CDB=${CDB}"
31+
sbatch CDB_study.slurm $SEED $CDB
32+
33+
sleep 1
34+
35+
done
36+
37+
echo "Submitting comprehensive study with: SEED=${SEED}"
38+
sbatch runner.slurm $SEED
39+
40+
done
41+
42+
echo "All jobs submitted!"

runner.slurm

Lines changed: 0 additions & 108 deletions
This file was deleted.

single_algorithm_CDB_study.slurm

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,10 @@
99
#SBATCH --partition=plgrid-gpu-a100
1010
#SBATCH -A plgautopt26-gpu-a100
1111

12-
# 1. Accept variables from outside (positional arguments)
13-
# Syntax: ${1:-default_value} means if $1 is empty, use the default.
14-
CDB_VAL=${1:-1.5}
15-
SEED=${2:-42}
12+
SEED=${1:-42}
13+
CDB_VAL=${2:-1.5}
1614

17-
PORTFOLIO=('MADDE')
15+
PORTFOLIO=('G3PCX')
1816
PORTFOLIO_STR=$(IFS="_"; echo "${PORTFOLIO[*]}")
1917

2018
# CONFIGURATION

submitter.sh

Whitespace-only changes.

0 commit comments

Comments
 (0)