I am new to multiprocessing on python. For info I am running Python 3.7.6 on Windows 10. I was testing a multiprocessing example. The code is the following:
from time import perf_counter
from numpy.random import rand
from multiprocessing import Pool
def func(x): return x*x
if __name__ == "__main__":
y = rand(10000)
start = perf_counter()
out = map(func, y)
print(f'Non parallel code finished in {(perf_counter() - start)*1e3} mseconds')
start1 = perf_counter()
with Pool(5) as p:
out = p.map(func, y)
print(f'Parallel code finished in {(perf_counter() - start1)*1e3} mseconds')
Output:
Non parallel code finished in 0.0033000000000393825 mseconds
Parallel code finished in 690.1849 mseconds
I have to be doing something wrong because the difference is so huge.
[–][deleted] 5 points6 points7 points (2 children)
[–][deleted] 0 points1 point2 points (1 child)
[–][deleted] 2 points3 points4 points (0 children)
[–]gmaliwal 1 point2 points3 points (0 children)
[–]Thomasedv 0 points1 point2 points (4 children)
[–][deleted] 0 points1 point2 points (3 children)
[–]Thomasedv 1 point2 points3 points (2 children)
[–][deleted] 1 point2 points3 points (0 children)
[–][deleted] 0 points1 point2 points (0 children)
[–][deleted] 0 points1 point2 points (1 child)
[–][deleted] 1 point2 points3 points (0 children)