2012-09-03 14 views
13

He buscado una manera fácil de instalar/compilar Numpy con OpenBLAS, pero no he encontrado una respuesta fácil. Toda la documentación que he visto requiere demasiado conocimiento para alguien como yo que no está acostumbrado a compilar software. Hay dos paquetes en Ubuntu relacionados con OpenBLAS: libopenblas-base y libopenblas-dev. Una vez que estén instalados, ¿qué debo hacer para instalar Numpy nuevamente con ellos? Gracias!¿Cómo usar numpy con OpenBLAS en lugar de Atlas en Ubuntu?

Tenga en cuenta que cuando se instalan estos paquetes OpenBLAS, Numpy ya no funciona: no se puede importar: ImportError: /usr/lib/liblapack.so.3gf: undefined symbol: ATL_chemv. El problema también ocurre al instalar Theano con su website instructions para Ubuntu.

Esto ya se notó here.

+0

Dado que no tengo instrucciones paso a paso: Es posible que deba ejecutar sudo update-alternatives --all y establezca la configuración para eso (puede que no tenga que hacer esto si no instaló Atlas). También debes instalar liblapack3gf, creo. Personalmente tuve algunos problemas con otros paquetes al hacer eso (shogun), pero probablemente eso no es importante para ti. Y ejecuta "import numpy; numpy.test()" antes y después de cambiar las cosas ... – seberg

+0

¡Realmente funcionó! : liblipack3gf ya estaba instalado, y usando update-alternatives --all y elije la alternativa '/ usr/lib/lapack/liblapack.so.3gf' para' liblapack.so.3gf' – PierreE

+1

Si solo desinstalas todos los paquetes de atlas , entonces este error desaparece – user239558

Respuesta

13

Run sudo update-alternatives --all y establecer liblapack.so.3gf-/usr/lib/lapack/liblapack.so.3gf

1

Considere el uso de EasyBuild (http://hpcugent.github.io/easybuild/), un marco de código abierto para la construcción y la instalación de software.

Le permite (muy fácilmente) crear e instalar software (científico) con varios compiladores y utilizando diferentes bibliotecas BLAS (ATLAS, OpenBLAS, ACML, Intel MKL, ...).

Una vez que instale EasyBuild (PRO Tip: utilizar el procedimiento de arranque descrito en https://github.com/hpcugent/easybuild/wiki/Bootstrapping-EasyBuild), que se reduce a la ejecución de un comando único, algo así como:

eb numpy-1.6.2-goolf-1.4.10-Python-2.7.3.eb -ldr

Esto primera construcción e instalación de la plena compilador toolchain (goolf: GCC + OpenBLAS + OpenMPI + LAPACK + FFTW), y posteriormente construye Python y numpy con esa cadena de herramientas. Y todo eso mientras comes. ;-)

Descargo de responsabilidad: soy uno de los desarrolladores de EasyBuild.

+0

¿eb construye las últimas versiones, por ej. python 2.7.5, numpy 1.7.1 etc.? –

+0

Consulte https://github.com/hpcugent/easybuild-easyconfigs/tree/master/easybuild/easyconfigs/p/Python y https://github.com/hpcugent/easybuild-easyconfigs/tree/master/easybuild/easyconfigs/ n/numpy para archivos easyconfig en la última versión. EasyBuild v1.5 (lanzamiento previsto al final de esta semana), agregará archivos easyconfig para Python 2.7.5 (consulte https://github.com/hpcugent/easybuild-easyconfigs/tree/develop/easybuild/easyconfigs/p/Python), pero generalmente es fácil instalar nuevas versiones de las que ya están soportadas: simplemente ingrese el número de versión en el archivo easyconfig y entréguese a 'eb'. –

10

Para agregar a la respuesta aceptada (de usar update-alternatives), la razón de esto es porque OpenBlas no es compatible con la versión Atlas de Lapack. Para cada una de las versiones Blas y Lapack:

  1. defecto Blas + defecto Lapack => OK
  2. OpenBlas + defecto Lapack => OK
  3. Atlas-Blas + defecto Lapack => OK
  4. Atlas- Blas + Atlas-Lapack => OK
  5. OpenBlas + Atlas-Lapack => ERROR! (El siguiente caso aquí.)

Esto es por experiencia personal (con el mismo problema) y darse cuenta por qué tal combinación no se mencionó in this comparison blog.

Por cierto, puede encontrar los archivos necesarios en /etc/alternatives/, generalmente con un nombre de archivo que comienza con lib*. Para cada uno, haga sudo update-alternatives --config <filename>.Por ejemplo, a lo siguiente:

  • sudo update-alternatives --config libblas.so
  • sudo update-alternatives --config libblas.so.3

para cambiar la versión Blas.

+0

Gran respuesta. Resolví mi problema instalando 'liblapack3' además de' libopenblas-base' y 'libatlas3-base'. –

+0

Resuelto, muchas gracias por su excelente respuesta. – TurtleIzzy

Cuestiones relacionadas