Multifunction DAQ

cancel
Showing results for 
Search instead for 
Did you mean: 

Why is MKL_SERIAL=YES after installing Labview


  After installing Labview 8.21 , it is noticed that the environmental variable "MKL_SERIAL=YES " is set.   I want to know if this is an important setting.
We are using dual-core machines and when this variable is set to the value "YES" , it disables other applications that make use of the Intel math libraries from taking advantage of both cores.

   Will I get in trouble if I override the Labview installer and unset  MKL_SERIAL?





0 Kudos
Message 1 of 2
(3,277 Views)
Hi Amadinw,
I did some research, and here's what I found. From Intel:  (http://www.intel.com/software/products/mkl/docs/mklusew.htm) 's documentation on one of the use cases for MKL parallelism: User threads the program using OpenMP* directives and/or pragmas and compiles the program using a compiler other than a compiler from Intel. This is more problematic in that setting OMP_NUM_THREADS in the environment affects both the compiler's threading library and the threading library with Intel® MKL. At this time, the safe approach is to set MKL_SERIAL=YES (or MKL_SERIAL=yes), which forces the library to serial mode regardless of OMP_NUM_THREADS value.
What this means is that LabVIEW will handle multithreading of the math library and the library should not attempt to do so itself.  If there are more than one application that tries to spin threads off the MKL, they might corrupt the memory or impair LabVIEW's ability to handle threading properly.  LabVIEW can utilize multicore because it can create its own threads, but if your other applications cannot spin their own threads, they will have to run in a single core environment.
Hope this information helps.

Yi Y.
Applications Engineer
National Instruments
http://www.ni.com/support
Message 2 of 2
(3,248 Views)