高速數(shù)據流盤處理:編程與標定
數(shù)據流盤應用的最優(yōu)方法
應用從單線程到多線程架構的演進被廣泛認為是重大的編程挑戰(zhàn)。LabVIEW為多核處理器提供了一個理想的編程環(huán)境,因為LabVIEW應用在本質上是多線程的。因而,LabVIEW編程人員通過幾乎很少甚至無需額外的編碼,便可以從多核處理器獲益。多線程應用程序非常適用于并行測試和數(shù)據流盤應用,而且,在流處理應用中運用適當?shù)木幊碳夹g,可以使PXI Express儀器發(fā)揮最大性能,這是通過代碼的并行化完成的。
同樣,并行機制還可以應用于創(chuàng)建數(shù)據流盤應用或從計算機處理器獲取最大性能。在流盤應用中,兩個主要占用總線和處理器的任務是:1)從數(shù)字化儀采集數(shù)據,和2)將數(shù)據寫入到文件中。由于這一點是事先知道的,所以進程可以劃分為多個循環(huán)。利用LabVIEW隊列機構,每個循環(huán)間實現(xiàn)了數(shù)據共享。通常,這被稱為一個生產者-消費者算法結構。
圖2:帶有隊列結構的生產者/消費者循環(huán)架構。
在上例中,上面的循環(huán)(生產者)從一個高速數(shù)字化儀中采集數(shù)據,并將其傳遞至一個隊列。下面的循環(huán)(消費者)從隊列中讀取數(shù)據并將其寫入到磁盤。在后臺,LabVIEW為隊列在PC中分配一個存儲塊。該存儲器模塊被用作兩個循環(huán)間數(shù)據傳遞的臨時存儲FIFO。對于大多數(shù)編程語言,多個進程間的存儲器共享要求不菲的編程開銷。然而,LabVIEW處理了所有的存儲器訪問,以確保讀-寫競爭狀況不會發(fā)生。隊列結構的執(zhí)行可以通過下圖可視化展示:
圖3:對列結構的數(shù)據流編程模型。
評論