Hi,
this has nothing to do with LAM, or blas. MC64 is a matrix reordering
algorithm from the Harwell Subroutine Library, and is part of SuperLU's
distribution. It looks like mc64 is being built seeing as the mc64ad.o
file exists, but the symbol isbeing found, in which case your symbols are
wrong. This is what the CDEFS part id for. Google for the underscoring
used for your fortran compiler, if it's Sun's Forte then I think it's
-DAdd_ and you'll have to rebuild everything. You can run "nm -a
mc64ad.o" to see what the symbol was exported as.
Damien
> Hi
>
> I am trying to install SuperLU for my MPI applications. The problem is
> the following compile-time error is cropping up when compilation is
> entering the ......./SuperLU_DIST_2.0/EXAMPLE subdirectory, the output
> is as shown:
>
> -------------------------Start of
> output-----------------------------------------------------------------------------------------------
> ( cd INSTALL; make )
> make[1]: Entering directory
> `/garl/garl-alpha1/home/pinaki/SuperLU/SuperLU_DIST_2.0/INSTALL'
> make[1]: Nothing to be done for `all'.
> make[1]: Leaving directory
> `/garl/garl-alpha1/home/pinaki/SuperLU/SuperLU_DIST_2.0/INSTALL'
> ( cd SRC; make )
> make[1]: Entering directory
> `/garl/garl-alpha1/home/pinaki/SuperLU/SuperLU_DIST_2.0/SRC'
> ar cr
> /garl/garl-alpha1/home/pinaki/SuperLU/SuperLU_DIST_2.0/libsuperlu_dist_2.0.a
> \
> dlangs.o dgsequ.o dlaqgs.o dutil.o dmemory.o dmyblas2.o
> dsp_blas2.o dsp_blas3.o dldperm.o ddistribute.o pdgstrf_irecv.o
> pdgstrs_Bglobal.o pdgstrs1.o pdgssvx_ABglobal.o
> pdgsrfs_ABXglobal.o pdgsmv_AXglobal.o pdgssvx.o pdgstrs.o
> pddistribute.o pdlangs.o pdutil.o pdgsequ.o pdlaqgs.o pdgsrfs.o
> pdgsmv.o pdgstrs_lsum.o symbfact.o sp_ienv.o etree.o sp_colorder.o
> get_perm_c.o mmd.o comm.o memory.o util.o superlu_grid.o pxerbla.o
> superlu_timer.o GetDiagU.o mc64ad.o mc21.o lsame.o xerbla.o
> slamch.o dlamch.o
> ranlib
> /garl/garl-alpha1/home/pinaki/SuperLU/SuperLU_DIST_2.0/libsuperlu_dist_2.0.a
> ar cr
> /garl/garl-alpha1/home/pinaki/SuperLU/SuperLU_DIST_2.0/libsuperlu_dist_2.0.a
> \
> dcomplex.o zlangs.o zgsequ.o zlaqgs.o zutil.o zmemory.o zmyblas2.o
> dmemory.o zsp_blas2.o zsp_blas3.o zldperm.o zdistribute.o
> pzgssvx_ABglobal.o pzgstrf_irecv.o pzgstrs1.o pzgstrs_Bglobal.o
> pzgsrfs_ABXglobal.o pzgsmv_AXglobal.o pzgssvx.o pzgstrs.o
> pzdistribute.o pzlangs.o pzutil.o pzgsequ.o pzlaqgs.o pzgsrfs.o
> pzgsmv.o pzgstrs_lsum.o symbfact.o sp_ienv.o etree.o sp_colorder.o
> get_perm_c.o mmd.o comm.o memory.o util.o superlu_grid.o pxerbla.o
> superlu_timer.o GetDiagU.o mc64ad.o mc21.o lsame.o xerbla.o
> slamch.o dlamch.o
> ranlib
> /garl/garl-alpha1/home/pinaki/SuperLU/SuperLU_DIST_2.0/libsuperlu_dist_2.0.a
> make[1]: Leaving directory
> `/garl/garl-alpha1/home/pinaki/SuperLU/SuperLU_DIST_2.0/SRC'
> ( cd EXAMPLE; make )
> make[1]: Entering directory
> `/garl/garl-alpha1/home/pinaki/SuperLU/SuperLU_DIST_2.0/EXAMPLE'
> mpif77 pddrive.o dcreate_matrix.o sp_ienv.o dreadhb.o
> /garl/garl-alpha1/home/pinaki/SuperLU/SuperLU_DIST_2.0/libsuperlu_dist_2.0.a
> /garl/garl-alpha1/home/pinaki/SuperLU/SuperLU_DIST_2.0/blas_sp.a -lm -o
> pddrive
> /garl/garl-alpha1/home/pinaki/SuperLU/SuperLU_DIST_2.0/libsuperlu_dist_2.0.a(dldperm.o)(.text+0xc0):
> In function `dldperm':
> : undefined reference to `mc64id'
> /garl/garl-alpha1/home/pinaki/SuperLU/SuperLU_DIST_2.0/libsuperlu_dist_2.0.a(dldperm.o)(.text+0x10c):
> In function `dldperm':
> : undefined reference to `mc64ad'
> collect2: ld returned 1 exit status
> make[1]: *** [pddrive] Error 1
> make[1]: Leaving directory
> `/garl/garl-alpha1/home/pinaki/SuperLU/SuperLU_DIST_2.0/EXAMPLE'
> make: *** [example] Error 2
> ----------------------------------End of
> output---------------------------------------------------------------------------------------
>
> Now from the last few lines it seems that the autogenerated file i.e.
> libsuperlu_dist_2.0.a is the source of the error. Being generated
> automatically I have very little idea about what I can do to fix it!
> Now the make.inc and its content is:
>
> ----------make.inc-----------------------------------------------------------------------------------------------------
> ############################################################################
> # Program: SuperLU_DIST
> # Module: make.inc
> ############################################################################
> #
> # The machine (platform) identifier to append to the library names
> #
> PLAT = _sp
> #
> # The name of the libraries to be created/linked to
> #
> DSuperLUroot = /garl/garl-alpha1/home/pinaki/SuperLU/SuperLU_DIST_2.0/
> DSUPERLULIB =
> /garl/garl-alpha1/home/pinaki/SuperLU/SuperLU_DIST_2.0/libsuperlu_dist_2.0.a
> #
> # Original part BLASDEF = -DUSE_VENDOR_BLAS
> # Modified part BLASLIB = -lblas
> #Modified part
> #BLASDEF = -DUSE_VENDOR_BLAS
> BLASLIB = /garl/garl-alpha1/home/pinaki/SuperLU/SuperLU_DIST_2.0/blas_sp.a
>
> #MPILIB = -L/usr/lpp/ppe.poe/lib -lmpi
> #PERFLIB = -L/vol1/VAMPIR/lib -lVT
> #LIBS = $(DSUPERLULIB) $(BLASLIB) $(PERFLIB) $(MPILIB)
> LIBS = $(DSUPERLULIB) $(BLASLIB)
> #
> # The archiver and the flag(s) to use when building archive (library)
> # If your system has no ranlib, set RANLIB = echo.
> #
> ARCH = ar
> ARCHFLAGS = cr
> RANLIB = ranlib
> ############################################################################
> CC = mpicc
> # CFLAGS should be set to be the C flags that include optimization
> CFLAGS = -D_SP -O3 -qarch=PWR3 -qalias=allptrs \
> -DDEBUGlevel=0 -DPRNTlevel=0
> #
> # NOOPTS should be set to be the C flags that turn off any optimization
> # This must be enforced to compile the two routines: slamch.c and
> dlamch.c.
> NOOPTS =
> ############################################################################
> FORTRAN = mpif77
> FFLAGS = -WF,-Dsp -O3 -Q -qstrict -qfixed -qinit=f90ptr
> -qarch=pwr3
> ############################################################################
> LOADER = mpif77
> #LOADOPTS = -bmaxdata:0x80000000
> #LOADOPTS = -bmaxdata:0x70000000
> #
> ############################################################################
> # C preprocessor defs for compilation (-DNoChange, -DAdd_, or -DUpCase)
> #
> # Need follow the convention of how C calls a Fortran routine.
> #
> CDEFS = -DNoChange
>
> -------------------------end of
> make.inc----------------------------------------------------------------------------
>
> I am using the BLAS from the CBLAS/ subdirectory and the BLAS library used
> here is blas_sp.a . The hardware being used here is a Sun cluster with 4
> nodes each being a Sun Blade 150. The architecture is Ultra SPARC and OS
> is Solaris.
>
> Any help in this regard will be greatly appreciated.
>
> Regards
> Pinaki R Das
>
> __________________________________________________
> Do You Yahoo!?
> Tired of spam? Yahoo! Mail has the best spam protection around
> http://mail.yahoo.com _______________________________________________
> This list is archived at http://www.lam-mpi.org/MailArchives/lam/
|