Follow the steps below to compile and run HPC Challenge Benchmark on CentOS 8.
Download and unarchive source code:
yum --enablerepo=PowerTools install atlas-devel blas-devel mpich-devel gcc make
curl -O http://icl.cs.utk.edu/projectsfiles/hpcc/download/hpcc-1.5.0.tar.gz
tar -xzf hpcc-1.5.0.tar.gz
cd hpcc-1.5.0
Create file ./hpl/Make.Linux_gcc
SHELL = /bin/sh
CD = cd
CP = cp
LN_S = ln -fs
MKDIR = mkdir -p
RM = /bin/rm -f
TOUCH = touch
ARCH = Linux_gcc
TOPdir = /root/hpcc-1.5.0/hpl
INCdir = $(TOPdir)/include
BINdir = $(TOPdir)/bin/$(ARCH)
LIBdir = $(TOPdir)/lib/$(ARCH)
HPLlib = $(LIBdir)/libhpl.a
MPdir = /usr/lib64/mpich/
MPinc = -I/usr/include/mpich-x86_64
MPlib = /usr/lib64/mpich/lib/libmpi.so
LAdir = /usr/lib64/atlas
LAinc = -I/usr/include
LAlib = -L/usr/lib64/atlas -lblas
F2CDEFS =
HPL_INCLUDES = -I$(INCdir) -I$(INCdir)/$(ARCH) $(LAinc) $(MPinc)
HPL_LIBS = $(HPLlib) $(LAlib) $(MPlib)
#HPL_OPTS = -DHPL_CALL_CBLAS
HPL_DEFS = $(F2CDEFS) $(HPL_OPTS) $(HPL_INCLUDES)
CC = /usr/bin/gcc
CCNOOPT = $(HPL_DEFS)
CCFLAGS = $(HPL_DEFS) -fomit-frame-pointer -O3 -funroll-loops
LINKER = /usr/bin/gfortran
LINKFLAGS = $(CCFLAGS)
ARCHIVER = ar
ARFLAGS = r
RANLIB = echo
Compile:
make arch=Linux_gcc
Tune HPL data file hpccinf.txt. You can start by using this online generator as example:
https://www.advancedclustering.com/act_kb/tune-hpl-dat-file/
Example below is for 1 node with 8 cores, 48G memory and block size 256.
Create file ./hpccinf.txt
HPLinpack benchmark input file
Innovative Computing Laboratory, University of Tennessee
HPL.out output file name (if any)
6 device out (6=stdout,7=stderr,file)
1 # of problems sizes (N)
70656 Ns
1 # of NBs
256 NBs
0 PMAP process mapping (0=Row-,1=Column-major)
1 # of process grids (P x Q)
2 Ps
4 Qs
16.0 threshold
1 # of panel fact
2 PFACTs (0=left, 1=Crout, 2=Right)
1 # of recursive stopping criterium
4 NBMINs (>= 1)
1 # of panels in recursion
2 NDIVs
1 # of recursive panel fact.
1 RFACTs (0=left, 1=Crout, 2=Right)
1 # of broadcast
1 BCASTs (0=1rg,1=1rM,2=2rg,3=2rM,4=Lng,5=LnM)
1 # of lookahead depth
1 DEPTHs (>=0)
2 SWAP (0=bin-exch,1=long,2=mix)
64 swapping threshold
0 L1 in (0=transposed,1=no-transposed) form
0 U in (0=transposed,1=no-transposed) form
1 Equilibration (0=no,1=yes)
8 memory alignment in double (> 0)
##### This line (no. 32) is ignored (it serves as a separator). ######
0 Number of additional problem sizes for PTRANS
1200 10000 30000 values of N
0 number of additional blocking sizes for PTRANS
40 9 8 13 13 20 16 32 64 values of NB
Run
LD_PRELOAD=/usr/lib64/mpich/lib/libmpi.so.12 /usr/lib64/mpich/bin/mpirun -np 8 ./hpcc
Benchmark output will be in the file hpccoutf.txt