summaryrefslogtreecommitdiff
path: root/2019-Mascots.org
diff options
context:
space:
mode:
authorLoic Guegan <manzerberdes@gmx.com>2019-05-27 16:01:26 +0200
committerLoic Guegan <manzerberdes@gmx.com>2019-05-27 16:01:26 +0200
commit18742ad94405c2998fa357d9e90a7f03266885d0 (patch)
tree25dc5d0cf67fdda353e9c77f48a4b86f625c74d8 /2019-Mascots.org
parentfce7ffd9ea478890068dae0d6b5120cb24fc6700 (diff)
Update paper/new simulation with 10G routers
Diffstat (limited to '2019-Mascots.org')
-rw-r--r--2019-Mascots.org158
1 files changed, 95 insertions, 63 deletions
diff --git a/2019-Mascots.org b/2019-Mascots.org
index cddc6dd..63dd9ca 100644
--- a/2019-Mascots.org
+++ b/2019-Mascots.org
@@ -297,7 +297,7 @@ component, formatting, style, styling, insert
simple plot function for them.
#+NAME: RUtils
- #+BEGIN_SRC R :eval never
+ #+BEGIN_SRC R :eval never
library("tidyverse")
# Fell free to update the following
@@ -311,6 +311,7 @@ component, formatting, style, styling, insert
if("sensorsEnergy"%in%colnames(data)){ # If it is ns3 logs
data=data%>%mutate(sensorsEnergy=sensorsEnergy/ns3SimTime) # Convert to watts
data=data%>%mutate(networkEnergy=networkEnergy/ns3SimTime)
+ data=data%>%mutate(networkEnergy=networkEnergy+getSwitchesIDLE(sensorsNumber,sensorsSendInterval)) # Add Idle conso of switches
data=data%>%mutate(totalEnergy=totalEnergy/ns3SimTime)
}
else{ # Log from g5k
@@ -319,6 +320,32 @@ component, formatting, style, styling, insert
}
}
+
+ getSwitchesIDLE=function(nbSensors, sendInterval){
+ pktSize=192
+ nEdgeRouter=8
+ nCoreRouter=1
+
+ EdgeIdle=4095
+ EdgeMax=4550
+ EdgeTraffic=560*10^9
+
+ CoreIdle=11070
+ CoreMax=12300
+ CoreTraffic=4480*10^9
+
+ # Apply 0.6 factor
+ EdgeTraffic=EdgeTraffic*0.6
+ CoreTraffic=CoreTraffic*0.6
+
+ totalTraffic=pktSize/sendInterval*nbSensors
+
+ EdgeConso=EdgeIdle*(totalTraffic/EdgeTraffic)
+ CoreConso=CoreIdle*(totalTraffic/CoreTraffic)
+
+ return(EdgeConso+CoreConso)
+ }
+
# Get label according to varName
getLabel=function(varName){
if(is.na(labels[varName])){
@@ -335,7 +362,11 @@ component, formatting, style, styling, insert
scale_colour_manual(values=palette)
return(plot)
}
+
#+END_SRC
+
+
+
**** Bash
***** Plots -> PDF
Merge all plots in plots/ folder into a pdf file.
@@ -468,6 +499,55 @@ component, formatting, style, styling, insert
*** Plot Scripts
**** Random R Scripts
+ Figure
+ #+BEGIN_SRC R :noweb yes :results graphics :file plots/sendFrequency-energy.png
+ <<RUtils>>
+
+ data=loadData("logs/ns3/last/data.csv")
+ data=data%>%filter(simKey=="SENDINTERVAL",sensorsNumber==15)
+
+ p=ggplot(data,aes(y=totalEnergy,x=sensorsSendInterval))+
+ xlab(getLabel("sensorsSendInterval"))+ylab(getLabel("Sensors And Network\nPower Consumption (W)"))+
+ geom_line()+geom_point()+expand_limits(y=c(0,50))+
+ guides(color=guide_legend(title="Curves"))+
+ theme(axis.title.y.right = element_text(margin = margin(t = 0, r = -13, b = 0, l = 7)))
+ p=applyTheme(p)
+
+ ggsave("plots/sendFrequency-energy.png",dpi=100, width=3, height=2.8)
+ #+END_SRC
+
+ #+RESULTS:
+ [[file:plots/sendFrequency-energy.png]]
+
+
+
+
+ Figure Sensors Position ~ Energy/Delay
+ #+BEGIN_SRC R :noweb yes :results graphics :file plots/sensorsPosition-delayenergy.png
+ <<RUtils>>
+ tr=11 # Offset to center delay plot
+ data=loadData("logs/ns3/last/data.csv")
+
+ data=data%>%filter(simKey=="SENSORSPOS",sensorsNumber==9)
+
+ p=ggplot(data,aes(y=sensorsEnergy,x=positionSeed,color="Energy"))+xlab(getLabel("Sensors Position Seed"))+ylab(getLabel("Sensors Power Consumption (W)"))+
+ geom_line()+geom_point()+geom_line(aes(y=(avgDelay-tr),color="Delay"))+geom_point(aes(y=(avgDelay-tr),color="Delay"))+expand_limits(y=c(0,15))+
+ scale_y_continuous(sec.axis = sec_axis(~.+tr, name = "Application Delay (s)")) +
+ guides(color=guide_legend(title="Curves"))
+
+ p=applyTheme(p)
+ p=p+theme(axis.title.y.right = element_text(margin = margin(t = 0, r = -8, b = 0, l = 10)))
+
+
+
+ ggsave("plots/sensorsPosition-delayenergy.png",dpi=80, width=4, height=3.2)
+ #+END_SRC
+
+ #+RESULTS:
+ [[file:plots/sensorsPosition-delayenergy.png]]
+
+
+
Watt per sensor on server
#+BEGIN_SRC R :noweb yes :results output
<<RUtils>>
@@ -498,7 +578,7 @@ component, formatting, style, styling, insert
data=data%>%group_by(vmSize)%>%mutate(energy=mean(energy))%>%slice(1L)%>%ungroup()
data=data%>%mutate(vmSize=as.character(vmSize))
- ggplot(data) + geom_bar(aes(x=vmSize,y=energy),stat="identity")+expand_limits(y=c(75,100))+ylab("Server Energy Consumption (W)")+
+ ggplot(data) + geom_bar(aes(x=vmSize,y=energy),stat="identity")+expand_limits(y=c(75,100))+ylab("Server Power Consumption (W)")+
xlab("Experiment Time (s)")+scale_y_log10()
@@ -573,55 +653,7 @@ component, formatting, style, styling, insert
**** Plot In Paper
- Figure
- #+BEGIN_SRC R :noweb yes :results graphics :file plots/sendFrequency-energy.png
- <<RUtils>>
-
- data=loadData("logs/ns3/last/data.csv")
- data=data%>%filter(simKey=="SENDINTERVAL",sensorsNumber==15)
-
- p=ggplot(data,aes(y=totalEnergy,x=sensorsSendInterval))+
- xlab(getLabel("sensorsSendInterval"))+ylab(getLabel("Sensors And Network\nEnergy Consumption (W)"))+
- geom_line()+geom_point()+expand_limits(y=c(0,50))+
- guides(color=guide_legend(title="Curves"))+
- theme(axis.title.y.right = element_text(margin = margin(t = 0, r = -13, b = 0, l = 7)))
- p=applyTheme(p)
-
- ggsave("plots/sendFrequency-energy.png",dpi=100, width=3, height=2.8)
- #+END_SRC
-
- #+RESULTS:
- [[file:plots/sendFrequency-energy.png]]
-
-
-
- Figure Sensors Position ~ Energy/Delay
- #+BEGIN_SRC R :noweb yes :results graphics :file plots/sensorsPosition-delayenergy.png
- <<RUtils>>
- tr=171 # Offset to center delay plot
- data=loadData("logs/ns3/last/data.csv")
-
- data=data%>%filter(simKey=="SENSORSPOS",sensorsNumber==9)
-
- p=ggplot(data,aes(y=sensorsEnergy,x=positionSeed,color="Energy"))+xlab(getLabel("Sensors Position Seed"))+ylab(getLabel("Sensors Energy Consumption (W)"))+
- geom_line()+geom_point()+geom_line(aes(y=(avgDelay-tr),color="Delay"))+geom_point(aes(y=(avgDelay-tr),color="Delay"))+expand_limits(y=c(0,15))+
- scale_y_continuous(sec.axis = sec_axis(~.+tr, name = "Application Delay (s)")) +
- guides(color=guide_legend(title="Curves"))
-
- p=applyTheme(p)
- p=p+theme(axis.title.y.right = element_text(margin = margin(t = 0, r = -8, b = 0, l = 10)))
-
-
-
- ggsave("plots/sensorsPosition-delayenergy.png",dpi=80, width=4, height=3.2)
- #+END_SRC
-
- #+RESULTS:
- [[file:plots/sensorsPosition-delayenergy.png]]
-
-
-
-
+ Power sensors vs network
#+BEGIN_SRC R :noweb yes :results graphics :file plots/numberSensors-WIFINET.png :session *R*
<<RUtils>>
@@ -636,7 +668,7 @@ component, formatting, style, styling, insert
data=data%>%filter(sensorsNumber%in%c(2,4,6,8,10))
p=ggplot(data)+geom_bar(aes(x=sensorsNumber,y=energy,fill=type),position="dodge",stat="identity")+
- xlab(getLabel("sensorsNumber"))+ ylab("Energy Consumption (W)") + guides(fill=guide_legend(title=""))
+ xlab(getLabel("sensorsNumber"))+ ylab("Power Consumption (W)") + guides(fill=guide_legend(title=""))
p=applyTheme(p)+theme(text = element_text(size=15))
size=5
@@ -652,7 +684,8 @@ component, formatting, style, styling, insert
Final plot: Energy cloud, network and sensors
- #+BEGIN_SRC R :noweb yes :results output graphics :file plots/final.png
+
+ #+BEGIN_SRC R :noweb yes :results graphics :file plots/final.png
<<RUtils>>
# Load data
@@ -688,7 +721,6 @@ component, formatting, style, styling, insert
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)
@@ -706,7 +738,7 @@ component, formatting, style, styling, insert
data=data%>%mutate(sensorsNumber=fct_reorder(sensorsNumber,as.numeric(sensorsNumber)))
data$type=factor(data$type,ordered=TRUE,levels=c("Sensors","Network","Cloud"))
p=ggplot(data)+geom_bar(position="dodge2",colour="black",aes(x=sensorsNumber,y=energy,fill=type),stat="identity")+
- xlab("Sensors Number")+ylab("Energy Consumption (W)")+guides(fill=guide_legend(title="System Part"))
+ xlab("Sensors Number")+ylab("Power Consumption (W)")+guides(fill=guide_legend(title="System Part"))
p=applyTheme(p)+theme(text = element_text(size=16))
ggsave("plots/final.png",dpi=90,width=8,height=5.5)
#+END_SRC
@@ -728,14 +760,14 @@ component, formatting, style, styling, insert
data=data%>%mutate(vmSize=paste0(vmSize," MB"))
data=data%>%group_by(vmSize)%>%mutate(avgEnergy=mean(energy))%>%ungroup()
- p=ggplot(data,aes(x=time, y=energy)) + geom_line()+facet_wrap(~vmSize)+geom_hline(aes(yintercept=avgEnergy),color="Red",size=1.0)+expand_limits(y=c(0,40))+ylab("Server Energy Consumption (W)")+
+ p=ggplot(data,aes(x=time, y=energy)) + geom_line()+facet_wrap(~vmSize)+geom_hline(aes(yintercept=avgEnergy),color="Red",size=1.0)+expand_limits(y=c(0,40))+ylab("Server Power Consumption (W)")+
xlab("Experiment Time (s)")
p=applyTheme(p)
ggsave("plots/vmSize-cloud.png",dpi=90,height=3,width=6)
#+END_SRC
-
+
#+RESULTS:
[[file:plots/vmSize-cloud.png]]
@@ -753,7 +785,7 @@ component, formatting, style, styling, insert
data$nbSensors=fct_reorder(data$nbSensors, data$nbSensorsSort)
data=data%>%group_by(nbSensors)%>%mutate(avgEnergy=mean(energy))%>%ungroup()
- p=ggplot(data,aes(x=time, y=energy)) + geom_line()+facet_wrap(~nbSensors)+expand_limits(y=c(0,40))+ylab("Server Energy Consumption (W)")+
+ p=ggplot(data,aes(x=time, y=energy)) + geom_line()+facet_wrap(~nbSensors)+expand_limits(y=c(0,40))+ylab("Server Power Consumption (W)")+
xlab("Experiment Time (s)")+geom_hline(aes(yintercept=avgEnergy),color="Red",size=1.0)
p=applyTheme(p)
@@ -778,10 +810,10 @@ component, formatting, style, styling, insert
data=data%>%mutate(WPS=(avgEnergy/nbSensors))
p=ggplot(data,aes(x=nbSensors, y=avgEnergy)) + geom_point() +geom_line()+
- xlab(getLabel("sensorsNumber"))+ylab("Average Server Energy (W)")
+ xlab(getLabel("sensorsNumber"))+ylab("Average server power consumption (W)")
p=applyTheme(p)+theme(text = element_text(size=14))+ expand_limits(y=108)
- ggsave("plots/sensorsNumberLine-cloud.png",dpi=90,height=4,width=4)
+ ggsave("plots/sensorsNumberLine-cloud.png",dpi=90,height=4.5,width=4)
#+END_SRC
#+RESULTS:
@@ -804,7 +836,7 @@ component, formatting, style, styling, insert
data=data%>%mutate(nbSensors=as.character(nbSensors))
data$nbSensors=fct_reorder(data$nbSensors,oldNb)
p=ggplot(data,aes(x=nbSensors, y=WPS)) + geom_bar(stat="identity")+
- xlab(getLabel("sensorsNumber"))+ylab("Server energy cost per sensors (W)")
+ xlab(getLabel("sensorsNumber"))+ylab("Server power cost per sensors (W)")
p=applyTheme(p)+theme(text = element_text(size=14))+ theme(axis.title.y = element_text(margin = margin(t = 0, r = 8, b = 0, l = 0)))
ggsave("plots/WPS-cloud.png",dpi=90,height=4,width=4)
@@ -831,7 +863,7 @@ component, formatting, style, styling, insert
data=data%>%group_by(sendInterval)%>%mutate(avgEnergy=mean(energy))%>%ungroup()
print(data)
- p=ggplot(data,aes(x=time, y=energy)) + geom_line()+facet_wrap(~sendInterval)+expand_limits(y=c(0,40))+ylab("Server Energy Consumption (W)")+
+ p=ggplot(data,aes(x=time, y=energy)) + geom_line()+facet_wrap(~sendInterval)+expand_limits(y=c(0,40))+ylab("Server power consumption (W)")+
xlab("Experiment Time (s)")+geom_hline(aes(yintercept=avgEnergy),color="Red",size=1.0)
p=applyTheme(p)
@@ -843,7 +875,7 @@ component, formatting, style, styling, insert
-
+
* Emacs settings :noexport:
# Local Variables:
# eval: (unless (boundp 'org-latex-classes) (setq org-latex-classes nil))