LabVIEW 禁止其他可多核心處理的應用程式在所有核心上執行
主要軟體:
主要軟體版本: 8.5
主要軟體修正版本:
次要軟體: N/A
問題: 在安裝完 LabVIEW 之後,一些應用程式只能在一個核心上執行,而在安裝之前,我的應用程式可以在多個核心上跑。不論我是否打開 LabVIEW 都會發生相同的情形。請問這是什麼狀況,並且我該如何解決?
解答: 在安裝 LabVIEW 的時候,安裝檔會去設定一個 Windows 環境變數(environment variable),叫作 MKL_SERIAL,將其設為
YES 。這是一個 Intel Math Kernel Library 的設定,會使得這個 library 以序列(serial)的方式執行。 LabVIEW 本身就有多執行緒(multithreading)的功能,並且一定要將 MKL_SERIAL 設為
YES 以用來將各個執行緒送至這個 library 中。
這使得 LabVIEW 可以更為巧妙地產生出適合您程式的執行緒。 Intel 在這個 library 裡提供了一些多執行緒的處理,但是在許多情形之下您卻需要關掉這個功能,所以 Intel 他們建議應用程式或是編譯器自行來處理多執行緒。倘若您其他的應用程式不能處理它們自己的執行緒,將 MKL_SERIAL 的值設成
YES 將會使它們受到限制,變成只能在單一核心環境上執行。原因是這些應用程式是靠 library 來處理自己的執行緒。
假如在執行 LabVIEW 時 MKL_SERIAL 的值被設為
NO ,您可能會遇到記憶體出錯以及 LabVIEW 控制執行緒的能力被減弱,因此我們不建議在這樣的設定下執行 LabVIEW 。如果您真的必須要更動這個環境變數的值,請確保在執行 LabVIEW 之前將其改回為
YES 。
相關連結:
附加檔案:
報告日期: 01/29/2008
最後更新: 11/06/2008
文件偏號: 4HSJBBXK
Other Support Options
Ask the NI Community
Collaborate with other users in our discussion forums
Request Support from an Engineer
A valid service agreement may be required, and support options vary by country.