singleRun.sh 2 KB
Newer Older
1
2
#!/bin/bash

3
dir="/home/martini/tmp/malleability_benchmark"
4
5
6
7
8
9
10
11
12
partition="P1"
exclude="c00,c01,c02"

# Executes a given configuration file with the aid of
# the RMS Slurm.
# Parameter 1: Configuration file name for the emulation.
# Parameter 2(Optional): Index to use for the output files. Must be a positive integer.
# Parameter 3(Optional): Number of repetitions to perform. Must be a positive integer.
# Parameter 4(Optional): Use Extrae(1) or not(0).
13
14
# Parameter 5(Optional): Maximum amount of time in seconds needed by a single execution. Default value is 0, which indicates infinite time. Must be a positive integer.
# Parameter 6(Optional): Path where the output files should be saved. 
15
#====== Do not modify these values =======
16

17
18
19
codeDir="/Codes/build"
execDir="/Exec"
ResultsDir="/Results"
20
cores=$(bash $dir$execDir/BashScripts/getCores.sh $partition)
21

iker_martin's avatar
iker_martin committed
22
if [ $# -lt 1 ]
23
24
then
  echo "Not enough arguments. Usage:"
25
  echo "bash singleRun.sh config.ini [outFileIndex] [Qty] [Use extrae] [Output path]"
26
27
28
  exit 1
fi

29
30
#$1 == configFile
#$2 == outFileIndex
31
#$3 == Qty of repetitions
32
#$4 == Use extrae NO(0) YES(1)
33
34
#$5 == Max time per execution(s)
#$6 == Output path
35

36
37
config_file=$1
outFileIndex=0
38
qty=1
39
use_extrae=0
40

iker_martin's avatar
iker_martin committed
41
if [ $# -ge 2 ]
42
43
44
then
  outFileIndex=$2
fi
iker_martin's avatar
iker_martin committed
45
if [ $# -ge 3 ]
46
47
then
  qty=$3
48
fi
iker_martin's avatar
iker_martin committed
49
if [ $# -ge 4 ]
50
51
52
then
  use_extrae=$4
fi
53
54
limit_time=$((0))
if [ $# -ge 5 ] #Max time per execution in seconds
55
then
56
  limit_time=$(($5 * $qty / 60 + 1))
57
fi
58
if [ $# -ge 6 ]
59
then
60
  output=$6
61
fi
62

63
64
65
66
#Obtain amount of nodes neeeded
node_qty=$(bash $dir$execDir/BashScripts/getMaxNodesNeeded.sh $config_file $dir $cores)
#Run with the expected amount of nodes
sbatch -p $partition --exclude=$exclude -N $node_qty -t $limit_time $dir$execDir/generalRun.sh $dir $cores $config_file $use_extrae $outFileIndex $qty
67
68

if ! [ -z "$output" ]
69
then
70
  mkdir -p $output
71
72
73
  echo "Moving data to $output\nMoved files:"
  ls R${outFileIndex}_G*
  mv R${outFileIndex}_G* $output
74
75
76
77
78
79
  if [ "$use_extrae" -eq 1 ]
  then
    mv a.out.* $output
    mv TRACE* $output
    mv set-0/ $output
  fi
80
fi