Skip to content

Instantly share code, notes, and snippets.

@mittimithai
Last active February 15, 2017 18:31
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mittimithai/3e4390c31c11c2213b75aef64f5553f7 to your computer and use it in GitHub Desktop.
Save mittimithai/3e4390c31c11c2213b75aef64f5553f7 to your computer and use it in GitHub Desktop.
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
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