Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.

Using openmpi with the mkl's cluster library.

hs_z_
Beginner
881 Views

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

 

 

 

 


 

 

 

 


 

 

 


 

0 Kudos
5 Replies
Evarist_F_Intel
Employee
881 Views

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.

0 Kudos
hs_z_
Beginner
881 Views

 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.

0 Kudos
Evarist_F_Intel
Employee
881 Views

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.

 

0 Kudos
hs_z_
Beginner
881 Views

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.

 

 

0 Kudos
Evarist_F_Intel
Employee
881 Views

You are welcome!

0 Kudos
Reply