Eu estou tentando compilar HPL 2.1 em um servidor Debian em cluster MOSIX, mas o processo de make termina com erros como mostrado abaixo. Estão incluídos o meu makefile e duas versões de saída: uma de uma execução padrão e outra de uma execução executada com o sinalizador de depuração.
Qualquer ajuda e orientação seria muito apreciada!
O makefile:
# ----------------------------------------------------------------------
# - shell --------------------------------------------------------------
# ----------------------------------------------------------------------
#
SHELL = /bin/bash
#
CD = cd
CP = cp
LN_S = ln -s
MKDIR = mkdir
RM = /bin/rm -f
TOUCH = touch
#
# ----------------------------------------------------------------------
# - Platform identifier ------------------------------------------------
# ----------------------------------------------------------------------
#
ARCH = Linux_PII_CBLAS
#
# ----------------------------------------------------------------------
# - HPL Directory Structure / HPL library ------------------------------
# ----------------------------------------------------------------------
#
TOPdir = $(HOME)/hpl-2.1
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 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 = /usr/local
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 = $(HOME)/CBLAS/lib
LAinc =
LAlib = $(LAdir)/cblas_LINUX.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 BLAS Fortran 77 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
#
# On some platforms, it is necessary to use the Fortran linker to find
# the Fortran internals used in the BLAS library.
#
LINKER = ~/BLAS
LINKFLAGS = $(CCFLAGS)
#
ARCHIVER = ar
ARFLAGS = r
RANLIB = echo
#
# ----------------------------------------------------------------------
Fazer saída:
~/BLAS -DHPL_CALL_CBLAS -I/homes/laket/hpl-2.1/include -I/homes/laket/hpl-2.1/include/Linux_PII_CBLAS -I/usr/local/include -fomit-frame-pointer -O3 -funroll-loops -o /homes/laket/hpl-2.1/bin/Linux_PII_CBLAS/xhpl HPL_pddriver.o HPL_pdinfo.o HPL_pdtest.o /homes/laket/hpl-2.1/lib/Linux_PII_CBLAS/libhpl.a /homes/laket/CBLAS/lib/cblas_LINUX.a /usr/local/lib/libmpi.so
/bin/bash: /homes/laket/BLAS: Is a directory
make[2]: *** [dexe.grd] Error 126
make[2]: Target 'all' not remade because of errors.
make[2]: Leaving directory '/homes/laket/hpl-2.1/testing/ptest/Linux_PII_CBLAS'
make[1]: *** [build_tst] Error 2
make[1]: Leaving directory '/homes/laket/hpl-2.1'
make: *** [build] Error 2
make: Target 'all' not remade because of errors.
Produzir saída -d:
Considering target file '/homes/laket/hpl-2.1/lib/Linux_PII_CBLAS/libhpl.a'.
Looking for an implicit rule for '/homes/laket/hpl-2.1/lib/Linux_PII_CBLAS/libhpl.a'.
Trying pattern rule with stem 'libhpl.a'.
Trying implicit prerequisite '/homes/laket/hpl-2.1/lib/Linux_PII_CBLAS/libhpl.a,v'.
Trying pattern rule with stem 'libhpl.a'.
Trying implicit prerequisite '/homes/laket/hpl-2.1/lib/Linux_PII_CBLAS/RCS/libhpl.a,v'.
Trying pattern rule with stem 'libhpl.a'.
Trying implicit prerequisite '/homes/laket/hpl-2.1/lib/Linux_PII_CBLAS/RCS/libhpl.a'.
Trying pattern rule with stem 'libhpl.a'.
Trying implicit prerequisite '/homes/laket/hpl-2.1/lib/Linux_PII_CBLAS/s.libhpl.a'.
Trying pattern rule with stem 'libhpl.a'.
Trying implicit prerequisite '/homes/laket/hpl-2.1/lib/Linux_PII_CBLAS/SCCS/s.libhpl.a'.
No implicit rule found for '/homes/laket/hpl-2.1/lib/Linux_PII_CBLAS/libhpl.a'.
Finished prerequisites of target file '/homes/laket/hpl-2.1/lib/Linux_PII_CBLAS/libhpl.a'.
No need to remake target '/homes/laket/hpl-2.1/lib/Linux_PII_CBLAS/libhpl.a'.
Finished prerequisites of target file 'dexe.grd'.
Must remake target 'dexe.grd'.
~/BLAS -DHPL_CALL_CBLAS -I/homes/laket/hpl-2.1/include -I/homes/laket/hpl-2.1/include/Linux_PII_CBLAS -I/usr/local/include -fomit-frame-pointer -O3 -funroll-loops -o /homes/laket/hpl-2.1/bin/Linux_PII_CBLAS/xhpl HPL_pddriver.o HPL_pdinfo.o HPL_pdtest.o /homes/laket/hpl-2.1/lib/Linux_PII_CBLAS/libhpl.a /homes/laket/CBLAS/lib/cblas_LINUX.a /usr/local/lib/libmpi.so
Putting child 0x0129a2c0 (dexe.grd) PID 24853 on the chain.
Live child 0x0129a2c0 (dexe.grd) PID 24853
/bin/bash: /homes/laket/BLAS: Is a directory
make[2]: Reaping losing child 0x0129a2c0 PID 24853
*** [dexe.grd] Error 126
Removing child 0x0129a2c0 PID 24853 from chain.
Failed to remake target file 'dexe.grd'.
Finished prerequisites of target file 'dexe'.
Giving up on target file 'dexe'.
Finished prerequisites of target file 'all'.
Giving up on target file 'all'.
make[2]: Target 'all' not remade because of errors.
make[2]: Leaving directory '/homes/laket/hpl-2.1/testing/ptest/Linux_PII_CBLAS'
Reaping losing child 0x010ce900 PID 24841
make[1]: *** [build_tst] Error 2
Removing child 0x010ce900 PID 24841 from chain.
Failed to remake target file 'build_tst'.
make[1]: Leaving directory '/homes/laket/hpl-2.1'
Reaping losing child 0x00d91ae0 PID 24774
make: *** [build] Error 2
Removing child 0x00d91ae0 PID 24774 from chain.
Failed to remake target file 'build'.
Finished prerequisites of target file 'install'.
make: Target 'all' not remade because of errors. Giving up on target file 'install'.
Finished prerequisites of target file 'all'.
Giving up on target file 'all'.
Obrigado!