- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi all,
I use the following tool chains to compile the vasp.5.3.5:
1- ifort, icc, and mkl are the ones bundled in composer_xe_2011_sp1.11.339.
2- openmpi version is openmpi-1.8.7.
It's well known that linking to mkl is a complicated thing, so I use the mkl_link_tool for my case to obtain the linking line as follows:
werner@debian:/opt/intel/composer_xe_2011_sp1.11.339/mkl/tools$ ./mkl_link_tool -libs -p no --cluster_library=scalapack -m openmpi --f95
Intel(R) Math Kernel Library (Intel(R) MKL) Link Tool v1.6
==========================================================
Not supported MPI for current configuration: openmpi. Supported values for MPI: intelmpi|mpich2
Configuration
=============
MKL version: 10.3
OS: lnx
Architecture: intel64
Compiler: intel_f
Linking: dynamic
Interface layer: lp64
Parallel: no
Cluster libraries: ScaLAPACK
MPI library: openmpi
Fortran95 libraries: BLAS95, LAPACK95
werner@debian:/opt/intel/composer_xe_2011_sp1.11.339/mkl/tools$
As you can see, I meet tht error like this:
Not supported MPI for current configuration: openmpi. Supported values for MPI: intelmpi|mpich2
But, according to the help of the mkl_link_tool, I can find the following usage:
-m <ARG>, --mpi=<ARG>
MPI library
Where ARG=<intelmpi|mpich|mpich2|openmpi|msmpi|sgimpt>
If the option is not specified, "intelmpi" is assumed
(in case of cluster library option usage)
So, I cann't figure out why I meet that message. Could you please give me some hints?
Furthmore, I use the following linking line to compile the vasp.5.3..5 with the above tool chains:
-L$(MKLROOT)/lib/intel64 $(MKLROOT)/lib/intel64/libmkl_blas95_lp64.a $(MKLROOT)/lib/intel64/libmkl_lapack95_lp64.a -lmkl_scalapack_lp64 -lmkl_blacs_openmpi_lp64 -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread -lm
After I compiled the vasp successfully, I use the ldd to see the library linked into it, especially for the openmpi relative stuff, and I can nothing links to the following library at all:
libmkl_blacs_intelmpi_lp64.so
Any hints for this issue?
Regards.
Hongyi
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello, Hongyi,
The reason is that MKL does not provide dynamic BLACS library for OpenMPI. There is only static library (i.e. there is no libmkl_blacs_openmpi_lp64.so, but there is only libmkl_blacs_openmpi_lp64.a). For obtaining link line via linkline-tool please use the following line:
$ ./mkl_link_tool -libs -l static --cluster_library=scalapack -m openmpi Intel(R) Math Kernel Library (Intel(R) MKL) Link Tool v1.6 ========================================================== Output ====== Linking line: -Wl,--start-group $(MKLROOT)/lib/intel64/libmkl_scalapack_lp64.a $(MKLROOT)/lib/intel64/libmkl_blacs_openmpi_lp64.a $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a $(MKLROOT)/lib/intel64/libmkl_intel_thread.a $(MKLROOT)/lib/intel64/libmkl_core.a -Wl,--end-group -liomp5 -lpthread -lm
Please note "-l static" option.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Dear Evarist Fomenko,
Thanks a lot for your helps. I still have another issues on obtaining link line via linkline-tool as described in the following:
As you can see, in the original post by me, I use the following command:
$
./mkl_link_tool -libs -p no --cluster_library=scalapack -m openmpi --f95
So, according to your advice, I should revise my original command into the following one:
$
./mkl_link_tool -libs -l static -p no --cluster_library=scalapack -m openmpi --f95
But, I noticed that you don't use the "--f95" option at all.
In fact, for my case, I've tried the results obtained with or without "--f95" option via linkline-tool, and both the linking lines can let me compile the vasp.5.3.5 successfully.
So, the issue is, for my case, should I use the "--f95" option or not, could you please give me some hints?
Regards.
Hongyi.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hongyi,
Actually I didn't put --f95 flag because I just wanted to point how to link MKL with OpenMPI :)
Though, I've looked at VASP documentation and it looks to me that VASP doesn't use Fortran 95 interface for LAPACK. It just uses legacy Fortran 77 interface for LAPACK. So since you was success in linking w/o --f95 (I mean no unresolved references), and VASP documentation says nothing about LAPACK 95 I do believe you do not need --f95.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Dear Evarist Fomenko,
Thanks a lot. I do the further confirmation on this thing. And find that the vasp binary obtained with or without the using "--f95" option are exactly the same one.
Thanks again.
Hongyi.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
You are welcome!
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page