更換登入信箱  | 未收到確認信  | 忘記密碼  | 註冊  | 登入
|
|
登入‧會員服務
新聞 論壇
教學 下載
專欄 影音
LabVIEW轉檔
分享
搜尋
產品評測
技術文章
資源中心
線上購物
資料代管
手機簡訊
LabSMS
LabEmail
外包 專案人才
外包 360團隊
聯絡我們
技術文章:Parallel For Loop
Parallel For Loop
發佈時間:2010/6/9 上午 11:58:47

  寫過 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 ?

  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 核心的數量。

  把 # of logical processors 的輸出接點連接到 Parallel For Loop 上,您就可以指定此 For 迴圈使用的核心數量了。

  

 

[小提醒] Parallel For loop 只有多核心電腦可以使用嗎?其實,Parallel For loop 的功能並沒有限制單核心的電腦不能使用它,但是由於電腦是單核心的,所以使用出來的效果會跟正常的For loop 一樣。只有再多核心 電腦上才能看到 Parallel For loop 的真正效果。  


原文出自於虛擬儀控季刊2009年第四季"LabVIEW 2009 – 使您的系統效能獲得進一步提升" 

↓ 滑鼠左鍵測試器 ↓
 列印格式
|
 寄給朋友
|
 加到最愛
|
 意見回饋
|
 加到知識庫
|
 開啟知識庫
|

  |  我的最愛 隱私權保護政策 免責聲明 廣告刊登 系統整合 合作提案 聯絡我們 電話: 0988-002692

  您可以在以下的頻道跟LabVIEW360互動:
  Facebook: https://www.facebook.com/labview360
  Twitter: https://twitter.com/LabVIEW360
  Youtube: https://www.youtube.com/user/Labview360com