Difference between revisions of "Blas Libraries"
(2 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
= Introduction = | = Introduction = | ||
− | The key to speeding up and optimising a cluster often comes down to its BLAS libraries, so here is a review of what's been | + | The key to speeding up and optimising a cluster often comes down to its BLAS libraries, so here is a review of what's been done on the marvin cluster |
= ATLAS = | = ATLAS = | ||
Line 13: | Line 13: | ||
= OpenBLAS = | = OpenBLAS = | ||
− | Manual compilation is quite straightforward. | + | Manual compilation is quite straightforward, although very verbose so that the 10k lines of GNU screen's history is quickly eaten up. |
make | make | ||
Line 46: | Line 46: | ||
Note how tests were already run. | Note how tests were already run. | ||
+ | |||
+ | = Linking an R installation to optimised BLAS = |
Latest revision as of 14:43, 6 September 2016
Contents
Introduction
The key to speeding up and optimising a cluster often comes down to its BLAS libraries, so here is a review of what's been done on the marvin cluster
ATLAS
yum install
This has been done on marvin and all the nodes. It is available in two varieties: normal atlas and then atlas-sse3.
hand compilation
OpenBLAS
Manual compilation is quite straightforward, although very verbose so that the 10k lines of GNU screen's history is quickly eaten up.
make make install PREFIX=/custom/install/path
It is possible to search out th eprecise CPU setting to use and then specify it, but lacking time, no such setting was given and here is the end of the compilation output.
cblas_zhpr2 PASSED THE COMPUTATIONAL TESTS ( 577 CALLS) END OF TESTS make[1]: Leaving directory `/shelf/scratch/ramon/swmake/OpenBLAS-0.2.19/ctest' make[1]: Entering directory `/shelf/scratch/ramon/swmake/OpenBLAS-0.2.19/exports' perl ./gensymbol linktest x86_64 _ 0 0 0 0 0 0 "" "" 1 > linktest.c gcc -O2 -DMAX_STACK_ALLOC=2048 -Wall -m64 -DF_INTERFACE_GFORT -fPIC -DSMP_SERVER -DNO_WARMUP -DMAX_CPU_NUMBER=32 -DASMNAME= -DASMFNAME=_ -DNAME=_ - DCNAME= -DCHAR_NAME=\"_\" -DCHAR_CNAME=\"\" -DNO_AFFINITY -I.. -shared -o ../libopenblas_piledriverp-r0.2.19.so \ -Wl,--whole-archive ../libopenblas_piledriverp-r0.2.19.a -Wl,--no-whole-archive \ -Wl,-soname,libopenblas.so.0 -lm -lpthread -lgfortran -lm -lpthread -lgfortran gcc -O2 -DMAX_STACK_ALLOC=2048 -Wall -m64 -DF_INTERFACE_GFORT -fPIC -DSMP_SERVER -DNO_WARMUP -DMAX_CPU_NUMBER=32 -DASMNAME= -DASMFNAME=_ -DNAME=_ - DCNAME= -DCHAR_NAME=\"_\" -DCHAR_CNAME=\"\" -DNO_AFFINITY -I.. -w -o linktest linktest.c ../libopenblas_piledriverp-r0.2.19.so - L/usr/lib/gcc/x86_64-redhat-linux/4.4.7 -L/usr/lib/gcc/x86_64-redhat-linux/4.4.7 -L/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../.. -lgfortran -lm -lgfortran -lm -lc && echo OK. OK. rm -f linktest make[1]: Leaving directory `/shelf/scratch/ramon/swmake/OpenBLAS-0.2.19/exports' OpenBLAS build complete. (BLAS CBLAS LAPACK LAPACKE) OS ... Linux Architecture ... x86_64 BINARY ... 64bit C compiler ... GCC (command line : gcc) Fortran compiler ... GFORTRAN (command line : gfortran) Library Name ... libopenblas_piledriverp-r0.2.19.a (Multi threaded; Max num-threads is 32) To install the library, you can run "make PREFIX=/path/to/your/installation install" .
Note how tests were already run.