13.07.2015 Views

Intel(R) - Computational and Systems Biology at MIT

Intel(R) - Computational and Systems Biology at MIT

Intel(R) - Computational and Systems Biology at MIT

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

6 <strong>Intel</strong>® M<strong>at</strong>h Kernel Library User’s GuideNote also th<strong>at</strong> if <strong>Intel</strong> MKL is called in a parallel region, it will use only one thread bydefault. If you want the library to use nested parallelism, <strong>and</strong> thread within a parallelregion is compiled with the same OpenMP compiler as <strong>Intel</strong> MKL is using, you mayexperiment with setting MKL_DYNAMIC to FALSE <strong>and</strong> manually increasing the number ofthreads.In general, you should set MKL_DYNAMIC to FALSE only under circumstances th<strong>at</strong> <strong>Intel</strong>MKL is unable to detect, for example, when nested parallelism is desired where the libraryis called already from a parallel section.MKL_DYNAMIC being TRUE, in particular, provides for optimal choice of the number ofthreads in the following cases:• If the requested number of threads exceeds the number of physical cores (perhapsbecause of hyper-threading), <strong>and</strong> MKL_DYNAMIC is not changed from its default valueof TRUE, <strong>Intel</strong> MKL will scale down the number of threads to the number of physicalcores.• If you are able detect the presence of MPI, but cannot determine if it has been called ina thread-safe mode (it is impossible to detect this with MPICH 1.2.x, for instance), <strong>and</strong>MKL_DYNAMIC has not been changed from its default value of TRUE, <strong>Intel</strong> MKL will runone thread.MKL_DOMAIN_NUM_THREADSMKL_DOMAIN_NUM_THREADS accepts a string value , which must havethe following form<strong>at</strong>: ::= { } ::= [ * ] ( | | | ) [ * ] ::= ::= MKL_ALL | MKL_BLAS | MKL_FFT | MKL_VML ::= [ * ] ( | |) [ * ] ::= ::= | |In the syntax above, MKL_BLAS indic<strong>at</strong>es the BLAS function domain, MKL_FFT indic<strong>at</strong>esnon-cluster FFTs, <strong>and</strong> MKL_VML indic<strong>at</strong>es the Vector M<strong>at</strong>hem<strong>at</strong>ics Library.For example,MKL_ALL 2 : MKL_BLAS 1 : MKL_FFT 46-10

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!