[Pw_forum] Can I get pw.x and memory.x for my linux pc cluster

Axel Kohlmeyer axel.kohlmeyer at theochem.ruhr-uni-bochum.de
Fri Feb 11 17:41:22 CET 2005


On Fri, 11 Feb 2005, Abdelouahab O. wrote:

AO> Thanks for replay.
AO>  

AO> I have update my intel fortran compiler to 8.1, and downlaod
AO> espresso2.1.2; the lam precompiled for fedora core
AO> (lam-7.0.6-2ak6.i386.rpm) and install it on my system

ok. a lot of work, but i hope it will be worth the effort...


AO> The make.sys is
AO> ===================
AO> # make.sys.  Generated from make.sys.in by configure.
AO> CC             = mpicc
AO> CCFLAGS        = -O3 -fomit-frame-pointer $(DFLAGS) $(IFLAGS)

you may want to add -funroll-loops here which should make
the FFTs a little faster, but i suppose you're more interested
in getting it to work at, right?

AO> # See include/defs.h.README for a list of precompilation options
AO> # (possible arguments to -D or -U) and their meaning
AO> DFLAGS         = -D__LINUX -D__INTEL -D__LAM -D__PARA -D__FFTW -D__USE_INTERNAL_FFTW

there should be a -D__MPI here.

AO> FDFLAGS        = $(DFLAGS)
AO> IFLAGS         = -I. -I../include -I../Modules -I../PW -I../PH
AO> CPP            = cpp
AO> CPPFLAGS       = -P -traditional $(DFLAGS) $(IFLAGS)
AO> F77            = mpif77

this should be 'F77 = mpiifort'. using mpif77 will use the g77.
while there is no problem with that per se, you may get into trouble
mixing objects from g77 with objects from the intel compiler.

AO> F90            = mpiifort
AO> FFLAGS         = -Vaxlib -O3 -tpp7 $(IFLAGS)

again. using '-O2 -unroll' should be faster than '-O3'.

AO> F77FLAGS       = $(FFLAGS)
AO> F90FLAGS       = $(FFLAGS) -nomodule -fpp $(FDFLAGS)
AO> F77FLAGS_NOOPT = -O0
AO> LD             = mpiifort

AO> LDFLAGS        =  $(LIBOBJS) $(LIBS)

here you should use either 'LDFLAGS = -static-libcxa $(LIBOBJS) $(LIBS)'
if you have the download version of the intel-8.1 compiler, 
or 'LDFLAGS = -i-static $(LIBOBJS) $(LIBS)' if you have the
latest update from http://premier.intel.com/ 
(
$ > rpm -q intel-ifort8
intel-ifort8-8.1-023
)

[...]
AO> mpiifort -Vaxlib -O3 -tpp7 -I. -I../include -I../Modules -I../PW -I../PH -nomodule -fpp -D__LINUX -D__INTEL -D__LAM -D__PARA -D__FFTW -D__USE_INTERNAL_FFTW  -c fft_base.f90
AO> fortcom: Error: fft_base.f90, line 691: This name does not have a type, and must have an explicit type.   [MPI_DOUBLE_COMPLEX]
AO>      call mpi_alltoallv (f_aux(1), sendcount, sdispls, MPI_DOUBLE_COMPLEX, f_in(1), &
AO> -------------------------------------------------------^

AO> compilation aborted for fft_base.f90 (code 1)
AO> /usr/bin/mpif77: No such file or directory
AO> make[1]: *** [fft_base.o] Error 1
AO> make[1]: Leaving directory `/home/wahab/pw2.1.2/Modules'
AO> make: *** [mods] Error 2
AO> [root at cn1 pw2.1.2]#
AO> ///////////////////////////////////////////

AO> I dont understand why the last line "/usr/bin/mpif77: No such file or directory" appears, when I look for mpif77 this is whats the system gives:

this is from the fact, that /usr/bin/mpiifort is a small shell script,
that actually calls mpif77 with the LAMHF77 environment variable
set to ifort.

AO> [root at cn1 pw2.1.2]# which mpif77
AO> /usr/bin/mpif77
AO> and when trying to execute the command mpif77:
AO> [root at cn1 pw2.1.2]#  mpif77
AO> /usr/lib/gcc-lib/i386-redhat-linux/3.3.2/libfrtbegin.a(frtbegin.o)(.text+0x32): In function `main':
AO> : undefined reference to `MAIN__'
AO> collect2: ld returned 1 exit status
AO> mpif77: No such file or directory
AO> What can I do to make it work?
AO> Thanks

i have run configure like this:

LIBDIRS=$HOME/lib F77=mpiifort F90=mpiifort CC=mpicc ./configure

and then edited the make.sys file a little bit (the final one
is attached for reference). please remember that you need to do
a make clean, whenever you change any compiler flags to get
a consistent compilation.

regards,
	axel.

[...]

-- 
=======================================================================
Dr. Axel Kohlmeyer   e-mail: axel.kohlmeyer at theochem.ruhr-uni-bochum.de
Lehrstuhl fuer Theoretische Chemie          Phone: ++49 (0)234/32-26673
Ruhr-Universitaet Bochum - NC 03/53         Fax:   ++49 (0)234/32-14045
D-44780 Bochum  http://www.theochem.ruhr-uni-bochum.de/~axel.kohlmeyer/
=======================================================================
If you make something idiot-proof, the universe creates a better idiot.
-------------- next part --------------
# make.sys.  Generated from make.sys.in by configure.
CC             = mpicc
CCFLAGS        = -O3 -fomit-frame-pointer -funroll-loops $(DFLAGS) $(IFLAGS)
# See include/defs.h.README for a list of precompilation options
# (possible arguments to -D or -U) and their meaning
DFLAGS         = -D__LINUX -D__INTEL -D__MPI -D__PARA -D__FFTW -D__LAM -D__USE_INTERNAL_FFTW
FDFLAGS        = $(DFLAGS)
IFLAGS         = -I. -I../include -I../Modules -I../PW -I../PH 
CPP            = cpp
CPPFLAGS       = -P -traditional $(DFLAGS) $(IFLAGS)
F77            = mpiifort
F90            = mpiifort
FFLAGS         = -O2 -unroll -tpp7 -assume byterecl $(IFLAGS)
F77FLAGS       = $(FFLAGS)
F90FLAGS       = $(FFLAGS) -nomodule -fpp $(FDFLAGS)
F77FLAGS_NOOPT = -O0
LD             = mpiifort -i-static
LDFLAGS        =  $(LIBOBJS) $(LIBS)
LIBOBJS        = ../flib/ptools.a ../flib/flib.a ../clib/clib.a
# LIBS must contain the location of all needed external libraries
LIBS           =  -L/home/akohlmey/lib -latlas_p4 
# MYLIB can be one of the following (depending on LIBS):
# blas       : compile the local copy of blas routines
# lapack     : compile the local copy of lapack routines
# blas_and_lapack : all of the above - use this for a quick test
#              or if you don't have an optimized blas/lapack library
# lapack_ibm : compile only lapack routines not present in IBM ESSL
#              use this together with IBM ESSL
# lapack_t3e : compile only lapack routines not present in T3E scilib
#              use this together with T3E scilib
# lapack_mkl : compile only lapack routines not present in Intel MKL
#              use this together with Intel MKL
MYLIB          = 
AR             = ar
ARFLAGS        = ruv
RANLIB         = echo


More information about the users mailing list