OpenBLAS
Multiprocessing python code can work very slow (with linear equations) on multicore
machines when numpy linked to the wrong blas library.
Here is the link how to install
OpenBLAS and numpy in a proper way to speed up the performance:
https://hunseblog.wordpress.com/2014/09/15/installing-numpy-and-openblas/
This procedure has been done on Server: rose
- sudo apt-get install git python-dev gfortran
OpenBLAS
To install OpenBLAS, do the following commands
- cd ~/src
- git clone https://github.com/xianyi/OpenBLAS
- cd OpenBLAS
- make FC=gfortran
- sudo make PREFIX=/opt/openblas install
Need to tell the system about the new library; create config file and insert the path to new library!
vi /etc/ld.so.conf.d/openblas.conf
/opt/openblas/lib
Update system with new library path!
sudo ldconfig
In case you have also the libblas lib installed, we need to change that.
update-alternatives --install /usr/lib/libblas/libblas.so.3 libblas.so.3 /opt/openblas/lib/libopenblas.so 40 update-alternatives --config libblas.so.3
There are 2 choices for the alternative libblas.so.3 (providing /usr/lib/libblas/libblas.so.3).
Selection Path Priority Status ------------------------------------------------------------ * 0 /opt/openblas/lib/libopenblas.so 40 auto mode 1 /opt/openblas/lib/libopenblas.so 40 manual mode 2 /usr/lib/atlas-base/atlas/libblas.so.3 35 manual mode Press enter to keep the current choice[*], or type selection number: 0
Numpy
Install Numpy
- cd ~/src
- git clone https://github.com/numpy/numpy
- cd ~/numpy
By default, the repository will be on the current development (master) branch. I prefer to use the latest stable branch. To find this, type git checkout v and press Tab.
- git checkout v1.11.1
Add a config file site.cfg
vi site.cfg
[default] include_dirs = /opt/openblas/include library_dirs = /opt/openblas/lib [openblas] openblas_libs = openblas library_dirs = /opt/openblas/lib [lapack] lapack_libs = openblas library_dirs = /opt/openblas/lib
Now run:
python setup.py config python setup.py build --fcompiler=gnu95
If all configured without errors, finally install it!
python setup.py install