我正在尝试安装scikit-learn,这样它就不能访问ATLAS (其他BLAS和LAPACK库也可以)。有没有办法将安装设置为不使用ATLAS?对于这个基本的问题,我很抱歉,但我看不到一个好的方法。
我想这样做的原因:我在一个集群上工作,我不能构建atlas,但是它的预安装版本被破坏了(在16个内核上编译,节点上只有8个内核,pthread问题),所以当我安装scikit-learn my scikit-learn尝试启动这些库时,我得到了错误。
谢谢
编辑:看起来我做错了一些事情,实际上在我针对openblas进行编译之后,scipy仍然是坏的。在我得到的一个单元测试中:
文件/var/tmp/portage/sci-libs/atlas-3.10.1-r2/work/ATLAS//src/threads/ATL_thread_start.c的第111行,断言!pthread_create(&thr->thrH,&attr,rout,arg)失败
现在有点不太可能,但你知道为什么我的scipy版本会考虑ATLAS吗?
发布于 2014-04-06 03:50:36
如果找到的话,Numpy,scipy和scikit-learn都会尝试链接到ATLAS。如果在系统上找不到ATLAS或其他BLAS/LAPACK,那么scikit-learn可以根据自己的BLAS嵌入式子集进行构建,而scipy无论如何都需要BLAS/LAPACK实现。
你可以做的就是构建你自己的numpy,scipy和scikit版本--学习本地构建的ATLAS或者OpenBLAS (后者在github上的主分支)。
为此,您需要在构建之前自定义numpy和scipy源文件夹中的site.cfg文件。
此外,您还应该使用类似以下内容来构建OpenBLAS:
make TARGET=NEHALEM NO_AFFINITY=1 NUM_THREADS=8 USE_OPENMP=0https://stackoverflow.com/questions/22875974
复制相似问题