lapack, blas basic info

lapack, blas basic info

A previous post (Sept. 3) said "You must link with the lapack library, before the mkl library, if you require functions from it."

My question is, "What is the lapack libraries and mkl libraries?"

The mkl directory has many libraries, most all of which I don't know what they do. And what is an "explicit" link?

My thought would be something like:

-L/opt/intel/mkl60/lib/32 -lmkl

to "explicitly" link to mkl, since one of the libraries in the directory is . Or is an explicit link simply a path to the mkl directory


Would an "explicit" link lapack be:

-L/opt/intel/mkl60/lib/32 -lmkl_lapack

The Fortran compiler's guide lists 7 default libraries the compiler always specifies (begining of Libraries chapter). But if there is a -L to the directory doesn't the linker searches all the libraries in some way that satisfies all the external appropriately? Why do I need to "explicitly" link.

Sorry for such a basic question. But shouldn't Intel put a paragraph about this in their Fortran compiler's guide somewhere? (Also, I am not a moocher. Our department has bought at least a dozen Intel licenses and one year support packages recently as we begin transitioning to Linux. It's just taking awhile for me to get our IT people to give me one of them.)

3 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

Yes, you can link with the -L and -l specifications you mentioned. I agree that a few working examples would be useful. As a paying customer, you might make that suggestion on

There should be a short explanation of which libraries are in your version. Typically, for mkl, there are alternate versions, one requiring a p4 compatible CPU, one requiring p3 compatibility, and one "default." Then there is the one for lapack, and there is a libguide to support openmp in case a run-time kit is being installed separately from the Intel compiler, which already has that library. I hope I've represented it reasonably well.

With a given binary build, you can use ldd to find out which libraries it will require to run.


I found very good info in /opt/intel/mkl60/doc/mkluse.htm

This info does not seem to be in the Intel Fortran Compiler User's Guide (which is what I was using) but is essential if one is to properly use the Intel math and lapack libraries.

Leave a Comment

Please sign in to add a comment. Not a member? Join today