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