Openblas

From ScientificComputing
Jump to: navigation, search

Category

Development, Library, BLAS

Description

OpenBLAS is an open source implementation of the BLAS (Basic Linear Algebra Subprograms) API with many hand-crafted optimizations for specific processor types. It is developed at the Lab of Parallel Software and Computational Science, ISCAS. It adds optimized implementations of linear algebra kernels for several processor architectures, including Intel Sandy Bridge and Loongson. It claims to achieve performance comparable to the Intel MKL. OpenBLAS is a fork of GotoBLAS2, which was created by Kazushige Goto at the Texas Advanced Computing Center.

Available versions (Euler, old software stack)

Legacy versions Supported versions New versions
0.2.13_par, 0.2.13_seq, 0.2.8_par, 0.2.8_seq

Please note that this page refers to installations from the old software stack. There are two software stacks on Euler. Newer versions of software are found in the new software stack.

Environment modules (Euler, old software stack)

The openblas module is a smart module, which checks for a loaded compiler module and then loads the corresponding OpenBLAS version. For the module load command example, we use the standard compiler gcc/4.8.2.
Version Module load command Additional modules loaded automatically
0.2.13_par module load gcc/4.8.2 openblas/0.2.13_par
0.2.13_seq module load gcc/4.8.2 openblas/0.2.13_seq
0.2.8_par module load gcc/4.8.2 openblas/0.2.8_par
0.2.8_seq module load gcc/4.8.2 openblas/0.2.8_seq

Please note that this page refers to installations from the old software stack. There are two software stacks on Euler. Newer versions of software are found in the new software stack.

License information

3-clause BSD license

Notes

The module load command given in the table above is loading the gcc/4.8.2 module before the openblas module is loaded. This would load the OpenBLAS version that has been compiled with GCC 4.8.2. We have also compiled OpenBLAS with the other available compilers on the cluster. The openblas module is a smart module that checks for loaded compiler modules and then prepares the environment for the corresponding OpenBLAS version that was compiled with this compiler.
[sfux@eu-login-07 ~]$ module load intel/14.0.1 openblas/0.2.13_seq
[sfux@eu-login-07 ~]$ module list
Currently Loaded Modulefiles:
  1) intel/14.0.1(14)                   2) openblas/0.2.13_seq(default:seq)
For loading the OpenBLAS version that was compiler with the Intel compiler, it is sufficient to load the intel module before the openblas module.

Links

http://www.openblas.net/

https://github.com/xianyi/OpenBLAS
https://en.wikipedia.org/wiki/OpenBLAS