Bureaucrats, cc_docs_admin, cc_staff
2,879
edits
No edit summary |
(Link Advisor not just for GCC) |
||
Line 47: | Line 47: | ||
== BLAS/LAPACK and MKL == <!--T:10--> | == BLAS/LAPACK and MKL == <!--T:10--> | ||
Many software packages expect the commonly used numerical linear algebra libraries BLAS and LAPACK to be available as <tt>-lblas</tt> and <tt>-llapack</tt> | Many software packages expect the commonly used numerical linear algebra libraries BLAS and LAPACK to be available as <tt>-lblas</tt> and <tt>-llapack</tt>. This is not the case on Compute Canada systems, where these libraries are integrated with Intel's [https://software.intel.com/en-us/mkl Math Kernel Library] (MKL). If you are using one of the Intel compilers (e.g. ifort, icc and icpc) then the solution is to add the flag <tt>-mkl=sequential</tt> (without internal MKL threading) or <tt>-mkl</tt> (with threading) to your compiler and linker options in order to ensure that the MKL and thus BLAS/LAPACK are used. See [https://software.intel.com/en-us/mkl-linux-developer-guide-using-the-mkl-compiler-option here] for more on the significance of <code>sequential</code> and other options. | ||
If you are using a non-Intel compiler, for example the Gnu compiler collection, then you will need to explicitly list the necessary MKL libraries during the link phase. Intel provides a tool called the [https://software.intel.com/en-us/articles/intel-mkl-link-line-advisor MKL Link Advisor] to help you find the correct compiler and linker options. | |||
The same [https://software.intel.com/en-us/articles/intel-mkl-link-line-advisor MKL Link Advisor] tool is also useful if you receive "undefined reference" errors while using Intel compilers and <code>-mkl</code>. | |||
== apt-get and yum == <!--T:7--> | == apt-get and yum == <!--T:7--> |