compilation problem with nwchem-rev26871.2015-02-24


Clicked A Few Times
Dear Developer

I was trying to compile the develop version of 2015-02-24 with intel 15.0.2 and mopish-3.1.4.
The compilation fail at ccsd_t_kernels_omp.F with error messages like "

ifort -c -i8 -align -qopt-report-file=stderr -fimf-arch-consistency=true -O3 -unroll -ip -xHost -I. -I../include -I/home/jtravers/Work/sw/nwchem/src/include -I/home/jtravers/Work/sw/nwchem/src/tools/install/include -DEXT_INT -DLINUX -DLINUX64 -DIFCV8 -DIFCLINUX -DSCALAPACK -DPARALLEL_DIAG -DDEBUG_PRINT ccsd_t_kernels_omp.F
/tmp/ifortFoKZpL.i: catastrophic error: **Internal compiler error: segmentation violation signal raised** Please report this error along with the circumstances in which it occurred in a Software Problem Report. Note: File and line given may not be explicit cause of this error.
compilation aborted for ccsd_t_kernels_omp.F (code 1)
make[3]: *** [/home/jtravers/Work/sw/nwchem/lib/LINUX64/libtce.a(ccsd_t_kernels_omp.o)] Error 1
make[3]: *** Waiting for unfinished jobs....

Any suggestions? Thank you!

Here is the environmental variables

xport NWCHEM_TARGET=LINUX64
export F77=ifort
export CC=icc
export FC=ifort
export CXX=icpc
export LARGE_FILES=TRUE
export USE_NOFSCHECK=TRUE
export NWCHEM_LONG_PATHS=Y
export USE_NOFSCHECK=Y
  1. export CCSDTQ=y
  2. export CCSDTLR=y
export MRCC_THEORY=TRUE
export NWCHEM_TOP=/home/jtravers/Work/sw/nwchem
export NWCHEM_TARGET=LINUX64
export NWCHEM_MODULES="all python"
export USE_MPI=y
export USE_MPIF=y
export USE_MPIF4=y
export MPI_LOC=/opt/apps/mpi/mpich/mpich-3.1.4-intel-15.0.2
export MPI_LIB=$MPI_LOC/lib
export MPI_INCLUDE=$MPI_LOC/include
export LIBMPI="-lmpifort -Wl,-rpath -Wl,/opt/apps/mpi/mpich/mpich-3.1.4-intel-15.0.2/lib -Wl,--enable-new-dtags -lmpi"
export MSG_COMMS=MPI
export ARMCI_NETWORK=MPI-TS
export PYTHONHOME=/opt/apps/python/Python-2.7.7-gcc-4.8.2
export PYTHONVERSION=2.7
export PYTHON_EXE=/opt/apps/python/Python-2.7.7-gcc-4.8.2/bin/python
export MKLROOT=/opt/apps/intel/Xe2015Update2/composer_xe_2015.2.164/mkl/lib/intel64
export LAPACK_LIB="-L$MKLROOT -lmkl_intel_ilp64 -lmkl_sequential -lmkl_core -lpthread -lm"
export BLAS_LIB="$LAPACK_LIB"
export BLASOPT="$LAPACK_LIB"
export SCALAPACK_LIB="-L$MKLROOT -lmkl_scalapack_ilp64 -lmkl_blacs_intelmpi_ilp64 -lmkl_intel_ilp64 -lmkl_sequential -lmkl_core -lpthread -lm"
export SCALAPACK="$SCALAPACK_LIB"
export USE_SCALAPACK=y
export SCALAPACK_SIZE=8
export BLAS_SIZE=8
export LAPACK_SIZE=8

Forum Vet
Thanks for reporting this.
A fix has been checked into the NWChem svn repository

Clicked A Few Times
Hi Edo,

I'm getting the same internal compiler error on this file with the v6.6 release (ifort 15.0.2.164, Intel MPI). Did the fix make it into the release?

My settings as follows:

export NWCHEM_TARGET=LINUX64
export USE_MPI=y
export USE_MPIF=y
export USE_MPIF4=y
export LIBMPI="-Xlinker --enable-new-dtags -Xlinker -rpath -Xlinker /opt/intel//impi/5.0.3.048/intel64/lib/release_mt -Xlinker -rpath -Xlinker /opt/intel//impi/5.0.3.048/intel64/lib -Xlinker -rpath -Xlinker /opt/intel/mpi-rt/5.0/intel64/lib/release_mt -Xlinker -rpath -Xlinker /opt/intel/mpi-rt/5.0/intel64/lib -lmpifort -lmpi -lmpigi -ldl -lrt -lpthread"
export MPI_LIB=/opt/intel/impi/5.0.3.048/intel64/lib
export MPI_INCLUDE=/opt/intel/impi/5.0.3.048/intel64/include
export MKLDIR=/opt/intel/composer_xe_2015.2.164/mkl/lib/intel64
# lp for 32-bit libraries. Leaving out scalapack for now
export BLASOPT="-L${MKLDIR} -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -lpthread -lm -openmp"
export USE_64TO32=y
export HAS_BLAS=yes
make FC=ifort nwchem_config NWCHEM_MODULES=all
make 64_to_32 &> make.64_to_32.log
make FC=ifort &> make.log

Setting -O2, -O1 or -O0 doesn't fix the errror.

Tom

Forum Vet
Yes, the fix described in the April 13th 2015 message is part of the NWChem 6.6 distribution.
Please post the last lines of your make.log file (or upload the full make.log to a publicly accessible website)

Clicked A Few Times
After playing around with the settings a bit it seems the error arose because I set the OpenMP flag in BLASOPT, which is not invoked when compiling ccsd_t_kernels_omp.F. It seems the correct approach is to use the option USE_OPENMP=y, which adds -qopenmp to the general compilation flags, and then it compiles without problems.

For reference here is the error I got when compiling without -qopenmp:

ifort -c -i8 -align -fpp -qopt-report-file=stderr -fimf-arch-consistency=true -finline-limit=250 -O3 -unroll -ip -xHost -I. -I../include -I/home/twk/dev/nwchem-6.6-ifort15-64to32/src/include -I/home/twk/dev/nwchem-6.6-ifort15-64to32/src/tools/install/include -DEXT_INT -DLINUX -DLINUX64 -DIFCV8 -DIFCLINUX -DPARALLEL_DIAG -DDEBUG_PRINT ccsd_t_kernels_omp.F
/tmp/ifortlMNR7S.i: catastrophic error: **Internal compiler error: segmentation violation signal raised** Please report this error along with the circumstances in which it occurred in a Software Problem Report. Note: File and line given may not be explicit cause of this error.
compilation aborted for ccsd_t_kernels_omp.F (code 1)
make[3]: *** [/home/twk/dev/nwchem-6.6-ifort15-64to32/lib/LINUX64/libtce.a(ccsd_t_kernels_omp.o)] Error 1
make[3]: Leaving directory `/home/twk/dev/nwchem-6.6-ifort15-64to32/src/tce/ccsd_t'
make[2]: *** [optimized] Error 2
make[2]: Leaving directory `/home/twk/dev/nwchem-6.6-ifort15-64to32/src/tce/ccsd_t'
make[1]: *** [subdirs] Error 1
make[1]: Leaving directory `/home/twk/dev/nwchem-6.6-ifort15-64to32/src/tce'
make: *** [libraries] Error 1

Tom

Forum Vet
Quote:Twk Dec 9th 6:12 am
After playing around with the settings a bit it seems the error arose because I set the OpenMP flag in BLASOPT, which is not invoked when compiling ccsd_t_kernels_omp.F. It seems the correct approach is to use the option USE_OPENMP=y, which adds -qopenmp to the general compilation flags, and then it compiles without problems.



Yes, that's the most appropriate way to use OpenMP constructs in NWChem


Forum >> NWChem's corner >> Compiling NWChem