run.sh 2.13 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
13
14
15
16
17
18
comm_tam=$3
N_qty=$4 # Datos a redistribuir
time=$5
proc_init=$6 #El tiempo por iteracion es para esta cantidad de procesos
iters=$7
node_qty=$8
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43

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
44
j=0
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
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
68
	    echo "Config $procs_parents -- $procs_sons -- $adr_perc -- $ibarrier_use -- $phy_dist -- RUN $i"
69
70
71
72
            array0=($iters $procs_parents $phy_dist)
            array=("${array0[@]}")
            array0=($iters $procs_sons $phy_dist)
            array+=("${array0[@]}")
73
            python3 $dir$execDir/./create_ini.py config$i.ini 1 $matrix_tam $comm_tam $N_qty $adr_perc $ibarrier_use $time $proc_init "${array[@]}"
74
75
76
77

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

    fi
  done
done

echo "END TEST"