|
View:
New views
6 Messages
—
Rating Filter:
Alert me
|
|
|
mpicc and mpif77 under LAMHello,
I am trying to install a quantum chemistry program (Dalton) under LAM/MPI. I am stuck because I get the error: "mpif77: No such file or directory" but: user@pelican:~$ which mpif77 /usr/bin/mpif77 and: user@pelican:~$ file /usr/bin/mpif77 /usr/bin/mpif77: symbolic link to `/etc/alternatives/mpif77' user@pelican:~$ file /etc/alternatives/mpif77 /etc/alternatives/mpif77: symbolic link to `/usr/bin/mpif77.lam' user@pelican:~$ file /usr/bin/mpif77.lam /usr/bin/mpif77.lam: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.8, stripped I know that there is also mpif77.openmpi, but due to the lack of clear documentation concerning OpenMPI, I want to use LAM/MPI instead. So far, I wasn't able to install the program due to the error above: "mpif77: No such file or directory". Just type the following "mpif77 -c foo.c" in your terminal and you will see the error. Is there any way in order to solve this? Regards, Silviu |
|
|
Re: mpicc and mpif77 under LAMI'm not seeing any problem. I'm using PelicanHPC 64 bit, a development version which is essentially the same as the last released version. See the attached screenshot. If you specify the full path to mpif77, do you see the problem? What version of PelicanHPC are you using (not that it should matter)?
My suspicion is path troubles, for some reason. Are you compiling as root by any chances? mpif77.png |
|
|
Re: mpicc and mpif77 under LAMThank you for your answer.
I downloaded the latest version (1.9_64bit) and I don't get that error when typing "mpif77 -c foo.c". But when trying to install dalton I receive a series of errors concerning mpi. The Makefile.config is the following: 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 there is still the error "mpif77: No such file or directory". I think that this is no more related with PelicanHPC but with LAM-MPI. Maybe someone could analyse the mpi-paths in Makefile.config and let me informed about any error I made. Thank you, Silviu |
|
|
Re: mpicc and mpif77 under LAMI agree that this is probably not a problem of PelicanHPC, but one of getting the options set properly. Probably asking users of the code for help, or asking on the LAM/MPI mail list might help.
Also, Open MPI is pretty well tested by now, so you might want to try it out. You can use update-alternatives to select Open MPI instead of LAM/MPI as the default. Good luck! |
|
|
Re: mpicc and mpif77 under LAMHello,
I asked at LAM/MPI forum about these errors and it seems that gfortran under PelicanHPC was compiled without -fsecond-underscore, which in turn, is essential to build my program (Dalton). Check here for the answer that I received: http://www.lam-mpi.org/MailArchives/lam/2009/05/14042.php Well, I think that this is beyond my level of knowledge. I don't know what should I do now. I still want to use PelicanHPC as it is very simple and intuitive to build a cluster. Regards, Silviu |
|
|
Re: mpicc and mpif77 under LAMHmm, I've never had trouble like this myself, but maybe I've just been lucky. PelicanHPC gets its packages from Debian stable (Lenny). LAM/MPI, gfortran, etc. are all pre-compiled binaries. The details of how they were compiled in Debian, I don't know, and I've never had to worry about that. This is the first report of this type of problem.
You could try to compile a statically-linked version of your app on another machine where things are working properly, and just put the binary into /home/user on Pelican to run it on a cluster. I'm a little skeptical that the Debian packages have some problem that prevents successful compilation. I believe that it should be a matter of getting the Makefile set up correctly. Sorry, but I don't have any other ideas. |
| Free embeddable forum powered by Nabble | Forum Help |