linking to MKL
Posted: Mon Mar 01, 2010 5:12 pm
Dear all,
I would like to compile yambo linking with BLAS/LAPACK/BLACS/SCALAPACK included within the MKL/Intel.
So, I just add the following line:
LDFLAGS="-i-dynamic $MKL_PATH/libmkl_scalapack_lp64.a $MKL_PATH/libmkl_solver_lp64_sequential.a -Wl,--start-group $MKL_PATH/libmkl_intel_lp64.a $MKL_PATH/libmkl_sequential.a $MKL_PATH/libmkl_core.a $MKL_PATH/libmkl_blacs_openmpi_lp64.a -Wl,--end-group -lpthread"
as an option of the configure script (the link should be right, being "automatically" generated using an Intel script).
Now, the problem is that the configure does not find the libraries. The reason, I guess, is that it does not try to compile a file where a call to some of the above libraries is done,
whereas, taking BLACS as an example, searches for files like:
cinit_lib=`find $with_blacs -name '*blacsCinit*.a'`
blacs_lib=`find $with_blacs -name '*blacs.a'`
That means that ANY "alternative" library which is not built using the standard packages, will never be detected if other library file names are used.
Any hint on how to resolve the issue?
The final configure report looks like:
#
# [VER] 3.2.1 r.448
#
# [SYS] linux@x86_64
# [SRC] /home/nm_settings/install_work_dir/yambo/yambo-3.2.1-r.448
# [BIN] /home/nm_settings/software/CODES/yambo/yambo-3.2.1-r.448/bin_QE4.0/bin
# [FFT] FFTW Fast Fourier transform
#
# [ ] Double precision
# [X] Redundant compilation
# [X] MPI
# [ ] PW (3.2) support
# [ ] ETSF I/O support
# [ ] SCALAPACK
# [X ] NETCDF/Large Files
# [XX ] Built-in BLAS/LAPACK/LOCAL
#
# [ CPP ] icc -E -ansi
# [ C ] icc -g -O2 -D_C_US -D_FORTRAN_US
# [MPICC] mpicc -g -O2 -D_C_US -D_FORTRAN_US
# [ F90 ] ifort -assume bscc -O3 -ip -xW
# [MPIF ] mpif90 -assume bscc -O3 -ip -xW
# [ F77 ] ifort -assume bscc -O3 -ip -xW
# [Cmain] -nofor_main
# [NoOpt] -assume bscc -O0 -xW
#
# [ MAKE ] make
# [EDITOR] vim
#
Thanks,
Giovanni
I would like to compile yambo linking with BLAS/LAPACK/BLACS/SCALAPACK included within the MKL/Intel.
So, I just add the following line:
LDFLAGS="-i-dynamic $MKL_PATH/libmkl_scalapack_lp64.a $MKL_PATH/libmkl_solver_lp64_sequential.a -Wl,--start-group $MKL_PATH/libmkl_intel_lp64.a $MKL_PATH/libmkl_sequential.a $MKL_PATH/libmkl_core.a $MKL_PATH/libmkl_blacs_openmpi_lp64.a -Wl,--end-group -lpthread"
as an option of the configure script (the link should be right, being "automatically" generated using an Intel script).
Now, the problem is that the configure does not find the libraries. The reason, I guess, is that it does not try to compile a file where a call to some of the above libraries is done,
whereas, taking BLACS as an example, searches for files like:
cinit_lib=`find $with_blacs -name '*blacsCinit*.a'`
blacs_lib=`find $with_blacs -name '*blacs.a'`
That means that ANY "alternative" library which is not built using the standard packages, will never be detected if other library file names are used.
Any hint on how to resolve the issue?
The final configure report looks like:
#
# [VER] 3.2.1 r.448
#
# [SYS] linux@x86_64
# [SRC] /home/nm_settings/install_work_dir/yambo/yambo-3.2.1-r.448
# [BIN] /home/nm_settings/software/CODES/yambo/yambo-3.2.1-r.448/bin_QE4.0/bin
# [FFT] FFTW Fast Fourier transform
#
# [ ] Double precision
# [X] Redundant compilation
# [X] MPI
# [ ] PW (3.2) support
# [ ] ETSF I/O support
# [ ] SCALAPACK
# [X ] NETCDF/Large Files
# [XX ] Built-in BLAS/LAPACK/LOCAL
#
# [ CPP ] icc -E -ansi
# [ C ] icc -g -O2 -D_C_US -D_FORTRAN_US
# [MPICC] mpicc -g -O2 -D_C_US -D_FORTRAN_US
# [ F90 ] ifort -assume bscc -O3 -ip -xW
# [MPIF ] mpif90 -assume bscc -O3 -ip -xW
# [ F77 ] ifort -assume bscc -O3 -ip -xW
# [Cmain] -nofor_main
# [NoOpt] -assume bscc -O0 -xW
#
# [ MAKE ] make
# [EDITOR] vim
#
Thanks,
Giovanni