[python-users] Multiprocessing unter Python 3.6.1
Joachim Sasse
sassec1 at t-online.de
Mo Jun 19 13:21:30 CEST 2017
Hallo zusammen,
ich brauche einen Tipp, um mein Multiprocessing Testmodul ( kleine
Kalkulation ) zu beschleunigen. (Win 10,64, i7 4790k , 32G RAM)
Anzahl-Liste: 5000000 Time: 1.9154649782858315
from multiprocessingimport Pool
import math,time
wu = math.sqrt
def run_calc(x): return wu(x), x * x, x * x * x if __name__== '__main__': t0 = time.perf_counter()
pool = Pool(4)
result = pool.map(run_calc, (x for x in range(1, 5_000_001)),2000)
t1 = time.perf_counter()
print(len(result),t1-t0)
pool.close()
pool.join()
das andere Beispiel ist Single-Threading mit und ohne JIT aus numba -
beides wesentlich schneller !
Anzahl-Liste: 5000000 Time: 0.8098236565761535 ohne JIT: 5000000
1.530495929796201
import time, math
from numbaimport jit
wu = math.sqrt
@jit def calc(): l = []
for x in range(1,5_000_001): l.append((wu(x),x*x,x*x*x))
return l t1 = time.perf_counter()
l= calc()
t2 = time.perf_counter()
print(len(l),t2-t1)
Vielen Dank für alle Ideen,Tipps und Anregungen !
Joachim Sasse
-------------- nächster Teil --------------
Ein Dateianhang mit HTML-Daten wurde abgetrennt...
URL: <http://lists.uni-koeln.de/pipermail/python-users/attachments/20170619/a380fc38/attachment.html>
Mehr Informationen über die Mailingliste python-users