summaryrefslogtreecommitdiff
path: root/ns3-simulations/g5k-worker.sh
diff options
context:
space:
mode:
Diffstat (limited to 'ns3-simulations/g5k-worker.sh')
-rwxr-xr-xns3-simulations/g5k-worker.sh75
1 files changed, 0 insertions, 75 deletions
diff --git a/ns3-simulations/g5k-worker.sh b/ns3-simulations/g5k-worker.sh
deleted file mode 100755
index 3830e73..0000000
--- a/ns3-simulations/g5k-worker.sh
+++ /dev/null
@@ -1,75 +0,0 @@
-#!/bin/bash
-export NS3_PATH=~/.bin/ns-3/ns-3.29/
-g5kLogFolder="/tmp/logs/"
-mkdir -p $g5kLogFolder # Create log folder just in case
-rm -rf $g5kLogFolder/* # Clean previous logs just in case
-
-hostname=$(hostname)
-
-# Run simulations with sourced arguments :D
-simArgsLoc=~/args/ # Don't change this path without changing it in root scripts
-
-argsId=0
-argsFile="$simArgsLoc/${hostname}-args-${argsId}.sh" # Arguments generated by Root Node
-curNProcesses=0 # Start with no processes
-for argsFile in $(find $simArgsLoc -type f -name "$hostname*")
-do
- 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 # 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; }
-
- local logFile="${logFolder}/${simKey}_${sensorsSendInterval}SSI_${sensorsPktSize}SPS_${sensorsNumber}SN_${nbHop}NH_${linksBandwidth}LB_${linksLatency}LL_${positionSeed}PS.org"
- [ -f "$logFile" ] && return
- 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)}')
- 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)}')
-
- # 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} positionSeed:${positionSeed} sensorsEnergy:${sensorsEnergy} networkEnergy:${networkEnergy}" >> $logFile
- }
-
- logFolder=$g5kLogFolder # Don't forget override default g5kLogFolder
- source $argsFile # Fetch argument
- run & # Run async
- ((curNProcesses+=1)) # Increase by 2
- [ $curNProcesses -ge $nProcesses ] && { curNProcesses=0; wait; }
-done
-wait # Wait until the end of all simulations
-
-cp -r $g5kLogFolder/* "$logsFinalDst" # Fetch log from tmp into nfs
-echo $(hostname) >> $finishedFile # Just say I finished