<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">Yeah, numexpr is pretty cool for
      avoiding temporaries in an easy way:<br>
      <br>
      <a class="moz-txt-link-freetext" href="https://github.com/pydata/numexpr">https://github.com/pydata/numexpr</a><br>
      <br>
      Francesc<br>
      <br>
      El 24/01/14 16:30, Nathaniel Smith ha escrit:<br>
    </div>
    <blockquote
cite="mid:CAPJVwBneY=s_mopp3_yp43BFNUt0eAC_36S_-4B4qCMgDFuTYw@mail.gmail.com"
      type="cite">
      <p dir="ltr">There is no reliable way to predict how much memory
        an arbitrary numpy operation will need, no. However, in most
        cases the main memory cost will be simply the need to store the
        input and output arrays; for large arrays, all other allocations
        should be negligible.</p>
      <p dir="ltr">The most effective way to avoid running out of
        memory, therefore, is to avoid creating temporary arrays, by
        using only in-place operations.</p>
      <p dir="ltr">E.g., if a and b each require N bytes of ram, then
        memory requirements (roughly).</p>
      <p dir="ltr">c = a + b: 3N<br>
        c = a + 2*b: 4N<br>
        a += b: 2N<br>
        np.add(a, b, out=a): 2N<br>
        b *= 2; a += b: 2N</p>
      <p dir="ltr">Note that simply loading a and b requires 2N memory,
        so the latter code samples are near-optimal.</p>
      <p dir="ltr">Of course some calculations do require the use of
        temporary storage space...</p>
      <p dir="ltr">-n</p>
      <div class="gmail_quote">On 24 Jan 2014 15:19, "Dinesh Vadhia"
        <<a moz-do-not-send="true"
          href="mailto:dineshbvadhia@hotmail.com">dineshbvadhia@hotmail.com</a>>
        wrote:<br type="attribution">
        <blockquote class="gmail_quote" style="margin:0 0 0
          .8ex;border-left:1px #ccc solid;padding-left:1ex">
          <div
            style="PADDING-LEFT:10px;PADDING-RIGHT:10px;PADDING-TOP:15px"
            name="Compose message area">
            <div><font size="4" face="Garamond">I want to write a
                general exception handler to warn if too much data is
                being loaded for the ram size in a machine for a
                successful numpy array operation to take place.  For
                example, the program multiplies two floating point
                arrays A and B which are populated with loadtext.  While
                the data is being loaded, want to continuously check
                that the data volume doesn't pass a threshold that will
                cause on out-of-memory error during the A*B operation. 
                The known variables are the amount of memory available,
                data type (floats in this case) and the numpy array
                operation to be performed. It seems this requires
                knowledge of the internal memory requirements of each
                numpy operation.  For sake of simplicity, can ignore
                other memory needs of program.  Is this possible?</font></div>
            <div> </div>
          </div>
          <br>
          _______________________________________________<br>
          NumPy-Discussion mailing list<br>
          <a moz-do-not-send="true"
            href="mailto:NumPy-Discussion@scipy.org">NumPy-Discussion@scipy.org</a><br>
          <a moz-do-not-send="true"
            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>
      <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>
    <br>
    <pre class="moz-signature" cols="72">-- 
Francesc Alted</pre>
  </body>
</html>