三、安装HPL。
进入hpl文件夹从setup文件夹下cp与自己平台相近的Make.文件,复制到hpl文件夹内,比如我们的平台为Intel xeon,所以就选择了Make.Linux_PII_FBLAS,它代表Linux操作系统、PII平台、采用FBLAS库。
tar xzvf hpl-2.0.tar.gz
vi Make. Linux_PII_FBLAS
# OF THISSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
# ######################################################################
#
#----------------------------------------------------------------------
# - shell--------------------------------------------------------------
#----------------------------------------------------------------------
#
SHELL =/bin/sh
#
CD =cd
CP =cp
LN_S =ln -s
MKDIR =mkdir
RM =/bin/rm -f
TOUCH =touch
#
#----------------------------------------------------------------------
# - Platform identifier------------------------------------------------
#----------------------------------------------------------------------
#
ARCH =Linux_PII_FBLAS
#
#----------------------------------------------------------------------
# - HPL Directory Structure / HPL library------------------------------
#----------------------------------------------------------------------
#
TOPdir= /root/linpack/hpl
INCdir =$(TOPdir)/include
BINdir =$(TOPdir)/bin/$(ARCH)
LIBdir =$(TOPdir)/lib/$(ARCH)
#
HPLlib =$(LIBdir)/libhpl.a
#
#----------------------------------------------------------------------
# - Message Passing library (MPI)--------------------------------------
#----------------------------------------------------------------------
# MPinc tells the C compiler where to find theMessage Passing library
# header files, MPlib is defined to be the name of the library to be
# used. The variable MPdir is only used for definingMPinc and MPlib.
#
MPdir= /root/linpack/mpi
MPinc =-I$(MPdir)/include
MPlib =$(MPdir)/lib/libmpich.a
#
#----------------------------------------------------------------------
# - Linear Algebra library (BLAS or VSIPL)-----------------------------
# ----------------------------------------------------------------------
# LAinc tells the C compiler where to find theLinear Algebra library
# header files, LAlib is defined to be the name of the library to be
# used. The variable LAdir is only used for defining LAincand LAlib.
#
LAdir= /root/linpack/GotoBLAS2
LAinc=
LAlib= $(LAdir)/libgoto2.a $(LAdir)/libgoto2.so
#
#----------------------------------------------------------------------
# - F77 / C interface --------------------------------------------------
#----------------------------------------------------------------------
# You can skip this section if and only if you are not planning to use
# a BLAS library featuring a Fortran 77interface. Otherwise, it is
# necessary to fill out the F2CDEFS variable with the appropriate
# options. **One and only one** optionshould be chosen in **each** of
# the 3 following categories:
#
# 1) name space (How C calls a Fortran 77 routine)
#
# -DAdd_ : all lower case and a suffixed underscore (Suns,
# Intel, ...), [default]
# -DNoChange : all lower case (IBM RS6000),
# -DUpCase : all upper case (Cray),
# -DAdd__ : the FORTRAN compiler in use is f2c.
#
# 2) C and Fortran 77 integer mapping
#
# -DF77_INTEGER=int : Fortran 77 INTEGER is a C int, [default]
# -DF77_INTEGER=long : Fortran 77 INTEGER is a C long,
# -DF77_INTEGER=short : Fortran 77 INTEGER is a Cshort.
#
# 3) Fortran 77 string handling
#
# -DStringSunStyle : The string address is passed at the string loca-
# tion on the stack, and the string length is then
# passed as an F77_INTEGER after all explicit
# stack arguments, [default]
# -DStringStructPtr : The address of a structure is passed by a
# Fortran 77 string, and the structure is of the
# form: struct {char *cp; F77_INTEGER len;},
# -DStringStructVal : A structure is passed by value for each Fortran
# 77 string, and the structure is of the form:
# struct {char *cp; F77_INTEGER len;},
# -DStringCrayStyle : Special option for Cray machines, which uses
# Cray fcd (fortran character descriptor) for
# interoperation.
#
F2CDEFS =-DAdd__ -DF77_INTEGER=int -DStringSunStyle
#
# ----------------------------------------------------------------------
# - HPL includes / libraries / specifics-------------------------------
#----------------------------------------------------------------------
#
HPL_INCLUDES = -I$(INCdir) -I$(INCdir)/$(ARCH)$(LAinc) $(MPinc)
HPL_LIBS =$(HPLlib) $(LAlib) $(MPlib)
#
# - Compile time options-----------------------------------------------
#
# -DHPL_COPY_L force the copy of the panel L beforebcast;
# -DHPL_CALL_CBLAS call the cblas interface;
# -DHPL_CALL_VSIPL call the vsip library;
# -DHPL_DETAILED_TIMING enable detailed timers;
#
# By default HPL will:
# *) not copyL before broadcast,
# *) call theBLAS Fortran 77 interface,
# *) notdisplay detailed timing information.
#
HPL_OPTS =
#
#----------------------------------------------------------------------
#
HPL_DEFS =$(F2CDEFS) $(HPL_OPTS) $(HPL_INCLUDES)
#
#----------------------------------------------------------------------
# - Compilers / linkers - Optimization flags---------------------------
#----------------------------------------------------------------------
#
CC= /root/linpack/mpi/bin/mpicc
CCNOOPT =$(HPL_DEFS)
CCFLAGS =$(HPL_DEFS) -fomit-frame-pointer -O3 -funroll-loops -W -Wall
#
# On some platforms, it is necessary to use theFortran linker to find
# the Fortran internals used in the BLAS library.
#
LINKER= /root/linpack/mpi/bin/mpif77
LINKFLAGS =$(CCFLAGS)
#
ARCHIVER =ar
ARFLAGS = r
RANLIB =echo
#
#----------------------------------------------------------------------
make arch=Linux_pII_FBLAS
进入/linpack/hpl-2.0/bin/Linux_PII_FBLAS,可以看到hpl.dat和xhpl说明安装成功