Amaury Forgeot d'Arc <amaur...@gmail.com> added the comment: The multiprocessing module indeed has some overhead:
- the processes are spawned when needed. Before you perform performance timings, you should "warm up" the Pool with a line like pool.map(f, range(mul.cpu_count())) (starting a process is a slowish operation specially on Windows) This reduces timings by a factor of two. - the dispatch overhead of multiprocessing is certainly greater than a single multiplication. multiprocessing is for CPU-bound functions! And do not forget that you have *tree* processes here: two from the Pool, and your main program. As Antoine said, try with this function instead: def f(x): for i in range(10): x = x * x return x And the timings are much better... ---------- assignee: jnoller -> nosy: +amaury.forgeotdarc _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue5000> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com