cc_staff
153
edits
(expanded mkl a bit) |
|||
Line 26: | Line 26: | ||
== BLAS/LAPACK and MKL == | == BLAS/LAPACK and MKL == | ||
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 | 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]. | ||
== apt-get and yum == <!--T:7--> | == apt-get and yum == <!--T:7--> |