<div>Thanks Chuck,</div>
<div> </div>
<div>for replying. But don't you still feel very odd that dot outperforms sum in your machine? Just to get it simply; why sum can't outperform dot? Whatever architecture (computer, cache) you have, it don't make any sense at all that when performing significantly less instructions, you'll reach to spend more time ;-). </div>

<div> </div>
<div> </div>
<div>Regards,</div>
<div>eat<br></div>
<div class="gmail_quote">On Thu, Feb 10, 2011 at 7:10 PM, Charles R Harris <span dir="ltr"><<a href="mailto:charlesr.harris@gmail.com">charlesr.harris@gmail.com</a>></span> wrote:<br>
<blockquote style="BORDER-LEFT: #ccc 1px solid; MARGIN: 0px 0px 0px 0.8ex; PADDING-LEFT: 1ex" class="gmail_quote"><br><br>
<div class="gmail_quote">
<div class="im">On Thu, Feb 10, 2011 at 8:29 AM, eat <span dir="ltr"><<a href="mailto:e.antero.tammi@gmail.com" target="_blank">e.antero.tammi@gmail.com</a>></span> wrote:<br>
<blockquote style="BORDER-LEFT: rgb(204,204,204) 1px solid; MARGIN: 0pt 0pt 0pt 0.8ex; PADDING-LEFT: 1ex" class="gmail_quote">
<div>Hi,</div>
<div> </div>
<div>Observing following performance:</div>
<div><font face="courier new,monospace">In []: m= 1e5</font></div>
<div><font face="courier new,monospace">In []: n= 1e2</font></div>
<div><font face="courier new,monospace">In []: o= ones(n)</font></div>
<div><font face="courier new,monospace">In []: M= randn(m, n)</font></div>
<div><font face="courier new,monospace">In []: timeit M.sum(1)<br>10 loops, best of 3: 38.3 ms per loop</font></div>
<div><font face="courier new,monospace">In []: timeit dot(M, o)<br>10 loops, best of 3: 21.1 ms per loop</font></div>
<div><font face="courier new,monospace"></font> </div>
<div><font face="courier new,monospace">In []: m= 1e2</font></div>
<div><font face="courier new,monospace">In []: n= 1e5</font></div>
<div><font face="courier new,monospace">In []: o= ones(n)</font></div>
<div><font face="courier new,monospace">In []: M= randn(m, n)</font></div>
<div><font face="courier new,monospace">In []: timeit M.sum(1)<br>100 loops, best of 3: 18.3 ms per loop</font></div>
<div><font face="courier new,monospace">In []: timeit dot(M, o)<br>10 loops, best of 3: 21.2 ms per loop</font></div>
<div> </div>
<div>One would expect sum to outperform dot with a clear marginal. Does there exixts any 'tricks' to increase the performance of sum?</div>
<div> </div></blockquote></div>
<div><br>I'm not surprised, much depends on the version of ATLAS or MKL you are linked to. If you aren't linked to either and just using numpy's version then the results are a bit strange. With numpy development I get<br>
<br><span style="FONT-FAMILY: courier new, monospace">In [1]: m= 1e5</span><br style="FONT-FAMILY: courier new, monospace"><br style="FONT-FAMILY: courier new, monospace"><span style="FONT-FAMILY: courier new, monospace">In [2]: n= 1e2</span><br style="FONT-FAMILY: courier new, monospace">
<br style="FONT-FAMILY: courier new, monospace"><span style="FONT-FAMILY: courier new, monospace">In [3]: o= ones(n)</span><br style="FONT-FAMILY: courier new, monospace"><br style="FONT-FAMILY: courier new, monospace"><span style="FONT-FAMILY: courier new, monospace">In [4]: M= randn(m, n)</span><br style="FONT-FAMILY: courier new, monospace">
<br style="FONT-FAMILY: courier new, monospace"><span style="FONT-FAMILY: courier new, monospace">In [5]: timeit M.sum(1)</span><br style="FONT-FAMILY: courier new, monospace"><span style="FONT-FAMILY: courier new, monospace">100 loops, best of 3: 19.2 ms per loop</span><br style="FONT-FAMILY: courier new, monospace">
<br style="FONT-FAMILY: courier new, monospace"><span style="FONT-FAMILY: courier new, monospace">In [6]: timeit dot(M, o)</span><br style="FONT-FAMILY: courier new, monospace"><span style="FONT-FAMILY: courier new, monospace">100 loops, best of 3: 15 ms per loop</span><br style="FONT-FAMILY: courier new, monospace">
<br style="FONT-FAMILY: courier new, monospace"><span style="FONT-FAMILY: courier new, monospace">In [7]: m= 1e2</span><br style="FONT-FAMILY: courier new, monospace"><br style="FONT-FAMILY: courier new, monospace"><span style="FONT-FAMILY: courier new, monospace">In [8]: n= 1e5</span><br style="FONT-FAMILY: courier new, monospace">
<br style="FONT-FAMILY: courier new, monospace"><span style="FONT-FAMILY: courier new, monospace">In [9]: o= ones(n)</span><br style="FONT-FAMILY: courier new, monospace"><br style="FONT-FAMILY: courier new, monospace"><span style="FONT-FAMILY: courier new, monospace">In [10]: M= randn(m, n)</span><br style="FONT-FAMILY: courier new, monospace">
<br style="FONT-FAMILY: courier new, monospace"><span style="FONT-FAMILY: courier new, monospace">In [11]: timeit M.sum(1)</span><br style="FONT-FAMILY: courier new, monospace"><span style="FONT-FAMILY: courier new, monospace">100 loops, best of 3: 17.4 ms per loop</span><br style="FONT-FAMILY: courier new, monospace">
<br style="FONT-FAMILY: courier new, monospace"><span style="FONT-FAMILY: courier new, monospace">In [12]: timeit dot(M, o)</span><br style="FONT-FAMILY: courier new, monospace"><span style="FONT-FAMILY: courier new, monospace">100 loops, best of 3: 14.2 ms per loop</span><br style="FONT-FAMILY: courier new, monospace">
<br>Chuck    <br></div><br></div><br>_______________________________________________<br>NumPy-Discussion mailing list<br><a href="mailto:NumPy-Discussion@scipy.org">NumPy-Discussion@scipy.org</a><br><a href="http://mail.scipy.org/mailman/listinfo/numpy-discussion" target="_blank">http://mail.scipy.org/mailman/listinfo/numpy-discussion</a><br>
<br></blockquote></div><br>