安装了LabVIEW之后,其他多核任务无法运行在所有核上



主要软件:
主要软件版本: 8.5
主要软件修正版本: N/A
次要软件: N/A

问题: 在安装了LabVIEW之后,一些应用程序只能运行在单核上了。在安装之前,我的这些应用程序是在所有核上都运行的。这个现象无论是否打开LabVIEW都会存在。为什么会出现这个问题,我该如何解决?

解答: 安装LabVIEW的时候,安装包会设置一个Windows的环境变量的值,将环境变量为MKL_SERIAL的值改为YES。这是一个Intel的数学核心库的设置,让核心库运行在串行模式。LabVIEW自己控制多线程机制,并且必须要将MKL_SERIAL设置为YES来讲这些线程流到这个库中。

这样设置可以使得LabVIEW智能地创建最适合您当前程序的线程。Intel的这个库提供了相当数量的多线程机制,但是也有很多情况需要将这个功能关闭掉,然后使得一些应用程序/编译器自行处理这些多线程任务。如果您的其他应用程序无法自已处理多线程任务,那么将MKL_SERIAL设置为YES的操作会限制它们只能在单核上运行。这是因为这些程序需要依赖这个库来调配这些线程。

如果将MKL_SERIAL设置为NO,同时LabVIEW还在运行的话,您可能会遇到内存崩溃的问题,同时LabVIEW处理多线程的功能会受到损坏。所以在这样的设置下,不推荐来运行LabVIEW。如果你必须要更改这个环境变量的值的话,需要确保在运行LabVIEW之前,这个值改到YES。




相关链接:

附件:





报告日期: 01/29/2008
最近更新: 07/29/2014
文档编号: 4HSJBBXK