Installing software in your home directory: Difference between revisions

Jump to navigation Jump to search
Link Advisor not just for GCC
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> which isn't 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 quite simple, you need only 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 also [https://software.intel.com/en-us/mkl-linux-developer-guide-using-the-mkl-compiler-option here]. 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 for building the link syntax which you can use [https://software.intel.com/en-us/articles/intel-mkl-link-line-advisor here].
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-->
Bureaucrats, cc_docs_admin, cc_staff
2,773

edits

Navigation menu