◢▆▅▄▃崩╰(〒皿〒)╯潰▃▄▅▇◣
先來看一個例子:
這是個單純浪費系統資源的計算式,目的在於測量這個 For 迴圈進行一些計算的時候需要耗時多久,此時可以看到右方的時間顯示約 0.267 秒。此為未做任何設定的 For 迴圈。
如果要設定為多核心技術支援,那麼請在 For 迴圈邊上按右鍵,選擇
接著可以看到設定的視窗,請將
接著便會看到原本的 For 迴圈的 N 下面就多了一個 P ,這個是指定要使用多少個核心來運算,同樣的在 LabVIEW 2014 中,如果 P 是沒有接線的,那麼系統將會自動判斷並使用。
所以可以看到相同的程式碼,耗時便從 0.267 秒縮短為 0.038 秒。這針對需要大量計算卻又要節省計算時間的人而言是一大福音!
但是!
這個功能也有其使用的限制:
- 迴圈中不得有 Feedback Node
- 迴圈中不得使用 Shift Register
- 迴圈中不得有其他迴圈包含未初始化的 Shift Register
同樣的,如果迴圈中偷機用了 Functional Global Variable(FGV) ,那麼也會導致程式無法執行喔!畢竟要將運算分散到各CUP處理,自然資料之間本來就不可以互相相關。
由此可知,這樣的計算不適用於各種閉迴路控制器,或是其他無法獨立作業的控制。
以上簡單針對 For Loop Iteration Parallelism 介紹。