Blas Libraries

From wiki
Revision as of 14:18, 6 September 2016 by Rf (talk | contribs)
Jump to: navigation, search

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.