run.sh 2.1 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
#!/bin/bash

dir="/home/martini/malleability_benchmark/"
codeDir="Codes/"
execDir="Exec/"
ResultsDir="Results/"

#TODO Añadir diferenciar phy_dist de padres e hijos al ejecutar
echo "START TEST"

groups=$1 #TODO Modificar para que admita más de dos grupos de procesos
matrix_tam=$2
iker_martin's avatar
iker_martin committed
13
N_qty=$3 # Datos a redistribuir
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
time=$4
proc_init=$5 #El tiempo por iteracion es para esta cantidad de procesos
iters=$6
node_qty=$7

max_procs=$(($node_qty * 20))
procs_array=()
percs_array=(0 25 50 75 100)
i=1
value=$((2 ** $i))
procs_array=(${procs_array[@]} $value)

#Obtener cantidades de procesos posibles a ejecutar
while [[ $value -le $max_procs ]]
do
  i=$(($i + 1))
  value=$((2 ** $i))
  procs_array=(${procs_array[@]} $value)
done
unset procs_array[-1]

#Crear carpeta de resultados
cd $dir$ResultsDir
name_res=$node_qty"N-"$(date '+%m-%d')
echo "Localizacion de los resultados: $dir$ResultsDir$name_res"
mkdir $name_res

# Ejecutar pruebas
i=0
43
j=0
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
for procs_parents in "${procs_array[@]}"
do
  for procs_sons in "${procs_array[@]}"
  do
    if [ $procs_sons -ne $procs_parents ]
    then

      for adr_perc in "${percs_array[@]}"
      do

        for phy_dist in cpu node
        do

          for ibarrier_use in 0 #TODO Poner a 0 1
          do
            i=$(($i + 1))

	    # Crear directorio para esta ejecucion
            cd $dir$ResultsDir$name_res
	    mkdir Run$i
	    cd Run$i

            # Crear archivo de configuracion
67
	    echo "Config $procs_parents -- $procs_sons -- $adr_perc -- $ibarrier_use -- $phy_dist -- RUN $i"
68
69
70
71
72
73
74
75
76
            array0=($iters $procs_parents $phy_dist)
            array=("${array0[@]}")
            array0=($iters $procs_sons $phy_dist)
            array+=("${array0[@]}")
            python3 $dir$execDir/./create_ini.py config$i.ini 1 $matrix_tam $N_qty $adr_perc $ibarrier_use $time $proc_init "${array[@]}"

          done
        done
      done
77
78
      aux=$(($j * 10)) #TODO Poner a 20 cuando se use ibarrier
      # LANZAR SCRIPT
iker_martin's avatar
iker_martin committed
79
80
      echo $aux
      sbatch -N $node_qty $dir$execDir./arrayRun.sh $dir$ResultsDir$name_res $aux $procs_parents $procs_sons
81
      j=$(($j + 1))
82
83
84
85
86
87

    fi
  done
done

echo "END TEST"