Bureaucrats, cc_docs_admin, cc_staff
2,879
edits
(Link Advisor not just for GCC) |
(Marked this version for translation) |
||
Line 49: | Line 49: | ||
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. | 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. | ||
<!--T:23--> | |||
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. | 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. | ||
<!--T:24--> | |||
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>. | 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>. | ||