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