Problems with NWChem compilation on Linux


Clicked A Few Times
Dear developers!

I have to offer my apologies for sending you PM but I don't know how to start a new discussion.

Please, help me with the problems during NWChem (version 6.5) compilation.

System: Red Hat Linux 7.0
compilators: gfortran, gcc
path to compilators:/usr/bin
openmpi has been installed
Nwchem 6.5 is planned to be compiled on personal linux with 8 cores.

I do the following actions:
1. download NWChem files from the source and export them.

2. export PATH=$PATH:/usr/bin
  export NWCHEM_TOP=/usr/local/Nwchem-6.5

  export NWCHEM_TARGET=LINUX64

  export USE_MPI=y

  export USE_MPIF=y

  export USE_MPIF4=y

  export MPI_LOC=/usr/lib64/openmpi

  export MPI_LIB=$MPI_LOC/lib

  export LIBMPI="-lmpi_f90 -lmpi_f77 -lmpi -lpthread"

  export NWCHEM_MODULES="all"

  export CC=gcc

  export FC=gfortran


3. cd $NWCHEM_TOP/src
  make nwchem_config 

  make >&make.log


After all I get make.log in Nwchem-6.5/src folder wth the following content :
test \! -f 64_to_32 -o \! -f 32_to_64 || rm -f 64_to_32 32_to_64
test -d /usr/local/Nwchem-6.5/lib/LINUX64 || mkdir -p /usr/local/Nwchem-6.5/lib/LINUX64
Making libraries in tools
test -d /usr/local/Nwchem-6.5/bin/LINUX64 || mkdir -p /usr/local/Nwchem-6.5/bin/LINUX64
./util/util_nwchem_version.bash
which: no svn in (/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/usr/bin)
make[1]: warning: in the sub-Makefile forced by -jN; server mode tasks denied
rm -f ./*.CC.stamp
echo "" > cc.CC.stamp

Configuring Parallel Tools ****

which: no svn in (/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/usr/bin)
../ga-5-3/configure --prefix=/usr/local/Nwchem-6.5/src/tools/install --with-tcgmsg --with-mpi=-L/usr/lib64/opemmpi/lib -lmpi_f90 -lmpi_f77 -lmpi -lpthread /usr/lib64/opemmpi --enable-peigs --enable-underscoring --disable-mpi-tests --without-scalapack --without-lapack --without-blas --with-mpi-ts CC=cc F77=gfortran FFLAGS=-fno-aggressive-loop-optimizations ARMCI_DEFAULT_SHMMAX_UBOUND=131072
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking for TARGET base (64bit-ness checked later)... LINUX
checking whether we think this system is what we call SYSV... yes
checking whether we are cross compiling... no
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether to enable maintainer-specific portions of Makefiles... no
configure: Detected VPATH build
configure:
configure: C compiler
configure:
checking for style of include used by make... GNU
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether cc accepts -g... yes
checking for cc option to accept ISO C89... none needed
checking dependency style of cc... gcc3
checking how to run the C preprocessor... cc -E
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking minix/config.h usability... no
checking minix/config.h presence... no
checking for minix/config.h... no
checking whether it is safe to define __EXTENSIONS__... yes
checking for C compiler vendor... gnu
configure: WARNING: /usr/lib64/opemmpi of with_mpi not parsed
checking whether a simple C MPI program compiles... no
configure: error: in `/usr/local/Nwchem-6.5/src/tools/build':
configure: error: could not compile simple C MPI program
See `config.log' for more details
make[1]: *** [build/config.status] error 1
make: *** [libraries] error 1

Thank you in advance for your help and patience.

Forum Vet
What is the output of the commands

gfortran -v

mpif90 -show

mpif90 -v

Clicked A Few Times
I have the following text after
1. gfortran -v command:

 COLLECT_GCC=gfortran
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.8.3/lto-wrapper
Target: x86_64-redhat-linux
Configuration settings: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto --enable-plugin --enable-initfini-array --disable-libgcj --with-isl=/builddir/build/BUILD/gcc-4.8.3-20140911/obj-x86_64-redhat-linux/isl-install --with-cloog=/builddir/build/BUILD/gcc-4.8.3-20140911/obj-x86_64-redhat-linux/cloog-install --enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux
Thread model: posix
gcc version 4.8.3 20140911 (Red Hat 4.8.3-9) (GCC)

2. mpif90 -show and mpif90 -v commands
  bash: mpi90:command not found

After these actions I had checked /usr/bin folder and found only "exempi" file.

Forum Vet
mpif90 is not in your current path.
We need to see if 1) mpif90 is installed and 2) if mpif90 was installed, its location.

Please send the output of the following commands

/usr/lib64/openmpi/bin/mpif90 -show

rpm -q -a | grep openmpi

rpm -q -a | grep mpich

Clicked A Few Times
Here is the output of the following commands:

1. /usr/lib64/openmpi/bin/mpif90 -show
  bash: /usr/lib64/openmpi/bin/mpif90: no such file or directory

2. rpm -q -a | grep openmpi
  openmpi-1.6.4-5.el7.x86_64

3. rpm -q -a | grep mpich does not have an output

Forum Vet
openmpi-devel
A missing RPM is required (openmpi-devel)

You might be able to install it by executing

sudo yum install openmpi-devel

Clicked A Few Times
Thank you for your advice. Now after the command "sudo yum install openmpi-devel" I have the following messages:
1. gfortran -I/usr/include/openmpi-x86_64 -pthread -m64 -I/usr/lib64/openmpi/lib -L/usr/lib64/openmpi/lib -lmpi_f90 -lmpi_f77 -lmpi
  after  /usr/lib64/openmpi/bin/mpif90 -show command

2. openmpi-1.6.4-5.el7.x86_64
   openmpi-devel-1.6.4-5.el7.x86_64
after rpm -q -a | grep openmpi

3. rpm -q -a | grep mpich command still does not have an output

4. mpif90 -show and mpif90 -v commands indicate:

 bash: mpif90:command not found

As I understand I shold remove mpif90 but I don't exactly understand where. I tried to copy "include" directory to /usr/lib64/openmpi but this made no effect (still bash: mpi90:command not found).
(I also have changed LIBMPI to "-pthread -m64 -lmpi_f90 -lmpi_f77 -lmpi" value)

Forum Vet
I would not recommend copying files from the RPM based MPI installation

I would use the following

export MPI_LIB=/usr/lib64/openmpi/lib

export LIBMPI="-pthread -lmpi_f90 -lmpi_f77 -lmpi"

export MPI_INCLUDE=/usr/include/openmpi-x86_64

Clicked A Few Times
Thank you very much for your help and support but I have still the same result: bash: mpif90:command not found.
Maybe, the thing is that compilers (gfortran, gcc) and mpif90 are in different folders ( /usr/lib64/openmpi/bin and /usr/bin)?If so could you tell me if it is possible to put them in one directory? Or I'm wrong?

Forum Vet
what is the output of the command

env | grep PATH

Clicked A Few Times
I have the following text after env | grep PATH command:
PATH=/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin
MODULEPATH=/usr/share/Modules/modulefiles:/etc/modulefiles
WINDOWPATH=1

Clicked A Few Times
I did export PATH=$PATH:/usr/lib64/openmpi/bin command
and after mpif90 -v
I got the following text: 
COLLECT_GCC=/usr/bin/gfortran
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.8.3/lto-wrapper
target: x86_64-redhat-linux
configuration parameters: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto --enable-plugin --enable-initfini-array --disable-libgcj --with-isl=/builddir/build/BUILD/gcc-4.8.3-20140911/obj-x86_64-redhat-linux/isl-install --with-cloog=/builddir/build/BUILD/gcc-4.8.3-20140911/obj-x86_64-redhat-linux/cloog-install --enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-thread model: posix
gcc version 4.8.3 20140911 (Red Hat 4.8.3-9) (GCC)

After that I tried to compile NWChem using strategies described in the source. The result is nwchem program in /usr/local/Nwchem-6.5/bin/LINUX64 folder. Is it correct result? If yes I would like to thank you for your patience and support.


Forum >> NWChem's corner >> Compiling NWChem