Appli:ATLAS

ATLAS (Automatically Tuned Linear Algebra Software) is an ongoing research effort focusing on applying empirical techniques in order to provide portable performance. At present, it provides C and Fortran77 interfaces to a portably efficient BLAS implementation, as well as a few routines from LAPACK.

On Bellatrix, we installed ATLAS 3.10.1 and 3.8.4 with gcc 4.6.3. This choice is justified by the fact that some routines are more efficient with 3.10.1 and others with 3.8.4. Thus, the version of ATLAS you choose, depends on the application

The GCC 3.8.4 compiler has been chosen because it is the most recent "bug-free" one (we need a GCC recent enough with Q precision).

We will compile ATLAS with full LAPACK support and shared libraries.

Before starting the installation, you should ask an admin to temporarily set the cpu governor to performance with the following command:

for i in `seq 0 15`; do    echo performance > /sys/devices/system/cpu/cpu$i/cpufreq/scaling_governor done

Moreover, the node should be as empty as it can be.

First, create a master directory where you will download all the archives to, let's call it Master. Load the right gcc module

module load gcc/4.6.3

LAPACK
In the Master direcroty, download and unpack lapack-3.4.2.tgz from the Netlib web site.

Copy make.inc.example to make.inc and edit make.inc. Modify the following lines:

OPTS    = -O2 -fPIC -m64 -fPIC

NOOPT   = -O0 -fPIC -m64 -fPIC

Then, edit the Makefile. The line starting with lib: should read

lib: blaslib lapacklib tmglib

Run

make

ATLAS 3.10.1 compilation and installation
Back to the Master</tt> directory, download and unpack atlas3.10.1.tar.bz2</tt>. Rename the new directory, for example

mv ATLAS/ ATLAS-3.10.1

Create a build directory, enter it

mkdir ATLAS-3.10.1-build; cd ATLAS-3.10.1-build/

From there, run the following commands:

../ATLAS-3.10.1/configure --prefix=/DESTINATION/atlas/3.10.1/gcc/4.6.3/ --with-netlib-lapack-tarfile=/FULL-PATH-TO/lapack-3.4.2.tgz -b 64 -Fa alg '-fPIC -m64 -fPIC' make make check make time 2>&1 | tee time.log

Now, we build the shared libraries:

cd lib make shared make ptshared cd ..

At last, install:

make install

You can also copy over to the installation directory the time.log file for the users to see.

ATLAS 3.8.4 compilation and installation
Back to the Master</tt> directory, download and unpack atlas3.8.4.tar.bz2</tt>. Rename the new directory, for example

mv ATLAS/ ATLAS-3.8.4

Create a build directory, enter it

mkdir ATLAS-3.8.4-build; cd ATLAS-3.8.4-build/

From there, run the following commands:

../ATLAS-3.8.4/configure --prefix=/DESTINATION/atlas/3.8.4/gcc/4.6.3/ --with-netlib-lapack=../lapack-3.4.2/liblapack.a -b 64 -Fa alg '-fPIC -m64 -fPIC' make make check make time 2>&1 | tee time.log

Now, we build the shared libraries:

cd lib make shared make ptshared cd ..

If that fails, modify the Make.inc file to point to the right gfortran library (F77SYSLIB) and try again.

At last, install:

make install

The install script did not copy over the shared libraries. Do that by hand:

cd lib cp *.so /DESTINATION/atlas/3.8.4/gcc/4.6.3/lib chmod 0644 /DESTINATION/atlas/3.8.4/gcc/4.6.3/lib/*.so

You can also copy over to the installation directory the time.log file for the users to see.