<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <div class="moz-cite-prefix">Few comments on the topic,<br>
      <br>
      The postings I did to the list were in numpy 1.6 but the pull
      requests were done on the latest code at that time I believe 1.7 .
      There are still a few comments pending that I have not had a
      chance to look into, but that is a separate topic.<br>
      <br>
      <br>
      The main problems I addressed in those pull requests are related
      to the scalars. For example,<br>
      timeit.timeit("x + x", setup="import numpy as np;x =
      np.array([1.0])[0]")<br>
      <br>
      The line above is much faster with the pull request I posted.<br>
      <br>
      <br>
      The problem as posted in the Gsoc is a different one,<br>
      timeit.timeit("x + x", setup="import numpy as np;x =
      np.asarray(1.0)")<br>
      <br>
      The line above is not much faster with the pull requests I posted.
      It would if the test was "x + 1.0"<br>
      <br>
      <br>
      I profiled the line above and the main results are shown in the
      links below,<br>
      <br>
<a class="moz-txt-link-freetext" href="https://docs.google.com/file/d/0B3hgR3Pc2vPgUC1Kbng3SUx0OUE/edit?usp=sharing">https://docs.google.com/file/d/0B3hgR3Pc2vPgUC1Kbng3SUx0OUE/edit?usp=sharing</a><br>
<a class="moz-txt-link-freetext" href="https://docs.google.com/file/d/0B3hgR3Pc2vPgS3ZCUDVJUTZScEE/edit?usp=sharing">https://docs.google.com/file/d/0B3hgR3Pc2vPgS3ZCUDVJUTZScEE/edit?usp=sharing</a><br>
<a class="moz-txt-link-freetext" href="https://docs.google.com/file/d/0B3hgR3Pc2vPgZ3B5alFfYW5vLWc/edit?usp=sharing">https://docs.google.com/file/d/0B3hgR3Pc2vPgZ3B5alFfYW5vLWc/edit?usp=sharing</a><br>
<a class="moz-txt-link-freetext" href="https://docs.google.com/file/d/0B3hgR3Pc2vPgZnpaZEVFSkhhTkE/edit?usp=sharing">https://docs.google.com/file/d/0B3hgR3Pc2vPgZnpaZEVFSkhhTkE/edit?usp=sharing</a><br>
      <br>
      They show the main time consumers and then a graphical
      representation of calls and their time spent in their children.
      The different images traverse the calls starting in
      ufunc_gneric_call. You can see a fair bit of time is spent in
      find_best_ufunc_inner_loop . The point here is that, this
      particular example is not bottle necked by error checking.<br>
      <br>
      Things to keep in mind,<br>
      - these profile results are based on numpy 1.6 . Takes me quite a
      bit of doing/hacking to get the profiler to play nicely with
      getting me to the proper lines of code and I have not done it for
      the latest code.<br>
      <br>
      - I timed it, and in the latest code of numpy it is not any
      faster, so I assume all the findings still apply (note the word
      assume)<br>
      <br>
      - all my timings are on windows. I point this out, because
      Nathaniel had pointed me to a specific line of code that was a
      bottleneck to him which does not apply to Windows and found out
      that the Windows counter part of the code is not a bottleneck.<br>
      <br>
      <br>
      <br>
      Raul<br>
      <br>
      <br>
      <br>
      <br>
      On 17/04/2013 9:03 AM, Arink Verma wrote:<br>
    </div>
    <blockquote
cite="mid:CAJAs4rTbJcUwX0tRdAG5Bh=kpvswk+6eQ6AMihJvnkbR9e4D8Q@mail.gmail.com"
      type="cite">
      <div dir="ltr">Hello everyone<br>
        <div class="gmail_quote">
          <div dir="ltr">
            <div><br>
            </div>
            <div>I am Arink, computer science student and open source
              enthusiastic. This year I am interested to work on project
              "Performance parity between numpy arrays and Python
              scalars"[1]. </div>
            <div><br>
            </div>
            <div>I tried to adobt rald's work on numpy1.7[2] (which was
              done for numpy1.6 [3]). </div>
            <div>Till now by avoiding </div>
            <div>a) the uncessary Checking for floating point errors
              which is slow, </div>
            <div>
              b) unnecessarily Creation / destruction of scalar array
              types</div>
            <div><br>
            </div>
            <div>I am getting the speedup by ~ 1.05 times, which
              marginal offcourse. As in project's describtion it is
              mention that ufunc look up code is slow and inefficient. </div>
            <div><br>
            </div>
            <div>Few questions</div>
            <div>1. Does it has to check every single data type possible
              until if finds the best match for the data that the
              operation is being performed on, or is there better way to
              find the best possible match?</div>
            <div>2. If yes, so where are bottle-necks? Is the checks for
              proper data types are very expensive?</div>
            <div><br>
            </div>
            <div><br>
            </div>
            <div><br>
            </div>
            <div>[1]<a moz-do-not-send="true"
                href="http://projects.scipy.org/scipy/wiki/SummerofCodeIdeas"
                target="_blank">http://projects.scipy.org/scipy/wiki/SummerofCodeIdeas</a></div>
            <div>[2]<a moz-do-not-send="true"
href="https://github.com/arinkverma/numpy/compare/master...gsoc_performance"
                target="_blank">https://github.com/arinkverma/numpy/compare/master...gsoc_performance</a></div>
            <div>[3]<a moz-do-not-send="true"
                href="http://article.gmane.org/gmane.comp.python.numeric.general/52480"
                target="_blank">http://article.gmane.org/gmane.comp.python.numeric.general/52480</a></div>
            <span class="HOEnZb"><font color="#888888">
                <div><br>
                </div>
              </font></span></div>
        </div>
        -- <br>
        Arink<br>
        Computer Science and Engineering <br>
        Indian Institute of Technology Ropar<br>
        <a moz-do-not-send="true" href="http://www.arinkverma.in"
          target="_blank">www.arinkverma.in</a>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
NumPy-Discussion mailing list
<a class="moz-txt-link-abbreviated" href="mailto:NumPy-Discussion@scipy.org">NumPy-Discussion@scipy.org</a>
<a class="moz-txt-link-freetext" href="http://mail.scipy.org/mailman/listinfo/numpy-discussion">http://mail.scipy.org/mailman/listinfo/numpy-discussion</a>
</pre>
    </blockquote>
    <br>
  </body>
</html>