#!/bin/bash


source activate inf

algo=sync-bmg
suite=spiel
env=leduc_poker

config=spiel_bmg
args1=(0)
args2=(0)
args3=(1e-4 3e-4 1e-3)
date=$(date +"%m%d")
seed=1
info=""


# i=0
# for e in "${envs[@]}"; do
#     for a in "${algos[@]}"; do
#         for a1 in "${args1[@]}"; do
#             for a2 in "${args2[@]}"; do
#                 for a3 in "${args3[@]}"; do
#                     for a4 in "${args4[@]}"; do
#                         for ((s=1; s<=4; s++)); do
#                             if [ "$a1" -eq 0 ] && [ "$a2" -ne 0 ]; then
#                                 break
#                             fi
#                             kw1="K=$a1"
#                             kw2="L=$a2"
#                             kw3="meta_params_opt:lr=$a3"
#                             # kw4="meta_indicator_coef=$a4"
#                             kwstr="$kw1-$kw2-$kw3"
#                             kws="$kw1 $kw2 $kw3"
#                             if [ "$cmdkws" != "" ]; then
#                                 kwstr="$cmdkws-$kwstr"
#                                 kws="$@ $kws"
#                             fi
#                             env="${suite}-${e}"
#                             gpus=$(nvidia-smi -L | wc -l)
#                             gpu=$(($i % $gpus))
#                             dir="$ld/$env/$a/$n-$kwstr/seed=$s"
#                             mkdir -p $dir
#                             # py_script="python run/train.py -a ${a} -e $env -c $config -kw $kw1 $kw2 $kw3 $kw4 -ld $ld --gpu $i -n $n -s $seed | tee ${dir}/outputs.txt &"
#                             # py_script="python run/train.py -a ${a} -e $env -c $config -ld $ld --gpu $i -n $n -s $seed | tee ${dir}/outputs.txt &"
#                             py_script="python run/train.py -a ${a} -e $env -c $config -ld $ld --gpu $gpu -n $n -s $s -kw $kws -i $info 2> ${dir}/err.txt | tee -a ${dir}/out.txt > /dev/null &"
#                             echo $py_script
#                             eval $py_script
#                             sleep 3
#                             ((i=(i+1) ))
#                         done
#                     done
#                 done
#             done
#         done
#     done
# done


if [ -z "$info" ]; then
    n=$date
else
    n="$date-$info"
fi


kws="$@"
kw1=""
kwstr="$kw1"
kws="$kws $kw1"
for item in $@; do
    if [ -z != $kwstr ]; then
        kwstr="$kwstr-$item"
    else
        kwstr="$item"
    fi
done


ld="$suite-logs"
env="${suite}-${env}"
if [ 0 != $# ]; then
    root="$ld/$env/$algo/$n-$kwstr"
else
    root="$ld/$env/$algo/$n"
fi


for ((s=1; s<=$seed; s++)); do
    dir="$root/seed=$s"
    mkdir -p $dir
    py_script="python run/train.py -a ${algo} -e $env -c $config -ld $ld -n $n -s $s -v info -i $info -kw $kws 2> ${dir}/err.txt | tee -a ${dir}/out.txt"
    echo $py_script
    inf_mac job run python --exec-command "sh -c \"export PYTHONPATH=. && $py_script \" " \
        --working-dir . --num-nodes 1 --user chenxw --use-env chenxw \
        --sync-dir ./$ld:/System/Volumes/Data/mnt/公共区/cxw &
    sleep 3
done

# python run/train.py -a sync-gpo -e spiel-leduc_poker -c spiel -ld logs-spiel -p $1 -s 0 \
#     -kw max_steps_per_iteration=1000 max_version_iterations=1 n_runners=1
