Intel E5-2640v3 Haswell: No such instruction


Click here for full thread
Just Got Here
Hi,

I am trying to compile nwchem-6.6 on a HPC cluster running CentOS Linux version 6 on Intel E5-2640v3 Haswells.

I intent to use gcc 4.9.2, openmpi 1.6.5, and intel-mkl 2017 and have employed all patches from the web page.

Unfortunately, I run into the following make error suggesting that the CPU is erroneously detected:

make[1]: Entering directory `/panfs/pan01/vol011/home/dkr/nwchem/nwchem-6.6/src/basis'
gfortran  -c -m64 -ffast-math  -Warray-bounds -fdefault-integer-8 -march=native -mtune=native -finline-functions -O2 -g -fno-aggressive-loop-optimizations -g -O   -I.  -I/home/dkr/nwchem/nwchem-6.6/src/include -I/home/dkr/nwchem/nwchem-6.6/src/tools/install/include -DGFORTRAN -DCHKUNDFLW -DGCC4 -DGCC46 -DEXT_INT -DLINUX -DLINUX64 -DPARALLEL_DIAG   basis.F
/tmp/ccpY0ZUm.s: Assembler messages:
/tmp/ccpY0ZUm.s:8542: Error: no such instruction: `shlx %rax,968(%rsp),%rax'
/tmp/ccpY0ZUm.s:8585: Error: no such instruction: `shlx %rax,968(%rsp),%rax'
/tmp/ccpY0ZUm.s:8602: Error: no such instruction: `shlx %rax,968(%rsp),%rax'
/tmp/ccpY0ZUm.s:8613: Error: no such instruction: `shlx %rax,968(%rsp),%rax'
/tmp/ccpY0ZUm.s:8961: Error: no such instruction: `shlx %rax,968(%rsp),%rax'
/tmp/ccpY0ZUm.s:11072: Error: no such instruction: `shlx %rax,968(%rsp),%rax'
/tmp/ccpY0ZUm.s:12009: Error: no such instruction: `shlx %rax,616(%rsp),%rdi'
/tmp/ccpY0ZUm.s:12019: Error: no such instruction: `shlx %rax,616(%rsp),%rsi'
/tmp/ccpY0ZUm.s:12806: Error: no such instruction: `shlx %rax,616(%rsp),%rdi'
/tmp/ccpY0ZUm.s:12816: Error: no such instruction: `shlx %rax,616(%rsp),%rsi'
/tmp/ccpY0ZUm.s:13603: Error: no such instruction: `shlx %rax,632(%rsp),%rdi'
/tmp/ccpY0ZUm.s:13613: Error: no such instruction: `shlx %rax,632(%rsp),%rsi'
make[1]: *** [/home/dkr/nwchem/nwchem-6.6/lib/LINUX64/libnwcutil.a(basis.o)] Error 1
make[1]: Leaving directory `/panfs/pan01/vol011/home/dkr/nwchem/nwchem-6.6/src/basis'
make: *** [libraries] Error 1


I have set the environmental variables as listed below. This includes FOPTIMIZE, which I have added in the hope to tame the optimizer and prevent it from using -march=native. Unfortunately, to no avail.

export NWCHEM_TOP=/home/dkr/nwchem/nwchem-6.6
export NWCHEM_TARGET=LINUX64
export NWCHEM_MODULES="all python"
export NWCHEM_LONG_PATHS=Y
export USE_NOFSCHECK=Y
export USE_MPI=y
export USE_MPIF=y
export USE_MPIF4=y
export FC=gfortran
export CC=gcc
export ARMCI_NETWORK=OPENIB
export MSG_COMMS=MPI
export IB_INCLUDE="/usr/include"
export IB_LIB="/usr/lib64"
export IB_LIB_NAME="-libverbs"
export SLURMOPT=-lslurm
export SLURM=y
export BLASOPT="-L${MKLROOT}/lib/intel64 -Wl,--no-as-needed -lmkl_scalapack_ilp64 -lmkl_gf_ilp64 -lmkl_intel_    thread -lmkl_core -lmkl_blacs_openmpi_ilp64 -liomp5 -lpthread -lm -ldl"
export BLAS_SIZE=8
export BLAS_LIB="-L${MKLROOT}/lib/intel64 -Wl,--no-as-needed -lmkl_scalapack_ilp64 -lmkl_gf_ilp64 -lmkl_intel    _thread -lmkl_core -lmkl_blacs_openmpi_ilp64 -liomp5 -lpthread -lm -ldl"
export LAPACK_SIZE=8
export LAPACK_LIB="-L${MKLROOT}/lib/intel64 -Wl,--no-as-needed -lmkl_scalapack_ilp64 -lmkl_gf_ilp64 -lmkl_int    el_thread -lmkl_core -lmkl_blacs_openmpi_ilp64 -liomp5 -lpthread -lm -ldl"
export SCALAPACK_SIZE=8
export SCALAPACK_LIB="-L${MKLROOT}/lib/intel64 -Wl,--no-as-needed -lmkl_scalapack_ilp64 -lmkl_gf_ilp64 -lmkl_    intel_thread -lmkl_core -lmkl_blacs_openmpi_ilp64 -liomp5 -lpthread -lm -ldl"
export FFLAGS="  -fdefault-integer-8 -m64 -I${MKLROOT}/include"
export CFLAGS="  -fdefault-integer-8 -m64 -I${MKLROOT}/include"
export FOPTIMIZE="-O3  -mfpmath=sse -ffast-math -fno-aggressive-loop-optimizations"
export COPTIMIZE="-O3  -mfpmath=sse -ffast-math -fno-aggressive-loop-optimizations"
export PYTHON_EXE=/usr/bin/python
export PYTHONVERSION=2.6
export USE_PYTHON64=yes
export PYTHONPATH=./:/home/dkr/nwchem-6.6/contrib/python/
export PYTHONHOME=/usr
export PYTHONLIBTYPE=so


I would be very thankful for hints as to how to resolve this issue.

Thank you,
Daniel