LabVIEW 小技巧教學 II - Parallel For Loop
寫過 LabVIEW 程式的使用者應該都知道,如果把兩個 While 迴圈平行放在程式裡的話,他們就會平行的運作。如果您的電腦是多核心的,那這兩個迴圈甚至可以同時的在多核心 CPU 上執行。這樣一來,我們不但可以善用多核心的硬體,同時也讓程式效率更加提升。您接著可能想問,既然 While Loop 可以,那 For Loop 也行嗎? LabVIEW 2009 Parallel For Loops 新功能便可以回答您的問題!
|
什麼是Parallel For Loop ?
Parallel For Loop 是一個可以讓多顆 CPU 核心執行同一個 For Loop 的新功能。例如說,如果您在一台雙核心的電腦上寫了一個 100 個迴圈的 For Loop,那麼這個功能就可以在 CPU0 上執行 50 次,另 50 次則在 CPU1 上執行。這樣一來,我們便能善用我們的多核心電腦,程式執行的速度就也會跟著大大的提升!
Parallel For Loop 其實與之前的 For 迴圈是一樣的,唯一不同的地方,就在於它多了一個選項,讓您可以指定要使用幾顆 CPU 核心來執行這個迴圈。您可以選擇是否要打開此功能,如果要打開,您只需要在For 迴圈的邊緣點滑鼠右鍵,選擇 Configure Iteration Parallelism …,設定視窗出現後,您只需要把 Enable loop iteration parallelism 勾選起來就可以了。
設定完畢之後,For 迴圈的左上方就會出現一個新接點 (“P”),您只需要把您想使用的 CPU 核心數目接進去,便可以達到 Parallel For Loop 的功能。
其他版本若升級至LabVIEW 2009,還可使用
Tools >> Profile >> “Find
Parallelizable Loops”
功能,以判定迴圈是否適合使用 Parallel For Loop,並藉此提升原本的效能。
CPU Information Pallet
如果想要使用 Parallel For Loop 的功能,那您當然必須先知道您的電腦上有幾顆 CPU 核心可以使用。如果要從 LabVIEW 程式裡讀取電腦系統上的資訊,您往往需要使用 Call Library Function Node,寫出較複雜的程式,來讀取 Windows API 的 DLL,以得到此資訊。這就是為什麼 LabVIEW 2009 提供了一個新的 CPU Information API,幫助您能更迅速地得到電腦 CPU 的資訊。
CPU Information.vi 被存放在 Programming >> Applications Control >> CPU Information 的目錄底下,您可以透過此 VI,直接讀取電腦上 CPU 核心的數量。
[小提醒] Parallel For loop 只有多核心電腦可以使用嗎?其實,Parallel For loop 的功能並沒有限制單核心的電腦不能使用它,但是由於電腦是單核心的,所以使用出來的效果會跟正常的For loop 一樣。只有再多核心 電腦上才能看到 Parallel For loop 的真正效果。
沒有留言:
張貼留言