Open MPI logo

Open MPI User's Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Open MPI User's mailing list

Subject: [OMPI users] Help: HPL Compiled Problem
From: Lee Amy (openlinuxsource_at_[hidden])
Date: 2009-07-22 00:26:53


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