Building NWChem 6.1 with Intel 11.1 and Openmpi 1.6 on a IB cluster running CentOS 6.2


Click here for full thread
Just Got Here
Dear All,

I have been trying with various degrees of (un)success to build NWChem 6.1 on a IB cluster running CentOS 6.2 (gcc 4.4.4), with distro provided IB libraries, using the intel compiler 11.1 (rev 080), MKL 10.2 (update 7) and the openmpi 1.6 built with the intel compiler and IB.

I gave up (at least for now) using scalapack because I always get errors (of the undefined reference kind) and now I am only using MKL blas and lapack.

Here is the script I use to build:

################################################
#!/bin/bash

. /u/local/Modules/default/init/modules.sh
module load intel openmpi/1.6
module li

export NWCHEM_TOP=/u/local/downloads/nwchem/nwchem-6.1
export NWCHEM_TARGET=LINUX64
echo "NWCHEM_TOP=$NWCHEM_TOP"
echo "NWCHEM_TARGET=$NWCHEM_TARGET"

export ARMCI_NETWORK=OPENIB
export IB_HOME=/usr
export IB_INCLUDE=/usr/include/infiniband/
export IB_LIB=/usr/lib64
export IB_LIB_NAME="-libumad -libverbs -lpthread"
export MSG_COMMS=MPI
export TCGRSH=/usr/bin/ssh
echo "ARMCI_NETWORK=$ARMCI_NETWORK"
echo "IB_HOME=$IB_HOME"
echo "IB_INCLUDE=$IB_INCLUDE"
echo "IB_LIB=$IB_LIB"
echo "IB_LIB_NAME=$IB_LIB_NAME"
echo "MSG_COMMS=$MSG_COMMS"
echo "TCGRSH=$TCGRSH"

export USE_MPI=y
export USE_MPIF=y
export USE_MPIF4=y
export MPI_LOC=/u/local/intel/11.1/openmpi/1.6.0
export MPI_LIB=$MPI_LOC/lib
export MPI_INCLUDE=$MPI_LOC/include

export LIBMPI="-L$MPI_LIB -lmpi -lrdmacm -libverbs -lrt -lnsl -lutil -ldl -lm -Wl,--export-dynamic -lrt -lnsl -lutil"
echo "USE_MPI=$USE_MPI"
echo "USE_MPIF=$USE_MPIF"
echo "USE_MPIF4=$USE_MPIF4"
echo "MPI_LOC=$MPI_LOC"
echo "MPI_LIB=$MPI_LIB"
echo "export MPI_INCLUDE=$export MPI_INCLUDE"
echo "LIBMPI=$LIBMPI"

export NWCHEM_MODULES="all python"
export LARGE_FILES=TRUE
export USE_NOFSCHECK=TRUE
export LIB_DEFINES=-DDFLT_TOT_MEM=16777216
echo "NWCHEM_MODULES=$NWCHEM_MODULES"
echo "LARGE_FILES=$LARGE_FILES"
echo "LARGE_FILES=$LARGE_FILES"
echo "LIB_DEFINES=$LIB_DEFINES"

export PYTHONHOME=/usr
export PYTHONVERSION=2.6
export USE_PYTHON64=y
export PYTHONLIBTYPE=so
echo "PYTHONHOME=$PYTHONHOME"
echo "PYTHONVERSION=$PYTHONVERSION"
echo "USE_PYTHON64=$USE_PYTHON64"
echo "PYTHONLIBTYPE=$PYTHONLIBTYPE"

# NOTE, the definition of PYTHONLIBTYPE and the change in config/makefile.h as shown below
# is done to prevent the error:
#
# File not found: '/usr/lib64/python2.6/config/libpython2.6.a'
#
# see https://nwchemgit.github.io/Special_AWCforum/st/id349/#post_1188
#
sed -i 's/libpython$(PYTHONVERSION).a/libpython$(PYTHONVERSION).$(PYTHONLIBTYPE)/g' config/makefile.h

export MKLLIB=/u/local/compilers/intel/11.1/080/mkl/lib/em64t

export BLASOPT="$MKLLIB/libmkl_solver_ilp64_sequential.a -Wl,--start-group $MKLLIB/libmkl_intel_ilp64.a $MKLLIB/libmkl_sequential.a $MKLLIB/libmkl_core.a -Wl,--end-group -lpthread -lm"
echo "BLASOPT=$BLASOPT"

export FC="ifort -i8"
export CC="icc -DMKL_ILP64"
echo "FC=$FC"
echo "CC=$CC"

echo "### START MAKING####"

#echo "make realclean"
#make realclean

echo "cd $NWCHEM_TOP/src"
cd $NWCHEM_TOP/src
pwd
echo "make nwchem_config"
make nwchem_config
echo " "
echo "########"
echo " "
echo "make"
make
################################################

And here is the error in make log file:

make nwchem.o stubs.o
make[1]: warning: -jN forced in submake: disabling jobserver mode.
ifort -i8 -i8 -g  -I.  -I/u/local/downloads/nwchem/nwchem-6.1/src/include -I/u/local/downloads/nwchem/nwchem-6.1/src/tools/install/include -DEXT_INT -DLINUX -DLINUX64 -DPARAL
LEL_DIAG -DCOMPILATION_DATE="'`date +%a_%b_%d_%H:%M:%S_%Y`'" -DCOMPILATION_DIR="'/u/local/downloads/nwchem/nwchem-6.1'" -DNWCHEM_BRANCH="'6.1'"  -c -o nwchem.o nwchem.F
ifort -i8 -i8 -g  -I.  -I/u/local/downloads/nwchem/nwchem-6.1/src/include -I/u/local/downloads/nwchem/nwchem-6.1/src/tools/install/include -DEXT_INT -DLINUX -DLINUX64 -DPARAL
LEL_DIAG -DCOMPILATION_DATE="'`date +%a_%b_%d_%H:%M:%S_%Y`'" -DCOMPILATION_DIR="'/u/local/downloads/nwchem/nwchem-6.1'" -DNWCHEM_BRANCH="'6.1'"  -c -o stubs.o stubs.F
ifort -i8 -i8 -g  -Wl,--export-dynamic  -L/u/local/downloads/nwchem/nwchem-6.1/lib/LINUX64 -L/u/local/downloads/nwchem/nwchem-6.1/src/tools/install/lib  -o /u/local/downloads
/nwchem/nwchem-6.1/bin/LINUX64/nwchem nwchem.o stubs.o -lnwctask -lccsd -lmcscf -lselci -lmp2 -lmoints -lstepper -ldriver -loptim -lnwdft -lgradients -lcphf -lesp -lddscf -ld
angchang -lguess -lhessian -lvib -lnwcutil -lrimp2 -lproperty -lnwints -lprepar -lnwmd -lnwpw -lofpw -lpaw -lpspw -lband -lnwpwlib -lcafe -lspace -lanalyze -lqhop -lpfft -ldp
lot -lnwpython -ldrdy -lvscf -lqmmm -lqmd -letrans -lpspw -ltce -lbq -lcons -lperfm -ldntmc -lccca -lnwcutil -lga -lpeigs -lperfm -lcons -lbq -lnwcutil /usr/lib64/python2.6/c
onfig/libpython2.6.so /u/local/compilers/intel/11.1/080/mkl/lib/em64t/libmkl_solver_ilp64_sequential.a -Wl,--start-group  /u/local/compilers/intel/11.1/080/mkl/lib/em64t/libm
kl_intel_ilp64.a /u/local/compilers/intel/11.1/080/mkl/lib/em64t/libmkl_sequential.a /u/local/compilers/intel/11.1/080/mkl/lib/em64t/libmkl_core.a -Wl,--end-group -lpthread -
lm  -llapack  -lblas   -L/u/local/intel/11.1/openmpi/1.6.0/lib -L/u/local/intel/11.1/openmpi/1.6.0/lib  -lmpi -lrdmacm -libverbs -lrt -lnsl -lutil -ldl -lm -Wl,--export-dynam
ic -lrt -lnsl -lutil  -L/usr/lib64 -libumad -libverbs -lpthread  -lnwcutil  -lpthread -lutil -ldl  
/u/local/downloads/nwchem/nwchem-6.1/lib/LINUX64/libnwpwlib.a(Parallel-mpi.o): In function `parallel2d_finalize_':
Parallel-mpi.F:(.text+0x37): undefined reference to `mpi_comm_free_'
Parallel-mpi.F:(.text+0x47): undefined reference to `mpi_group_free_'
Parallel-mpi.F:(.text+0x57): undefined reference to `mpi_comm_free_'
Parallel-mpi.F:(.text+0x67): undefined reference to `mpi_group_free_'
/u/local/downloads/nwchem/nwchem-6.1/lib/LINUX64/libnwpwlib.a(Parallel-mpi.o): In function `parallel3d_finalize_':



I would gladly post the entire make.log and the tools/build/config.log and the tools/build/armci/config.log files if you could tell me how to upload files.

Could you please advise?

Thanks,

Raffaella.