Как использовать numpy с OpenBLAS вместо Atlas в Ubuntu?


Я искал простой способ установки / компиляции Numpy с OpenBLAS, но не нашел простого ответа. Вся документация, которую я видел, принимает слишком много знаний как должное для кого-то вроде меня, кто не привык компилировать программное обеспечение. В Ubuntu есть два пакета, связанных с OpenBLAS: libopenblas-base и libopenblas-dev. Как только они установлены, что я должен сделать, чтобы установить Numpy снова с ними? Спасибо!

Обратите внимание, что когда эти пакеты OpenBLAS установлены, Numpy больше не работает: это не может быть импортные: ImportError: /УСР/Либ/liblapack.так.3gf: неопределенный символ: ATL_chemv. Проблема возникает также при установке Theano с ихинструкциями веб-сайта для Ubuntu.

Это было замечено здесь уже.

3 13

3 ответа:

Выполнить sudo update-alternatives --all и установить liblapack.so.3gf в /usr/lib/lapack/liblapack.so.3gf

Чтобы добавить к принятому ответу (использования update-alternatives), причина этого заключается в том, что OpenBlas не совместим с версией Atlas Lapack. Для каждой из версий Blas и Lapack:

  1. Default Blas + Default Lapack = > OK
  2. OpenBlas + Default Lapack = > OK
  3. Atlas-Blas + Default Lapack = > OK
  4. Atlas-Blas + Atlas-Lapack = > OK
  5. OpenBlas + Atlas-Lapack = > ошибка! (Следующий случай здесь.)

Это от обоих личных опыт (с точно такой же проблемой) и понимание, почему такая комбинация не была упомянута в этом блоге сравнения.

Кстати, вы можете просто найти необходимые файлы в /etc/alternatives/, обычно с именем файла, начинающимся с lib*. Для каждого из них сделайте sudo update-alternatives --config <filename>. Например, выполните следующие действия:

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

Чтобы изменить версию Blas.

Рассмотрите возможность использования EasyBuild (http://hpcugent.github.io/easybuild/), фреймворк с открытым исходным кодом для создания и установки программного обеспечения.

Он позволяет (очень легко) создавать и устанавливать (научное) программное обеспечение с различными компиляторами и с использованием различных библиотек BLAS (ATLAS, OpenBLAS, ACML, Intel MKL, ...).

После установки EasyBuild (pro tip: используйте процедуру начальной загрузки, описанную в https://github.com/hpcugent/easybuild/wiki/Bootstrapping-EasyBuild ), это сводится к выполнению одной команды, что-то вроде:

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

Сначала будет собрана и установлена полная компиляторная цепочка инструментов (goolf: GCC+OpenBLAS+OpenMPI+LAPACK+FFTW), а затем будут построены Python и numpy с этой цепочкой инструментов. И все это в то время, как ты обедаешь. ;- )

Отказ от ответственности: я один из разработчиков EasyBuild.