Graph of various FLOPS sources
rm(list = ls()) | |
library(dplyr) | |
library(reshape2) | |
library(ggplot2) | |
top500.df<-read.table("~/data/presentation/metacomputomics/aux/top500.txt",sep="\t",header=T,quote="",colClasses=c("integer","character","character","numeric","numeric","numeric","numeric")) | |
head(top500.df) | |
nrow(top500.df) | |
c.o.df<-top500.df[seq(2,nrow(top500.df),2),] %>% select(country=site, org=system) | |
c.o.df | |
top500.df<-top500.df[seq(1,nrow(top500.df)-1,2),] %>% bind_cols(c.o.df) | |
head(top500.df) | |
top500.df %>% select(-system, -site) | |
topus.df<-top500.df %>% mutate(joules.per.year=power.kW * 1e3 * 60*60*24*365) %>% mutate(joules.per.flop=(power.kW * 1e3/(tflops.rmax*1e12))) %>% filter(country=="United States") %>% na.omit() | |
topus.df | |
sum(topus.df$joules.per.year) | |
top500.flops<-sum(topus.df$tflops.rmax)*1e12 | |
top500.flops | |
median(topus.df$joules.per.flop) | |
fivenum(topus.df$joules.per.flop) | |
gp.ips<- 6.4 * 10^18 | |
as.ips<- (1.9/0.97) * 10^14 * 10^6 | |
gp.flops2007<-gp.ips/3 | |
as.flops2007<-as.ips/3 | |
gp.flops2007 | |
as.flops2007 | |
gp.flops2016<-(gp.ips/3) * (1+0.58)^(2017-2007) | |
as.flops2016<-(as.ips/3)*(1+0.83)^(2017-2007) | |
gp.flops2016 | |
as.flops2016 | |
totalflops.2007<-gp.flops2007+as.flops2007 | |
proj2016.flops<-gp.flops2016+gp.flops2016 | |
totalflops.2007 | |
proj2016.flops | |
#bitcoin hashrate | |
btc.flops<-39106941.99e15 | |
#SETI | |
seti.flops<-917.990e12 | |
#BOINC | |
boinc.flops<-166283.502e12 | |
nvda.gtx.titanx.flops<-11e12 | |
google.flops<-40e15*(1+1)^(2016-2012) | |
#ps4 | |
ps4.flops<-1.84e12 | |
flops.sources<-c('Single\nPlaystation 4', 'All Of Google?','Single\nNividia GTX Titan X','2007 Global Total','TOP500 Supercomputer Total', 'SETI@home', 'BOINC', 'Projected 2016 Global Total', 'Bitcoin Hashrate', 'Actual Global Total ???') | |
values<-c(ps4.flops,google.flops,nvda.gtx.titanx.flops, totalflops.2007, top500.flops, seti.flops, boinc.flops, proj2016.flops, btc.flops, 10^24) | |
knowns<-as.factor(c(1,2,1,1,1,1,1,1,1,2)) | |
df<-data.frame(flops.source=flops.sources,value=values, known=knowns, stringAsFactors=F) | |
df<-transform(df, flops.source=reorder(flops.source,value)) | |
df$logvalue<-log10(df$value) | |
df$logvalue.label<-sprintf("%0.1f", round(df$logvalue, digits = 1)) | |
df | |
ggplot(df,aes(x=flops.source,y=logvalue,linetype=known))+ | |
geom_bar(stat="identity",color="black",fill="grey60")+ | |
geom_text(aes(y=2.0,label=flops.source),angle=90,hjust=0,family="Helvetica",fontface="bold",size=6)+ | |
geom_text(data=df %>% filter(flops.source!='Actual Global Total ???'), aes(label=logvalue.label), size=7, vjust=-0.1)+ | |
labs(title="Estimated Current FLOPS Sources 2016 Q4",x="Source",y="log FLOPS")+ | |
theme(axis.ticks.x=element_blank(),axis.text.x=element_blank(), | |
legend.position="none", text = element_text(size=20),plot.title=element_text(size=22)) | |
ggsave('flops.png') | |
#Energy | |
97.7*10^15*1055.06/(60*60*24*365) | |
2.5* 10^17/(60*60*24*365) | |
(1.5e21)*((1+0.83)^(2)) | |
#Nvidia volta | |
1/22e9 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment