paradiseo/eo/contrib/irace/expe/alpha/run_irace_parallel-batch.sh

38 lines
931 B
Bash
Executable file

#!/bin/bash
outdir="$(date --iso-8601=ns)_results_irace"
mkdir ${outdir}
cd ${outdir}
run(){
p="$1"
echo "Problem ${p}"
res="results_problem_${p}"
mkdir ${res}
cd ${res}
# Fore some reason, irace absolutely need those files...
cp ../../irace-config/example.scen .
cp ../../irace-config/default.instances .
cp ../../release/fastga .
cat ../../irace-config/target-runner | sed "s/{{PROBLEM}}/${p}/" > ./target-runner
chmod u+x target-runner
# Generate the parameter list file.
./fastga -h > fastga.param 2>/dev/null
# /usr/lib/R/site-library/irace/bin/irace --scenario example.scen 2>&1 | tee irace.log
/usr/lib/R/site-library/irace/bin/irace --scenario example.scen &> irace.log
cd ..
echo "Done problem ${p}"
}
N=5 # Somehow 5 is the fastest on my 4-cores machine.
(
for pb in $(seq 0 18); do
((i=i%N)); ((i++==0)) && wait
run "$pb" &
done
wait
)