summaryrefslogtreecommitdiff
path: root/ns3-simulations/g5k-root.sh
diff options
context:
space:
mode:
authorLoic Guegan <manzerberdes@gmx.com>2019-05-16 14:32:18 +0200
committerLoic Guegan <manzerberdes@gmx.com>2019-05-16 14:32:18 +0200
commit026a84902cdc22f64b53aea3678d576bc29f479b (patch)
tree5b0cb6540533337c6c331f1333ac37979ad49ae4 /ns3-simulations/g5k-root.sh
parent9305e544d3c3b3ad49a47587616f2bde1dd8d323 (diff)
Update simulators
Diffstat (limited to 'ns3-simulations/g5k-root.sh')
-rwxr-xr-xns3-simulations/g5k-root.sh135
1 files changed, 43 insertions, 92 deletions
diff --git a/ns3-simulations/g5k-root.sh b/ns3-simulations/g5k-root.sh
index db6bc0f..bc11142 100755
--- a/ns3-simulations/g5k-root.sh
+++ b/ns3-simulations/g5k-root.sh
@@ -1,8 +1,8 @@
#!/bin/bash
##### Arguments #####
-nHost=15
-nProcesses=8 # Max number of parrallel simulations
-nHours=3 # Reservation duration
+nHost=20 # At least 20 host x)
+nProcesses=3 # Max number of parrallel simulations (don't go too high, your process will be killed (arround 8))
+nHours=4 # Reservation duration
simArgsLoc=~/args/ # Don't change this path witouth changing it in workder scripts
finishedFile="$simArgsLoc/finished-microBenchmarks.txt"
logsFinalDst=~/logs/
@@ -31,6 +31,7 @@ handleSim () {
echo "linksLatency=${linksLatency}" >> $outF
echo "sensorsNumber=${sensorsNumber}" >> $outF
echo "linksBandwidth=${linksBandwidth}" >> $outF
+ echo "positionSeed=${positionSeed}" >> $outF
}
@@ -64,27 +65,30 @@ then
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${NS3_PATH}/build/lib
# Default Parameters
- sensorsSendInterval=10
+ sensorsSendInterval=10 # DON'T GO BELOW 1 SECONDS !!!!!!! Simulator will stay stuck
sensorsPktSize=5 # 1 byte temperature (-128 à +128 °C) and 4Byte sensorsId
sensorsNumber=10
nbHop=10 # Cf paper AC/Yunbo
linksBandwidth=10
linksLatency=2
+ positionSeed=5
simKey="NOKEY"
run () {
# If another function want to handle simulation (tipically used on g5k)
type -t handleSim > /dev/null && { handleSim; return; }
- logFile="${logFolder}/${simKey}_${sensorsSendInterval}SSI_${sensorsPktSize}SPS_${sensorsNumber}SN_${nbHop}NH_${linksBandwidth}LB_${linksLatency}LL.org"
+ local logFile="${logFolder}/${simKey}_${sensorsSendInterval}SSI_${sensorsPktSize}SPS_${sensorsNumber}SN_${nbHop}NH_${linksBandwidth}LB_${linksLatency}LL_${positionSeed}PS.org"
[ -f "$logFile" ] && return
- simCMD="$simulator --sensorsSendInterval=${sensorsSendInterval} --sensorsPktSize=${sensorsPktSize} --sensorsNumber=${sensorsNumber} --nbHop=${nbHop} --linksBandwidth=${linksBandwidth} --linksLatency=${linksLatency} 2>&1"
- log=$(bash -c "$simCMD")
+ local simCMD="$simulator --sensorsSendInterval=${sensorsSendInterval} --sensorsPktSize=${sensorsPktSize} --sensorsNumber=${sensorsNumber} --nbHop=${nbHop} --linksBandwidth=${linksBandwidth} --linksLatency=${linksLatency} --positionSeed=${positionSeed} 2>&1"
+ local log=$(bash -c "$simCMD")
# Compute some metrics
energyLog=$(echo "$log" | $parseEnergyScript)
avgDelay=$(echo "$log" | $parseDelayScript)
- totalEnergy=$(echo "$energyLog"| awk 'BEGIN{power=0;FS=","}NR!=1{power+=$2}END{print(power)}')
+ totalEnergy=$(echo "$energyLog" | awk 'BEGIN{power=0;FS=","}NR!=1{power+=$2}END{print(power)}')
+ sensorsEnergy=$(echo "$energyLog" |awk -F',' 'BEGIN{sumW=0}$1<0{sumW+=$2}END{print sumW}')
+ networkEnergy=$(echo "$energyLog" |awk -F',' 'BEGIN{sumN=0}$1>=0{sumN+=$2}END{print sumN}')
nbPacketCloud=$(echo "$log"|grep -c "CloudSwitch receive")
nbNodes=$(echo "$log"|awk '/Simulation used/{print($3)}')
ns3Version=$(echo "$log"|awk '/NS-3 Version/{print($3)}')
@@ -100,18 +104,14 @@ then
echo "* Energy CSV (negative nodeId = WIFI, 0 = AP (Wireless+Wired), positive nodeId = ECOFEN" >> $logFile
echo "$energyLog" >> $logFile
echo "* Metrics" >> $logFile
- echo "-METRICSLINE- sensorsSendInterval:${sensorsSendInterval} sensorsPktSize:${sensorsPktSize} sensorsNumber:${sensorsNumber} nbHop:${nbHop} linksBandwidth:${linksBandwidth} linksLatency:${linksLatency} totalEnergy:$totalEnergy nbPacketCloud:$nbPacketCloud nbNodes:$nbNodes avgDelay:${avgDelay} ns3Version:${ns3Version} simKey:${simKey}" >> $logFile
-
+ echo "-METRICSLINE- sensorsSendInterval:${sensorsSendInterval} sensorsPktSize:${sensorsPktSize} sensorsNumber:${sensorsNumber} nbHop:${nbHop} linksBandwidth:${linksBandwidth} linksLatency:${linksLatency} totalEnergy:$totalEnergy nbPacketCloud:$nbPacketCloud nbNodes:$nbNodes avgDelay:${avgDelay} ns3Version:${ns3Version} simKey:${simKey} positionSeed:${positionSeed} sensorsEnergy:${sensorsEnergy} networkEnergy:${networkEnergy}" >> $logFile
}
- simKey="NBHOP"
- for sensorsNumber in $(seq 1 15)
+ simKey="NBSENSORS"
+ for sensorsNumber in $(seq 1 10)
do
- for nbHop in $(seq 1 10)
- do
- run
- done
- done
+ run
+ done
simulator="simulator/simulator"
parseEnergyScript="./parseEnergy.awk"
parseDelayScript="./parseDelay.awk"
@@ -119,27 +119,30 @@ then
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${NS3_PATH}/build/lib
# Default Parameters
- sensorsSendInterval=10
+ sensorsSendInterval=10 # DON'T GO BELOW 1 SECONDS !!!!!!! Simulator will stay stuck
sensorsPktSize=5 # 1 byte temperature (-128 à +128 °C) and 4Byte sensorsId
sensorsNumber=10
nbHop=10 # Cf paper AC/Yunbo
linksBandwidth=10
linksLatency=2
+ positionSeed=5
simKey="NOKEY"
run () {
# If another function want to handle simulation (tipically used on g5k)
type -t handleSim > /dev/null && { handleSim; return; }
- logFile="${logFolder}/${simKey}_${sensorsSendInterval}SSI_${sensorsPktSize}SPS_${sensorsNumber}SN_${nbHop}NH_${linksBandwidth}LB_${linksLatency}LL.org"
+ local logFile="${logFolder}/${simKey}_${sensorsSendInterval}SSI_${sensorsPktSize}SPS_${sensorsNumber}SN_${nbHop}NH_${linksBandwidth}LB_${linksLatency}LL_${positionSeed}PS.org"
[ -f "$logFile" ] && return
- simCMD="$simulator --sensorsSendInterval=${sensorsSendInterval} --sensorsPktSize=${sensorsPktSize} --sensorsNumber=${sensorsNumber} --nbHop=${nbHop} --linksBandwidth=${linksBandwidth} --linksLatency=${linksLatency} 2>&1"
- log=$(bash -c "$simCMD")
+ local simCMD="$simulator --sensorsSendInterval=${sensorsSendInterval} --sensorsPktSize=${sensorsPktSize} --sensorsNumber=${sensorsNumber} --nbHop=${nbHop} --linksBandwidth=${linksBandwidth} --linksLatency=${linksLatency} --positionSeed=${positionSeed} 2>&1"
+ local log=$(bash -c "$simCMD")
# Compute some metrics
energyLog=$(echo "$log" | $parseEnergyScript)
avgDelay=$(echo "$log" | $parseDelayScript)
- totalEnergy=$(echo "$energyLog"| awk 'BEGIN{power=0;FS=","}NR!=1{power+=$2}END{print(power)}')
+ totalEnergy=$(echo "$energyLog" | awk 'BEGIN{power=0;FS=","}NR!=1{power+=$2}END{print(power)}')
+ sensorsEnergy=$(echo "$energyLog" |awk -F',' 'BEGIN{sumW=0}$1<0{sumW+=$2}END{print sumW}')
+ networkEnergy=$(echo "$energyLog" |awk -F',' 'BEGIN{sumN=0}$1>=0{sumN+=$2}END{print sumN}')
nbPacketCloud=$(echo "$log"|grep -c "CloudSwitch receive")
nbNodes=$(echo "$log"|awk '/Simulation used/{print($3)}')
ns3Version=$(echo "$log"|awk '/NS-3 Version/{print($3)}')
@@ -155,14 +158,13 @@ then
echo "* Energy CSV (negative nodeId = WIFI, 0 = AP (Wireless+Wired), positive nodeId = ECOFEN" >> $logFile
echo "$energyLog" >> $logFile
echo "* Metrics" >> $logFile
- echo "-METRICSLINE- sensorsSendInterval:${sensorsSendInterval} sensorsPktSize:${sensorsPktSize} sensorsNumber:${sensorsNumber} nbHop:${nbHop} linksBandwidth:${linksBandwidth} linksLatency:${linksLatency} totalEnergy:$totalEnergy nbPacketCloud:$nbPacketCloud nbNodes:$nbNodes avgDelay:${avgDelay} ns3Version:${ns3Version} simKey:${simKey}" >> $logFile
-
+ echo "-METRICSLINE- sensorsSendInterval:${sensorsSendInterval} sensorsPktSize:${sensorsPktSize} sensorsNumber:${sensorsNumber} nbHop:${nbHop} linksBandwidth:${linksBandwidth} linksLatency:${linksLatency} totalEnergy:$totalEnergy nbPacketCloud:$nbPacketCloud nbNodes:$nbNodes avgDelay:${avgDelay} ns3Version:${ns3Version} simKey:${simKey} positionSeed:${positionSeed} sensorsEnergy:${sensorsEnergy} networkEnergy:${networkEnergy}" >> $logFile
}
- simKey="BW"
- for sensorsNumber in $(seq 1 15)
+ simKey="SENDINTERVAL"
+ for sensorsNumber in $(seq 5 5 20)
do
- for linksBandwidth in $(seq 10 20 100)
+ for sensorsSendInterval in $(seq 10 10 100)
do
run
done
@@ -174,27 +176,30 @@ then
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${NS3_PATH}/build/lib
# Default Parameters
- sensorsSendInterval=10
+ sensorsSendInterval=10 # DON'T GO BELOW 1 SECONDS !!!!!!! Simulator will stay stuck
sensorsPktSize=5 # 1 byte temperature (-128 à +128 °C) and 4Byte sensorsId
sensorsNumber=10
nbHop=10 # Cf paper AC/Yunbo
linksBandwidth=10
linksLatency=2
+ positionSeed=5
simKey="NOKEY"
run () {
# If another function want to handle simulation (tipically used on g5k)
type -t handleSim > /dev/null && { handleSim; return; }
- logFile="${logFolder}/${simKey}_${sensorsSendInterval}SSI_${sensorsPktSize}SPS_${sensorsNumber}SN_${nbHop}NH_${linksBandwidth}LB_${linksLatency}LL.org"
+ local logFile="${logFolder}/${simKey}_${sensorsSendInterval}SSI_${sensorsPktSize}SPS_${sensorsNumber}SN_${nbHop}NH_${linksBandwidth}LB_${linksLatency}LL_${positionSeed}PS.org"
[ -f "$logFile" ] && return
- simCMD="$simulator --sensorsSendInterval=${sensorsSendInterval} --sensorsPktSize=${sensorsPktSize} --sensorsNumber=${sensorsNumber} --nbHop=${nbHop} --linksBandwidth=${linksBandwidth} --linksLatency=${linksLatency} 2>&1"
- log=$(bash -c "$simCMD")
+ local simCMD="$simulator --sensorsSendInterval=${sensorsSendInterval} --sensorsPktSize=${sensorsPktSize} --sensorsNumber=${sensorsNumber} --nbHop=${nbHop} --linksBandwidth=${linksBandwidth} --linksLatency=${linksLatency} --positionSeed=${positionSeed} 2>&1"
+ local log=$(bash -c "$simCMD")
# Compute some metrics
energyLog=$(echo "$log" | $parseEnergyScript)
avgDelay=$(echo "$log" | $parseDelayScript)
- totalEnergy=$(echo "$energyLog"| awk 'BEGIN{power=0;FS=","}NR!=1{power+=$2}END{print(power)}')
+ totalEnergy=$(echo "$energyLog" | awk 'BEGIN{power=0;FS=","}NR!=1{power+=$2}END{print(power)}')
+ sensorsEnergy=$(echo "$energyLog" |awk -F',' 'BEGIN{sumW=0}$1<0{sumW+=$2}END{print sumW}')
+ networkEnergy=$(echo "$energyLog" |awk -F',' 'BEGIN{sumN=0}$1>=0{sumN+=$2}END{print sumN}')
nbPacketCloud=$(echo "$log"|grep -c "CloudSwitch receive")
nbNodes=$(echo "$log"|awk '/Simulation used/{print($3)}')
ns3Version=$(echo "$log"|awk '/NS-3 Version/{print($3)}')
@@ -210,71 +215,17 @@ then
echo "* Energy CSV (negative nodeId = WIFI, 0 = AP (Wireless+Wired), positive nodeId = ECOFEN" >> $logFile
echo "$energyLog" >> $logFile
echo "* Metrics" >> $logFile
- echo "-METRICSLINE- sensorsSendInterval:${sensorsSendInterval} sensorsPktSize:${sensorsPktSize} sensorsNumber:${sensorsNumber} nbHop:${nbHop} linksBandwidth:${linksBandwidth} linksLatency:${linksLatency} totalEnergy:$totalEnergy nbPacketCloud:$nbPacketCloud nbNodes:$nbNodes avgDelay:${avgDelay} ns3Version:${ns3Version} simKey:${simKey}" >> $logFile
-
+ echo "-METRICSLINE- sensorsSendInterval:${sensorsSendInterval} sensorsPktSize:${sensorsPktSize} sensorsNumber:${sensorsNumber} nbHop:${nbHop} linksBandwidth:${linksBandwidth} linksLatency:${linksLatency} totalEnergy:$totalEnergy nbPacketCloud:$nbPacketCloud nbNodes:$nbNodes avgDelay:${avgDelay} ns3Version:${ns3Version} simKey:${simKey} positionSeed:${positionSeed} sensorsEnergy:${sensorsEnergy} networkEnergy:${networkEnergy}" >> $logFile
}
- simKey="LATENCY"
- for sensorsNumber in $(seq 1 15)
+ simKey="SENSORSPOS"
+ for sensorsNumber in $(seq 5 5 20)
do
- for linksLatency in $(seq 1 1 10)
+ for positionSeed in $(seq 1 10)
do
run
done
done
-
- simulator="simulator/simulator"
- parseEnergyScript="./parseEnergy.awk"
- parseDelayScript="./parseDelay.awk"
- logFolder="logs/"
- export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${NS3_PATH}/build/lib
-
- # Default Parameters
- sensorsSendInterval=10
- sensorsPktSize=5 # 1 byte temperature (-128 à +128 °C) and 4Byte sensorsId
- sensorsNumber=10
- nbHop=10 # Cf paper AC/Yunbo
- linksBandwidth=10
- linksLatency=2
- simKey="NOKEY"
-
- run () {
- # If another function want to handle simulation (tipically used on g5k)
- type -t handleSim > /dev/null && { handleSim; return; }
-
- logFile="${logFolder}/${simKey}_${sensorsSendInterval}SSI_${sensorsPktSize}SPS_${sensorsNumber}SN_${nbHop}NH_${linksBandwidth}LB_${linksLatency}LL.org"
- [ -f "$logFile" ] && return
- simCMD="$simulator --sensorsSendInterval=${sensorsSendInterval} --sensorsPktSize=${sensorsPktSize} --sensorsNumber=${sensorsNumber} --nbHop=${nbHop} --linksBandwidth=${linksBandwidth} --linksLatency=${linksLatency} 2>&1"
- log=$(bash -c "$simCMD")
-
- # Compute some metrics
- energyLog=$(echo "$log" | $parseEnergyScript)
- avgDelay=$(echo "$log" | $parseDelayScript)
- totalEnergy=$(echo "$energyLog"| awk 'BEGIN{power=0;FS=","}NR!=1{power+=$2}END{print(power)}')
- nbPacketCloud=$(echo "$log"|grep -c "CloudSwitch receive")
- nbNodes=$(echo "$log"|awk '/Simulation used/{print($3)}')
- ns3Version=$(echo "$log"|awk '/NS-3 Version/{print($3)}')
-
- # Save logs
- echo -e "#+TITLE: $(date) ns-3 (version ${ns3Version}) simulation\n" > $logFile
- echo "* Environment Variables" >> $logFile
- env >> $logFile
- echo "* Full Command" >> $logFile
- echo "$simCMD" >> $logFile
- echo "* Output" >> $logFile
- echo "$log" >> $logFile
- echo "* Energy CSV (negative nodeId = WIFI, 0 = AP (Wireless+Wired), positive nodeId = ECOFEN" >> $logFile
- echo "$energyLog" >> $logFile
- echo "* Metrics" >> $logFile
- echo "-METRICSLINE- sensorsSendInterval:${sensorsSendInterval} sensorsPktSize:${sensorsPktSize} sensorsNumber:${sensorsNumber} nbHop:${nbHop} linksBandwidth:${linksBandwidth} linksLatency:${linksLatency} totalEnergy:$totalEnergy nbPacketCloud:$nbPacketCloud nbNodes:$nbNodes avgDelay:${avgDelay} ns3Version:${ns3Version} simKey:${simKey}" >> $logFile
-
- }
-
- simKey="NBSENSORS"
- for sensorsNumber in $(seq 1 5)
- do
- run
- done
# Distribute argument according to subsribed nodes
cd $simArgsLoc
@@ -292,8 +243,8 @@ then
echo "Host who finished their work:" > $finishedFile
for host in ${hostList[@]}
do
- #oarsh lguegan@$host bash g5k-worker.sh &
- echo "$host"
+ echo "Start simulations on node $host"
+ oarsh lguegan@$host bash g5k-worker.sh &
done
exit 0