论文代写

基于OpenMP/MPI的大規模標量場數據并行體可視化技術探討

發布時間:2021-08-22 15:38 論文編輯:vicky
本文在大規模標量場數據體可視化技術上展開研究,  取得了部分成果,  但還有值得優化的地方,  主要體現在如下四個方面: 在基于線程并行的投影四面體算法設計方面。首先,  所有四面體網格處理完畢后再一次性載入顯存光柵化,  當網格量較大,  頂點數據將會極大占用CPU/GPU 內存,  下階段應研究分批將頂點數據載入顯存,  減少內存占用;  然后, 線程并行投影多邊形分類/拆分算法中構造了額外的頂點填充頂點數組,  雖然這些頂點不會影響最終可視化結果,  但是會增加 CPU/GPU 內存和數據傳輸開銷, 下階段研究中應確保正確繪制結果的前提下移除這些頂點數據;  最后,  本文根據深度信息計算四面體單元可見性順序,  這是一種近似的排序,  未來應該研究更加高效和精確的并行可見性排序算法,  進一步提升算法效率和準確度。

1  緒論

1.1  研究背景及意
科學計算是一門通用學科,  是指通過計算機預測、模擬和發現自然世界的客觀規律和發展過程[1],  最常見的特點是需要較大的存儲量和計算量。在電子計算機出現之前,  各種科學研究和工業設計領域通過反復試驗得出數據,  效率較低、成本高昂。自計算機出現后,  歷經幾十年時間迅猛發展,  各類復雜計算成為了可能,  通過計算機可以模擬自然界現象,  發現物理規律,  探索新的理論。科學計算實驗會產生大量數據,  科學家高效地獲取科學計算數據中蘊含的有用信息是一個重要的研究領域。
科學可視化(Scientific Visualization),  也稱為科學計算可視化,  是通過圖形和圖像的形式描述原始科學計算數據的過程,  幫助科學家和研究員更好地理解數據本身、從數據中獲取有用信息[1-5]。科學可視化以視覺形式展現復雜的數據,  可以提供清晰直觀的大數據處理分析方法,  并且通過人類熟悉的視覺隱喻增強理解。科學數據的可視化過程可以分為二維科學可視化和三維科學可視化,  廣泛使用各個領域,  比如圖像處理、計算機動畫、計算機視覺、信號處理、計算機圖形學、人機交互和計算機輔助設計等[6]。
隨著計算機硬件技術發展,  各種模擬和仿真實驗產生的數據呈爆炸式增長, 高效地從數據中獲取有用信息并得出結論是亟待解決的問題。單臺計算機的計算能力難以滿足現實需求,  基于多核和眾核架構的并行計算為大規模科學計算數據可視化提供了可能。因此,  大規模科學計算數據高效并行可視化是一個重要的研究領域,  具有廣泛應用前景。
........................

1.2  體可視化研究現狀
1.2.1  體繪制
體可視化[6-9]是使用可交互的圖形和圖像從體數據中獲取有用信息的技術, 與體數據的表示、渲染和操作密切相關,  是科學可視化領域最重要的研究課題之一。研究員早期通過幾何圖元(點、線、面)表示的方法[10]間接可視化體數據,  因此也稱為間接體繪制,  或者面繪制,  如圖 1-1a 所示;  但是,  這種方法對于三維的體數據本身會造成一個維度的缺失,  很多數據內部結構和特殊信息無法獲取。隨著體可視化技術的發展,  直接將三維體數據映射為二維圖片的算法被提出,  也稱為直接體繪制[11],  或者簡稱為體繪制,  如圖 1-1b 所示。體繪制廣泛應用于多個領域,  例如,  通過 MRI、CT、fM RI 或 PET 等技術獲取的一個二維切片序列,  使用三維重建技術生成體數據模型,  然后使用體繪制幫助醫生診斷病情并給出治療和手術意見;  工業中的 CT 技術用于無損檢測機械零件和復合材料。在計算領域, 比如計算流體力學(CFD),  模擬結果通常運行在超級計算機上,  并且通過體可視化對結果進行分析和驗證。此外,  多個傳統計算機幾何圖形學應用領域也在利用體繪制技術優勢,  比如飛行器模擬過程中使用體繪制技術讓流場更加真實[6]。相對于面繪制而言,  體繪制技術雖然可以向科學家傳遞更多的信息,  但是卻增加了算法的復雜度,  因此繪制時間也隨之增加。為了提升算法效率和交互體驗,  大量基于軟件優化和硬件加速的體繪制算法被提出。
圖 1-1  颶風數據可視化: (a)面繪制; (b)體繪制
圖 1-1  颶風數據可視化: (a)面繪制; (b)體繪制
.....................

2  大規模標量場數據體可視化基礎

2.1  體可視化理論基礎
2.1.1  體數據
體數據是三維的,  一個典型的體數據是一個(x, y, z, v)的采樣點集合,  采樣點也稱為體素, v 是三維空間(x, y, z)處的數據屬性[6]。v 可能有多值的,  包含多個可測量屬性,  比如,  顏色、密度、溫度和壓力等標量屬性;  也可能為速度等矢量。其中,  數據屬性為標量和矢量分別對應三維標量場數據和矢量場數據,  其中,  三維標量場數據體可視化是本文的重點研究內容,  矢量場數據通常也可以計算矢量模長,  用三維標量場數據可視化的方法處理。體數據也可能是時變的,  此時, 數據集會增加一個時步維度,  可看做是一個(x, y, z, t, v)的采樣點集合,  其中, t 表示時步信息。
一般來講,  體數據采樣點分布在空間中的隨機位置,  但是,  大多數情況下, 體數據集具有各向同性,  即采樣點沿著三個正交坐標軸均勻間隔,  如圖 2-1a 所示。因此,  這類體數據被定義為均勻網格,  用一個三維數組 A 存儲,  其中,  數組元素的位置表示網格中采樣點的位置,  即 A[x, y, z]表示空間(x, y, z)處的采樣值。此外, 線性網格(圖 2-1b)、曲面網格(圖 2-1c)、不規則網格(圖 2-1d)也常用于描述三維數據場。在線性網格中,  網格單元沿坐標軸對齊,  但是沿著坐標軸的網格單元間隔是任意的。當線性網格保留拓撲結構進行非線性轉換會變成曲面網格,  通常, 定義線性網格的空間稱為計算空間,  定義曲面網格的空間稱為物理空間[6]。不規則網格是一系列單元的集合,  單元之間的連接關系顯式指定,  其中,  網格單元形狀可以是任意的,  比如四面體、六面體、棱柱等。不規則網格數據體繪制算法是本文研究重點。
(a)  均勻網格  (b) 線性網格
(a)  均勻網格  (b) 線性網格 
.........................

2.2  大規模標量場數據并行體可視化理論基礎
2.2.1  并行計算
隨著計算機硬件和存儲技術發展,  大量并行計算機和系統開始出現。同時,各種計算模擬和仿真實驗的規模和精度要求提高,  傳統單機串行處理難以滿足需求,  因此,  并行計算[23-27]開始廣泛應用。并行計算是指大量的計算任務和處理器指令同時執行,  大規模問題被分解為可以同時執行的小問題。
并行計算在高性能計算領域長期使用,  但是物理因素限制了頻率縮放,  因此,引起了研究者廣泛關注。并行計算已經成為計算機體系架構中的重要范例,  主要是以多核處理器的形式出現。并行計算與并發計算緊密相關,  盡管兩者截然不同, 容易混淆,  但是經常一起使用。在并行計算中,  一個計算任務通常被劃分為多個相似的子任務,  這些子任務可以獨立處理,  并且在計算完成后將結果合并;  相反, 在并發計算中,  不同的進程通常不解決類似的問題,  當它們這樣做時,  單獨的任務可能具有變化的性質,  并且在執行過程中需要進程之間通信。
并行計算機可以根據硬件支持并行性的級別進行分類,  其中,  多核和多處理器計算機在單臺計算機上具有多個處理元素;  而集群、MPP 和網格使用多臺計算機完成同一個任務;  專用并行計算體系架構有時與傳統處理器混用,  以加速特定的計算任務[26-27]。
并行計算可以分為:  按位級、指令級、數據/任務級并行[23]。按位級并行是指增加處理器字長的并行計算形式;  指令級并行是計算機處理器可以同時處理多條指令;  數據/任務級并行是并行程序的特征,  即可以對相同或不同的數據執行完全不同的計算。其中,  按位級和指令集并行對程序員是透明的,  但是,  顯示的并行算法(尤其是使用并發的并行算法)比串行的算法更難設計,  因此并發引入了幾種新的軟件漏洞類型,  其中競爭條件最為常見。
............................

3  基于線程并行的體繪制算法研究.....................25
3.1  并行可見性排序算法.....................25
3.2  并行四面體投影分類與拆分算法.....................25
4  基于進程并行的體繪制算法設計與實現.....................30
4.1  并行數據分割算法實現.....................30
4.1.1  KD 樹理論基礎.....................30
4.1.2  并行 KD 樹體數據分割算法.....................30
5  松耦合的 C/S 并行體可視化系統設計與實現.....................45
5.1  系統需求分析....................45
5.1.1  背景及用途....................45
5.1.2  功能需求....................45

5  松耦合的 C/S 并行體可視化系統設計與實現

5.1  系統需求分析
5.1.1  背景及用途
體繪制是標量場數據可視化的重要方法,  用戶通過體繪制結果可以觀察數據體內部結構,  并從中獲取有用信息。隨著各種科學計算和仿真實驗精度要求越來越高,  產生的體數據規模呈指數級增長。因此,  高效獲取海量體數據中有用信息,  幫助科研人員更好地了解數據規律是亟待解決的問題。 此外,  由于體數據規模過于龐大,  單個處理器計算能力有限,  不能滿足大規模數據體可視化需求。因此,  基于多處理器的高效并行體可視化系統設計與實現在科學計算與仿真研究領域具有廣闊的應用前景。
5.1.2  功能需求
體繪制算法通過傳遞函數,  將標量場數據中的物理屬性映射為可見的顏色和透明度。對于一個友好的體可視化系統,  支持體繪制結果交互(旋轉、平移和縮放)的同時,  還需要提供傳遞函數修改的接口,  用戶可以動態改變傳遞函數映射, 并及時獲得反饋結果。
5.1.3  性能需求
體繪制是非常耗時的算法,  以及系統面向大規模標量場數據體可視化,  對于性能要求非常高。本文系統高效可視化大規模標量場數據的同時,  還要求對體繪制結果可以實時交互,  因此,  需要對系統性能進行多方面優化工作,  提供良好的用戶體驗效果。
............................

6  總結與展望

(1) 本文總結
三維標量場數據體可視化一直是科學可視化領域的重點研究內容,  在計算流體力學、醫學影像、氣象氣候學等領域有廣泛的應用前景。隨著科技發展,  各種科學計算與仿真實驗產生的體數據規模越來越大,  給體繪制領域發展帶來了新的挑戰。本文重點研究了大規模標量場并行體可視化技術,  首先,  研究并實現了基于 OpenMP 線程并行的投影四面體算法,  用于非結構網格體繪制,  充分利用了多核處理器的計算資源;  然后,  設計并實現了基于MPI 進程并行的體繪制算法, 解決大規模標量場數據體繪制問題;  最后,  設計并實現了松耦合的 C/S 并行體可視化系統,  支持體繪制交互和傳遞函數修改。此外,  還使用圖片壓縮技術降低了C/S 通信開銷,  以及傳遞函數延時更新方法和兩層 LOD 模型提升交互體驗
(2) 展望
本文在大規模標量場數據體可視化技術上展開研究,  取得了部分成果,  但還有值得優化的地方,  主要體現在如下四個方面:
在基于線程并行的投影四面體算法設計方面。首先,  所有四面體網格處理完畢后再一次性載入顯存光柵化,  當網格量較大,  頂點數據將會極大占用CPU/GPU 內存,  下階段應研究分批將頂點數據載入顯存,  減少內存占用;  然后, 線程并行投影多邊形分類/拆分算法中構造了額外的頂點填充頂點數組,  雖然這些頂點不會影響最終可視化結果,  但是會增加 CPU/GPU 內存和數據傳輸開銷, 下階段研究中應確保正確繪制結果的前提下移除這些頂點數據;  最后,  本文根據深度信息計算四面體單元可見性順序,  這是一種近似的排序,  未來應該研究更加高效和精確的并行可見性排序算法,  進一步提升算法效率和準確度。
參考文獻(略)
如果您有論文代寫需求,可以通過下面的方式聯系我們
點擊聯系客服

在線客服

售前咨詢
售后咨詢
微信號
Essay_Cheery
微信