在Mac OS X Mavericks上安装numpy并使用替代LAPACK/BLAS

4
我正在尝试使用Python多进程包并行化一些广泛使用NumPy的代码。不幸的是,正如这里所述,苹果提供的默认线性代数库(Accelerate/Veclib)不能并行运行。因此,我正在尝试在安装NumPy时链接一个备用的LAPACK/BLAS,希望我的代码可以在没有崩溃的情况下并行化!
我下载并编译了另一个LAPACK/BLAS。然后,按照这里的说明进行操作:
export LAPACK=/usr/local/Cellar/lapack/3.4.2/lib/liblapack.dylib
export BLAS=/usr/local/Cellar/lapack/3.4.2/lib/libblas.dylib
export ATLAS=None
pip install numpy

这些代码运行良好。然而,如果我运行

numpy.show_config()

在Python中,我得到了:
atlas_threads_info:
  NOT AVAILABLE
blas_opt_info:
    extra_link_args = ['-Wl,-framework', '-Wl,Accelerate']
    extra_compile_args = ['-msse3', '-I/System/Library/Frameworks/vecLib.framework/Headers']
    define_macros = [('NO_ATLAS_INFO', 3)]
atlas_blas_threads_info:
  NOT AVAILABLE
openblas_info:
  NOT AVAILABLE
lapack_opt_info:
    extra_link_args = ['-Wl,-framework', '-Wl,Accelerate']
    extra_compile_args = ['-msse3']
    define_macros = [('NO_ATLAS_INFO', 3)]
atlas_info:
  NOT AVAILABLE
lapack_mkl_info:
  NOT AVAILABLE
blas_mkl_info:
  NOT AVAILABLE
atlas_blas_info:
  NOT AVAILABLE
mkl_info:
  NOT AVAILABLE

这表明NumPy仍在使用苹果的LAPACK/BLAS!事实上,崩溃问题仍然存在。有谁能帮我吗?


你是否安装了Fortran编译器之一,g77或gfortran?我没有安装,看到的情况与你看到的几乎相同 - 使用Anaconda安装。 - Fred Mitchell
是的,我已经安装了gfortran。 - Josh Burkart
稍微纠正一下,苹果提供的默认线性代数库“可以并行”运行得很好;问题是在 fork-without-exec 两边调用它们(我应该指出,没有什么真正好的理由去期望它会起作用)。 - Stephen Canon
这些指示对我有效:https://dev59.com/Hmgu5IYBdhLWcg3wRlL0#14391693 - Oriol Nieto
1个回答

0

谢谢,这帮助我找到了正确的答案,即安装OpenBLAS并在安装NumPy时手动编辑site.cfg文件(请参见[链接](https://dev59.com/Hmgu5IYBdhLWcg3wRlL0))。 - Josh Burkart

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接