Clean repo, update paper

This commit is contained in:
Loic Guegan 2019-05-22 10:15:45 +02:00
parent 4045a41e02
commit 5a77b67d6b
965 changed files with 678 additions and 15644411 deletions
g5k/logs

View file

@ -4,20 +4,146 @@
* Logs Analysis
** R Scripts
*** Generate all plots script
#+BEGIN_SRC R :results graphics :file third-try/plot.png :noweb yes
*** Plots script
#+BEGIN_SRC R :results output :noweb yes :file second-final/plot.png
<<RUtils>>
data=loadData("./third-try/data.csv")
dataOrig=loadData("./second-final/data.csv")
data=data%>%filter(simKey=="nbSensors") %>% filter(nbSensors==200)
ggplot(data,aes(x=time,y=energy,color=nbSensors))+geom_point(position="jitter")+xlab(getLabel("time"))+expand_limits(y=0)#+geom_hline(aes(group=nbSensors,color=nbSensors,yintercept=mean(energy)))
ggsave("./third-try/plot.png",dpi=180)
data=dataOrig%>%filter(simKey=="nbSensors")%>%filter(state=="sim",nbSensors==100)
dataIDLE=dataOrig%>%filter(simKey=="nbSensors")%>%filter(state!="sim",nbSensors==100)
data=data%>%mutate(meanEnergy=mean(energy))
dataIDLE=dataIDLE%>%mutate(meanEnergy=mean(energy))
data=rbind(data,dataIDLE)
ggplot(data,aes(x=time,y=energy))+geom_point(position="jitter")+xlab(getLabel("time"))+expand_limits(y=0)+facet_wrap(~state)+geom_hline(aes(color=state,yintercept=mean(meanEnergy)))
ggsave("./second-final/plot.png",dpi=180)
#+END_SRC
#+RESULTS:
[[file:third-try/plot.png]]
#+begin_example
# A tibble: 3,050 x 8
ts energy simKey vmSize nbSensors time state meanEnergy
<dbl> <dbl> <chr> <dbl> <dbl> <dbl> <chr> <dbl>
1 1558429001. 90.2 nbSensors 2048 100 0 IDLE 90.8
2 1558429001. 89 nbSensors 2048 100 0.0199 IDLE 90.8
3 1558429001. 89 nbSensors 2048 100 0.0399 IDLE 90.8
4 1558429001. 90.8 nbSensors 2048 100 0.0599 IDLE 90.8
5 1558429001. 91 nbSensors 2048 100 0.0799 IDLE 90.8
6 1558429001. 90.5 nbSensors 2048 100 0.1000 IDLE 90.8
7 1558429001. 89.9 nbSensors 2048 100 0.120 IDLE 90.8
8 1558429001. 88.6 nbSensors 2048 100 0.140 IDLE 90.8
9 1558429001. 88.6 nbSensors 2048 100 0.160 IDLE 90.8
10 1558429001. 90.5 nbSensors 2048 100 0.180 IDLE 90.8
# … with 3,040 more rows
#+end_example
**** Final plot
#+BEGIN_SRC R :results graphics :noweb yes :file second-final/plot-final.png :session *R*
<<RUtils>>
data=loadData("./second-final/data.csv")
data=data%>%filter(state=="sim",simKey=="nbSensors")
# Cloud
data10=data%>%filter(nbSensors==20)%>%mutate(meanEnergy=mean(energy)) %>% slice(1L)
data100=data%>%filter(nbSensors==100)%>%mutate(meanEnergy=mean(energy)) %>% slice(1L)
data300=data%>%filter(nbSensors==300)%>%mutate(meanEnergy=mean(energy)) %>% slice(1L)
dataCloud=rbind(data10,data100,data300)%>%mutate(nbSensors=as.character(nbSensors))
# Network
dataNet=loadData("../../ns3-simulations/logs/data.csv")
dataNet=dataNet%>%filter(simKey=="NBSENSORS")
data5=dataNet%>%filter(sensorsNumber==5)%>%select(networkEnergy,sensorsNumber)
data10=dataNet%>%filter(sensorsNumber==10)%>%select(networkEnergy,sensorsNumber)
print(data20)
ggplot(dataCloud)+geom_bar(aes(x=nbSensors,y=meanEnergy),stat="identity")+xlab("Sensors Number")+ylab("Power Consumption (W)")
ggsave("./second-final/plot-final.png",dpi=80)
#+END_SRC
#+RESULTS:
#+BEGIN_SRC R :noweb yes :results graphics :file final.png :session *R*
<<RUtils>>
data=loadData("./second-final/data.csv")
data=data%>%filter(state=="sim",simKey=="nbSensors")
# Cloud
data10=data%>%filter(nbSensors==20)%>%mutate(energy=mean(energy)) %>% slice(1L)
data100=data%>%filter(nbSensors==100)%>%mutate(energy=mean(energy)) %>% slice(1L)
data300=data%>%filter(nbSensors==300)%>%mutate(energy=mean(energy)) %>% slice(1L)
dataCloud=rbind(data10,data100,data300)%>%mutate(sensorsNumber=nbSensors)%>%mutate(type="Cloud")%>%select(sensorsNumber,energy,type)
approx=function(data1, data2,nbSensors){
x1=data1$sensorsNumber
y1=data1$energy
x2=data2$sensorsNumber
y2=data2$energy
a=((y2-y1)/(x2-x1))
b=y1-a*x1
return(a*nbSensors+b)
}
simTime=1800
# Network
data=read_csv("../../ns3-simulations/logs/data.csv")
data=data%>%filter(simKey=="NBSENSORS")
dataC5=data%>%filter(sensorsNumber==5)%>% mutate(energy=networkEnergy/simTime) %>%select(energy,sensorsNumber)
dataC10=data%>%filter(sensorsNumber==10)%>%mutate(energy=networkEnergy/simTime) %>%select(energy,sensorsNumber)
dataNet=rbind(dataC5,dataC10)%>%mutate(type="Network")
# Sensors
dataS5=data%>%filter(sensorsNumber==5)%>% mutate(energy=sensorsEnergy/simTime) %>%select(energy,sensorsNumber)
dataS10=data%>%filter(sensorsNumber==10)%>%mutate(energy=sensorsEnergy/simTime) %>%select(energy,sensorsNumber)
dataS=rbind(dataS5,dataS10)%>%mutate(type="Sensors")
fakeNetS=tibble(
sensorsNumber=c(20,100,300,20,100,300),
energy=c(dataC10$energy,approx(dataC5,dataC10,100),approx(dataC5,dataC10,300),dataS10$energy,approx(dataS5,dataS10,100),approx(dataS5,dataS10,300)),
type=c("Network","Network","Network","Sensors","Sensors","Sensors")
)
fakeNetS=fakeNetS%>%mutate(sensorsNumber=as.character(sensorsNumber))
dataCloud=dataCloud%>%mutate(sensorsNumber=as.character(sensorsNumber))
data=rbind(fakeNetS,dataCloud)%>%mutate(sensorsNumber=as.character(sensorsNumber))
data=data%>%mutate(sensorsNumber=fct_reorder(sensorsNumber,as.numeric(sensorsNumber)))
ggplot(data)+geom_bar(position="dodge2",colour="black",aes(x=sensorsNumber,y=energy,fill=type),stat="identity")+
xlab("Sensors Number")+ylab("Power Consumption (W)")+guides(fill=guide_legend(title="Part"))
ggsave("final.png",dpi=80)
#+END_SRC
#+RESULTS:
[[file:final.png]]
*** R Utils
RUtils is intended to load logs (data.csv) and providing
simple plot function for them.
@ -81,7 +207,7 @@
emacs $orgFile --batch -f org-latex-export-to-pdf --kill
#+END_SRC
** CSVs -> CSV
Merge all energy file into one (and add additional fields).
@ -89,7 +215,7 @@
#+BEGIN_SRC sh
#!/bin/bash
whichLog="third-try"
whichLog="second-final"
logFile="$(dirname $(readlink -f $0))"/$whichLog/simLogs.txt
@ -113,15 +239,18 @@
nbSensors=$(getValue $cmd nbSensors)
simKey=$(getValue $cmd simKey)
csvFile="$whichLog/${simKey}_${vmSize}VMSIZE_${nbSensors}NBSENSORS_${from}${to}.csv"
csvFileIDLE="$whichLog/${simKey}_${vmSize}VMSIZE_${nbSensors}NBSENSORS_${from}${to}_IDLE.csv"
tmpFile=${csvFile}_tmp
echo ts,energy,simKey,vmSize,nbSensors,time > $tmpFile
minEnergy=$(tail -n+2 $csvFile|awk -F"," 'BEGIN{min=0}$1<min||min==0{min=$1}END{print(min)}') # To compute ts field
tail -n+2 ${csvFile} | awk -F"," '{print $0",'$simKey','$vmSize','$nbSensors',"$1-'$minEnergy'}' >> $tmpFile
echo ts,energy,simKey,vmSize,nbSensors,time,state > $tmpFile
minTs=$(tail -n+2 $csvFile|awk -F"," 'BEGIN{min=0}$1<min||min==0{min=$1}END{print(min)}') # To compute ts field
minTsIDLE=$(tail -n+2 $csvFileIDLE|awk -F"," 'BEGIN{min=0}$1<min||min==0{min=$1}END{print(min)}') # To compute ts field
tail -n+2 ${csvFile} | awk -F"," '{print $0",'$simKey','$vmSize','$nbSensors',"$1-'$minTs'",sim"}' >> $tmpFile
tail -n+2 ${csvFileIDLE} | awk -F"," '{print $0",'$simKey','$vmSize','$nbSensors',"$1-'$minTsIDLE'",IDLE"}' >> $tmpFile
done
##### File dataFile #####
echo ts,energy,simKey,vmSize,nbSensors,time > $dataFile
##### Fill dataFile #####
echo ts,energy,simKey,vmSize,nbSensors,time,state > $dataFile
for tmpFile in $(find ${whichLog}/*_tmp -type f)
do
tail -n+2 $tmpFile >> $dataFile