<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Yeah, we would have to get them installed there.  I’m not a big fan of these external pip repos. Nothing but trouble, and I think they add very little value.<div class=""><br class=""></div><div class="">I was timing mean and median, on a list of 10 numbers.  Our implementation was ~30us (45 when I added the cast), numpy was ~230us.  I assume the overhead is when converting the list into a numpy array before use. </div><div class=""><br class=""></div><div class="">Rule #1 of data analysis: always use stats routines made by someone who will lose a lot of money if they are wrong. Last thing you want is to be making conclusions based on output from an algorithm written by a long gone grad student who didn’t care about that corner case that you fell into.  Proof: we didn’t even implement mean correctly for all cases.</div><div class=""><br class=""></div><div class="">This alone make me think even if it is slower we should consider using them.</div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><div><blockquote type="cite" class=""><div class="">On Jun 6, 2015, at 1:37 AM, Kristof Beyls <<a href="mailto:kristof.beyls@gmail.com" class="">kristof.beyls@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class=""><div class="">I guess that the biggest problem in switching to use numpy and scipy is making sure all required packages are available at <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__lab.llvm.org_packages_&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=mQ4LZ2PUj9hpadE3cDHZnIdEwhEBrbAstXeMaFoB9tg&m=TnAg4yVoeptrzL3q2Je-eHPXMNhca9iN1goA3GoCgmg&s=GKQTRgY4RxeXX6Ws2_Onvo2ERJ-q0zQfqjaQfWSo7_Q&e=" target="_blank" style="font-size:12.8000001907349px" class="">http://lab.llvm.org/packages/</a> so the buildbots won't break?<br class=""></div><div class="">Is it for specific functions that numpy was much slower than the current implementation?</div></div><div class="gmail_extra"><br class=""><div class="gmail_quote">2015-06-05 17:54 GMT+01:00 Chris Matthews <span dir="ltr" class=""><<a href="mailto:chris.matthews@apple.com" target="_blank" class="">chris.matthews@apple.com</a>></span>:<br class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Thanks for fixing!  With that assertion I was hoping to flush out all the places where we pass ints and None to the stats routines.  Given the way the routines are written, they produce subtly wrong results in those cases.   I sort of want to switch them to numpy and spicy, but in some informal benchmarking we were much faster (10x) than numpy.  Simplicity seems to win out there.<br class="">
<div class="HOEnZb"><div class="h5"><br class="">
> On Jun 5, 2015, at 1:43 AM, James Molloy <<a href="mailto:james.molloy@arm.com" class="">james.molloy@arm.com</a>> wrote:<br class="">
><br class="">
> Author: jamesm<br class="">
> Date: Fri Jun  5 03:43:27 2015<br class="">
> New Revision: 239138<br class="">
><br class="">
> URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject-3Frev-3D239138-26view-3Drev&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=mQ4LZ2PUj9hpadE3cDHZnIdEwhEBrbAstXeMaFoB9tg&m=TnAg4yVoeptrzL3q2Je-eHPXMNhca9iN1goA3GoCgmg&s=FdFYTleIVRDM3E6pavKOZBn8ZHWQ7UUuvAyN_Z7_oBA&e=" target="_blank" class="">http://llvm.org/viewvc/llvm-project?rev=239138&view=rev</a><br class="">
> Log:<br class="">
> Fix report submission when there are failed tests.<br class="">
><br class="">
> When tests fail, we get a .exec.status field type. This has integer<br class="">
> type, so calling the stats.* functions will now assert and the<br class="">
> import will silently fail (because the assert is caught).<br class="">
><br class="">
> Ensure we bypass the stats.* functions when we have integer data.<br class="">
><br class="">
> Modified:<br class="">
>    lnt/trunk/lnt/server/reporting/analysis.py<br class="">
><br class="">
> Modified: lnt/trunk/lnt/server/reporting/analysis.py<br class="">
> URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_lnt_trunk_lnt_server_reporting_analysis.py-3Frev-3D239138-26r1-3D239137-26r2-3D239138-26view-3Ddiff&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=mQ4LZ2PUj9hpadE3cDHZnIdEwhEBrbAstXeMaFoB9tg&m=TnAg4yVoeptrzL3q2Je-eHPXMNhca9iN1goA3GoCgmg&s=RyroqkP_4d369lHhO2FTry0piYQSJXfh8huUDZs8BRw&e=" target="_blank" class="">http://llvm.org/viewvc/llvm-project/lnt/trunk/lnt/server/reporting/analysis.py?rev=239138&r1=239137&r2=239138&view=diff</a><br class="">
> ==============================================================================<br class="">
> --- lnt/trunk/lnt/server/reporting/analysis.py (original)<br class="">
> +++ lnt/trunk/lnt/server/reporting/analysis.py Fri Jun  5 03:43:27 2015<br class="">
> @@ -77,7 +77,11 @@ class ComparisonResult:<br class="">
><br class="">
>         # If we have multiple values for this run, use that to estimate the<br class="">
>         # distribution.<br class="">
> -        if samples and len(samples) > 1:<br class="">
> +        #<br class="">
> +        # We can get integer sample types here - for example if the field is<br class="">
> +        # .exec.status. Make sure we don't assert by avoiding the stats<br class="">
> +        # functions in this case.<br class="">
> +        if samples and len(samples) > 1 and isinstance(samples[0], float):<br class="">
>             self.stddev = stats.standard_deviation(samples)<br class="">
>             self.MAD = stats.median_absolute_deviation(samples)<br class="">
>         else:<br class="">
><br class="">
><br class="">
> _______________________________________________<br class="">
> llvm-commits mailing list<br class="">
> <a href="mailto:llvm-commits@cs.uiuc.edu" class="">llvm-commits@cs.uiuc.edu</a><br class="">
> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank" class="">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br class="">
<br class="">
<br class="">
_______________________________________________<br class="">
llvm-commits mailing list<br class="">
<a href="mailto:llvm-commits@cs.uiuc.edu" class="">llvm-commits@cs.uiuc.edu</a><br class="">
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank" class="">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br class="">
</div></div></blockquote></div><br class=""></div>
</div></blockquote></div><br class=""></div></body></html>