現場可編程門陣列(FPGA)]進行編程
發布時間:2016/12/8 16:54:15 訪問次數:2148
搭配ni labview進行多核編程關鍵詞:ni labview圖形化編程方法 多核編程
時間:2016-12-08 15:25:44 來源:網絡
- 51電子網公益庫存:
- 74HC175D-Q100J
- 74AHC273BQ-Q100X
- 74LVC374AD-Q100J
- 74LVC374AD
- 74LVC374AD112
- 74LVC374AD118
- 74LVC273PW-Q100J
- 74HC166N
- 74HC32D
- 74HCT377PW112
- 74HCT377PW118
- 74HCT377PW-Q100J
ni labview圖形化編程方法不僅省時,還很適合對多核處理器和其他并行硬件[如:現場可編程門陣列(fpga)]進行編程。 其中一項優勢是:通過2個、4個或更多核將應用程序自動擴展至cpu,通常無需更多編程努力。 此外,圖形化labview代碼還有助工程師與科學家可視化顯示并行操作,因為它天生代表工業和院校采用的最流行并行編程模式。并行編程的挑戰
并行編程正很快成為用來構建大多數多核處理器的必要。 出于許多原因(包括:能耗與內存帶寬),現代處理器具有非常遲滯的時鐘頻率;cpu制造商卻開始在單芯片上納入多個處理器內核同時維持乃至降低時鐘頻率。 因為不能仰賴時鐘頻率的增加來自動加速應用程序,現在您必須設計出在多核處理器上運行的應用程序。 未來,如果您不花時間優化針對多核處理器的應用程序,可能發現性能出現減退。
為解決這項挑戰,許多工具被用來幫助您創建能夠利用多核處理器的代碼。 您能手動地將代碼塊分配至線程;這樣,許多操作系統都可以將這些線程擴展到不同的處理器內核上。 然而,管理這些線程費時而且困難。 此外,各種語言和api對部分關乎線程的工作進行抽象,但它們仍需要您確切指定能夠并行運行的操作類型。
圖1. cpu時鐘頻率停止增長;多核處理器的性能現在得到提升。
自動利用多核處理器
在labview中編程涉及到創建類似流程圖的圖形化代碼(g),這與使用傳統的順序語言進行編程迥然不同。 這被稱為數據流編程。 labview程序不編寫逐個執行的命令序列,而包含將一個變量連至下一個的變量與運算符——labview編譯器自動確定命令的先后順序以便執行繼而產生正確的結果。 這也意味著:借助labview,代碼的兩個并行部分在相互獨立時,能夠在一個多核處理器的不同核上同時運行。
如需視覺化顯示該部分,請考慮圖2中簡單的算術程序。labview會認為:不論是乘與加函數還是減函數,都能同時執行;它們不會相互依賴著執行。
圖2. 獨立的代碼路徑可同時執行。
labview編譯器可辨識程序框圖上許多不同的并行代碼,并在運行的同時將那些部分映射至數量固定的線程。 這能防止您手動處理線程細節,同時避免創建過多可能危及性能的線程。
手動線程創建
labview自動處理線程并利用多核處理器的能力,并不意味著:您在需要時無法控制此事。 例如,您或許希望獨立一項特定任務,如:專用、優先級線程中的緊急狀態監控。 labview定時結構包含定時循環,每個都能創建一個供結構內代碼運行的單一線程,并能夠通過在開發期間或者運行時設置處理器親和度選項被分配到特定處理器內核。 憑借labview,您無需放棄在必要時對低層的訪問,就能聚焦在自己全力解決的問題上,而不是花時間將代碼映射至多核處理器。
交互顯示并行代碼
labview在利用多核cpu時具備另一項重要優勢: 并行代碼的直觀圖形化表現。 當您能使用傳統的順序語言來創建并行程序時,持續跟蹤并行操作會是一項艱巨挑戰。 此外,由于開發者往往聯手創建大型應用程序,破解他人編寫的并行代碼甚至比破解您自己的代碼更困難。
相反,labview數據流編程方式帶來一種最基本的通信形式——流程圖。 多年來,順序編程人員一直通過創建流程圖來記錄程序元素并且相互通信。 不用將流程圖詮釋為順序代碼或者反其道而行,您能在圖形化數據流代碼中直接執行理念。 您還能快速辨識運行在不同處理器內核上的并行代碼路徑。
labview圖形化代碼直觀地代表了工業和院校采用的最常見并行編程模式。 某些流行模式包含:任務并行機制、數據并行機制和流水線操作。
任務并行機制
任務并行機制代表:2個或更多能夠并行執行的單獨操作。 在右方的labview代碼中,請注意:濾波器和快速傅立葉變換(fft)的操作并不相互依賴,所以它們能在多個處理器內核上同步執行。
圖3. 任務并行機制的范例
數據并行機制
數據并行是一種常用編程模式;您能拆分大塊數據并在融合結果之前同時處理各個部分。 注意:上述代碼中數據通道的拆分、處理和重新組合。
圖4. 數據并行機制的范例
流水線技術
流水線技術代表一類操作流水線,其中的函數反復執行并且將它們的數據傳遞至下一項操作來完成下一個循環。 在labview中,流水線技術可用被稱為反饋節點的單位延遲。
圖5. 流水線技術的范例
大多數實際應用程序(如:射頻信號處理和圖像分析),提供這些內容和其他并行編程模式的集合。 例如,您能在一個labview程序框圖中執行多條流水線,同時代表任務并行機制和流水線技術。 憑借labview,您能通過直觀顯示并行代碼,優化面向多核處理器的應用。
強大的圖形化調試工具
解決最富挑戰的工程問題
除了對多核cpu編程,您還能搭配使用labview和其他并行硬件(包括:fpga、圖形化處理單元,乃至計算云)。 這些硬件平臺都有各自獨有的特征、優勢和折衷;labview能夠幫助工程師與科學家利用適合工作的平臺。 由于labview針對這些不同的硬件部分,您能采用圖形化編程處理具有不同并行處理需求的多類項目。
事實上,探究行星上某些最復雜工程問題(從搜尋聚變,到控制世界上最大的天文望遠鏡)的研究者,正結合labview與各類并行硬件目標實現應用。 最終,labview出面幫助各個領域的專家快速將理念轉換為有用的程序。 由于labview能夠采用直觀的圖形化代碼自動利用多核處理器,您能繼續使用最新的并行硬件來克服新一代的工程挑戰。
調試是開發各類應用程序時的一個重要環節,labview同時包含內置圖形化調試功能和針對附加工具的連接,有助了解并行程序操作。 例如,借助labview中的高亮執行功能,您能同時觀察操作和并行數據流中數據的流動和執行,labview桌面執行跟蹤工具包顯示應用事件的確切順序。 此外,在運行實時操作系統的labview硬件目標上,ni實時執行跟蹤工具包顯示哪個線程運行在哪個cpu內核并配有詳細時間信息的完整編程歷史——幫助您辨識并修正優先級倒置等問題;其中,使用共享資源的低優先級任務總是等候更高優先級任務。 能夠查看哪些線程、何時、在哪個內核上在運行,以及它們訪問哪些資源,意味著您無需揣測就能調試性能和可靠性。
搭配ni labview進行多核編程關鍵詞:ni labview圖形化編程方法 多核編程
時間:2016-12-08 15:25:44 來源:網絡
- 51電子網公益庫存:
- 74HC175D-Q100J
- 74AHC273BQ-Q100X
- 74LVC374AD-Q100J
- 74LVC374AD
- 74LVC374AD112
- 74LVC374AD118
- 74LVC273PW-Q100J
- 74HC166N
- 74HC32D
- 74HCT377PW112
- 74HCT377PW118
- 74HCT377PW-Q100J
ni labview圖形化編程方法不僅省時,還很適合對多核處理器和其他并行硬件[如:現場可編程門陣列(fpga)]進行編程。 其中一項優勢是:通過2個、4個或更多核將應用程序自動擴展至cpu,通常無需更多編程努力。 此外,圖形化labview代碼還有助工程師與科學家可視化顯示并行操作,因為它天生代表工業和院校采用的最流行并行編程模式。并行編程的挑戰
并行編程正很快成為用來構建大多數多核處理器的必要。 出于許多原因(包括:能耗與內存帶寬),現代處理器具有非常遲滯的時鐘頻率;cpu制造商卻開始在單芯片上納入多個處理器內核同時維持乃至降低時鐘頻率。 因為不能仰賴時鐘頻率的增加來自動加速應用程序,現在您必須設計出在多核處理器上運行的應用程序。 未來,如果您不花時間優化針對多核處理器的應用程序,可能發現性能出現減退。
為解決這項挑戰,許多工具被用來幫助您創建能夠利用多核處理器的代碼。 您能手動地將代碼塊分配至線程;這樣,許多操作系統都可以將這些線程擴展到不同的處理器內核上。 然而,管理這些線程費時而且困難。 此外,各種語言和api對部分關乎線程的工作進行抽象,但它們仍需要您確切指定能夠并行運行的操作類型。
圖1. cpu時鐘頻率停止增長;多核處理器的性能現在得到提升。
自動利用多核處理器
在labview中編程涉及到創建類似流程圖的圖形化代碼(g),這與使用傳統的順序語言進行編程迥然不同。 這被稱為數據流編程。 labview程序不編寫逐個執行的命令序列,而包含將一個變量連至下一個的變量與運算符——labview編譯器自動確定命令的先后順序以便執行繼而產生正確的結果。 這也意味著:借助labview,代碼的兩個并行部分在相互獨立時,能夠在一個多核處理器的不同核上同時運行。
如需視覺化顯示該部分,請考慮圖2中簡單的算術程序。labview會認為:不論是乘與加函數還是減函數,都能同時執行;它們不會相互依賴著執行。
圖2. 獨立的代碼路徑可同時執行。
labview編譯器可辨識程序框圖上許多不同的并行代碼,并在運行的同時將那些部分映射至數量固定的線程。 這能防止您手動處理線程細節,同時避免創建過多可能危及性能的線程。
手動線程創建
labview自動處理線程并利用多核處理器的能力,并不意味著:您在需要時無法控制此事。 例如,您或許希望獨立一項特定任務,如:專用、優先級線程中的緊急狀態監控。 labview定時結構包含定時循環,每個都能創建一個供結構內代碼運行的單一線程,并能夠通過在開發期間或者運行時設置處理器親和度選項被分配到特定處理器內核。 憑借labview,您無需放棄在必要時對低層的訪問,就能聚焦在自己全力解決的問題上,而不是花時間將代碼映射至多核處理器。
交互顯示并行代碼
labview在利用多核cpu時具備另一項重要優勢: 并行代碼的直觀圖形化表現。 當您能使用傳統的順序語言來創建并行程序時,持續跟蹤并行操作會是一項艱巨挑戰。 此外,由于開發者往往聯手創建大型應用程序,破解他人編寫的并行代碼甚至比破解您自己的代碼更困難。
相反,labview數據流編程方式帶來一種最基本的通信形式——流程圖。 多年來,順序編程人員一直通過創建流程圖來記錄程序元素并且相互通信。 不用將流程圖詮釋為順序代碼或者反其道而行,您能在圖形化數據流代碼中直接執行理念。 您還能快速辨識運行在不同處理器內核上的并行代碼路徑。
labview圖形化代碼直觀地代表了工業和院校采用的最常見并行編程模式。 某些流行模式包含:任務并行機制、數據并行機制和流水線操作。
任務并行機制
任務并行機制代表:2個或更多能夠并行執行的單獨操作。 在右方的labview代碼中,請注意:濾波器和快速傅立葉變換(fft)的操作并不相互依賴,所以它們能在多個處理器內核上同步執行。
圖3. 任務并行機制的范例
數據并行機制
數據并行是一種常用編程模式;您能拆分大塊數據并在融合結果之前同時處理各個部分。 注意:上述代碼中數據通道的拆分、處理和重新組合。
圖4. 數據并行機制的范例
流水線技術
流水線技術代表一類操作流水線,其中的函數反復執行并且將它們的數據傳遞至下一項操作來完成下一個循環。 在labview中,流水線技術可用被稱為反饋節點的單位延遲。
圖5. 流水線技術的范例
大多數實際應用程序(如:射頻信號處理和圖像分析),提供這些內容和其他并行編程模式的集合。 例如,您能在一個labview程序框圖中執行多條流水線,同時代表任務并行機制和流水線技術。 憑借labview,您能通過直觀顯示并行代碼,優化面向多核處理器的應用。
強大的圖形化調試工具
解決最富挑戰的工程問題
除了對多核cpu編程,您還能搭配使用labview和其他并行硬件(包括:fpga、圖形化處理單元,乃至計算云)。 這些硬件平臺都有各自獨有的特征、優勢和折衷;labview能夠幫助工程師與科學家利用適合工作的平臺。 由于labview針對這些不同的硬件部分,您能采用圖形化編程處理具有不同并行處理需求的多類項目。
事實上,探究行星上某些最復雜工程問題(從搜尋聚變,到控制世界上最大的天文望遠鏡)的研究者,正結合labview與各類并行硬件目標實現應用。 最終,labview出面幫助各個領域的專家快速將理念轉換為有用的程序。 由于labview能夠采用直觀的圖形化代碼自動利用多核處理器,您能繼續使用最新的并行硬件來克服新一代的工程挑戰。
調試是開發各類應用程序時的一個重要環節,labview同時包含內置圖形化調試功能和針對附加工具的連接,有助了解并行程序操作。 例如,借助labview中的高亮執行功能,您能同時觀察操作和并行數據流中數據的流動和執行,labview桌面執行跟蹤工具包顯示應用事件的確切順序。 此外,在運行實時操作系統的labview硬件目標上,ni實時執行跟蹤工具包顯示哪個線程運行在哪個cpu內核并配有詳細時間信息的完整編程歷史——幫助您辨識并修正優先級倒置等問題;其中,使用共享資源的低優先級任務總是等候更高優先級任務。 能夠查看哪些線程、何時、在哪個內核上在運行,以及它們訪問哪些資源,意味著您無需揣測就能調試性能和可靠性。
上一篇:LE:鏡頭像平面的擴充距離