I think the user meant that PelicanHPC lacked clear OMPI-specifc
documentation.
-Paul
Eugene Loh wrote:
I guess a bunch of you already saw this on the lam mail alias. The
part that caught my eye was a user choosing LAM over OMPI due to lack
of "clear documentation" for OMPI.
-------- Original Message --------
Subject: LAM: undefined reference to `mpi_bcast__'
Date: Thu, 28 May 2009 08:32:46 -0700 (PDT)
From: Silviu Groza <silviugr...@yahoo.com>
Reply-To: General LAM/MPI mailing list <l...@lam-mpi.org>
To: l...@lam-mpi.org
Hello,
I am trying to install a qauntum chemistry program (Dalton) with LAM-MPI under
PelicanHPC. PelicanHPC has both LAM-MPI as well as OpenMPI. I have chosen
LAM-MPI due to lack of clear documentation of OpenMPI, and because LAM-MPI
environment is the default on PelicanHPC.
So, I have the following outputs:
user@pelican:~$ mpif77 -c foo.c
user@pelican:~$ mpif77 -show
gfortran -I/usr/lib/lam/include -pthread -L/usr/lib/lam/lib -llammpio
-llamf77mpi -lmpi -llam -lutil -ldl
user@pelican:~$ mpicc -show
gcc -I/usr/lib/lam/include -pthread -L/usr/lib/lam/lib -llammpio -llamf77mpi
-lmpi -llam -lutil -ldl
Therefore, my Makefile.config is:
ARCH = linux
#
#
CPPFLAGS = -DVAR_G77 -DSYS_LINUX -DVAR_MFDS -D'INSTALL_WRKMEM=100000000' -D'INSTALL_BASDIR="/mnt/sda8/home/dan/Daltonsubpelican/dalton-2.0/basis/"' -DVAR_MPI -DIMPLICIT_NONE
F77 = mpif77
CC = mpicc
RM = rm -f
FFLAGS = -march=x86-64 -O3 -ffast-math -fexpensive-optimizations -funroll-loops -fno-range-check -fsecond-underscore
SAFEFFLAGS = -march=x86-64 -O3 -ffast-math -fexpensive-optimizations -funroll-loops -fno-range-check -fsecond-underscore
CFLAGS = -march=x86-64 -O3 -ffast-math -fexpensive-optimizations -funroll-loops -std=c99 -DRESTRICT=restrict
INCLUDES = -I../include
LIBS = -L/usr/lib -llapack -lblas
INSTALLDIR = /mnt/sda8/home/dalton-2.0/bin
PDPACK_EXTRAS = linpack.o eispack.o
GP_EXTRAS =
AR = ar
ARFLAGS = rvs
# flags for ftnchek on Dalton /hjaaj
CHEKFLAGS = -nopure -nopretty -nocommon -nousage -noarray -notruncation -quiet -noargumants -arguments=number -usage=var-unitialized
# -usage=var-unitialized:arg-const-modified:arg-alias
# -usage=var-unitialized:var-set-unused:arg-unused:arg-const-modified:arg-alias
#
default : linuxparallel.x
#
# Parallel initialization
#
MPI_INCLUDE_DIR = -I/usr/lib/lam/include
MPI_LIB_PATH = -L/usr/lib/lam/lib
MPI_LIB = -lmpi
#
#
# Suffix rules
# hjaaj Oct 04: .g is a "cheat" suffix, for debugging.
# 'make x.g' will create x.o from x.F or x.c with -g debug flag set.
#
.SUFFIXES : .F .o .c .i .g
.F.o:
$(F77) $(INCLUDES) $(CPPFLAGS) $(FFLAGS) -c $*.F
.F.g:
$(F77) $(INCLUDES) $(CPPFLAGS) $(FFLAGS) -g -c $*.F
.c.o:
$(CC) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) -c $*.c
.c.g:
$(CC) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) -g -c $*.c
.F.i:
$(F77) $(INCLUDES) $(CPPFLAGS) -E $*.F > $*.i
and the errors are:
---------------> Linking parallel dalpar.x ...
mpif77 -march=x86-64 -O3 -ffast-math -fexpensive-optimizations -funroll-loops -fno-range-check -fsecond-underscore \
-o /mnt/sda8/home/dalton-2.0/bin/dalpar.x abacus/dalton.o cc/crayio.o abacus/linux_mem_allo.o \
abacus/herpar.o eri/eri2par.o amfi/amfi.o amfi/symtra.o -Labacus -labacus -Lrsp -lrsp -Lsirius -lsirius -labacus -Leri -leri -Ldensfit -ldensfit -Lcc -lcc -Ldft -ldft -Lgp -lgp -Lpdpack -lpdpack -L/usr/lib -llapack -lblas \
-L/usr/lib/lam/lib -lmpi
abacus/dalton.o: In function `getmmbas_':
dalton.F:(.text+0x379): undefined reference to `mpi_bcast__'
abacus/dalton.o: In function `MAIN__':
dalton.F:(.text+0x739): undefined reference to `mpi_bcast__'
abacus/libabacus.a(dalgnr.o): In function `parion_':
dalgnr.F:(.text+0x223): undefined reference to `mpi_bcast__'
dalgnr.F:(.text+0x3ea): undefined reference to `mpi_bcast__'
dalgnr.F:(.text+0x438): undefined reference to `mpi_bcast__'
abacus/libabacus.a(dalgnr.o):dalgnr.F:(.text+0x686): more undefined references to `mpi_bcast__' follow
dft/libdft.a(dft_ksm.o): In function `ksmcollect_':
dft_ksm.F:(.text+0x8c): undefined reference to `mpi_reduce__'
dft_ksm.F:(.text+0xd7): undefined reference to `mpi_reduce__'
dft/libdft.a(dft_ksm.o): In function `ksmsync_':
dft_ksm.F:(.text+0x12c): undefined reference to `mpi_bcast__'
dft/libdft.a(dft_ksm.o): In function `kick_ksm_slaves_alive__':
dft_ksm.F:(.text+0x27d): undefined reference to `mpi_bcast__'
dft_ksm.F:(.text+0x29f): undefined reference to `mpi_bcast__'
dft/libdft.a(dft_mag.o): In function `dft_suscep_collect__':
dft_mag.F:(.text+0x21b0): undefined reference to `mpi_reduce__'
dft/libdft.a(dft_mag.o): In function `kick_slaves_suscep__':
dft_mag.F:(.text+0x231d): undefined reference to `mpi_bcast__'
dft_mag.F:(.text+0x233f): undefined reference to `mpi_bcast__'
dft/libdft.a(dft_mag.o): In function `dft_brhs_collect__':
dft_mag.F:(.text+0x23e0): undefined reference to `mpi_reduce__'
dft/libdft.a(dft_mag.o): In function `dft_brhs_slave__':
dft_mag.F:(.text+0x2480): undefined reference to `mpi_bcast__'
dft_mag.F:(.text+0x24a2): undefined reference to `mpi_bcast__'
dft/libdft.a(dft_mag.o): In function `kick_slaves_brhs__':
dft_mag.F:(.text+0x25e5): undefined reference to `mpi_bcast__'
dft_mag.F:(.text+0x2607): undefined reference to `mpi_bcast__'
dft_mag.F:(.text+0x2629): undefined reference to `mpi_bcast__'
dft/libdft.a(dft_mag.o):dft_mag.F:(.text+0x264b): more undefined references to `mpi_bcast__' follow
dft/libdft.a(dft_grad.o): In function `gradslave_collect__':
dft_grad.F:(.text+0x11f0): undefined reference to `mpi_reduce__'
dft/libdft.a(dft_grad.o): In function `kick_slaves_grad__':
dft_grad.F:(.text+0x135d): undefined reference to `mpi_bcast__'
dft_grad.F:(.text+0x137f): undefined reference to `mpi_bcast__'
dft/libdft.a(dft_hes.o): In function `dft_hed_collect__':
dft_hes.F:(.text+0x7ef): undefined reference to `mpi_reduce__'
dft_hes.F:(.text+0x848): undefined reference to `mpi_reduce__'
dft/libdft.a(dft_hes.o): In function `dfthed_slave__':
dft_hes.F:(.text+0x924): undefined reference to `mpi_bcast__'
dft_hes.F:(.text+0x967): undefined reference to `mpi_bcast__'
dft/libdft.a(dft_hes.o): In function `kick_slaves_hed__':
dft_hes.F:(.text+0xad5): undefined reference to `mpi_bcast__'
dft_hes.F:(.text+0xaf7): undefined reference to `mpi_bcast__'
dft_hes.F:(.text+0xb19): undefined reference to `mpi_bcast__'
dft/libdft.a(dft_hes.o):dft_hes.F:(.text+0xb59): more undefined references to `mpi_bcast__' follow
dft/libdft.a(dft_hes.o): In function `dft_hesstat_collect__':
dft_hes.F:(.text+0xbd0): undefined reference to `mpi_reduce__'
dft/libdft.a(dft_hes.o): In function `dft_hesstat_slave__':
dft_hes.F:(.text+0xcb8): undefined reference to `mpi_bcast__'
dft_hes.F:(.text+0xcf9): undefined reference to `mpi_bcast__'
dft_hes.F:(.text+0xd43): undefined reference to `mpi_bcast__'
dft_hes.F:(.text+0xd77): undefined reference to `mpi_bcast__'
dft/libdft.a(dft_hes.o): In function `kick_slaves_hesstat__':
dft_hes.F:(.text+0xee2): undefined reference to `mpi_bcast__'
dft/libdft.a(dft_hes.o):dft_hes.F:(.text+0xf06): more undefined references to `mpi_bcast__' follow
dft/libdft.a(dft_int.o): In function `dftintcollect_':
dft_int.F:(.text+0x42): undefined reference to `mpi_reduce__'
dft/libdft.a(dft_int.o): In function `dftintbcast_':
dft_int.F:(.text+0x78): undefined reference to `mpi_bcast__'
dft_int.F:(.text+0x9a): undefined reference to `mpi_bcast__'
dft_int.F:(.text+0xbc): undefined reference to `mpi_bcast__'
dft_int.F:(.text+0xde): undefined reference to `mpi_bcast__'
dft_int.F:(.text+0x100): undefined reference to `mpi_bcast__'
dft/libdft.a(dft_int.o):dft_int.F:(.text+0x122): more undefined references to `mpi_bcast__' follow
gp/libgp.a(gptrygve.o): In function `quit_':
gptrygve.F:(.text+0x581b): undefined reference to `mpi_abort__'
gp/libgp.a(mpimacro.o): In function `mpi_myfail__':
mpimacro.F:(.text+0x21): undefined reference to `mpi_error_class__'
gp/libgp.a(mpimacro.o): In function `mpixsend_':
mpimacro.F:(.text+0xb57): undefined reference to `mpi_send__'
gp/libgp.a(mpimacro.o): In function `mpixrecv_':
mpimacro.F:(.text+0xe8f): undefined reference to `mpi_recv__'
mpimacro.F:(.text+0xf49): undefined reference to `mpi_recv__'
gp/libgp.a(mpimacro.o): In function `mpixbcast_':
mpimacro.F:(.text+0x10d7): undefined reference to `mpi_bcast__'
gp/libgp.a(mpimacro.o): In function `mpixfinalize_':
mpimacro.F:(.text+0x1260): undefined reference to `mpi_finalize__'
gp/libgp.a(mpimacro.o): In function `mpixinit_':
mpimacro.F:(.text+0x1296): undefined reference to `mpi_init__'
mpimacro.F:(.text+0x12bf): undefined reference to `mpi_comm_rank__'
mpimacro.F:(.text+0x12e8): undefined reference to `mpi_comm_size__'
collect2: ld returned 1 exit status
mpif77: No such file or directory
make: *** [linuxparallel.x] Error 1
As you can see, I also get the error "mpif77: No such file or directory".
Please look at the MPI_INCLUDE_DIR ,MPI_LIB_PATH and MPI_LIB in
Makefile.config, because I susspect that the paths are wrong.
Regards,
Silviu
_______________________________________________
This list is archived at http://www.lam-mpi.org/MailArchives/lam/
------------------------------------------------------------------------
_______________________________________________
devel mailing list
de...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/devel
--
Paul H. Hargrove phhargr...@lbl.gov
Future Technologies Group
HPC Research Department Tel: +1-510-495-2352
Lawrence Berkeley National Laboratory Fax: +1-510-486-6900