我有一个使用Linux盒子上运行的多进程模块的多进程(不是多线程!)应用程序。
此应用程序使用numpy.linalg.solve
函数,如果我尝试创建多个进程,则会收到错误消息:
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
请注意,在开始使用
numpy.linalg
中的函数之前,我没有遇到任何问题。知道可能是什么问题吗?
编辑:我尝试使用
scipy.linalg.solve
,问题是一样的!编辑:通过将blas替换为atlas,问题消失了。所以看来问题确实在 map 集之内
最佳答案
碰巧的是,ATLAS开发人员最近在这里回答了这个问题:
http://sourceforge.net/p/math-atlas/support-requests/873/
注意:我假设您已经安装了ATLAS 3.10。
这个人也困扰了我一段时间。而且,如果您遇到与我相同的问题,那么很有可能是:
解决方案是在内核数小于或等于当前计算机的计算机上构建ATLAS。
希望这可以帮助,
关于linux - 在Linux下在numpy中使用Atlas进行线程处理错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14236717/