diff --git a/harness.R b/harness.R index 7a9a464a750245e4b4d27d270380ea9af4d1a56c..1f052d323409ab8f3402c63308cc14c7ad13f28a 100644 --- a/harness.R +++ b/harness.R @@ -7,7 +7,6 @@ conf <- arg[[1]] sm <- as.integer(arg[[2]]) sys <- ifelse(R.Version()$major == 2L, "Renjin", "GNU R") - log.result <- function(...) { con <- file("results.tsv", open="at") writeLines(paste(c(...), collapse="\t"), con=con) diff --git a/identity.pdf b/identity.pdf index 76097cebab878390019da1db98bc2e897e4d7158..d6d6677e74f7ac850c33f432adfbffa6c4e4a8cc 100644 GIT binary patch delta 48 wcmaE(_C{@jnX0*gg`uH=g@K_am%eX)ic4Zis)B}#m63s=sR3MWW3-?!08zCJk^lez delta 48 wcmaE(_C{@jnW~wQg`uH=v5~1Jm%eX)ic4Zis)B}#m63s=sR3MWW3-?!08#x6mH+?% diff --git a/makeplots.R b/makeplots.R index 72f0157399a226f93efc04ccce37767a69cca162..7af033799f924e4610c43bb836548db669972ff6 100755 --- a/makeplots.R +++ b/makeplots.R @@ -29,12 +29,41 @@ se <- function(x) sqrt(var(x)/length(x)) +# operators +d <- all %>% filter(exp=="operators", s > 5) %>% group_by(exp, sys, s, conf) %>% + summarize(meant=mean(timesec), se=se(timesec)) %>% + mutate(conf=ifelse(conf=="opt"," + Vectorization",""), tool=paste(sys,conf,sep=""), datasize=10^as.integer(s)) + +print(d) + +limits <- aes(ymax = meant + se, ymin=meant - se, width=2) + +pdf("operators.pdf",width=10,height=7) +p <- ggplot(d,aes(datasize,meant,group=tool)) + + geom_point(size=4) + geom_line(size=1.5, aes(group=tool, linetype=tool)) + + geom_pointrange(limits) + + # scale_y_log10(breaks=ybreaks, labels=ylabels) + + scale_x_log10(breaks=xbreaks, labels=xlabels, limits=c(NA, 10^9.1)) + + + xlab("Dataset Size (elements, log scale)") + ylab("Execution Time (s)") + theme + + + annotate("text", x=10^7.8, y=-1, label="GNU R", family="serif", size=10)+ + annotate("text", x=10^8.55, y=39, label="Renjin ", family="serif", size=10)+ + annotate("text", x=10^8.8, y=8, label="Renjin + Vec.", family="serif", size=10) + + #annotate("text", x=700000, y=6, label="Renjin", family="serif", size=10)+ + #annotate("text", x=20000000, y=2, label="Renjin + Recycling", family="serif", size=10) + + +print(p) +dev.off() + # survey d <- all %>% filter(exp=="survey") %>% group_by(sys, s, conf) %>% summarize(meant=mean(timesec), se=se(timesec)) %>% mutate(tool=paste(sys,conf), datasize=sapply(s, switch, alabama=47512, california=1060060, acs3yr=9093077)) %>% - filter(tool %in% c("Renjin jitopt", "Renjin none", "Renjin 1t") | sys == "GNU R") + filter(tool %in% c("Renjin jitopt", "Renjin none", "Renjin 1t") | sys =="GNU R" | conf == "pqr") print(d) @@ -48,7 +77,9 @@ ggplot(d,aes(datasize,meant,group=tool)) + scale_x_log10(breaks=c(47512,1060060,9093077)) + xlab("Dataset Size (elements, log scale)") + ylab("Execution Time (s)") + theme + - annotate("text", x=10^6.6, y=45, label="GNU R", family="serif", size=10)+ + annotate("text", x=10^6.7, y=45, label="pqR", family="serif", size=10)+ + annotate("text", x=10^6.9, y=30, label="GNU R", family="serif", size=10)+ + annotate("text", x=10^6.4, y=100, label="Renjin -opt", family="serif", size=10)+ annotate("text", x=10^6.8, y=-1, label="Renjin", family="serif", size=10)+ annotate("text", x=10^6.8, y=20, label="Renjin 1t", family="serif", size=10) @@ -188,35 +219,6 @@ dev.off() -# operators -d <- all %>% filter(exp=="operators", s > 5) %>% group_by(exp, sys, s, conf) %>% - summarize(meant=mean(timesec), se=se(timesec)) %>% - mutate(conf=ifelse(conf=="opt"," + Vectorization",""), tool=paste(sys,conf,sep=""), datasize=10^as.integer(s)) - -print(d) - -limits <- aes(ymax = meant + se, ymin=meant - se, width=2) - -pdf("operators.pdf",width=10,height=7) -p <- ggplot(d,aes(datasize,meant,group=tool)) + - geom_point(size=4) + geom_line(size=1.5, aes(group=tool, linetype=tool)) + - geom_pointrange(limits) + - # scale_y_log10(breaks=ybreaks, labels=ylabels) + - scale_x_log10(breaks=xbreaks, labels=xlabels, limits=c(NA, 10^8.1)) + - - xlab("Dataset Size (elements, log scale)") + ylab("Execution Time (log)") + theme + - - annotate("text", x=10^7.8, y=4, label="GNU R", family="serif", size=10)+ - annotate("text", x=40000000, y=19, label="Renjin ", family="serif", size=10)+ - annotate("text", x=10^7.95, y=14, label="Renjin + V.", family="serif", size=10) - - #annotate("text", x=700000, y=6, label="Renjin", family="serif", size=10)+ - #annotate("text", x=20000000, y=2, label="Renjin + Recycling", family="serif", size=10) - - -print(p) -dev.off() - # # print some latex for the paper # selection$timesec <- selection$timesec/1000 diff --git a/operators.R b/operators.R index 60c93d053eea38be1e0189ab0605ede6152252cf..f31255514a799df76e6a8674686bcd50f8583967 100644 --- a/operators.R +++ b/operators.R @@ -1,21 +1,11 @@ source("harness.R") -dd <- function() {as.integer(runif(10^s, 1, 100))} - for (s in 4:sm) { - a <- list(dd(), dd(), dd(), dd(), dd(), dd(), dd(), dd(), dd(), dd()) - x <- dd() - dim(x) <- c(length(x),1) - attr(a, "row.names") <- 1:length(a[[1]]) - class(a) <- "data.frame" - + x <- runif(10^s, 1, 100) + y <- seq(1:10^s) for (r in 1:5) { timing <- system.time({ - m <- matrix(data=as.numeric(NA), ncol=1, nrow=ncol(a)) - for(i in 1:ncol(a)){ - m[i,]<-t(colSums(a[,i]*x)/sum(a[,i])) - } - print(m) + print(sum(sqrt(x+1)-y*x)) })[[3]] log.result("operators", sys, conf, s, r, timing) clearResultRecycler() diff --git a/operators.pdf b/operators.pdf index eab18df57f346826670f9f43b46e3e76f3031afb..1f05b424fcfaec349bc57ea35b15f8e99a3c9d9e 100644 GIT binary patch delta 1210 zcmaE-c0zrEnX0*gg`uH=g@J)4m%eX)ic4Zis)B}#m63s=sR3MWV)PvrLjwcz$ySWY z_2J(6x7`HxeGWf!(P{SCbMM}~er3X&uz)d3^R42^g9TF$wJljNv0Lo#*SR;JPMUJY zLS=6AG^yTaU(aTD7O--B{}BE;`#MuPx-d%Wmy0iM`#pkr84@~?d zXQP^`GeLD~#-i2!r|M6g6H$1j=`?-zv!~}zY{<1MvNEMyGT)-QPL?(&i)0^=@A-YQ&`MJC&XK z*!Y6;lSL6M@vZZ{>$3xY?J+*3rXVivc0tR)PODd$YuCS;n0uGzhc&$a6@2}l&Rfa3 zU4fH?1;6!j#?557xGE#@`h@S7JY+1@6RxkZ4t=01V%c>mtUJ_-Z_5YCYTb?)$3@3> zFW7Q=!zBCAZnv&C6XU*}EE~;i#fe49 z+kVUJk`p_}Gw;Bp^KxQ#mj%Q;HyxA{cbRw4>i^Q7doR+Dx$)^XZ`M7p-#+~Jj=?x&Lf|pRTT9jmi@smoC;wo(Xt?U3qu;{T z+SMO==4DbeweV5<^B<;fPoBQ?>q%bO&X@Udk0ew7CsjZ5PU>y6{-@IBwE4ZF;|J63 zDxE*;JF+B=PP{gr_O^XbW$o*85w{qgLM=AESeQ zq>KN4FI+UUr|-X>;nonnc*C1~$4;$FIiCMK>1p_;$J>K9e$u}AaeuV_2OAgduMh78 zf6Y0clKWdoVbjL2CG+DZ9E+}OOxQg!?Y61m{@M)>LyjfP$eSUf&meO6?WZ}(Gk#d9 zAKG}Y@=?j*c@^a^>Ra1v533%U`>^ERK5q6U3pXpy&pfObz4Ld_#&4I;9zI+6o8k5D z|Jy!1Oxk_>-S+nO$Nd|A|51Ov`)02Fnsc(V9v(UHsk_nH=2gWBrTi+{)5|LV>gP+S zb3c3EzWY4;jWrF^FC4uax5sJ|f9Y!*r=>sT84UBxQu9)ZONvqxbGcIUHveI1;D=lLKGju5vQ!`@>F*B3N^1`lM<|bxb Ks;aL3Zd?HNkU{wX delta 1108 zcmX@1{!VRznW~wQg`uH=v5}c3m%eX)ic4Zis)B}#m63s=sR3MWV)PwmOGAsv){M&a zVcz+|o&x*MuV1lvZEV-Ny6>hs-6EVSj}pHNShyrQbmlBR>e&6`Ye?z&#gAts@XOpW zHho%E`!%bnSYb!&|5?{B^NVPO_AU5)SW~F*s5{%(6Pr+zzcss> z#U|Tcy6XPaJ|&$?;IO7sdhX{h`AIi!@yj^pZC;}REy)=1|w zFFP^Qe}>8B)q&y#3y;@`tlca1?}57M5*aPqmm9T2cU^LpYOY^#!t;DjSJ0t|mxk9A zZ>~vS|MO~Gz_jM3iH}~z9$v*Ysl|4pU22`EX`zY1g|LPFKjr!BjgE;0`9;({^egsz zbyqg@{rA@1=P??Ev(!(Xyfkm&$G%#A3I0z1%2g9SW`y?gth71cmZ8$GcI`&QKc~Dy z$BLwqtr(@NpXgY1@M`M1J#R{$YOiB=EpCaFjA&ND4zbFf&>I>ne{xALR?eEWVdBS& zt1bAXn?27SQ)8VeQM}O5ratpU`!Q$1=Rev?=k+^TOJCf~$T#cMgsP9Pcw;)IJr;?O z+t7BP>Rz#(_Kp|Zwwp&=#I=6*++e(?EmTN!dUK!sgZZlGXR&a{>}&oO^F?z@-vT@S zcy+nhSF5YbJ2sc?QtXH~s}}!l9G}+4p>el=!3CRQru4(!iX1Gj0zUM23cauQ42?QH zS7G&pjTd8nnLXaNAebjTQCQ;lBy%ZU{v9FGub$6Xy;pnAWsje~1X5L}s+;BLtkF$tBH(=HlqU@v;| zy*c#(|C1B{bFZFQ+!3zweEa%i@*%A^C!eh^xfE%3>YPYqy^~|1hRD&pE$X*TAC-t4 zt~G6Y%v-(h(JPq^-_@nRz1ezB@H?}`yYho)JQu#bx90SgwCTNf=HzVrcKzzztLt_* zUp>2>@1EYS((Ny|mG8Ds{QFY*_3o(h{OP~>=00#q{ptC1g4rgW&gXjZ5}yy${+r6a zw%N7(@6&fu&n}DIQhhEgW-k4)t2R-;jqwk|^k>$rOTL?L_G0bjwFBm71p^RJ$W!0~ zGYkxk%}g-FOe`!g#7vDQiwaw585x?POPQFM8)Jx>noh11cI7fNHRDoMb@g}S0sy3c B_NxE@ diff --git a/parallel.pdf b/parallel.pdf index 93ccd5004d2352dda412a8feaafa1e2387771d49..e3492384722e22c0f477843572ea47002dda82a2 100644 GIT binary patch delta 48 wcmdm>zCnG0nX0*gg`uH=g@K_am%eX)ic4Zis)B}#m63s=sR3MWV|1u606dWlU;qFB delta 48 wcmdm>zCnG0nW~wQg`uH=v5~1Jm%eX)ic4Zis)B}#m63s=sR3MWV|1u606f_YWB>pF diff --git a/pushdown.pdf b/pushdown.pdf index 18eae60a9b6c80d9c8e049935508df1b4b8b3b77..375e55dd9633778e8c146e0d93aadc724ab4fca3 100644 GIT binary patch delta 48 wcmcbsdRKLVnX0*gg`uH=g@K_am%eX)ic4Zis)B}#m63s=sR3MWV|0@c08F?H;s5{u delta 48 wcmcbsdRKLVnW~wQg`uH=v5}c3m%eX)ic4Zis)B}#m63s=sR3MWV|0@c08J(g=l}o! diff --git a/recycling.pdf b/recycling.pdf index 59031b685b6ef5e5bd875a8919a0ab7b76c3dfd7..b7d7e6525a4ac16a10a02759a208dea6e49d35a1 100644 GIT binary patch delta 48 wcmcbkc1LZ3nX0*gg`uH=g@K_am%eX)ic4Zis)B}#m63s=sR3MWV>F{M086zDVgLXD delta 48 wcmcbkc1LZ3nW~wQg`uH=v5~1Jm%eX)ic4Zis)B}#m63s=sR3MWV>F{M089N0W&i*H diff --git a/run.sh b/run.sh index 4b94dde9844a40106b359d63bf5a0fcbe45c2352..72f6a3092810c06665b107f5cdb64e0e61845766 100755 --- a/run.sh +++ b/run.sh @@ -40,7 +40,7 @@ export RENJIN_OPTS="-Xmx200G -Drenjin.vp.threads=32" renjin -f parallel.R --args 32 $PDPAR # vectorized/jitted operators -PDOPT=8 +PDOPT=9 export RENJIN_OPTS="-Xmx16G -Drenjin.vp.threads=1" renjin -f operators.R --args opt $PDOPT export RENJIN_OPTS="-Xmx16G -Drenjin.vp.threads=1 -Drenjin.vp.disablejit=true" @@ -51,6 +51,7 @@ R -f operators.R --args none $PDOPT #NOTE: Need to install MonetDB and load ACS dataset to run this #R -f sqlsurvey.R --args laptop 42 R -f survey.R --args laptop 42 +pqR -f -f survey.R --args pqr 42 export RENJIN_OPTS="-Xmx200G" renjin -f survey.R --args jitopt 42 diff --git a/survey.pdf b/survey.pdf index b6811900036b00235189ee7f2c5dc39111348bea..9a8861e23aa07c037ca2d762c152e7a11b7f049f 100644 GIT binary patch delta 1273 zcmZXUeK^wz0LLF=nRywytF2~sR~)yKy|9fgvune8WT`7FCG!+^;#Uz}Vm(RjhDu&y za`V-yFc!a>-*RD`Fy^Ae}&&=J6$0%@dEsxnuuxS;0z^)e%11)5wvlBwEX6f_hI_4qBuEAw}y$i;Z5X zO4Bx*-cx-=d^)pPN>5+@DBo53FgKTm0pE1a43AjU6`C?GM0uY+=h_Eo?8~pz*|qL~ zVJs=Km~q%J$<>Mkh{t9J&`CMFE~iOrlABS1;={5DvDGqXlxt$fB|?VuD+8hYsUgR0 z+%26`vMQ=$v79${muBNawo4rf)sDZWRjM0Sa@r)c$*jy;VqZGRPZI6*$d-86C~(nR zT$dP&q8~3FfK-RhL#kEaW2ncM3x^8rxBj-f5_0KWzQ;?SC>vvw^T?^;gvG46sDoqZ z0gxV)IFW;`hew*}X>B!2iLnjnvl8x_x9jL?IY>=c@0rUx0!#DWa?|%}9LqZCMj%U? z(YAlQ$As*oQ_29KUuxV)a>3?(aEwiik_NjeIjt{!=7-^SP3=JSrQ+p= z^fJHdeHF=%%~QJsr@tWtx1tZQzdw@^dl3FQ;%0W-RzKz@C_NJ0({09(w72j;E*p7A zt`eUJ>BVTOnXL!gQ2&|HGpT2|UYgEu+t%kP{LJhtvkf?*Yi5W(4Gu?k+CX-Uv1YUd z#gHBzqKpQq=sg}rb>S*{ca;ixh%Uv+HH4o-;yYfP39k|KS!m*sQNQf1U7h9`&K0mU z{@n{a#7S`y`y$5qkGmGT8EEf_euaMrt&EeX*t}8{?2*?X@_qV&Gc5X2J;8c!X zSAy!~0-@?VrXptTp`gN(!Z55O6{^agfp`y4t(Nnqgk&P6VQXfk}t}^9)t*jS z;lE=DT7Skqy?1%KPow*tmTjY`+rBLIN@FUl`c2HICY3$xueRA~*LMlh=gB`d!9kwJ zH23+VV80vN&Cc{sojtEhe*aNzzT+$_`t7pUDCG@1)+lcDfQo{zGG;GA3TFcM@mGvs z^UF`_G2l!~iklk|jr}L+7&P?Xvidf7k1rU}o$w_i6SEg=Jun0^?*Gn>NFaZ~NO*j9 R@LC#_jK@J89Oz6R=-+^HQKbL? delta 1166 zcmbQNu~L14nW~wQg`uH=v5~1Jm%eX)ic4Zis)B}#m63s=sR3MWV)PwmOLOzd){JWP zw+(pq{SN;ygK4$atF_tRH3AZtuT|Vge7*3+orSKm@_gHPe}7d@JzZp!Upk4YH>d5X z`m4vzJcle5?i~F7s`h7tNYJ+K@Rx~8A0AI;mQReFyGHMv-@~d<#ahk89qZO@{`IuR z#kT%u-~Q4Mn}3yX3hfKwc>ZPQYJ<0*w|VtH{iq zWA?6_&(;yNf}>By@b?VqwXQq@C!X%;uYGPm>Aw^|14ju%ZNuI|uNiwKGC04u9Ekh< z{n@LA4;Ll(Sl27m%)4Q)^5@J#n*(y5ml9bPtbf1%bo1+I?w+OlQrErTwrBCfpwF|k z-|jQAD(GTYzHoR^(Y?Zh8cXsgKB??y?TdZ5)b(w`2|rN@`Id{UY@BY#eI-IC48C&umOjxLE(GfP|;Le`K?S3B7wi{m8{{0!KQU8g3)0#OGjcwr{O83(e0i7V;~+w$sx${ql{B ztPOJ=+;+%!+DltH&-!$!56)8{;sUh@3t zhqEmbjzOf93zVqR*ulzs!tf^DjH5GTmwWGD*wby@i+G zhAoS&U?{2K-+Z~~&5_5;-bilM(r(S0y<^jEDQzi+n%mFcoU_jUva|hnY?+_&84kW;`aKeEq#w?UY#59<e{@SbM3nK{<}G8 zt{dA_;RfaWJ+7v<#XVbUOvS3F_+7eR!jc{&C(@#^c-p=E=lAESt~(Q!?zL$VyVBW3 zcfWpkl~ubn>spY({=at*JdfO*@ox6hs;^99{PCRcvo6-y-73pqS7)=9=a&h}G;nxd zxk$y_?rhwDt3^lJBa8ng*Z$tn@{1$m+0485Hiv6}dMNbjb70si`&oWz-kYbg_VU^r zn;0k