[Pw_forum] compile attempt with external BLAS and intel MKL (espresso-5.2.1)

Kane O'Donnell kane.odonnell at gmail.com
Tue Nov 10 04:23:22 CET 2015


Hi Andrew,

Are you trying to just build espresso 5.2.1, or are you trying to build it using some custom linear algebra libraries? On a Cray you’re encouraged strongly *not* to stuff around with custom BLAS/FFT/scalapack/etc. The programming environments are set up so you don’t need to do that, and for example on our XC40 you can build SVN espresso just with:

module swap PrgEnv-cray PrgEnv-gnu
./configure —enable-parallel —with-scalapack=yes FC=ftn CC=cc 
make all

You can do the same for PrgEnv-intel (it’s exactly the same configure line) but it’s still wise to use the MKL link line advisor to change make.sys as necessary - you can copy and paste directly from the link line advisor as Cray set $MKLROOT properly when you load PrgEnv-intel.

Our cluster guys made a wiki entry about QE on the XC40 using the intel suite here:

https://portal.ivec.org/docs/Supercomputers/Magnus/Quantum_Espresso <https://portal.ivec.org/docs/Supercomputers/Magnus/Quantum_Espresso>

It’s not quite the same as the link line advisor but it works (except XSpectra, you need the gnu environment to get that to work on our XC40 for some reason). 

Kane


> On 10 Nov 2015, at 01:10, Andrew Downs <andrew.downs at mail.com> wrote:
> 
> Hello,
>  
> I've been able to jump a few hurdles that have come up in my compile process, but this one has me stumped.
> I'm compiling on a Cray XC-40, and another researcher here was able to build 5.1.1 with out BLAS and MKL libraries.
> He and I assumed 5.2.1 should also work under the same circumstances, but this may turn out not to be the case.
>  
> my configure line is as follows:
> 
> ./configure ARCH=x86_64 MPIF90=ftn FFLAGS="-O3" CC=icc CFLAGS=-O3 --prefix=/usr/cta/unsupported/qe/espresso-5.2.1
>  
> relevant part of make.sys:
>  
> LDFLAGS=--static -I/opt/intel/compilers_and_libraries_2016.0.109/linux/mkl/include/  -I/opt/intel/compilers_and_libraries_2016.0.109/linux/mkl/include/intel64/lp64/
> BLAS_LIBS=/opt/intel/compilers_and_libraries_2016.0.109/linux/mkl/lib/intel64/libmkl_sequential.a -Wl,--end-group /opt/intel/compilers_and_libraries_2016.0.109/linux/mkl/lib/intel64/libmkl_blacs_intelmpi_lp64.a -lpthread -lm
> LAPACK_LIBS=/opt/intel/compilers_and_libraries_2016.0.109/linux/mkl/lib/intel64/libmkl_intel_lp64.a /opt/intel/compilers_and_libraries_2016.0.109/linux/mkl/lib/intel64/libmkl_core.a
> SCALAPACK_LIBS=/opt/intel/compilers_and_libraries_2016.0.109/linux/mkl/lib/intel64/libmkl_scalapack_lp64.a -Wl,--start-group
> FFT_LIBS=/opt/intel/compilers_and_libraries_2016.0.109/linux/mkl/lib/intel64/libmkl_cdft_core.a
>  
>  
> make all output:
> ftn --static -I/opt/intel/compilers_and_libraries_2016.0.109/linux/mkl/include/  -I/opt/intel/compilers_and_libraries_2016.0.109/linux/mkl/include/intel64/lp64/ -o pw.x \
>            pwscf.o  libpw.a ../../Modules/libqemod.a ../../flib/ptools.a ../../flib/flib.a ../../clib/clib.a ../../iotk/src/libiotk.a /opt/intel/compilers_and_libraries_2016.0.109/linux/mkl/lib/intel64/libmkl_scalapack_lp64.a -Wl,--start-group /opt/intel/compilers_and_libraries_2016.0.109/linux/mkl/lib/intel64/libmkl_intel_lp64.a /opt/intel/compilers_and_libraries_2016.0.109/linux/mkl/lib/intel64/libmkl_core.a /opt/intel/compilers_and_libraries_2016.0.109/linux/mkl/lib/intel64/libmkl_cdft_core.a /opt/intel/compilers_and_libraries_2016.0.109/linux/mkl/lib/intel64/libmkl_sequential.a -Wl,--end-group /opt/intel/compilers_and_libraries_2016.0.109/linux/mkl/lib/intel64/libmkl_blacs_intelmpi_lp64.a -lpthread -lm
> /opt/intel/compilers_and_libraries_2016.0.109/linux/mkl/lib/intel64/libmkl_core.a(mkl_memory.o): In function `mkl_serv_set_memory_limit':
> ../../../../serv/kernel/mkl_memory.c:(.text+0x521): warning: Using 'dlopen' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
> /opt/intel/compilers_and_libraries_2016.0.109/linux/mkl/lib/intel64/libmkl_blacs_intelmpi_lp64.a(dgesd2d_.o): In function `dgesd2d_':
> ../../../../scalapack/BLACS/SRC/MPI/dgesd2d_.c:(.text+0x92): undefined reference to `mkl_serv_get_mpi_wrappers'
> /opt/intel/compilers_and_libraries_2016.0.109/linux/mkl/lib/intel64/libmkl_blacs_intelmpi_lp64.a(dgesd2d_.o): In function `dsendrecv_':
> ../../../../scalapack/BLACS/SRC/MPI/dgesd2d_.c:(.text+0x142): undefined reference to `mkl_serv_get_mpi_wrappers'
> ../../../../scalapack/BLACS/SRC/MPI/dgesd2d_.c:(.text+0x162): undefined reference to `mkl_serv_get_mpi_wrappers'
> ../../../../scalapack/BLACS/SRC/MPI/dgesd2d_.c:(.text+0x1aa): undefined reference to `mkl_serv_get_mpi_wrappers'
> ../../../../scalapack/BLACS/SRC/MPI/dgesd2d_.c:(.text+0x1da): undefined reference to `mkl_serv_get_mpi_wrappers'
> /opt/intel/compilers_and_libraries_2016.0.109/linux/mkl/lib/intel64/libmkl_blacs_intelmpi_lp64.a(dgesd2d_.o):../../../../scalapack/BLACS/SRC/MPI/dgesd2d_.c:(.text+0x1ea): more undefined references to `mkl_serv_get_mpi_wrappers' follow
> make[2]: *** [pw.x] Error 1
> make[2]: Leaving directory `/p/home/adowns/espresso-5.2.1/PW/src'
> make[1]: *** [pw] Error 1
> make[1]: Leaving directory `/p/home/adowns/espresso-5.2.1/PW'
> make: *** [pw] Error 1
>  
> _______________________________________________
> Pw_forum mailing list
> Pw_forum at pwscf.org
> http://pwscf.org/mailman/listinfo/pw_forum

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.quantum-espresso.org/pipermail/users/attachments/20151110/1e4ad8f6/attachment.html>


More information about the users mailing list