NWChem 6.8: Compilation error in libtce.a(ccsd t.o) for Intel Phi KNC


Just Got Here
Dear Colleague,

I was trying to compile v6.8 for binary that can do offload CCSD(T) calculation to the two Intel Phi KNC cards. The host OS is CentOS 6.6 (Final) kernel 2.6.32-504.el6.x86_64, installed with Intel Compiler Version 18.0.1.163 Build 20171018.

Here is the setup before compilation:

export NWCHEM_TOP=/phi/nwchem-6.8
export USE_MPI=y
export USE_MPIF=y
export USE_MPIF4=y
export NWCHEM_TARGET=LINUX64
export USE_PYTHONCONFIG=y
export PYTHONHOME=/usr
export PYTHONVERSION=2.6
export FC=ifort
export CC=icc
export CXX=icpc
export USE_OPENMP=1
export USE_OFFLOAD=1
export BLASOPT="-mkl -qopenmp -lpthread -lm"
export USE_SCALAPACK=y
export SCALAPACK="-mkl -qopenmp -lmkl_scalapack_ilp64 -lmkl_blacs_intelmpi_ilp64 -lpthread -lm"
export NWCHEM_MODULES="all python"
export MRCC_METHODS=TRUE


Then chdir to $NWCHEM_TOP, make nwchem_config and make. The errors showed up while compiling libtce.a(ccsd_t.o). May I know how to resolve it? Or should I change back to Intel Compiler 2017? Thank you for your kind reply.


Kenny

Error message:

make[3]: Entering directory `/phi/nwchem-6.8/src/tce/ccsd_t'
Converting ccsd_t.F -> ccsd_t.f
ifort -c -i8 -align -fpp -qopt-report-file=stderr -qopenmp -qopt-report-phase=openmp -qopt-report-phase=offload -qoffload-option,mic,compiler,"-align array64byte" -qoffload-option,mic,compiler,"-qopt-prefetch=4 -qopt-prefetch-distance=4,1" -qopt-assume-safe-padding -align array64byte -watch=mic_cmd -fimf-arch-consistency=true -finline-limit=250 -O3 -unroll -ip -xHost ccsd_t.f
ccsd_t.f(1220): warning #7734: DEC$ ATTRIBUTES OFFLOAD is deprecated. [OFFL_CCSD_T_DOT]
cdir$ ATTRIBUTES OFFLOAD : mic :: offl_ccsd_t_dot

^
ccsd_t.f(1223): warning #7733: This directive is deprecated. For similar functionality, you can use the OpenMP* Fortran TARGET directives.
CDIR$ OFFLOAD TARGET(mic:mic_device)

^
ccsd_t.f(1559): warning #7733: This directive is deprecated. For similar functionality, you can use the OpenMP* Fortran TARGET directives.
!DIR$ OFFLOAD_TRANSFER TARGET(mic:mic_device)

^
ccsd_t.f(1584): warning #7733: This directive is deprecated. For similar functionality, you can use the OpenMP* Fortran TARGET directives.
!DIR$ OFFLOAD_TRANSFER TARGET(mic:mic_device)

^
ccsd_t.f(1604): warning #7734: DEC$ ATTRIBUTES OFFLOAD is deprecated. [OFFL_ZERO]
cdir$ ATTRIBUTES OFFLOAD : mic :: offl_zero

^
ccsd_t.f(1609): warning #7733: This directive is deprecated. For similar functionality, you can use the OpenMP* Fortran TARGET directives.
!DIR$ OFFLOAD TARGET(mic:mic_device)

^
Intel(R) Advisor can now assist with vectorization and show optimization
 report messages with your source code.
See "https://software.intel.com/en-us/intel-advisor-xe" for details.


Begin optimization report for: OFFL_ZEROFILL

   Report from: Offload optimizations [offload]


OFFLOAD:offl_zerofill_(1609,1): Offload to target MIC <expr>
Data sent from host to target
offl_zerofill_$TTT_V$35e, pointer to data with element count specified in pragma
offl_zerofill_$L_TTT_V$35f, pointer to data with element count specified in pragma
Data received by host from target

Contents

===============================================================

Begin optimization report for: CCSD_T_ESUM

   Report from: Offload optimizations [offload]

OFFLOAD:ccsd_t_esum_(1223,1): Offload to target MIC <expr>
Data sent from host to target
ccsd_t_esum_$A_SINGLES_V$2a3, pointer to data with element count specified in pragma
ccsd_t_esum_$A_DOUBLES_V$2a4, pointer to data with element count specified in pragma
ccsd_t_esum_$RESTRICTED_V$2a5, pointer to data with element count specified in pragma
ccsd_t_esum_$P6B_V$2ab, pointer to data with element count specified in pragma
ccsd_t_esum_$P5B_V$2aa, pointer to data with element count specified in pragma
ccsd_t_esum_$P4B_V$2a9, pointer to data with element count specified in pragma
ccsd_t_esum_$H3B_V$2a8, pointer to data with element count specified in pragma
ccsd_t_esum_$H2B_V$2a7, pointer to data with element count specified in pragma
ccsd_t_esum_$H1B_V$2a6, pointer to data with element count specified in pragma
ccsd_t_esum_$R_P6_V$2b7, pointer to data with element count specified in pragma
ccsd_t_esum_$R_P5_V$2b6, pointer to data with element count specified in pragma
ccsd_t_esum_$R_P4_V$2b5, pointer to data with element count specified in pragma
ccsd_t_esum_$R_H3_V$2b4, pointer to data with element count specified in pragma
ccsd_t_esum_$R_H2_V$2b3, pointer to data with element count specified in pragma
ccsd_t_esum_$R_H1_V$2b2, pointer to data with element count specified in pragma
ccsd_t_esum_$O_H1_V$2ac, pointer to data with element count specified in pragma
ccsd_t_esum_$O_H2_V$2ad, pointer to data with element count specified in pragma
ccsd_t_esum_$O_H3_V$2ae, pointer to data with element count specified in pragma
ccsd_t_esum_$O_P4_V$2af, pointer to data with element count specified in pragma
ccsd_t_esum_$O_P5_V$2b0, pointer to data with element count specified in pragma
ccsd_t_esum_$O_P6_V$2b1, pointer to data with element count specified in pragma
ccsd_t_esum_$ENERGY2_V$2b9, pointer to data with element count specified in pragma
ccsd_t_esum_$ENERGY1_V$2b8, pointer to data with element count specified in pragma
Data received by host from target
ccsd_t_esum_$ENERGY2_V$2b9, pointer to data with element count specified in pragma
ccsd_t_esum_$ENERGY1_V$2b8, pointer to data with element count specified in pragma

===============================================================

Begin optimization report for: OFFL_FREE

   Report from: Offload optimizations [offload]

OFFLOAD:offl_free_(1584,1): Offload to target MIC <expr>
Data sent from host to target
Data received by host from target

===============================================================

Begin optimization report for: OFFL_ALLOC

   Report from: Offload optimizations [offload]

OFFLOAD:offl_alloc_(1559,1): Offload to target MIC <expr>
Data sent from host to target
Data received by host from target

===============================================================
MIC command line:
ifort -c -i8 -align -fpp -qopt-report-file=stderr -qopenmp -qopt-report-phase=openmp -qopt-report-phase=offload -qopt-assume-safe-padding -align array64byte -fimf-arch-consistency=true -finline-limit=250 -O3 -unroll -ip ccsd_t.f -align array64byte -qopt-prefetch=4 -qopt-prefetch-distance=4,1
Unknown option: CG_lrb_packstore_loadunpack_are_safe
compilation aborted for ccsd_t.f (code 1)
make[3]: *** [/phi/nwchem-6.8/lib/LINUX64/libtce.a(ccsd_t.o)] Error 1
make[3]: Leaving directory `/phi/nwchem-6.8/src/tce/ccsd_t'
make[2]: *** [optimized] Error 2
make[2]: Leaving directory `/phi/nwchem-6.8/src/tce/ccsd_t'
make[1]: *** [subdirs] Error 1
make[1]: Leaving directory `/phi/nwchem-6.8/src/tce'
make: *** [libraries] Error 1



Kenny

Forum Vet
A fix for this problem is now available on the master and hotfix/release-6-8 branches
https://github.com/nwchemgit/nwchem/commit/d670b70dcbe169ef4f5dec70bebd15853995794a

Here is how you can check out the hotfix/release-6-8 (aka 6.8.1) NWChem tree

git clone -b hotfix/release-6-8 https://github.com/nwchemgit/nwchem.git nwchem-6.8.1

Gets Around
Intel 18 compilers removed support for KNC. See https://software.intel.com/en-us/articles/intel-c-compiler-180-for-linux-release-notes-for.... Please use Intel 17 compilers when building NWChem for KNC.

Forum Vet
Use of ifort 18 is now disabled for KNC offload

https://github.com/nwchemgit/nwchem/commit/b61d033b95e16c42b8d317e259486233ec1816ab

Quote:Jhammond Feb 6th 4:17 pm
Intel 18 compilers removed support for KNC. See https://software.intel.com/en-us/articles/intel-c-compiler-180-for-linux-release-notes-for.... Please use Intel 17 compilers when building NWChem for KNC.

Just Got Here
Thank you! Intel Compiler 17.0.4.196 (20170411) successfully builds 6.8.1 from git.

Quote:Edoapra Feb 6th 5:57 pm
Use of ifort 18 is now disabled for KNC offload

https://github.com/nwchemgit/nwchem/commit/b61d033b95e16c42b8d317e259486233ec1816ab

Quote:Jhammond Feb 6th 4:17 pm
Intel 18 compilers removed support for KNC. See https://software.intel.com/en-us/articles/intel-c-compiler-180-for-linux-release-notes-for.... Please use Intel 17 compilers when building NWChem for KNC.


Forum >> NWChem's corner >> Compiling NWChem