I have a multi-process (not multi-thread!) application using the multiprocess module running on a Linux box.
This application uses the numpy.linalg.solve
function, and if I try to create to many processes, then I get the error:
assertion !pthread_create( &(ROOT->pid), ATTR, ROOT->fun, ROOT ) failed, line 84 of file /build/buildd-atlas_3.8.4-9-amd64-jk6dgk/atlas-3.8.4/build/atlas-base/../..//src/pthreads/misc/ATL_thread_tree.c
Note that before I started using functions from numpy.linalg
, I haven't had any problem.
Any idea what the problem may be?
Edit: I tried to use scipy.linalg.solve
and the problem is the same!
Edit: By replacing atlas with blas, the problem disappears. So it really seems the issue is within atlas
It just happens that the ATLAS developer recently answered that question here: http://sourceforge.net/p/math-atlas/support-requests/873/
Note: I'm assuming you have ATLAS 3.10 installed.
This one has been bugging me for a while too. And if you have the same problem as mine, then it's highly likely that:
The solution is to build ATLAS on a machine with a number of core lower or equal than your current machine.
Hope this helps,
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With