[Pw_forum] linking to math libraries in QE 5.0

Axel Kohlmeyer akohlmey at gmail.com
Sun May 27 22:01:26 CEST 2012


On Sun, May 27, 2012 at 3:47 PM, m <masoudnahali at gmail.com> wrote:
> on Sun May 27 16:47:28 CEST 2012 Paolo wrote :
>
>> Compare what is done in v.4.3.2 with what is done in v.5.0;
>> compare what is done for pw.x and what is done for all other codes.
>
>
>   In the below lines the compilation of pw.x and
> generate_vdW_kernel_table.f90 for QE-5.0 and QE-4.3.2 is compared. At this
> point the error appears for QE-5.0 but everything is OK for QE- 4.2 - QE
> 4.3.2.
>
>
>   QE- 5.0 :
>
>   mpif90 -g -o pw.x \
>   pwscf.o  libpw.a ../../Modules/libqemod.a ../../flib/ptools.a
> ../../flib/flib.a ../../clib/clib.a ../../iotk/src/libiotk.a
> -lmkl_scalapack_lp64 -lmkl_blacs_openmpi_lp64   -lmkl_intel_lp64
>  -lmkl_sequential -lmkl_core
> ( cd ../../bin; ln -fs ../PW/src/pw.x . )
> mpif90 -O3 -g -x f95-cpp-input -D__GFORTRAN -D__STD_F95 -D__FFTW -D__MPI
> -D__PARA -D__SCALAPACK -I../include -I../../iotk/src -I../../Modules -I. -c
> generate_vdW_kernel_table.f90
> mpif90 -g -o generate_vdW_kernel_table.x \
> generate_vdW_kernel_table.o ../../Modules/libqemod.a libpw.a
> ../../flib/ptools.a ../../flib/flib.a ../../clib/clib.a
> ../../iotk/src/libiotk.a -lmkl_scalapack_lp64 -lmkl_blacs_openmpi_lp64
> -lmkl_intel_lp64  -lmkl_sequential -lmkl_core
> /lib/../lib/libmkl_core.so: undefined reference to
> `mkl_pds_sp_blkslv_pardiso'
> /lib/../lib/libmkl_core.so: undefined reference to `mkl_lapack_zgetrf'
> /lib/../lib/libmkl_core.so: undefined reference to `mkl_serv_xerbla'
> . . .
> . . .
> . . .
>
> *** [generate_vwd_kernel_table.x] error 1
>
>
> QE- 4.3.2 :
>
> mpif90 -g -o pw.x \
>   pwscf.o  libpw.a ../Modules/libqemod.a ../flib/ptools.a ../flib/flib.a
> ../clib/clib.a ../iotk/src/libiotk.a     -lmkl_intel_lp64  -lmkl_sequential
> -lmkl_core
> ( cd ../bin; ln -fs ../PW/pw.x . )
> mpif90 -O3 -g -x f95-cpp-input -D__GFORTRAN -D__STD_F95 -D__FFTW -D__MPI
> -D__PARA -I../include -I../iotk/src -I../Modules -I. -c
> generate_vdW_kernel_table.f90
> mpif90 -g -o generate_vdW_kernel_table.x \
> generate_vdW_kernel_table.o ../Modules/libqemod.a libpw.a ../flib/ptools.a
> ../flib/flib.a ../clib/clib.a ../iotk/src/libiotk.a     -lmkl_intel_lp64
>  -lmkl_sequential -lmkl_core
> ( cd ../bin; ln -fs ../PW/generate_vdW_kernel_table.x . )
> make[1]: Leaving directory `/home/luca/QE4.3.2/espresso-4.3.2/PW'
>
> the same error happens for QE-5.0 when I make neb or pp.

well, if you look closely, you are not compiling both packages
the same way. QE-5.0 you request the inclusion of ScaLAPACK
and in QE-4.3.2 you don't. the errors you see are a result of that.

the scalapack issue is a result of changes in the GNU linker
to only satisfy undefined references "to the left". you might be
able to work around this with some GNU linker magic, if you
change the MKL related parts with:

 -Wl,--start-group -lmkl_scalapack_lp64 -lmkl_blacs_openmpi_lp64
-lmkl_gf_lp64 -lmkl_sequential -lmkl_core -Wl,--end-group

there also is an error in your older linker line by including the
intel startup code instead of the gfortran startup code.

finally, it may be more convenient to link mkl statically and this
can be done with:

-Wl,--start-group,-Bstatic -lmkl_scalapack_lp64
-lmkl_blacs_openmpi_lp64 -lmkl_gf_lp64 -lmkl_sequential -lmkl_core
-Wl,--end-group,-Bdynamic

axel.



>
> Many Thanks
>
>
>
>
> Ciao, m
>
>
>
>
> ----------------------------------------
> Masoud Nahali,
> International School for Advanced Studies (SISSA)
> Sharif University of Technology
> masoud.nahali at gmail.com
> alum.sharif.edu/~m_nahali
>
>
>
> _______________________________________________
> Pw_forum mailing list
> Pw_forum at pwscf.org
> http://www.democritos.it/mailman/listinfo/pw_forum
>



-- 
Dr. Axel Kohlmeyer
akohlmey at gmail.com  http://goo.gl/1wk0

College of Science and Technology
Temple University, Philadelphia PA, USA.



More information about the users mailing list