From 1b1f4d2997d326a50a16c1b2e1000fd39fc659b7 Mon Sep 17 00:00:00 2001 From: taivop Date: Sun, 20 Nov 2016 13:49:17 +0100 Subject: [PATCH] update report and fix #138 --- report/milestone2.pdf | Bin 379048 -> 378424 bytes report/milestone2.tex | 11 ----------- scripts/r/exp3_summary.r | 36 ++++++++++++++++++++++++++++++++++++ 3 files changed, 36 insertions(+), 11 deletions(-) diff --git a/report/milestone2.pdf b/report/milestone2.pdf index 6b1951f66d88a5a37b1047bbeee76e98c90a4371..b3ba60da239c8c33b53e378eeb8543f5b97207eb 100644 GIT binary patch delta 14125 zcmajFV~}P+(=FPz&1u`VZF|}_rmd%KO!Mh!+qOMz+qP}odB69Z@7{m+UuIQC?TA`? zt&CWer3u)rG1#@MU;q)v3}%es>sJiHbnxs;%V59DRQvQLxzI+j7I0bzlSpAK;q&g# z33*O1YpI6DGfG8C%InWdK=w9ru2m?tcT4W3X9B%J7i3f#F)?Xeq8`RC3^@sQ=47)I zydK7A5S;2*qVgTNyIrkLc&I_@S@j0awEW-jq=k2NKywtZVZfhH`9G~Pwt84887cwi zPjP6i2KYjCbvmgTj)Cu9?QGDbCuX>murI}1 zz~<<*=n7{C_eaEjH16xU)=-Hec@a~JeoNd zU(BhN;MhFb<%}#wX{Zp2YauLBGeaqarZMEtteG1Qbm%@?uG!?W!zlJ#Q+?^RvWYH% z4I7?evi4$qITETi^bAG4?4L@nCm*C@0axy96&1>Z` zjc?4NF25jFOL-J1ij!!i0=Tqom0X){O~ghwsdic%zi5eCtLKtYFekonesfLap7iK9 zTrRD;3JIcYrIv(aPW8_sj33fS`Mto<^~k@K*+u71B||gmkTOTE6!wJ%&=DU1Bv+29 z;+yniUyiMkG5g#x58=Q4dU+8Q6qO=-FHq@rIkixF9sB-@+NO|MZs!`Sg2u6~W#R2-JK2D@&wkydsag;>dLG6h$~uZ7eZgdH+1_05A>6KE0w-u*3}*@OLvy1 zO_Y(ZWu{%|9Mi3HG15N%jMTB5ck5~c8{~GslV(ptslss4kX9G~Tm`Jo&Ke6cyivyz z`x(?`f#@5JNC?oCg3*gaN4P(o-t2eGdk7)j^mTlT_e|GRzi9B04F7G^0w$Ga?^Tgv zFNQm>R=g=oxEzpbiS_3dW$(W})pcTdRUUyFVTmXMPp_&D4XTUv8>lknW*ifhv_nTK0 z+`YYYwB*G>$G=wE9MVUXbg-hs-2~ehedZg>!vPnfFE3QwR5Mw8c^E^lgReq2-&et~ zt>gs$R+YEci{;McJU6#&wHH3O(dFqwHKA6QULR7BYyGHNs)f*cxu_@ z3fx#ZA|KV=bLyN-tiv0;l>R_;1?PMGrk9lzyx91bSNlx*cB!Mw6DpX!(=Fvq7DZhW z^jMo?^N8ZDx@U=#&6*%=4n5s9{F(QclaCfHB7c4cNdTt8>Nqfh7CVBL+_3N2VYdq} z_~OuWr1$W)58$c0g-QQgZ^$QV5kT8Ntd*GK@$K+++_7~sJ?lruQ=C7!E!Xt6VY?Xn z_xjFWVPbN9lcCpVb1!jU?$e1^7Rw``*0ZNR?wO7puFd`3_j`P^PAL0p zweQQHfP^pN*v&oL&l4co(^_1ttv*nXd#Gj2^P^DW*Qdu?#}sA5ElLIPcu7H*h#($p z2Ul4I0ATu2skOP0tbkR>)W4{~n0!H}{{WRY?4|rf+jI83NgQrb%$8y@c0^Z7oLmUz<2(M6a+eY>P3 z*Ms1_y?^>s{0F;zaXkKBB*VmDyA{T44?rs2bs1Wkzt=cpP|jHwaz;`e#J0vTAL zUuHkkrNBH`9@Ga#p6dI8Ti?^QQe&$1^Vy1xNHk35nmFR4)2mg>>YYxak4j9PxC?sD ztaJym6zE(QMwi%_qe+t&fgjGjeI=(}7oU`G2yFggwDW0~1|GM?17}t`RsOTXvJbnx z#en|wN)s{z-Jq48B!Umqvry)UrsID^HkdJ@g)sv3d=7$*g`4$1T1x}al}lP5LhU}+ zy2+=ll_fCE#^Ek19K)nbARKOPY({EEMv0_Q0Sn~#p?le*^!$JT<0NubT}q&uf(~_m za_RwK6YgAL-1{q({rBs2a{vnc0?} z;h#t64sD5%ac8#P-Fn3UTAL_FM=^lL#U3#(#y9=ec~iF(^y+~ou)~>bae!L4!54o z%?H9R%f&D}g{>`mtyZ-~Z&LlbY3rsWL~nk&*yF?M%R2$tNE2tkXd`7A>jwL7b{2VD zgv(atJsgeeDrX69VIz0DMCdDHW~Mj~+*&{`Zh1dCeYsnbrTtd@p{y+%37*pJm*Xp93M0e$GZ}^SvlKE2~F5k7(~Ro`!ZL{=9gMPh6{O*Ab~! zcW4k~?d%2j>f4r8RJCDP>HQ6ADvmH=Dd?^oR5Yb7IU465j^i38m=>@o(N8uVCK<++ z)Dh!IY=Mq|Yql6?JL8CjYWoptb`Io%4FA}nf!$uYmEXnO!L7T+LkdDz8O);b3R~t9 zu;Lc{kRO#3*GgRx{2}W9`$yJAPC|`>93Z3iWc{xalAuIV~=#YrHR}o=+2QO0`O2K#PRV zoYOoL%ane`-Zm7L?**R=$7Fy@apqxLQR&c>z5>sfW2R64yv^>=Pu;#gdK6r2e5r>w zGg1wJsJJ7btse^d`L2>zlzFdH=Vn0NNxlal78h1l$R%3OWODGzEW&wYyfbnhKz4_7k14-yLMNHZ)WlVYc}p}Z4KZd|wbOiHvN zx^AV$?K~A)kWyO- z5l5-=gac-SI3n%AFMR9bhu&*LVheefAp5>n7P4PfP8C|pSL1gMuz%(j#Y3S)AAbkd zV*XsGK@9GvOHPDgr}i163{ZkmbAHz#)Il8c*Rh?<93xmo4 zV3DstgaiF?pB~nU!rTZw^+s8Ojjcy4-RqJ$mY4*##&00vP?|L%=Cs#quVPPKs7I^7 zDqhJy=!T|D?7&Vh@m883w#u7G{cMhfR+Wh78Sr+XixZ|^#@(x7hz1HqtUP!d^JCc$ zvf*d>qYC0L#g|q{=%q8*I=&1rdT}FffS@u&^rVy7Ht;#02ZgxSMURWdZ3#Nn@~#EEn=_5@2;0uZ{O;Y~Bdw`dJ@C;ML8 z87EjAd@Jh^7JP5FUFPf+FPK&L)vw~BZiTBL`bwIQbRrO{Mt%L)6nF_k@!A-4&v>IRTxp}=^%?MCMV?MW5ydzJ-4$$&Vloml9BO*ln(K}{4! zVCeW8vx}Z^`%T1}Gffx6@Cv>!pgccMIaH*%+lRmo^+)r^eVmaTqS<=BAA~rrUAgK$ z3vcrgi?=M5Tqg716XpOMLTDr$LS912VFNHQ8dY!~yOu3{Yi40LyJ=xJ?M1IWh{ZZf zh{e3^!|VkDk;j*B;!gl-;dC~I;d~UnvTNOyXzt5OTlILN4S9%T1P;#=;B9w-l70b4 zf*qhM%ff-)8tO5$I!3BJ295BPe#OabJV8PZ>hpX07Bd2MkRvF8M4^v{Jw+Nb-pEJI){ujms^&^jeke3nU~K)b})8 zmW}gpbq*nNrVyO)`uV&P;MhgK>p=Sh+t~NK9$Bzt2S4>}L+-K@I~ylm8c9DxrN}>& zxk;+^jAkqO?->Y{IcYiJ7idnjEsaMs_;K2=^h0a}EPf>9 z{pB+&%|CI!F3t4kPL@o&mL=nV##wgTuYmvU$`#4Ij;N*)7)BQd-r4`d#roQH;*5;o zdNVUIk58j^!`xG#8?c_Sg*_esH*94Fah8ki@dyIHMVaB*5_t8z`-E-i{?{GI1%az% z?&8r$6BG{enQD-gG?9j{xH+^I&Kj*=00SCFzeNb|=Bh&v74IPyJPdz$OmO|4gyJhAy z)Ncq0#EB)lf=z+6s;PL!nentUviW&7@TDq(j^FQFEdb1qGbe>HqHwY?z62!@8`dFz zMq8H&JaPyuDx0zN+yy5AZ8v(j86p#_oA?0;n4fe=9tO`e)Ww6!qmRd`ICI*pKerWV z5I|gg3kMZX|+^Gx(^OsPIrGC@E0H0lL>2e@iqgMx&i53Iii7uq5|I={pbWftnKr zNca%ag8Wo=U!%sZr^w45B+aTfHvwdShy#9}7R=*bfGTHO58e}D%|Blg5#)@J65RaQeO(D(E4N-FXZl?C zcSNyiD$jkxI9>dd77Kz@@%~ecteYs7!e5-%D}w52AZ&tiXpAS74>36bag{{yixIE| z(QsQN02OC*Vs)f_3=HkBTxK%Ommxe0 z_3c<`SvDggi$`q23=Q|!1PVAFDT|_apAeg%s&t~Pfh5_;9dqpP@QPZNt)OU(r)nDE zd+!Sts!*c{BgFRJF1P?N=?oO=3mKwZf(Q?YS`UT}#>|p{iVn`rN&G)15TGkX;nx~7 zO4#)mrcWcXLF1dIgS{HB0`i~2ZgUr-AQJi4D3bZ3Z4Yy?s6bG>bc5O%*_y{IK{|Mx zpa7;wZ2=)HnUV?!6k}#dQ5F!YKHPW_R1CjXIm|P9szk~z2JGqmL(&eWYF>R-VX$Br z3@+G_B4Kp-hU4Z;%eIHpN`P)$@c_M+Y|&wjMRlcQl1uun)ha}}Bv!*u+a&*Vg`+N; z#x#YD6T2CHBDT{xAocFt>RsK>7%Z0D`K?C48T`vm%@ibzdLm$@DS&9^>-*B`<5vPd z1x86=FSPntKtaF~k7pYBBfl3pyqV{mutq;|8_#YReu^~}kF-Hq8$cK@%R`|!`h5I6 zdgv(J+VP{FI-^n@VB>a2x1LH0hLy=`g&-m4@eKAx&=IvB9G>$yCS%WrGrZ5@YZ+eE zsJyV#XmyNiePa{dUq%Q^L$H=RJ*Tb5!&ql8Vb?USo8TkvBYJ+WD@0*sUg?A2fN(zJ zJ#LeK?3uQ@B)iJ@ z2sUsY=CgjGh8kVxcwEap21nb*?|k$A}77eBg~M=4Dl0t0l64t*fm=L z?|9p;O}amM@M+j${fO5td3kkm#X6tunsr4wx0I=@B3OQrTYByrekH9Dz7MXsXvZkj z3vtc{fMTz%Y_#QY2Gmz~F#!wqWj{Y{1!hFfO3b5-4Yjiyhb-6Oi8)%o9kL z3q}vd!UiKm>NeNka zz<@1K#FpAxFjr8ZeI^(NI2#Mkzjg8!!+Nm$A3&E{FbrT|CYS-BZ>#0H%d5e*DonP* z5wYvZ{-8WXWs8;)Y`hdIX($JZ`@ECMp&B7tZ=5DtsC}C%Y~i%>R!#7{may-#5(IF{ z(QX-*GK=EIUjCe0i5Rd%(~QSIYWRHC?!}2GSRzvq9HAgaRfUAg1^roK$DYyb;B!pJ z+c=R5KQ8g9xws7wa^L!1(^CoIfgF#Dg=RvA+5LcGfgrI$kuENd^rlX}(rqQzF2G?3 z!k(s$@&T3rso<@z#kO({S|gyCl@&kVG%I}Cyt1d`MLrpRWKp}QswD4f>qq{kg*wI| z%^COZ3eEe)1(vRWa6H&PK%A=TZdxfb>lo5m3JS*wn%DsFLL>)b5d3D^>`6nUu*=Ti zTASgf8Q!1e$5#l?0dhIQa}0vA12ot8<%m1A&4o?*WmjD8J3+B8!d)oq6=Fyi#EkCq zVsOv{=m|p-DpmwOV_bgPb7DE-=vhXBmW@mBidzGylVU3#In#S_ z>$K8*;>`hlH9st^Da(*nGM}hqRNiD|6o_Y_;>AhCBUmeyThm70G&yg90-d4(uzl_E zp31gl=bqX$2kLhYhWO=K*s%F__j5yYvp?INmUF1~XW38X*Rn)9lA2qRO$^}r`*2tPq5TX$F zE!iTfw%=>&9PBbf6ShYRi827eE1|_SNhFC>p{X@R*O#-o;8j=Umdb@Rc&_+byX47{ zDjCJ363&V2hA|TLZSMD>BF_7Z31dGpOFL#y?R^|Ckb87d_tzb4Dc95|=sC_`YjZ3< zOx;q3QsWpgT&twEwVdJ6xsX@CCy2*wMGI*;MiJbBU82|W(_2f6say8p+VRt= z%UJk_3?v5~#5ksM#$n5$AJA=w%~b#4lMB#s9!vm?mHU6W0?x+D`5#uvg0b@ahbkB? zEDK;*NdH{@e@sCKV`KY&sS>gW76J;qwE@NWN5s51P>L4O1F+vj|7w87@L=c=Y@F=> zw+$pJDD?~fYXhH{ze2>qvsR~F*dtJp2Ujw7jb7kX#3P4#t{X!OLq!+Mt?M_hE;_S3 zj#O$PAhi;BJ(DWoVEBV&z-Yyo^`&Z1dEK{;`{p>2FV)(K;@(Cn&YQ7Z*aM|TH$sIqu=ywQy*;{<&BH%Ar2SmQ}N zfj{NDuKYO99#h@LzUp3EgGLF3$Et6i;(hW#1@uC&HwlLN!OpD84C_>_=wup*wi(Dl z%Gmq7MS1lO5DLS1Q+X|y|C3<0)ZKxf(*fgL!T*InAj+tK%5DEbM@fhYJz)ABI97{F zKExFjFzd&^TJiHZrJDVZYfgqC zz#E?IjSzDG)^lu`$+#cf;$X8crh1Acz+qEO)#O}fo>68nsG>1IbD{r~)~~GQ)vz=y zUtM6qs-Ka;l0EA$6V>r;6_wCvRkx~QjvTM(&*+zSHKmTxI2rHPjaM?{cI1@|>kp53 zkLV($#BgVu%PS}YBr%)Ms9=#Tz^UX723#q#iNqd5gWCUv_eG179sU{rWb1jutsL?OPeBR$YdOsaZ3Am(p{QCP}vVl(M4RuhXV=VcZ3PVFd0o&0>H4zBndDQ^U0y$m}Ddv zv9?5Op=ckm?uW+veMI3bz#G?DP*iRT$xnD}`jJ#jh0a<@brPeVAvuc`1LAbB1@n%< z%|QF8De~|Es+Fo?J~QPmBJT3Na5$JtP?a-yRe`ZIm$@|H^(k?+=;(y2aK@oADaJHX zl>sosL*kT}c?6KMm>7icx^QJ3NOqx>T>UFBRZSp~W(G(dsI=#O;0O73xm|=HdFb@v zJI=UxYOZwpL2OcWegn z_plW}kidTfMhYsi_CCwV;G7ZnP2XuLgHhaviomX+f~2Ekr}0)FU(X2|#q9RQnFI+1 zB!3hh3B?E`?HvZ(jBhd4)Th(|0UvMEh|8HB_gQI7=N43UO^ABX`gOfhn^?C(AS%uN zvgmZKn7Kn0?C9y+ateMwv6`%o+ z!qDKy4dXNmdEh+aU(pv#T;Bwt5ps&@v0V&o3*K5ZdTDwwWf-h+~gOv z2+Mn_&PfT59>=W-Ih+`)@POfOdyesupElC&-%qL35#v3Fpl<3T^8v$3Tz!m+h^=DJO9IQS*>4JNyM97b&GDirr#bgaYtuF zz0{7RQG!^G-`GV|yN7|@GCrN`Ic)%V+pf>)L#k1xJX5D|+{oKgx)R~hU3ZV;v~%6g zEO6uGs$;{8wLEZlttEy#{V9?|^o^fCxBK4Ju&?zTC3|b3&U)t~SrqC42ybn~i|uUZ zV_bAL$Nh6Q>lmR}kuX|nPdX34OZo63OPY-y!BD4?#s85$aIgAAi*x4bVxYLfbSQNz zPY@-rv19d=z>hn-7aUcWfkIO$xijzz%2HZ^s#(dQPxd(+`WcNKJUeZ2d}}&H?Eco! z=Si+OxV|sezEV-_R1w{0xAML~7$fL0zIu4Q`Bl`K9nZJ}ozF!m__hJSM@j*>3gD_W zqUD6`EA7E09g543o%(WTL@C`=?;5Fp!NmO-NoL)I$!S5Vj&G=2EQ=2Q`i4|%kf|~J znl9|*+$$g4sP(Y#*nh3;BQJumzXHakJGq@X4Y|9u6JnK(%d9tXlh}_i)0K2fHd|-i z>z;;9y?%+n4u#;u4z&Wp$#Igt^pFCnO0ILde7~!Ts+s`u*6ZDzRH(E@%PBPw|ArJm z!7p&D6{$zl`Q$bw@OInGMR${Le+MnM+s}>RQG9yMN9ixzX$~pMQhuexhe5wH83=jZ zSAFd-Jm2RO#eU8HSa`~LDi>Pu$lMz8SfW0eKIfaF_mgs0g>eQX$i(&-x;ykUCdH|+}wA<3uO0g=TlFtAQ}Xg@zgw(X6S0u4={ zo9m(?N0L4nr;F{%B+bus6+S_|MDPPFOg2&RU|d?O2gD@Gh{rXtBmIn{MAR2pRg2C@f>o_$&}jsvLS9e z<`h%k&7ud8wIGtRHG{l6g?eNkz#6)zQB1p~lVHA9%B9|D-@y)7O~21zdnM2tTECD9 z?=-9sdznz0lNpKH=So~~HiC}K$I0Y^{5FyNJ9J8hTiy&$$<>UQpfgVStDvf|hdFoB z;s9Zm=yy~QSs;W2#sM?t$pV5FCwa9rDpftWZYwt+G6Mq5p7acL&^IBdkeFulbTowq zLHHr^C`c{^zW;!1_JmBNb!2KxT}lCidn?*Pz;9bIZq5q$WUSM#sD@C;95Q3!DYX>( zNd5~yQdN#e2<0;@#fqc@Vc07KoYLxW#D)x-(OSDbTP#1{SqVx+1o?` z)|}xoU2kY*Bk(Z${k(MDRigr1U45ZG_JA|q?22?ldeJuzj#%!O8DToBZvP+sf>6d- zOPZOnLD&T<3;jFjK=HU}v#|0rsVRM(n*?Hjwi|ApDv!7sZ7U*ujeMKq!}?DiEnBwp z;xk)W2RZwr+2S~XIbnfBH@Os~fxyI$V>h^c5S&sdFUf<+umRyNT6plil_% zG1lT+5`!M~sF>-yzpv2cL}mWY*+am0fs9(Ec2TO&{}U^#`=7y`ZXx#V4~VpP)to4R z)3&NTo=}EA;8gMT`Uge_ge+JqlrYsUn@~A0eFuV-q0_F0bpkRSFnp zI(Q=)aP6P*NOvY_?b+WDFK&yvl+C>7sjp9_+z;Sgz-a>HF-5Ac9*9uOkM^Rm(TGF{pl3~-*KrCOiWp7?hMIJYa6jAC|+7CidZt$`} zf}s&yvQ`Iwuc*O65OvdDMn5wVm&HKx3T;9X7lmtv0g6--xZfL-Rq=BAsM*B;_H+Uj znH*2GIds5Lerui~p8l+N{y!+IZrUO3vRmTdeGH6&%KSizk;6#8K;-o&~JwoKUU{f=Gdzu^=EZXmIiI8SytB;;Dw2Mw&()j+4R zHcB-TVCNsK%Y_z3L$~dbLq7nb)N}eBozH8cmO+L<5OGBTtt82O`Pypz;=`A^8zh8G zjL#%A>ZBAa9&8wEz0QhzEdjlN6k-zMGIR270r44?K^YHczf@~?-fO3!fzIWm8&3JY zw_{K~S3}`LH2$zTUP3Fmcglya)VlTn)tH156(bV%eP_^c<{g19M+)HF>n|AXG_Je$ zz+cBJ)3`AkIj12VM!3=@Mxr4aa`lEp1iI(@3$e9MrH0AY(i1n03@K?9YQfAyQwd^e z3^dn=9hV=lIoltFI$`X*P6?Iegr&VAg(UaKuQpl+`j2EOD-ZI-8aT9>8{6K} z{k1fa8J|beTdT7E{d0hmeP(F_E~D}$ugqV56dAcZ>-TF%*$8Uq4A_qDu(P!{%8WX zGQQ~#Z$iKZ<5w@uXR5~VljvV6QPX>DU(he#K^eEcq>O__I1zcRXk;vSF|sUJrj5&c z*es}OEa(m6GCEPKHKr`shJ!VGT(^(IhXc~;Ce9hdmDkywg5Iyw^m1JysbOX^jwBfm zer7cDk~&u!^}c|iIlHlXirVH%8y0SXMy zFxF#aY=g2w%FIDWSA;9Xe4)H{iymSD`}1~D1DUivw?= zlZx>BZ(iSDZyym9sLSx8>uaDX9|l1Y_>j(XwecbrUW)*P6%9??=5^*ykLLTQPb3_{ ztwJw4+sW|W^? zn7Xtu;Hg>G1&93VI z=m2acEl+QY@Rww;bylEfG;h>9nuWM$mv0Eg!1=Sm8pqn7QI|Sa`v$iB1*G}|*dhJrN&s1E_wnXi7x_dxBH4a|& zKdtDc*x>uLiaiwfb*%pIsVKHF?J@S?v`_Bb{+HES8^?1^Oclm<0)h{;8;lO|9a+okD~>puQA_4Y_l_`JmyN4K{sSlZTL;&S_VL|WV{0dlx>>g0Vp%SXf*WT_GG-O4r43)9-fb(hx4g6GY^Q&X@kDz7PfKPyZ}0nF8()6!!#!0C-YYen zNUgrkYdrJ3_AGiPy&1QDM3%I~o+%KS@ zTb!6J{7`K)@Hi-P+uNimztLo>3b-HBoEoRwG%4yfH@Us6`1pj;cO-lVMg8It%7qM_tA3}^0O_RH19+}Qpv;806(N9ysah(~V z>safi72$+bWdU0mgIf2ZzKZV28P9t}mkDNuQ(_Nky@$w}FWrnzaMhobh=|Bu4od_S za)uTR)#^A9BNx_)00#>3E(;n#cncIwTPy%Bvz`EPsv}hL1_25tL>Q$B3Y|e*k!?0` zsnaSSIyT{z6r0TUm6A0OU}8`t>?0{{J);s1Nppav!e#<8TgU!aVw6n)C}C+Hx#*cl zp<+oc03wM*o*IjKx%c5)_ttDrgpW08@2^wI*jN5_<=*9(t*6OSxp9@TJ!kjqH2-1U zhm3sP@-7Cy^r%F%{IMhY?bPIB9>=Ep^QYNg?FHqSpE?K)x);s-faE`%=6mwRW9q7< zGbd!RuqD2HXkfT$lN7eC|xk*yM61vXofp58~XwmUUHdzC20h@f( zL!ast4Zg&2Nof)k;NRJ{wVC5*zx?hF+nogF=x@(e^L~_N;6kGzYBTx`qi>?iOwaQ3 zE?Snt0^&SmtBz&8#GbD_M`A11{0A^XW(GKz%7O>$7L+2Y@QFnxgai z9ati+n^y~2fj)xq+j3np3nI*JRT{(UWZ%5&w0Lg-*6ZgB0Ec~cX`fZd^cU|RgKs`= z(u<@E6x@E!TfyICtWcpmq+-3Ju4;=IZlY-u;|Hu}x?`3B6SBvstTbb8QP-UDD9c@C zwl3os>c9hYGoCK_k`o<^-~naiNxzOwfu755Jj|iommiNfDLQB6{EP;J3gpESuXB=} z7s*5-dnvJG0Ob!C8;B@Nhss7DEvkV@j)S_Azfqx|*@+YpvBel0ZQ4;Mc!VMwC%5a| zonP{8`cKwP#yqe&v{TE68ZjxXcRFcsig#j}JJj`Y+XjJhmUTgFLjPtV>*}4ye$r9T zS7_Qm&cbbRs=G*ej;8D= z7pF^Vh>!QOLBlI>tJ%Nfrq7D~f1M-E{c2bI{gVqiuIMWV=>FWpgjiXx%76CR@O8P)y1&}^ z^X}u3`Ri)Cx2-qQ=d`oHt-mEHwh;o1dq5kv3I(8AJEl!j1;g2kXG+l+mAg_fku?K% z0oF6aZmMaL$S?rJ#grVYulKl>5asEU1 zwC?O2OSqJdvaD`XRlp28Yy@|=cW3JlISjC^GQ+b=h&HM@Wv3qqYPDq2*+i4$gS|I8 zr;F%#Bhy+WZ6dwe(9@i#rd3g4Eew&PBTwr(x%N4SoG$3el-^c&uYyclDgT>_Vncql zSgB9Zp*zIj1&|#|xv{NlwQc!ScQmZ!{UWmYMsC)`56IF4E792N9@QcIqdrcfR0bH- zW7y)@^Y1=8?r5-bYZ5L^Nj}kZMy9(2!&Mb69n@?QX^?hH0OY6RYt|FOR3xfVWUZ01 zdQSllQmYCv*K*|!FyVs}nJ1$vg=(*UV2u`2ll+^$86eHU{Gjg%nd;dZ&(`GgOcuB5 z8Ht8GN0TB1ODrJQl&M6D>ip`+*#X2ZSH@k?8ZYvUMEc%k>l25_S}hp7)5r92%SZS= zcIO;=Z$(A^L1UvZP7k+E=wRzU*fOOfF_z6vNfJ?t;Q!iUys^|$Ey2Q@f}!{+d*x;j zl*sg{miqav4R2I4$ms|>B|Y;Q$aI?3fM!xb*V#^bgRLl)nO`SNK0Exa?E#Ppdc*`g zu3=6q5%IzfU`_9sci4pM)j>@AT5i&=AS^0_Qz*lkqy2p8pLV&e#B>Z%P)5T1ow_p* z^cy`E(Cl|6)C$V-o~%VbBY(*=qHurU=tHUztWdb?lXe^<`SfPfK5A~+Uib~p+O2_;Fm F{|EP8>(KxJ delta 14723 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 diff --git a/report/milestone2.tex b/report/milestone2.tex index cf6bf08..19cb8b0 100644 --- a/report/milestone2.tex +++ b/report/milestone2.tex @@ -345,17 +345,6 @@ \subsection{Hypothesis} The setups with $S=3$ servers will suffer the largest relative performance decrease (compared to $S > 3$) because there are fewer WriteWorkers dealing with the same load of write requests, which in turn increases the queue wait time $tQueue$. -\paragraph{Reasons for reduced performance} - - -\begin{itemize} -\item Draw graphs with expected results -\item Even try to predict variance and statistical properties -\item Make bullet points with explanations -\item Use „modeling“ to make hypothesis -\item Formulate a number of questions on what you expect to see, develop a hypothesis around the behavior that is expected, explain the hypothesis, and write it all down -\end{itemize} - \subsection{Experiments} \begin{center} \small{ diff --git a/scripts/r/exp3_summary.r b/scripts/r/exp3_summary.r index 17f70c7..28e169b 100644 --- a/scripts/r/exp3_summary.r +++ b/scripts/r/exp3_summary.r @@ -278,6 +278,42 @@ ggplot(data2, aes(x=writes_str, y=tps_mean, group=1)) + ggsave(paste0(result_dir_base, "/graphs/throughput_vs_writes.pdf"), width=fig_width, height=fig_height, device=cairo_pdf) +# Performance decrease compared to 1% writes +data3 <- all_results %>% + group_by(type, servers, replication) %>% + mutate(relative_performance=response_time_mean/response_time_mean[writes==1]) %>% + select(type, servers_str, replication_str, writes_str, relative_performance) + +ggplot(data3 %>% filter(type=="all"), aes(x=writes_str, y=relative_performance, group=1)) + + geom_line(color=color_dark) + + geom_point(color=color_dark) + + facet_wrap(~replication_str+servers_str, nrow=2) + + xlab("Proportion of write requests") + + ylab("Response time relative to base case ") + + asl_theme +ggsave(paste0(result_dir_base, "/graphs/relative_performance_all.pdf"), + width=fig_width, height=fig_height, device=cairo_pdf) + +ggplot(data3 %>% filter(type=="SET"), aes(x=writes_str, y=relative_performance, group=1)) + + geom_line(color=color_dark) + + geom_point(color=color_dark) + + facet_wrap(~replication_str+servers_str, nrow=2) + + xlab("Proportion of write requests") + + ylab("Response time relative to base case ") + + asl_theme +ggsave(paste0(result_dir_base, "/graphs/relative_performance_set.pdf"), + width=fig_width, height=fig_height, device=cairo_pdf) + +ggplot(data3 %>% filter(type=="GET"), aes(x=writes_str, y=relative_performance, group=1)) + + geom_line(color=color_dark) + + geom_point(color=color_dark) + + facet_wrap(~replication_str+servers_str, nrow=2) + + xlab("Proportion of write requests") + + ylab("Response time relative to base case ") + + asl_theme +ggsave(paste0(result_dir_base, "/graphs/relative_performance_get.pdf"), + width=fig_width, height=fig_height, device=cairo_pdf) + # Not within confidence interval not_confident <- all_results %>% filter(response_time_confidence_delta_rel > 0.05) %>%