-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathsubmit_simulation.sh
More file actions
executable file
·63 lines (47 loc) · 2.53 KB
/
Copy pathsubmit_simulation.sh
File metadata and controls
executable file
·63 lines (47 loc) · 2.53 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#!/bin/bash -xe
#SBATCH -J slurm-simulator-into-slurm
#SBATCH -o OUTPUTS/test1_%j.out
#SBATCH -e OUTPUTS/test1_%j.err
#SBATCH -c 4
#SBATCH -t 2:00:00
workload_name=$(basename $1)
sim_path=$PWD"/simulation_"$SLURM_JOBID$workload_name"bfq"$2
rm -rf $sim_path
mkdir -p $sim_path
cp -r install/* $sim_path
workload=$1
control_host="$SLURM_NODELIST"
slave_nnodes= #EDIT: number of computing nodes
slurm_conf_template="$sim_path/slurm_conf/slurm.conf.template"
slurmctld_port=$((($SLURM_JOBID%65535))) #12 is the max number of jobs that can enter mn4 node
range=$((($slurmctld_port%12)))
slurmctld_port=$(((($slurmctld_port*$range)%65535)))
if [ $slurmctld_port -le 10000 ] ; then
slurmctld_port=$((($slurmctld_port+10000)))
fi
slurmctld_f_port=$((($slurmctld_port+12)))
slurmd_port=$((($slurmctld_port+144)))
openssl genrsa -out $sim_path/slurm_conf/slurm.key 1024
openssl rsa -in $sim_path/slurm_conf/slurm.key -pubout -out $sim_path/slurm_conf/slurm.cert
cd $sim_path
sed -e s/{ID_JOB}/$SLURM_JOBID/ \
-e s:{DIR_WORK}:$sim_path: slurm_varios/trace.sh.template > slurm_varios/trace.sh;
chmod +x slurm_varios/trace.sh
sed -e s:TOKEN_SLURM_USER_PATH:$sim_path: \
-e s:TOKEN_BF_QUEUE:$2: \
-e s:TOKEN_CONTROL_MACHINE:$control_host: \
-e s:TOKEN_NNODES:$slave_nnodes: \
-e s:TOKEN_SLURMCTLD_PORT:$slurmctld_port-$slurmctld_f_port: \
-e s:TOKEN_SLURMD_PORT:$slurmd_port: \
-e s:TOKEN_CORES:$3: \
$slurm_conf_template > $sim_path/slurm_conf/slurm.conf
source env.sh
#slurmdbd
export SLURM_CONF=$sim_path/slurm_conf/slurm.conf
export SLURM_SIM_ID=$SLURM_JOBID
sim_mgr -f -w $workload
#generate output
printf 'JobId;Nodes;NodeList;Submit time;Start time;End time;Wait time;Run time;Response time;Slowdown;Backfilled\n' > "o_"$workload_name".csv"
cat TRACES/trace.test.$SLURM_JOBID | sed -e 's!JobId=!!' | sort -n | awk '{print "JobId="$1,$12,$11,$8,$9,$10,$15}' | awk '-F[=/ /]' '{split($0,a); printf("%d;%d;%s;%d;%d;%d;%d;%d;%d;%f;%d\n",a[2],a[4],a[6],a[8],a[10],a[12],a[10]-a[8],a[12]-a[10],a[12]-a[8],(a[12]-a[8])/(a[12]-a[10]),a[14]) }' >> "o_"$workload_name".csv"
cat TRACES/trace.test.$SLURM_JOBID | sed -e 's!JobId=!!' | sort -n | awk '{print $8,$9,$10,$15}' | awk -F'[=/ /]' '{split($0,a); print a[2], a[4], a[6], a[8] }' > "o_"$workload_name
cat TRACES/trace.test.$SLURM_JOBID | sed -e 's!JobId=!!' | sort -n | awk '{ print $1,$7,$8,$9,$10,$13 }' | awk -F'[=/ /]' '{split($0,a); printf("%s\t%s\t%s\t%s\t%s\t-1\t-1\t%s\t%s\t-1\t1\t-1\t-1\t-1\t-1\t-1\t-1\t-1\n",a[1]-1,a[5],a[7]-a[5],a[9]-a[7],a[11],a[11],a[3])}' > "o_"$workload_name".swf"