Build High Performance LINPACK with ATLAS

Prerequisite

1. C compiler, i.e. GNU compiler suite.

2. MPI protocol

3. ATLAS library (installation is here)

4. CBLAS library (included in ATLAS)

Build High Performance LINPACK with ATLAS

1.Go to Netlib repository of HPL

2.Browse hpl-VERSION.tar-gz and use following command to download this zip file to Linux

3. Ungzip and untar file using following command

tar -xzvf hpl-2.2.tar.gz

4. Copy Make.<foo> file in setup directory to parent directory of HPL.

cp setup/Make.Linux_PII_CBLAS  $HOME/hpl-2.2

5. Edit Make.Linux_PII_CBLAS file. Point $TOPdir to HPL directory. For example,

70 TOPdir       = $(HOME)/hpl-2.2

8. Point MPI directory for MPdir and MPI libraries sub-directory for MPlib. For example,

84 MPdir        = /usr/local/mpi/openmpi-2.0.2
85 MPinc        = -I$(MPdir)/include
86 MPlib        = $(MPdir)/lib/libmpi.a

As I have tested several MPI versions/vendors, I found that either on of following MPI libraries can be used for MPlib.

  • libmpi.a
  • libmpich.a
  • libmpi.so

9. Edit Linear Algebra library configuration as following, suppose that ATLAS library is installed and stored at ATLAS_BUILD/lib/ directory. For example,

95 LAdir        = $(HOME)/ATLAS_INSTALL/
96 LAinc        =
97 LAlib        = $(LAdir)/lib/libcblas.a $(LAdir)/lib/libcblas.a 

10. Edit C compiler

169 CC           = mpicc
176 LINKER       = mpicc

11. Build HPL executable, use following command

make arch=Linux_PII_CBLAS

This compilation will take several minutes.

12. If install is finished successfully, there will be HPL executable called xhpl in HPL_TOP/bin/<arch> directory, for example,

ls hpl-2.2/bin/Linux_PII_CBLAS/xhpl

13. Run following command for small testing of xhpl binary.

mpirun -np 8 xhpl > test_xhpl_out.txt &

Keep in mind that xhpl require at least 4 processors for test.


Example of testing result

T/V                N    NB     P     Q               Time                 Gflops
--------------------------------------------------------------------------------
WR00R2R4          35     4     4     1               0.00              2.286e-01
HPL_pdgesv() start time Sat Jul 21 16:06:14 2018

HPL_pdgesv() end time   Sat Jul 21 16:06:14 2018

--------------------------------------------------------------------------------
||Ax-b||_oo/(eps*(||A||_oo*||x||_oo+||b||_oo)*N)=        0.0207165 ...... PASSED
================================================================================

Finished    864 tests with the following results:
            864 tests completed and passed residual checks,
              0 tests completed and failed residual checks,
              0 tests skipped because of illegal input values.
--------------------------------------------------------------------------------

End of Tests.
================================================================================


Rangsiman Ketkaew