Forum Jump

Select Group :
Select Forum :
Sorted By :
Sort Order :
From The :
 
Thread Tools  Search this thread 
csv610
Total Points:
100
Status Points:
50
Green Belt
July 26, 2008 11:36 AM PDT
MKL linking options

Hello,

I have installed Intel-MKL software package on my Intel-Core-2 machine with
Ubuntu-64 bit OS.

It seems there are many linking options and looks very confusing too. Can someone
tell what are the best options to use ?

Confusion points:
1.    gnu_thread v/s intel threads
2.    lp64 v/s ilp64
3.    guide
4.    iomp5
5.    sp2dp 

I don't know what are 3-5 libraries.

Thanks,

Chaman Singh Verma
Poona, India
tim18
Total Points:
68,987
Status Points:
68,987
Black Belt
July 26, 2008 2:56 PM PDT
Rate
 
#1
1.  I haven't seen this documented either.  I suppose, if for some reason you chose to use libgomp rather than libiomp5, you would use gnu thread rather than intel thread. Then, presumably, you would not be able to use Intel compiler option -fopenmp.  This would enable an MKL thread build linked against OpenMP run-time .so to run on a system with gcc 4.2 or newer installed, without requiring libiomp5.so to be present.  I'm not certain how valuable a consideration this is, as it seems to involve a combination of linking MKL static with the exception of dynamic OpenMP.
2.  This has been explained several times.  The "i" in ilp64 stands for integer, meaning that the integer arguments for MKL functions are all 64-bit data types.  lp64 means that the int arguments are 32-bit data types, while still in 64-bit pointer mode.  There are several scripts which include lp64, core, and intel thread libraries; if you want to change any of those selections, including use of ilp64, you must avoid those scripts which would produce conflicts.  You would require the ilp64 for cases where you must specify a data region >8GB.  64-bit integer data types include C long long and Fortran integer(selected_int_kind(12)) or default integer promoted by -i8.
3.  libguide is the "legacy" Intel OpenMP run-time library, backward compatible with MKL 9.x and Intel 9.x and 10.0 compilers.  It is not compatible with gnu OpenMP, nor with future Intel compilers or MKL.  Intel 10.1 compilers use it as a default for -openmp.  
It looks like the OpenMP profiling option is available only with libguide, requiring Intel thread profiler to be installed.
4.  libiomp5 supports gnu openmp calls (gcc/g++/gfortran -fopenmp) as well as Intel 10.1 -openmp.  With Intel 10.1 compilers, it may be selected by -openmp-lib=compat.  The next major Intel release will likely make it the only OpenMP version available. 
On Windows, libiomp5 is compatible with VC9 -openmp, not with libgomp.
5.  sp2dp doesn't appear to be documented for general use.   It looks like it translates single precision function names to the double precision ones, to support changing from all single precision Fortran to all double precision by a -autodouble switch.  If my interpretation is right, sp2dp itself doesn't translate data formats, only function names.
We could get clarification if the above isn't sufficient.


gfedorov
Total Points:
520
Registered User
September 9, 2008 3:44 AM PDT
Rate
 
#2 Reply to #1

Hi Chaman Singh Verma,

I’d recommend to read mkl userguide.pdf (you can find this doc in ..doc folder). You can find there all info you asked here.

--Gennady





Intel Software Network Forums Statistics

8488 users have contributed to 31627 threads and 100752 posts to date.
In the past 24 hours, we have 33 new thread(s) 138 new posts(s), and 198 new user(s).

In the past 3 days, the most popular thread for everyone has been gemm(A,A,A) like possible? The most posts were made to Crash when loading skeleton The post with the most views is Dear Steve, excuse me for a d

Please welcome our newest member chat1983