<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=utf-8">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <p><font size="+1">Hallo zusammen,</font></p>
    <p><font size="+1">ich brauche einen Tipp, um mein Multiprocessing
        Testmodul ( kleine Kalkulation ) zu beschleunigen.  (Win 10,64,
        i7 4790k , 32G RAM)<br>
      </font></p>
    <p>Anzahl-Liste: 5000000   Time: 1.9154649782858315<br>
    </p>
    <pre style="background-color:#000000;color:#c0c0c0;font-family:'HelveticaMonospacedW01';font-size:12,0pt;"><span style="color:#ff0000;">from </span>multiprocessing <span style="color:#ff0000;">import </span>Pool
<span style="color:#ff0000;">import </span>math<span style="color:#ffffff;">,</span>time
<span style="color:#e4e4e4;">wu    </span><span style="color:#ffffff;">= </span>math<span style="color:#ffffff;">.</span>sqrt

<span style="color:#649988;font-style:italic;">
</span><span style="color:#ff0000;">def </span><span style="color:#c8ff00;">run_calc</span>(<span style="color:#e4e4e4;">x</span>)<span style="color:#ffffff;">:
</span><span style="color:#ffffff;">    </span><span style="color:#ff0000;">return </span><span style="color:#e4e4e4;">wu</span>(<span style="color:#e4e4e4;">x</span>)<span style="color:#ffffff;">, </span><span style="color:#e4e4e4;">x </span><span style="color:#ffffff;">* </span><span style="color:#e4e4e4;">x</span><span style="color:#ffffff;">, </span><span style="color:#e4e4e4;">x </span><span style="color:#ffffff;">* </span><span style="color:#e4e4e4;">x </span><span style="color:#ffffff;">* </span><span style="color:#e4e4e4;">x
</span><span style="color:#e4e4e4;">
</span><span style="color:#e4e4e4;">
</span><span style="color:#ff0000;">if </span>__name__ <span style="color:#ffffff;">== </span><span style="color:#269e10;">'__main__'</span><span style="color:#ffffff;">:
</span><span style="color:#ffffff;">    </span><span style="color:#649988;font-style:italic;"></span><span style="color:#e4e4e4;">t0 </span><span style="color:#ffffff;">= </span>time<span style="color:#ffffff;">.</span>perf_counter()
    <span style="color:#e4e4e4;">pool   </span><span style="color:#ffffff;">= </span>Pool(<span style="color:#c2ae0f;">4</span>)
    <span style="color:#e4e4e4;">result </span><span style="color:#ffffff;">= </span><span style="color:#e4e4e4;">pool</span><span style="color:#ffffff;">.</span>map(run_calc<span style="color:#ffffff;">, </span>(<span style="color:#e4e4e4;">x </span><span style="color:#ff0000;">for </span><span style="color:#e4e4e4;">x </span><span style="color:#ff0000;">in </span><span style="color:#ad0fa5;">range</span>(<span style="color:#c2ae0f;">1</span><span style="color:#ffffff;">, </span><span style="color:#c2ae0f;">5_000_001</span>))<span style="color:#ffffff;">,</span><span style="color:#c2ae0f;">2000</span>)
    <span style="color:#649988;font-style:italic;"></span><span style="color:#e4e4e4;">t1 </span><span style="color:#ffffff;">= </span>time<span style="color:#ffffff;">.</span>perf_counter()

    <span style="color:#ad0fa5;">print</span>(<span style="color:#ad0fa5;">len</span>(<span style="color:#e4e4e4;">result</span>)<span style="color:#ffffff;">,</span><span style="color:#e4e4e4;">t1</span><span style="color:#ffffff;">-</span><span style="color:#e4e4e4;">t0</span>)

<span style="color:#649988;font-style:italic;">    </span><span style="color:#e4e4e4;">pool</span><span style="color:#ffffff;">.</span>close()
    <span style="color:#e4e4e4;">pool</span><span style="color:#ffffff;">.</span>join()

<span style="color:#269e10;">
</span></pre>
    <p><font size="+1"><br>
      </font></p>
    <p><font size="+1">das andere Beispiel ist Single-Threading mit und
        ohne  JIT aus numba - beides wesentlich schneller !<br>
      </font></p>
    <p>Anzahl-Liste: 5000000   Time: 0.8098236565761535     ohne JIT:  
      5000000 1.530495929796201<br>
    </p>
    <pre style="background-color:#000000;color:#c0c0c0;font-family:'HelveticaMonospacedW01';font-size:12,0pt;"><span style="color:#ff0000;">import </span>time<span style="color:#ffffff;">, </span>math
<span style="color:#ff0000;">from </span>numba <span style="color:#ff0000;">import </span>jit
<span style="color:#e4e4e4;">wu </span><span style="color:#ffffff;">= </span>math<span style="color:#ffffff;">.</span>sqrt
<span style="color:#649988;font-style:italic;">
</span><span style="color:#ffffff;">@</span><span style="color:#66ccff;">jit
</span><span style="color:#ff0000;">def </span><span style="color:#c8ff00;">calc</span>()<span style="color:#ffffff;">:
</span><span style="color:#ffffff;">   </span><span style="color:#649988;font-style:italic;"> </span><span style="color:#e4e4e4;">l </span><span style="color:#ffffff;">= </span>[]
    <span style="color:#ff0000;">for </span><span style="color:#e4e4e4;">x </span><span style="color:#ff0000;">in </span><span style="color:#ad0fa5;">range</span>(<span style="color:#c2ae0f;">1</span><span style="color:#ffffff;">,</span><span style="color:#c2ae0f;">5_000_001</span>)<span style="color:#ffffff;">:
</span><span style="color:#ffffff;">        </span><span style="color:#e4e4e4;">l</span><span style="color:#ffffff;">.</span>append((<span style="color:#e4e4e4;">wu</span>(<span style="color:#e4e4e4;">x</span>)<span style="color:#ffffff;">,</span><span style="color:#e4e4e4;">x</span><span style="color:#ffffff;">*</span><span style="color:#e4e4e4;">x</span><span style="color:#ffffff;">,</span><span style="color:#e4e4e4;">x</span><span style="color:#ffffff;">*</span><span style="color:#e4e4e4;">x</span><span style="color:#ffffff;">*</span><span style="color:#e4e4e4;">x</span>))
    <span style="color:#ff0000;">return </span><span style="color:#e4e4e4;">l
</span><span style="color:#e4e4e4;">
</span><span style="color:#e4e4e4;">t1 </span><span style="color:#ffffff;">= </span>time<span style="color:#ffffff;">.</span>perf_counter()
<span style="color:#e4e4e4;">l</span><span style="color:#ffffff;">= </span>calc()
<span style="color:#e4e4e4;">t2 </span><span style="color:#ffffff;">= </span>time<span style="color:#ffffff;">.</span>perf_counter()
<span style="color:#ad0fa5;">print</span>(<span style="color:#ad0fa5;">len</span>(<span style="color:#e4e4e4;">l</span>)<span style="color:#ffffff;">,</span><span style="color:#e4e4e4;">t2</span><span style="color:#ffffff;">-</span><span style="color:#e4e4e4;">t1</span>)</pre>
    <p><br>
    </p>
    Vielen Dank für alle Ideen,Tipps und Anregungen !<br>
    Joachim Sasse<br>
    <br>
    <br>
  </body>
</html>