[NumPy-Tickets] [NumPy] #2201: numpy.linalg and multiprocessing crash

NumPy Trac numpy-tickets@scipy....
Tue Aug 14 02:25:26 CDT 2012


#2201: numpy.linalg and multiprocessing crash
--------------------------+-------------------------------------------------
 Reporter:  agchang       |       Owner:  pv         
     Type:  defect        |      Status:  new        
 Priority:  high          |   Milestone:  Unscheduled
Component:  numpy.linalg  |     Version:  1.6.1      
 Keywords:                |  
--------------------------+-------------------------------------------------
 There seems to be an issue with numpy.linalg being called in unison with
 python's multiprocessing module. When invoking a numpy.linalg method from
 within a subprocess, e.g., through a worker pool and map() function, the
 program hangs and ignores all interrupt signals.

 The code provided below will demonstrate the case:


 {{{
 import numpy as np
 import multiprocessing as mp

 def foo(x):
     print np.linalg.inv([[2,3],[2,2]]) #this causes the crash
     #print np.dot([[1,2],[3,4]],[[1,2],[3,4]]) # this works fine

 def test():
     print "running..."
     print np.__version__
     print mp.__version__
     vals = [1,2,3,4]
     #pool = mp.Pool(1) #This has an issue
     #pool = mp.Pool(mp.cpu_count()) #this has an issue
     pool.map(foo, vals)

 if __name__ == "__main__":
     test()
     #foo(1) #this works fine

 }}}

 By hang I mean the program becomes unresponsive and does not respond to
 interrupts(Ctrl-C).

 I took a look using pdb and it seems that it hangs after the call
 __waiter__.acquire() in threading.py(the python system module) so I
 suspect some sort of deadlock?


 multiprocessing.__version__ is 0.70a1
 numpy.__version__ is 1.6.1

 Some potentially related packages?

 ii  libblas3gf     1.2.20110419-2 Basic Linear Algebra Reference
 implementatio
 ii  liblapack3gf   3.3.1-1        library of linear algebra routines 3 -
 share
 ii  python         2.7.3-0ubuntu2 interactive high-level object-oriented
 langu
 ii  python-numpy   1:1.6.1-6ubunt Numerical Python adds a fast array
 facility

 My kernel version is(uname -a):

 Linux agc 3.2.0-29-generic #46-Ubuntu SMP Fri Jul 27 17:03:23 UTC 2012
 x86_64 x86_64 x86_64 GNU/Linux

 Let me know for any additional information.

 Thanks.

-- 
Ticket URL: <http://projects.scipy.org/numpy/ticket/2201>
NumPy <http://projects.scipy.org/numpy>
My example project


More information about the NumPy-Tickets mailing list