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

Lapack with openMP

maria
Beginner
607 Views
Hi there,

In my company we have an application which uses Lapack subroutines developed by university of Tennessee (www.netlib.org/lapack). Since we can redistribute the source code, so we adopted the software in our application.
Our users can either get our application source code or executible file.

Recently we started looking at openMP and want to implement openMP in our application. The most compuational time
is spent in Lapack subroutine for our application. It would take us substantional effort to change these subroutines.SinceIntel@ Math kernel comes with multithread lapack package, we are thinking that we should take advantage of this offer.

Our questions are these:We have IVF professional 10.1. How do we use Lapack from Intel@ math kernel? Is it a *dll fileto be includedwhen we compile the code? Or do you have source code that we can redistribute to our users.
Another question is thatwe have users that don't have Intel fortran compiler. If we distribute them thesource code or executibles, will they abletorun the application or compilethe code on their own.

Thanks a lot.

0 Kudos
7 Replies
TimP
Honored Contributor III
607 Views
The link options which support a static link with MKL lapack (not requiring dll distribution) are documented in the link advisor in the right column of the header page of this forum. You also are entitled to use the dll link and include the required dll with your distribution. Either of these methods would work for your customers to run the .exe you provide.
It seems unlikely that your customers could recompile your Fortran and use effectively with MKL without installing Intel Fortran. They should be able to use the same version you specified or newer ones. Other brands of Fortran use different run time libraries.
0 Kudos
maria
Beginner
607 Views
CAn you please provide the exact link please?

0 Kudos
maria
Beginner
607 Views
Quoting - tim18
The link options which support a static link with MKL lapack (not requiring dll distribution) are documented in the link advisor in the right column of the header page of this forum. You also are entitled to use the dll link and include the required dll with your distribution. Either of these methods would work for your customers to run the .exe you provide.
It seems unlikely that your customers could recompile your Fortran and use effectively with MKL without installing Intel Fortran. They should be able to use the same version you specified or newer ones. Other brands of Fortran use different run time libraries.
I would appreciate it very much if you can provide me the link. Somehow, I can not find it in the right column of the header page. Thanks a lot.
0 Kudos
TimP
Honored Contributor III
607 Views
Quoting - maria
I would appreciate it very much if you can provide me the link. Somehow, I can not find it in the right column of the header page. Thanks a lot.
http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor/
0 Kudos
maria
Beginner
607 Views

Thanks a lot. The link is very helpful. Theanother question I have is that there is no option for Unix OS from the above link. Does this mean that a Unix user can not run the application with MKL library? If so, what dll or *lib files he should have?
0 Kudos
Gennady_F_Intel
Moderator
607 Views
Quoting - maria

Thanks a lot. The link is very helpful. Theanother question I have is that there is no option for Unix OS from the above link. Does this mean that a Unix user can not run the application with MKL library? If so, what dll or *lib files he should have?

maria,
no, Unix user can link and run their applications with MKL. First of all - You need to select OS as Linux and after that, follow by others Linker Adviser topics..
0 Kudos
TimP
Honored Contributor III
607 Views
Quoting - maria

Thanks a lot. The link is very helpful. Theanother question I have is that there is no option for Unix OS from the above link. Does this mean that a Unix user can not run the application with MKL library? If so, what dll or *lib files he should have?
No Unix OS is specifically supported by MKL. It's likely that MKL may work with Unix-like operating systems which have linux link compatibility, but I haven't heard of any specific testing. The thread option would require full linux pthreads library compatibility (and avoidance of OpenMP library conflicts), so I suppose the sequential option might be less demanding. If you have a linux link compatibility, you would need to find out which linux architecture it matches (ia32/i686, intel64/x86_64, ia64). Other architectures (ppc, sparc, ....) definitely will not work.
Perhaps you are running a system such as Altix which overlays Unix capabilities on linux (Itanium/ia64 or Xeon/intel64). Then MKL works directly with the underlying linux.
The linux suggestions on link advisor are specific to recent gnu binutils. They would tell you which group of libraries are needed, but details such as how to deal with circular references might vary, even under nominal linux compatibility. On linux, .so libraries inherently take care of circular references, so the group options shown in link advisor aren't required. The shared and static libraries follow the usual Unix convention of identical names except for .so or .a suffix.
0 Kudos
Reply