Hi,

I'm going to compile HPL by using OpenMPI-1.2.4. Here's my
Make.Linux_ATHLON_CBLAS file.

# ######################################################################
#
# ----------------------------------------------------------------------
# - shell --------------------------------------------------------------
# ----------------------------------------------------------------------
#
SHELL        = /bin/sh
#
CD           = cd
CP           = cp
LN_S         = ln -s
MKDIR        = mkdir
RM           = /bin/rm -f
TOUCH        = touch
#
# ----------------------------------------------------------------------
# - Platform identifier ------------------------------------------------
# ----------------------------------------------------------------------
#
ARCH         = Linux_ATHLON_CBLAS
#
# ----------------------------------------------------------------------
# - HPL Directory Structure / HPL library ------------------------------
# ----------------------------------------------------------------------
#
TOPdir       = /ma/hpl-2.0
INCdir       = $(TOPdir)/include
BINdir       = $(TOPdir)/bin/$(ARCH)
LIBdir       = $(TOPdir)/lib/$(ARCH)
#
HPLlib       = $(LIBdir)/libhpl.a
#
# ----------------------------------------------------------------------
# - MPI directories - library ------------------------------------------
# ----------------------------------------------------------------------
# MPinc tells the  C  compiler where to find the Message Passing library
# header files,  MPlib  is defined  to be the name of  the library to be
# used. The variable MPdir is only used for defining MPinc and MPlib.
#
MPdir        = /ma/openmpi-1.2.4
MPinc        = -I$(MPdir)/include
MPlib        = $(MPdir)/lib/libmpi.so
#
# ----------------------------------------------------------------------
# - Linear Algebra library (BLAS or VSIPL) -----------------------------
# ----------------------------------------------------------------------
# LAinc tells the  C  compiler where to find the Linear 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 LAinc and LAlib.
#
LAdir        = /ma/GotoBLAS-1.26
LAinc        =
LAlib        = $(LAdir)/libgoto.a
#
# ----------------------------------------------------------------------
# - F77 / C interface --------------------------------------------------
# ----------------------------------------------------------------------
# You can skip this section  if and only if  you are not planning to use
# a  BLAS  library featuring a Fortran 77 interface.  Otherwise,  it  is
# necessary  to  fill out the  F2CDEFS  variable  with  the  appropriate
# options.  **One and only one**  option should 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 C short.
#
# 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      =
#
# ----------------------------------------------------------------------
# - 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 before bcast;
# -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 copy L before broadcast,
#    *) call the Fortran 77 BLAS interface
#    *) not display detailed timing information.
#
HPL_OPTS     = -DHPL_CALL_CBLAS
#
# ----------------------------------------------------------------------
#
HPL_DEFS     = $(F2CDEFS) $(HPL_OPTS) $(HPL_INCLUDES)
#
# ----------------------------------------------------------------------
# - Compilers / linkers - Optimization flags ---------------------------
# ----------------------------------------------------------------------
#
CC           = /usr/bin/gcc
CCNOOPT      = $(HPL_DEFS)
CCFLAGS      = $(HPL_DEFS) -fomit-frame-pointer -O3 -funroll-loops -W -Wall
#
LINKER       = /usr/bin/gcc
LINKFLAGS    = $(CCFLAGS)
#
ARCHIVER     = ar
ARFLAGS      = r
RANLIB       = echo
#
# ----------------------------------------------------------------------

When I type make arch=Linux_ATHLON_CBLAS, some errors reported.

/usr/bin/gcc  -DHPL_CALL_CBLAS -I/ma/hpl-2.0/include
-I/ma/hpl-2.0/include/Linux_ATHLON_CBLAS  -I/ma/openmpi-1.2.4/include
-fomit-frame-pointer -O3 -funroll-loops -W -Wall -o
/ma/hpl-2.0/bin/Linux_ATHLON_CBLAS/xhpl HPL_pddriver.o
HPL_pdinfo.o           HPL_pdtest.o
/ma/hpl-2.0/lib/Linux_ATHLON_CBLAS/libhpl.a
/ma/GotoBLAS-1.26/libgoto.a /ma/openmpi-1.2.4/lib/libmpi.so
HPL_pdtest.o: In function `HPL_pdtest':
HPL_pdtest.c:(.text+0x652): undefined reference to `cblas_dgemv'
HPL_pdtest.c:(.text+0x921): undefined reference to `cblas_idamax'
/ma/hpl-2.0/lib/Linux_ATHLON_CBLAS/libhpl.a(HPL_pdlange.o): In
function `HPL_pdlange':
HPL_pdlange.c:(.text+0xd20): undefined reference to `cblas_idamax'
HPL_pdlange.c:(.text+0xf26): undefined reference to `cblas_idamax'
/ma/hpl-2.0/lib/Linux_ATHLON_CBLAS/libhpl.a(HPL_pdpancrN.o): In
function `HPL_pdpancrN':
HPL_pdpancrN.c:(.text+0x17b): undefined reference to `cblas_dgemv'
HPL_pdpancrN.c:(.text+0x219): undefined reference to `cblas_dgemv'
HPL_pdpancrN.c:(.text+0x2ff): undefined reference to `cblas_dscal'
HPL_pdpancrN.c:(.text+0x338): undefined reference to `cblas_dcopy'
HPL_pdpancrN.c:(.text+0x3ff): undefined reference to `cblas_dscal'
/ma/hpl-2.0/lib/Linux_ATHLON_CBLAS/libhpl.a(HPL_pdpancrT.o): In
function `HPL_pdpancrT':
HPL_pdpancrT.c:(.text+0x177): undefined reference to `cblas_dgemv'
HPL_pdpancrT.c:(.text+0x217): undefined reference to `cblas_dgemv'
HPL_pdpancrT.c:(.text+0x2f5): undefined reference to `cblas_dscal'
HPL_pdpancrT.c:(.text+0x331): undefined reference to `cblas_dcopy'
HPL_pdpancrT.c:(.text+0x3f1): undefined reference to `cblas_dscal'
/ma/hpl-2.0/lib/Linux_ATHLON_CBLAS/libhpl.a(HPL_pdpanllN.o): In
function `HPL_pdpanllN':
HPL_pdpanllN.c:(.text+0x1ab): undefined reference to `cblas_dgemv'
HPL_pdpanllN.c:(.text+0x268): undefined reference to `cblas_dtrsv'
HPL_pdpanllN.c:(.text+0x2b2): undefined reference to `cblas_dscal'
HPL_pdpanllN.c:(.text+0x2d8): undefined reference to `cblas_dcopy'
HPL_pdpanllN.c:(.text+0x3b9): undefined reference to `cblas_dscal'
/ma/hpl-2.0/lib/Linux_ATHLON_CBLAS/libhpl.a(HPL_pdpanllT.o): In
function `HPL_pdpanllT':
HPL_pdpanllT.c:(.text+0x192): undefined reference to `cblas_dgemv'
HPL_pdpanllT.c:(.text+0x24b): undefined reference to `cblas_dtrsv'
HPL_pdpanllT.c:(.text+0x295): undefined reference to `cblas_dscal'
HPL_pdpanllT.c:(.text+0x2ba): undefined reference to `cblas_dcopy'
HPL_pdpanllT.c:(.text+0x39b): undefined reference to `cblas_dscal'
/ma/hpl-2.0/lib/Linux_ATHLON_CBLAS/libhpl.a(HPL_pdpanrlN.o): In
function `HPL_pdpanrlN':
HPL_pdpanrlN.c:(.text+0xf9): undefined reference to `cblas_dger'
HPL_pdpanrlN.c:(.text+0x1b8): undefined reference to `cblas_daxpy'
HPL_pdpanrlN.c:(.text+0x1fd): undefined reference to `cblas_dscal'
HPL_pdpanrlN.c:(.text+0x2a8): undefined reference to `cblas_dscal'
/ma/hpl-2.0/lib/Linux_ATHLON_CBLAS/libhpl.a(HPL_pdpanrlT.o): In
function `HPL_pdpanrlT':
HPL_pdpanrlT.c:(.text+0x146): undefined reference to `cblas_dger'
HPL_pdpanrlT.c:(.text+0x20f): undefined reference to `cblas_daxpy'
HPL_pdpanrlT.c:(.text+0x258): undefined reference to `cblas_dscal'
HPL_pdpanrlT.c:(.text+0x2fe): undefined reference to `cblas_dscal'
/ma/hpl-2.0/lib/Linux_ATHLON_CBLAS/libhpl.a(HPL_pdrpanllN.o): In
function `HPL_pdrpanllN':
HPL_pdrpanllN.c:(.text+0x1d5): undefined reference to `cblas_dtrsm'
HPL_pdrpanllN.c:(.text+0x253): undefined reference to `cblas_dgemm'
/ma/hpl-2.0/lib/Linux_ATHLON_CBLAS/libhpl.a(HPL_pdrpanllT.o): In
function `HPL_pdrpanllT':
HPL_pdrpanllT.c:(.text+0x1ac): undefined reference to `cblas_dtrsm'
HPL_pdrpanllT.c:(.text+0x22c): undefined reference to `cblas_dgemm'
/ma/hpl-2.0/lib/Linux_ATHLON_CBLAS/libhpl.a(HPL_pdrpancrN.o): In
function `HPL_pdrpancrN':
HPL_pdrpancrN.c:(.text+0x1c5): undefined reference to `cblas_dgemm'
HPL_pdrpancrN.c:(.text+0x21d): undefined reference to `cblas_dtrsm'
HPL_pdrpancrN.c:(.text+0x30d): undefined reference to `cblas_dgemm'
/ma/hpl-2.0/lib/Linux_ATHLON_CBLAS/libhpl.a(HPL_pdrpancrT.o): In
function `HPL_pdrpancrT':
HPL_pdrpancrT.c:(.text+0x1cf): undefined reference to `cblas_dgemm'
HPL_pdrpancrT.c:(.text+0x221): undefined reference to `cblas_dtrsm'
HPL_pdrpancrT.c:(.text+0x2ff): undefined reference to `cblas_dgemm'
/ma/hpl-2.0/lib/Linux_ATHLON_CBLAS/libhpl.a(HPL_pdrpanrlN.o): In
function `HPL_pdrpanrlN':
HPL_pdrpanrlN.c:(.text+0x230): undefined reference to `cblas_dtrsm'
HPL_pdrpanrlN.c:(.text+0x2e0): undefined reference to `cblas_dgemm'
/ma/hpl-2.0/lib/Linux_ATHLON_CBLAS/libhpl.a(HPL_pdrpanrlT.o): In
function `HPL_pdrpanrlT':
HPL_pdrpanrlT.c:(.text+0x1fd): undefined reference to `cblas_dtrsm'
HPL_pdrpanrlT.c:(.text+0x2b3): undefined reference to `cblas_dgemm'
/ma/hpl-2.0/lib/Linux_ATHLON_CBLAS/libhpl.a(HPL_pdupdateNN.o): In
function `HPL_pdupdateNN':
HPL_pdupdateNN.c:(.text+0x1aa): undefined reference to `cblas_dgemm'
HPL_pdupdateNN.c:(.text+0x254): undefined reference to `cblas_dtrsm'
HPL_pdupdateNN.c:(.text+0x2b4): undefined reference to `cblas_dgemm'
HPL_pdupdateNN.c:(.text+0x324): undefined reference to `cblas_dtrsm'
HPL_pdupdateNN.c:(.text+0x384): undefined reference to `cblas_dgemm'
HPL_pdupdateNN.c:(.text+0x6ea): undefined reference to `cblas_dtrsm'
HPL_pdupdateNN.c:(.text+0x750): undefined reference to `cblas_dgemm'
HPL_pdupdateNN.c:(.text+0x7f3): undefined reference to `cblas_dtrsm'
HPL_pdupdateNN.c:(.text+0x858): undefined reference to `cblas_dgemm'
HPL_pdupdateNN.c:(.text+0x8b7): undefined reference to `cblas_dgemm'
/ma/hpl-2.0/lib/Linux_ATHLON_CBLAS/libhpl.a(HPL_pdupdateNT.o): In
function `HPL_pdupdateNT':
HPL_pdupdateNT.c:(.text+0x1bc): undefined reference to `cblas_dgemm'
HPL_pdupdateNT.c:(.text+0x262): undefined reference to `cblas_dtrsm'
HPL_pdupdateNT.c:(.text+0x2c3): undefined reference to `cblas_dgemm'
HPL_pdupdateNT.c:(.text+0x322): undefined reference to `cblas_dtrsm'
HPL_pdupdateNT.c:(.text+0x383): undefined reference to `cblas_dgemm'
HPL_pdupdateNT.c:(.text+0x428): undefined reference to `cblas_dgemm'
HPL_pdupdateNT.c:(.text+0x782): undefined reference to `cblas_dtrsm'
HPL_pdupdateNT.c:(.text+0x7eb): undefined reference to `cblas_dgemm'
HPL_pdupdateNT.c:(.text+0x88f): undefined reference to `cblas_dtrsm'
HPL_pdupdateNT.c:(.text+0x8f5): undefined reference to `cblas_dgemm'
/ma/hpl-2.0/lib/Linux_ATHLON_CBLAS/libhpl.a(HPL_pdupdateTN.o): In
function `HPL_pdupdateTN':
HPL_pdupdateTN.c:(.text+0x1aa): undefined reference to `cblas_dgemm'
HPL_pdupdateTN.c:(.text+0x254): undefined reference to `cblas_dtrsm'
HPL_pdupdateTN.c:(.text+0x2b4): undefined reference to `cblas_dgemm'
HPL_pdupdateTN.c:(.text+0x324): undefined reference to `cblas_dtrsm'
HPL_pdupdateTN.c:(.text+0x384): undefined reference to `cblas_dgemm'
HPL_pdupdateTN.c:(.text+0x6ea): undefined reference to `cblas_dtrsm'
HPL_pdupdateTN.c:(.text+0x750): undefined reference to `cblas_dgemm'
HPL_pdupdateTN.c:(.text+0x7f3): undefined reference to `cblas_dtrsm'
HPL_pdupdateTN.c:(.text+0x858): undefined reference to `cblas_dgemm'
HPL_pdupdateTN.c:(.text+0x8b7): undefined reference to `cblas_dgemm'
/ma/hpl-2.0/lib/Linux_ATHLON_CBLAS/libhpl.a(HPL_pdupdateTT.o): In
function `HPL_pdupdateTT':
HPL_pdupdateTT.c:(.text+0x1bc): undefined reference to `cblas_dgemm'
HPL_pdupdateTT.c:(.text+0x262): undefined reference to `cblas_dtrsm'
HPL_pdupdateTT.c:(.text+0x2c3): undefined reference to `cblas_dgemm'
HPL_pdupdateTT.c:(.text+0x322): undefined reference to `cblas_dtrsm'
HPL_pdupdateTT.c:(.text+0x383): undefined reference to `cblas_dgemm'
HPL_pdupdateTT.c:(.text+0x428): undefined reference to `cblas_dgemm'
HPL_pdupdateTT.c:(.text+0x782): undefined reference to `cblas_dtrsm'
HPL_pdupdateTT.c:(.text+0x7eb): undefined reference to `cblas_dgemm'
HPL_pdupdateTT.c:(.text+0x88f): undefined reference to `cblas_dtrsm'
HPL_pdupdateTT.c:(.text+0x8f5): undefined reference to `cblas_dgemm'
/ma/hpl-2.0/lib/Linux_ATHLON_CBLAS/libhpl.a(HPL_dlocmax.o): In
function `HPL_dlocmax':
HPL_dlocmax.c:(.text+0x78): undefined reference to `cblas_idamax'
/ma/hpl-2.0/lib/Linux_ATHLON_CBLAS/libhpl.a(HPL_pdmxswp.o): In
function `HPL_pdmxswp':
HPL_pdmxswp.c:(.text+0xf5): undefined reference to `cblas_dcopy'
HPL_pdmxswp.c:(.text+0x252): undefined reference to `cblas_dcopy'
HPL_pdmxswp.c:(.text+0x4be): undefined reference to `cblas_dcopy'
HPL_pdmxswp.c:(.text+0x62a): undefined reference to `cblas_dcopy'
HPL_pdmxswp.c:(.text+0x6c7): undefined reference to `cblas_dcopy'
/ma/hpl-2.0/lib/Linux_ATHLON_CBLAS/libhpl.a(HPL_pdtrsv.o): In function
`HPL_pdtrsv':
HPL_pdtrsv.c:(.text+0xaf2): undefined reference to `cblas_dgemv'
HPL_pdtrsv.c:(.text+0xbee): undefined reference to `cblas_dgemv'
HPL_pdtrsv.c:(.text+0xd01): undefined reference to `cblas_daxpy'
HPL_pdtrsv.c:(.text+0xd6d): undefined reference to `cblas_dtrsv'
HPL_pdtrsv.c:(.text+0xd93): undefined reference to `cblas_dcopy'
HPL_pdtrsv.c:(.text+0xf6f): undefined reference to `cblas_dtrsv'
HPL_pdtrsv.c:(.text+0xf8e): undefined reference to `cblas_dcopy'
collect2: ld returned 1 exit status
make[2]: *** [dexe.grd] Error 1
make[2]: Leaving directory `/ma/hpl-2.0/testing/ptest/Linux_ATHLON_CBLAS'
make[1]: *** [build_tst] Error 2
make[1]: Leaving directory `/ma/hpl-2.0'
make: *** [build] Error 2

I don't know how to fix that. I use GotoBLAS-1.26 with Nehalem
support. Could anyone show me tips to solve that?

Thanks very much.

Best Regards,

Amy

Reply via email to