• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      海量超聲數(shù)據(jù)體可視化研究

      2016-05-31 07:26:01潘衛(wèi)國何寧薛健呂科翟銳代雙鳳
      電子學(xué)報 2016年2期
      關(guān)鍵詞:海量數(shù)據(jù)并行計算

      潘衛(wèi)國何 寧薛 健呂 科翟 銳代雙鳳

      (1.中國科學(xué)院大學(xué)工程管理與信息技術(shù)學(xué)院,北京100049; 2.北京聯(lián)合大學(xué)信息學(xué)院,北京100101)

      ?

      海量超聲數(shù)據(jù)體可視化研究

      潘衛(wèi)國1,何寧2,薛健1,呂科,翟銳1,代雙鳳1

      (1.中國科學(xué)院大學(xué)工程管理與信息技術(shù)學(xué)院,北京100049; 2.北京聯(lián)合大學(xué)信息學(xué)院,北京100101)

      摘要:近年來,隨著科學(xué)數(shù)據(jù)的快速增長,海量數(shù)據(jù)的可視化分析成了急需解決的難題.越來越多的處理海量數(shù)據(jù)的方法向著并行、分布式處理的方向發(fā)展.本文提出了一種混合的框架來處理海量的超聲數(shù)據(jù),該框架通過整合多種硬件環(huán)境和計算資源來處理海量數(shù)據(jù);所有的數(shù)據(jù)都存放在一個基于高速網(wǎng)絡(luò)環(huán)境的數(shù)據(jù)共享中心,具有高性能顯卡的前端工作站將耗時的處理任務(wù)分配到網(wǎng)絡(luò)中的計算結(jié)點,而自身處理顯示和交互的操作;同時基于OpenCL和OpenMP實現(xiàn)了可視化算法在GPU和CPU上的并行計算;核外算法應(yīng)用在本框架中來處理海量的體數(shù)據(jù).實驗結(jié)果表明,本文提出的框架不僅可以處理海量數(shù)據(jù),而且具有較高的交互性能.

      關(guān)鍵詞:體繪制;圖形處理器;核外技術(shù);并行計算;海量數(shù)據(jù)

      1 引言

      近年來,隨著大型科學(xué)計算以及圖形圖像技術(shù)的快速發(fā)展,數(shù)據(jù)可視化領(lǐng)域待處理的數(shù)據(jù)量已經(jīng)遠遠超過了目前的數(shù)據(jù)處理能力.在體可視化領(lǐng)域,隨著體數(shù)據(jù)的快速增長,迫切期待計算設(shè)備的處理能力能夠得到進一步提高;尤其是在國內(nèi)外應(yīng)用最廣泛、使用頻率最高的超聲檢測技術(shù)領(lǐng)域,因其具有檢測對象范圍廣,檢測深度大;缺陷定位準確,靈敏度高;成本低,使用方便;速度快,對人體無害以及便于現(xiàn)場使用等特點;正向著智能化、自動化、圖像化、數(shù)字化、信息化和交叉領(lǐng)域的前沿方向發(fā)展.當(dāng)然硬件設(shè)備本身的升級換代是最有效的途徑,但在絕大部分條件下是不能夠無限制地實現(xiàn)的.因此在現(xiàn)有的設(shè)備條件下如何能進一步發(fā)揮設(shè)備使用效率,如何有效提高體繪制速度就成為必然的研究趨勢,而可以有效地滿足這種對計算能力需求的途徑就是充分利用網(wǎng)絡(luò)分布式環(huán)境中的各種計算資源.

      作為科學(xué)計算可視化技術(shù)的一個分支,體繪制是一種三維數(shù)據(jù)場可視化方法,在近二十年的發(fā)展過程中取得了相當(dāng)大的進步,它利用圖形學(xué)原理通過計算來顯示三維數(shù)據(jù)場中有意義信息.對三維數(shù)據(jù)場內(nèi)的形體不進行專門的建模,不生成幾何圖元,二維圖像由三維數(shù)據(jù)場經(jīng)過計算直接生成,能夠顯示形體的內(nèi)部信息.該方法產(chǎn)生數(shù)據(jù)場的整體圖像,具有圖像質(zhì)量高、對數(shù)據(jù)的表現(xiàn)力強、便于并行計算的優(yōu)點,但計算量太大.尤其是面對這海量的數(shù)據(jù),如何快速的處理海量數(shù)據(jù)來提高繪制速度成為亟待解決的問題[1].

      2 研究現(xiàn)狀

      體繪制最早由Levoy[2]于1988年提出,用于輔助科學(xué)家理解三維數(shù)據(jù)場,如CT,MRI類型的醫(yī)學(xué)數(shù)據(jù)或有限元分析(FEA)的計算結(jié)果等.該方法采用光線投射(ray casting)算法對數(shù)據(jù)場進行采樣和積分,直接將三維數(shù)據(jù)轉(zhuǎn)化為圖像.Kniss等[3]引入了高維傳遞函數(shù)并設(shè)計了編輯界面,使得用戶能夠通過調(diào)節(jié)傳遞函數(shù)觀察數(shù)據(jù)場中不同特征的分布情況.

      海量數(shù)據(jù)的單機繪制方法可以分為硬件加速、數(shù)據(jù)壓縮和核外計算;硬件加速利用圖形硬件自帶的三線性插值等功能將復(fù)雜的光線投射過程轉(zhuǎn)移到圖形處理器(Graphics Processing Unit,GPU)上進行,通過GPU的流式并行計算模式實現(xiàn)加速.儲駿[4]提出了一種改進的算法,使用Cg語言編寫頂點和片段著色程序,只需要繪制一個代理面就能獲取光線的起始點,但其使用預(yù)先計算梯度并保存的方法獲取體素法向量,內(nèi)存占用量大.楊金柱[7]等基于CPU的代理幾何生成算法和GPU共同完成體繪制,很好的解決了多組織標定與重建速度優(yōu)化問題.張慧滔[5]等人利用GPU來加速單層螺旋CT數(shù)據(jù)的重建.袁斌[6]針對均勻數(shù)據(jù)場可視化的問題,提出了一種改進的GPU光線投射算法,算法采用按需實時計算梯度的方法,省略無效體素的梯度計算過程,效率較高,但算法使用匯編語言實現(xiàn),編程比較復(fù)雜.基于GPU的體繪制雖然計算速度得到了提升,但是也存在著瓶頸;體數(shù)據(jù)將通過總線從系統(tǒng)內(nèi)存?zhèn)鬟f到顯存中,這是GPU流水線中最慢的一個部分,因此傳遞的數(shù)據(jù)量應(yīng)該盡可能地小;對大紋理進行采樣是一個相當(dāng)耗時的操作,如果紋理的大小大于GPU內(nèi)的紋理高速緩存,那么紋理采樣耗時將會非常耗時.復(fù)雜的像素渲染[7]也會造成明顯的瓶頸.

      在數(shù)據(jù)壓縮方面,Wang等[8]引入圖像質(zhì)量度量的方法,使得壓縮后的數(shù)據(jù)更易于用戶理解.Lindstrom等[9]則提出了一種對浮點格式數(shù)據(jù)進行快速壓縮的方法,它能夠與應(yīng)用程序的I/O環(huán)節(jié)無縫連接且適用于可變精度的浮點或整型數(shù)據(jù),這些方法與繪制過程無關(guān),具有普遍的適用性.但是這些方法由于對原始數(shù)據(jù)進行了壓縮,降低了成像的質(zhì)量.

      在核外計算(out-of-core)方面,F(xiàn)arias等[10]最早將核外計算用于大規(guī)模非結(jié)構(gòu)化網(wǎng)格的體繪制,利用外部存儲器對每個網(wǎng)格單元執(zhí)行求交、排序和積分操作,從而得到大數(shù)據(jù)的繪制結(jié)果.Gobbetti等[11]提出了一種只需遍歷數(shù)據(jù)一次的核外計算方法.這類方法利用有限的計算資源處理大規(guī)模數(shù)據(jù),能夠在一定程度上解決大數(shù)據(jù)的繪制難題,但效率遠不如并行的方法.汪萌等在海量多媒體數(shù)據(jù)可視化[12]和輔助標記[13]方面的研究也取得了卓有成效的效果.

      近年來,利用GPU構(gòu)建分布式的計算與可視化平臺成為了可視化領(lǐng)域的研究熱點.Fan等[14]利用GPU集群進行流體的仿真計算和可視化,提出了一種新的架構(gòu),通過設(shè)計雙層的體系結(jié)構(gòu)(粗粒度下操作全局紋理,細粒度下進行單節(jié)點的運算)將MPI與分布式共享內(nèi)存(distributed shared memory DSM)有機地結(jié)合起來,從而大幅提升計算和繪制的效率.Fogal等[15]基于MPI在分布式的多GPU上進行了大規(guī)模數(shù)據(jù)的并行體繪制,通過使用k-D樹對數(shù)據(jù)進行劃分和負載平衡的優(yōu)化,數(shù)秒內(nèi)便能繪制出千億級體素的數(shù)據(jù)集.曹軼等[16]基于本地并行機和分布式圖形工作站,給出了一種混合并行繪制模型.該模型的工作原理是先將源數(shù)據(jù)存留在并行機,然后通過并行機的多處理器發(fā)布遠程繪制命令流,進而通過操控工作站的圖形硬件完成繪制;后期圖像合成在并行機上執(zhí)行,以發(fā)揮共享存儲通信優(yōu)勢.但是這些處理方法需要后期執(zhí)行圖像合成的操作,所以系統(tǒng)的內(nèi)存的大小將會成為處理海量數(shù)據(jù)能力的瓶頸[17].

      在海量標量場數(shù)據(jù)處理和可視化領(lǐng)域,雖然國內(nèi)外研究者已經(jīng)取得了大量基礎(chǔ)性研究成果[18],但仍然缺乏一個技術(shù)成熟,目標明確,方便可用的海量數(shù)據(jù)處理和可視化系統(tǒng),本文提出了一種基于分布式混合架構(gòu)的海量數(shù)據(jù)處理及可視化系統(tǒng)及與其相適應(yīng)的數(shù)據(jù)處理和可視化方法,由分布式混合架構(gòu)的海量數(shù)據(jù)處理及可視化硬件系統(tǒng)和運行此基礎(chǔ)上實現(xiàn)相應(yīng)數(shù)據(jù)處理和可視化方法的軟件系統(tǒng).

      3 系統(tǒng)框架

      本框架的主要的思想是充分利用現(xiàn)有的計算資源和硬件加速設(shè)備.同時為了滿足實時交互的需要,使用預(yù)覽體數(shù)據(jù)的結(jié)構(gòu)來提升交互性能.本文所提出的可視化硬件系統(tǒng)包括前端工作站和計算節(jié)點;前端工作站要求性能較高,主要處理實時性和交互性要求較高的操作;計算結(jié)點則可以是各種類型的計算機或硬件,可以運行各種類型的主流操作系統(tǒng),用于耗時操作的分布式處理.前端工作站上運行的是圖形界面,負責(zé)渲染顯示,交互操作以及各種計算任務(wù)的協(xié)調(diào),同時負責(zé)將耗時的計算任務(wù)分配到各計算結(jié)點執(zhí)行;計算結(jié)點上運行的是一個后臺計算服務(wù)程序,監(jiān)聽從前端工作站發(fā)送過來的計算指令并調(diào)用相應(yīng)的計算模塊執(zhí)行計算任務(wù).系統(tǒng)框架通過前端工作站和計算結(jié)點的協(xié)同工作可以處理海量數(shù)據(jù).系統(tǒng)的總體框架結(jié)構(gòu)如圖1所示:

      從上述圖1中可以看出,多種硬件環(huán)境和技術(shù)整合在系統(tǒng)框架中來完成對于海量數(shù)據(jù)的三維交互操作;所有的體數(shù)據(jù)都存儲在數(shù)據(jù)存儲中心,通過高速網(wǎng)絡(luò)環(huán)境進行共享.需要實時顯示的交互操作由硬件加速和并行計算算法運行在前端工作站.同時前端工作站也可以自適應(yīng)地選擇合適的數(shù)據(jù)尺寸進行處理.耗時的計算任務(wù)通過高速網(wǎng)絡(luò)分配到各個計算結(jié)點進行計算.使用OpenCL和OpenMP實現(xiàn)了體繪制算法在GPU 和CPU上的并行處理來加速繪制速度,同時使用了層次的體數(shù)據(jù)結(jié)構(gòu)使交互級別達到實時的效果;核外算法應(yīng)用在本框架中來處理海量的數(shù)據(jù).體數(shù)據(jù)首先通過前端工作站從數(shù)據(jù)共享中心加載,在加載的過程中將會根據(jù)初始體數(shù)據(jù)的大小來產(chǎn)生預(yù)覽體數(shù)據(jù)和分級體數(shù)據(jù),這樣可以提升交互的響應(yīng)性能.如果初始體數(shù)據(jù)大于預(yù)設(shè)的閾值,該計算任務(wù)將會分配到相應(yīng)的計算結(jié)點進行計算,當(dāng)計算任務(wù)完成后,結(jié)果將會存放到共享數(shù)據(jù)中心并通知前端工作站進行顯示.

      3.1分級體數(shù)據(jù)

      當(dāng)處理海量數(shù)據(jù)時,耗時的加載過程將會影響系統(tǒng)的總體性能.本文提出的框架采用分級的體數(shù)據(jù)結(jié)構(gòu)解決這個問題,如圖2所示.

      當(dāng)開始加載數(shù)據(jù)時,系統(tǒng)首先產(chǎn)生一個預(yù)覽體數(shù)據(jù),這樣使用者就可以在第一時間觀測到所加載的體數(shù)據(jù);第二步是根據(jù)加載數(shù)據(jù)的大小產(chǎn)生分級的體數(shù)據(jù),如果產(chǎn)生的下一級體數(shù)據(jù)大于預(yù)設(shè)的閾值,將會按照圖2繼續(xù)分割,最后產(chǎn)生的體數(shù)據(jù)將會存放在一個列表中.在這一部分,我們設(shè)計并實現(xiàn)了一個類來縮放相關(guān)的分級體數(shù)據(jù),這個類的輸入和輸出都是一個體數(shù)據(jù),可以自適應(yīng)的來尋找要顯示的體數(shù)據(jù).本系統(tǒng)中最小的預(yù)覽體數(shù)據(jù)是32 MB,這一閾值的確定與前端工作站的硬件性能有關(guān),其基本要求是數(shù)據(jù)量等于這一閾值的數(shù)據(jù)做體繪制渲染時渲染速度至少要達到15幀/秒以上,以滿足交互操作的需求.這一預(yù)處理過程可以作為數(shù)據(jù)加載的一部分,由計算節(jié)點完成,處理完成后多級標量場數(shù)據(jù)存儲在數(shù)據(jù)存儲中心備用.

      3.2GPU加速

      目前,圖形處理器的計算能力越來越強大,速度也越來越快,極大地提高了計算機圖形處理的速度和圖像質(zhì)量,為可視化工作提供了很好的基礎(chǔ).

      本框架利用圖形硬件自帶的三線性插值功能來完成光線投射算法中耗時的采樣、插值過程,并將繁瑣的合成運算轉(zhuǎn)移到GPU上進行.實現(xiàn)的基本流程圖如圖3所示:

      計算光線進入數(shù)據(jù)場的點:將顏色立方體的前表面繪制到一幅2D紋理上,此時由紋理像素的RGB值所組成的三元數(shù)組即為當(dāng)前視線與由三維數(shù)據(jù)場映射成的3D紋理的第一個交點的坐標,即光線的進入數(shù)據(jù)場的點的坐標.

      計算光線離開數(shù)據(jù)場的點:將顏色立方體的后表面繪制到一幅2D紋理上.將這幅紋理和前表面紋理逐像素相減,就可以得到光線在數(shù)據(jù)場中行進的距離,設(shè)定合適的采樣步長對數(shù)據(jù)場進行遍歷.

      將體數(shù)據(jù)作為3D紋理載入顯存:使用基于GPU的光線投射算法需要在進行繪制之前將數(shù)據(jù)載入到顯存中,所以在這一步進行時首先要確定對體數(shù)據(jù)進行插值前分類還是插值后分類,因為只有確定分類方法,才能確定將體數(shù)據(jù)以何種形式映射到顯存中.采用插值前分類方法,不僅需要4倍的存儲空間(R,G,B,A四個通道,即體數(shù)據(jù)大小×4),而且由于采樣時的插值對象不再是原始數(shù)據(jù),會降低圖像的質(zhì)量,而采用插值后分類方法,直接將體數(shù)據(jù)作為3D紋理載入到顯存中,就不會出現(xiàn)上述情況.

      將傳遞函數(shù)表作為2D紋理載入顯存:將傳遞函數(shù)存儲為2D紋理是為了快速地將從數(shù)據(jù)場中獲得的體素值轉(zhuǎn)化為相應(yīng)的灰度和不透明度值.

      頂點著色器主要用來對圖形的頂點數(shù)據(jù)信息進行坐標變換,即通過世界變換、取景變換以及投影變換等一系列變換將一個頂點由局部坐標系變換到齊次裁剪坐標系中.在本程序頂點變換的過程中,為了保持著色器輸出的紋理坐標與先前生成的顏色立方體的前后表面的紋理坐標相一致,需對輸出的紋理坐標做如下操作:

      式中Out.TexCoor.x和Out.TexCoor.y是由頂點著色器輸出的紋理坐標,Out.Pos.x和Out.Pos.y為由頂點著色器輸出的頂點坐標.

      像素著色程序的編寫:這一部分是該程序的核心部分,光線投射算法中采樣、插值、分類、合成運算以及對體元的光照渲染全在這部分程序中實現(xiàn).首先通過對寫入前表面信息的紋理的訪問來求出光線在三維數(shù)據(jù)場中的入射點位置,然后通過對存有后表面信息的紋理的訪問來計算光線離開數(shù)據(jù)場時的點的坐標,接著給定一個采樣步長來對數(shù)據(jù)場進行采樣,通過依賴紋理提取獲取采樣點的RGBA值,最后采用由前往后的圖像合成方法對得到的采樣點的RGB值進行混合.為了在重建出的三維物體中更加突出地顯示不同物質(zhì)之間的邊界面,可以對其進行明暗計算,本文采用Phong[19]光照模型.

      3.3核外算法

      一般將海量的數(shù)據(jù)以致于無法完全加載到內(nèi)存的數(shù)據(jù)稱為Out-of-Core數(shù)據(jù),將處理這類數(shù)據(jù)的算法稱為Out-of-Core算法.在具體的實現(xiàn)中,計算框架的設(shè)計采用了如圖4所示的數(shù)據(jù)流模型[20].

      在該數(shù)據(jù)流模型中,數(shù)據(jù)處理是核心,數(shù)據(jù)和算法分立于不同的抽象模塊中.?dāng)?shù)據(jù)和算法都由對象來表示,數(shù)據(jù)被抽象為Data類,處理數(shù)據(jù)的算法被抽象為Filter類,每一個Filter接受一組輸入數(shù)據(jù),經(jīng)過處理產(chǎn)生一組輸出數(shù)據(jù),這樣的一組Filter連接成一個流水線,構(gòu)成統(tǒng)一的計算框架.為了能夠以統(tǒng)一的方式處理海量數(shù)據(jù),每個Data對象都可以帶一個磁盤緩沖,而Data類則封裝了內(nèi)外存數(shù)據(jù)交換的操作細節(jié),對外提供了統(tǒng)一的訪問接口.

      我們先前的工作為Out-of-core數(shù)據(jù)設(shè)計了一套統(tǒng)一的訪問接口[21],可以進行快速的數(shù)據(jù)交換,以塊為單位存儲當(dāng)前正在處理的數(shù)據(jù),同時維護了4個列表來管理整個緩沖區(qū)如圖5所示:

      Block List:一個線性列表,存儲分塊后原始數(shù)據(jù)的每一子數(shù)據(jù)塊所用內(nèi)存緩沖區(qū)的首地址,用于對子數(shù)據(jù)塊的快速訪問(可能為空,表示該子數(shù)據(jù)塊尚未導(dǎo)入內(nèi)存緩沖區(qū)) ; Empty Buffer Block List:一個環(huán)形隊列,保存當(dāng)前空閑緩沖區(qū)塊的指針,這些空閑塊可用于緩沖新的子數(shù)據(jù)塊; Occupied Buffer Block List:一個優(yōu)先隊列,維護當(dāng)前被占用的緩沖區(qū)塊,同時決定當(dāng)緩沖區(qū)滿的時候哪一個緩沖區(qū)塊的數(shù)據(jù)最優(yōu)先被兌換回磁盤; Buffer Block Nodes List:一個線性列表,存儲每個緩沖區(qū)塊的相關(guān)參數(shù)和狀態(tài)信息.

      獲取一個子數(shù)據(jù)塊的基本操作按算法1步驟進行:

      算法1

      步驟1:檢查Block List,如果該Block內(nèi)存首地址非空,則轉(zhuǎn)步驟5;

      步驟2:從Empty Buffer Block List取得一個空閑緩沖區(qū)塊,若成功則轉(zhuǎn)步驟4;

      步驟3:取得Occupied Buffer Block List的頭元素,其所指向緩沖區(qū)塊中的數(shù)據(jù)若有改動的話寫回磁盤,將該緩沖區(qū)塊歸還入Empty Buffer Block List,然后轉(zhuǎn)步驟2;

      步驟4:將所需Block數(shù)據(jù)從磁盤導(dǎo)入所找到的空閑緩沖區(qū)塊;

      步驟5:更新Occupied Buffer Block List和相關(guān)緩沖區(qū)塊的狀態(tài)信息;

      步驟6:返回存儲Block數(shù)據(jù)的內(nèi)存首地址或?qū)lock數(shù)據(jù)拷貝入指定地址的內(nèi)存區(qū).

      3.4前端工作站和計算結(jié)點的協(xié)作

      本文提出的框架在加載海量數(shù)據(jù)的過程中,包括數(shù)據(jù)加載和處理環(huán)節(jié).可視化的軟件系統(tǒng)運行在前端工作站上,包含圖形用戶界面,在計算節(jié)點必要的配合下,完成數(shù)據(jù)加載、數(shù)據(jù)處理、可視化和交互操作等工作.?dāng)?shù)據(jù)加載的步驟包含以下算法2流程:

      算法2

      步驟1:計算待加載數(shù)據(jù)的數(shù)據(jù)量;

      步驟2:若待加載數(shù)據(jù)的數(shù)據(jù)量超過預(yù)先給定的閾值(是海量數(shù)據(jù))則轉(zhuǎn)步驟3,否則直接將數(shù)據(jù)加載到前端工作站內(nèi)存并轉(zhuǎn)步驟6;

      步驟3:遍歷計算節(jié)點列表,查找可用計算節(jié)點,與可用計算節(jié)點建立TCP連接,將數(shù)據(jù)加載任務(wù)(包括待加載數(shù)據(jù)的名稱、存儲位置、加載參數(shù)等信息)傳送到可用計算節(jié)點;

      步驟4:監(jiān)聽已建立連接的計算節(jié)點發(fā)回的狀態(tài)信息;

      步驟5:若計算節(jié)點返回錯誤信息,則直接轉(zhuǎn)步驟6;若計算節(jié)點發(fā)回任務(wù)完成信息,則根據(jù)計算節(jié)點發(fā)回的加載(預(yù)處理)后的數(shù)據(jù)存儲位置到數(shù)據(jù)存儲中心讀取相應(yīng)數(shù)據(jù)并轉(zhuǎn)步驟6,否則轉(zhuǎn)步驟4;

      步驟6:結(jié)束數(shù)據(jù)加載過程并顯示加載結(jié)果.

      本文提出的框架針對標量場數(shù)據(jù)處理(如降噪、平滑、銳化等)分別實現(xiàn)其對應(yīng)的內(nèi)存算法和外存算法,內(nèi)存算法運行在前端工作站上,用于處理普通規(guī)模的數(shù)據(jù),外存算法運行在各計算節(jié)點上,用于處理海量數(shù)據(jù).基于這些基本算法,數(shù)據(jù)處理方法包括算法3步驟:

      算法3

      步驟1:計算待加載數(shù)據(jù)的數(shù)據(jù)量;

      步驟2:若待加載數(shù)據(jù)的數(shù)據(jù)量超過預(yù)先給定的閾值(是海量數(shù)據(jù))則轉(zhuǎn)步驟3,否則直接在前端工作站執(zhí)行相應(yīng)內(nèi)存算法對數(shù)據(jù)進行處理并轉(zhuǎn)步驟6;

      步驟3:遍歷計算節(jié)點列表,查找可用計算節(jié)點,與可用計算節(jié)點建立TCP連接,將數(shù)據(jù)處理任務(wù)(包括待處理數(shù)據(jù)的名稱、存儲位置、數(shù)據(jù)處理命令及參數(shù)等信息)傳送到可用計算節(jié)點;

      步驟4:監(jiān)聽已建立連接的計算節(jié)點發(fā)回的狀態(tài)信息;

      步驟5:若計算節(jié)點返回錯誤信息,則直接轉(zhuǎn)步驟6;若計算節(jié)點發(fā)回任務(wù)完成信息,則根據(jù)計算節(jié)點發(fā)回的處理后的數(shù)據(jù)存儲位置到數(shù)據(jù)存儲中心讀取相應(yīng)數(shù)據(jù)并轉(zhuǎn)步驟6,否則轉(zhuǎn)步驟4;

      步驟6:結(jié)束數(shù)據(jù)處理過程并顯示處理結(jié)果.

      計算節(jié)點軟件運行在各計算節(jié)點上,以守護進程的方式運行,監(jiān)聽特定端口,檢測到有計算任務(wù)發(fā)來,則根據(jù)任務(wù)信息啟動相應(yīng)的外存算法對數(shù)據(jù)進行處理,并將計算狀態(tài)信息(如進度信息、出錯信息、結(jié)束信息等)返回給前端工作站.由于計算節(jié)點軟件只負責(zé)進行比較耗時的數(shù)據(jù)處理任務(wù),沒有顯示和交互的需求,因此其軟件結(jié)構(gòu)和數(shù)據(jù)處理流程較為簡單,可以部署在各種不同的硬件平臺和操作系統(tǒng)上,也可以很方便地將已有的數(shù)據(jù)處理外存算法集成到計算節(jié)點軟件中,不斷豐富整個系統(tǒng)的數(shù)據(jù)處理功能.此外,由于計算節(jié)點和前端工作站之間只存在比較簡單的任務(wù)發(fā)布和狀態(tài)回傳的通信,計算節(jié)點故障不會影響前端工作站軟件的運行,更不會引起整個系統(tǒng)的崩潰,因此整個系統(tǒng)的穩(wěn)定性和可靠性得到了有效的保障.

      4 實驗結(jié)果

      本系統(tǒng)采用C ++語言實現(xiàn)前端工作站的GUI和計算結(jié)點上的后臺服務(wù)程序,同時結(jié)合OpenCL和OpenMP實現(xiàn)了可視化算法在GPU和CPU的并行處理.實驗中前端工作站的具體配置: CPU: Core2 2.5GHz,內(nèi)存: 4GB,64位操作系統(tǒng),顯卡: NVIDIA NVS5400,顯存: 1GB;計算節(jié)點使用的是浪潮服務(wù)器,具體配置: CPU: Xeon E5-2407 2.2GHz,內(nèi)存:8G DDR3,硬盤容量:1TB.實驗中所使用的超聲數(shù)據(jù)的從10MB到25GB.

      圖6所示是不同大小的體數(shù)據(jù)在本系統(tǒng)處理后的效果,本系統(tǒng)在上述的實驗環(huán)境下能夠處理的超聲數(shù)據(jù)可以達到25GB.

      上圖展示了本系統(tǒng)處理海量超聲數(shù)據(jù)的能力,該框架不僅可以應(yīng)用在無損檢測領(lǐng)域,也可以擴展到醫(yī)學(xué)數(shù)據(jù)三維可視化方面和氣象數(shù)據(jù)三維可視化方面.

      數(shù)據(jù)加載過程所耗費的時間是影響一個系統(tǒng)實時交互處理能力的主要因素.圖7展示了在加載不同大小超聲體數(shù)據(jù)過程中所消耗的時間.

      從圖7可以看出當(dāng)加載的體數(shù)據(jù)小于500MB時,加載所耗的時間可以看成是瞬時的.當(dāng)加載的體數(shù)據(jù)大于1GB小于10GB時,加載體數(shù)據(jù)所耗的時間也是可以接受的.當(dāng)體數(shù)據(jù)的大小增長到25GB時,所耗的時間較長;考慮到前端工作站可以同時分配多個計算任務(wù)到計算結(jié)點,這樣可以減緩等待的時間.為了提高系統(tǒng)加載體數(shù)據(jù)所耗的時間,本系統(tǒng)采用在原體數(shù)據(jù)第一次加載過程中產(chǎn)生的out-of-core緩存數(shù)據(jù),這樣以后每次加載時所需的時間將大大減少.如圖8所示,從圖中可以看出,數(shù)據(jù)加載所需的時間明顯得到了提升.即使25GB大小的體數(shù)據(jù)加載時間也在可以接受的范圍,考慮到系統(tǒng)可以同時處理多個任務(wù),這樣可以抵消等待時間,使得加載的時間可以達到實時的效果.

      從上述可以得出,本文提出的處理框架具有在處理海量數(shù)據(jù)的能力,同時前端工作站具有高配置的顯卡和內(nèi)存,使得系統(tǒng)的交互性能也能夠達到實時的效果.

      目前大多數(shù)的體可視化系統(tǒng),主要集中于跨平臺,可擴展和交互性等方面開發(fā),如Volvis,3Ddoctor和Microview.當(dāng)數(shù)據(jù)大于內(nèi)存容量時,這些系統(tǒng)將無法進行加載.ParaView是與本文所提框架設(shè)計目標很相似的軟件;與這些系統(tǒng)在加載數(shù)據(jù)方面的比較如表1所示.

      表1 系統(tǒng)加載時間對比

      從表1可以看出,當(dāng)數(shù)據(jù)大于系統(tǒng)內(nèi)存時,3Ddoctor,VolVis和Microview都不能加載數(shù)據(jù);而Para-View雖然在數(shù)據(jù)處理能力上和我們的系統(tǒng)較為接近,但由于其采用分布式存儲和計算的模式,基于MPI實現(xiàn)計算節(jié)點之間的協(xié)同工作,導(dǎo)致計算節(jié)點配置復(fù)雜,對計算節(jié)點本身以及網(wǎng)絡(luò)傳輸?shù)目煽啃砸筝^高,不利于構(gòu)建穩(wěn)定可靠的分布式海量數(shù)據(jù)處理和可視化系統(tǒng).

      5 結(jié)論與展望

      本文提出了一種混合了GPU加速、核外算法、和分布式協(xié)同等技術(shù)處理海量體數(shù)據(jù)的框架,具有可擴展性強,節(jié)點配置簡易和數(shù)據(jù)傳輸量小等優(yōu)點.從實驗結(jié)果上可以看出,本架構(gòu)在處理海量數(shù)據(jù)時可以達到實時的交互效果.同時本框架還有很多可以改進的地方,如可以采用一種更有效的數(shù)據(jù)結(jié)構(gòu)來組織體數(shù)據(jù),將核外算法應(yīng)用到GPU加速階段,使并行處理的能力擴展到計算結(jié)點間等等.

      參考文獻

      [1]王綱,季振洲,張澤旭.大規(guī)模真實感雪景實時渲染[J].電子學(xué)報,2012,40(9) : 1746-1751.Wang Gang,Ji Zhen-zhou,Zhang Ze-xu.Large scale realistic snow scene real-time rendering[J].Acta Electronica Sinica,2012,40(9) : 1746-1751.(in Chinese)

      [2]Levoy M.Display of surfaces from volume data[J].IEEE Computer Graphics and Applications,1988,8(3) : 29-37

      [3]Kniss J,Kindlmann G,Hansen C.Interactive volume rendering using multi-dimensional transfer functions and direct manipulation widgets[A].Proceedings of the Conference on Visualization[C].Washington C: IEEE Computer Society,2001.255-262

      [4]儲駿,楊新,高艷.使用GPU編程的光線投射體繪制算法[J].計算機輔助設(shè)計與圖形學(xué)學(xué)報,2007,19(2) : 257 -262 Chu Jingjun,Yang Xin,Gao Yan.Ray-casting-based volume rendering algorithm using GPU programming[J],Journal of Computer-aid Design&Computer Graphics,2007,19(2) : 257-262.(in Chinese)

      [5]張慧滔,于平,胡修炎,張朋.利用GPU實現(xiàn)單層螺旋CT的三維圖像重建[J].電子學(xué)報,2011,39(1) : 76-81.Zhang Hui-tao,Yu Ping,Hu Xiu-yan,Zhang Peng.Singlesclice helical CT three-dimensional image reconstruction using GPU[J],Acta Electronica Sinica,2011,39(1) : 76-81.(in Chinese)

      [6]袁斌.改進的均勻數(shù)據(jù)場GPU光線投射[J].中國圖象圖形學(xué)報,2011,16(7) : 1269-1275.Yuan Bin.Improved GPU ray-casting for uniform grid[J].Journal of Image and Graphics,2011,16(7) : 1269-1275.(in Chinese)

      [7]楊金柱,趙大哲,栗偉,耿歡,王艷飛.基于GPU的體繪制算法研究[J].電子學(xué)報,2010,38(2) : 202-206.Yang Jin-zhu,Zhao Da-zhe,The research volume renderingalgorithm based on GPU[J].Acta Electronica Sinica,2010,38(2) : 202-206.(in Chinese)

      [8]Wang C,Garcia A,Shen H W.Interactive level-of-detail selection using image-based quality metric for large volume visualization[J].IEEE Transactions on Visualization and Computer Graphics,2007,13(1) : 122-134.

      [9]Lindstrom P,Isenburg M.Fast and efficient compression of floating point data[J].IEEE Transactions on Visualization and Computer Graphics,2006,12(5) : 1245-1250

      [10]Farias R,Silva C.Out-of-Core rendering of large,unstructured grids[J].IEEE Computer Graphics and Applications,2001,21(4) : 42-50.

      [11]Gobbetti E,Marton F,Iglesias Guitian J A.A single-pass GPU ray casting framework for interactive out-of-core rendering of massive volumetric datasets[J].Visual Computing,2008,24(7) : 797-806.

      [12]Meng Wang,Guangda Li,Zheng Lu,Yue Gao,Tat-Seng Chua.When amazon meets google: product visualization by exploring multiple web sources[J].ACM Transactions on Internet Technology,2013,12(12) : 1-17.

      [13]Meng Wang,Bingbing Ni,Xian-Sheng Hua,Tat-Seng Chua.Assistive tagging: a survey of multimedia tagging with human-computer joint exploration[J].Journal of ACM Computing Surveys,2012,44(25) : 1-24.

      [14]Fan Z,Qiu F,Kaufman A E.Zippy: A framework for computation and visualization on a GPU cluster[J].Computer Graphics Forum,2008,27(2) : 341-350.

      [15]Fogal T,Childs H,Shankar S,et al.Large data visualization on distributed memory multi-GPU clusters[A].Proceedings of the Conference on High Performance Graphics [C].Aire-laVille: Euro graphics Association,2010: 57 -66.

      [16]曹軼,莫則堯,王弘堃,袁斌.協(xié)同分布式圖形硬件的混合并行體繪制[J].中國圖象圖形學(xué)報,2008,13(7) : 1379-1384.Cao Yi,Mo Ze-Yao,Wang Hong-Kun,Yuan Bin.Hybrid parallel volume rendering with distributed graphics hardware[J].Journal of Image and Graphics,2008,13(7) : 1379-1384.(in Chinese)

      [17]趙云松,張慧滔,趙星,張朋.雙能譜CT的迭代重建模型及重建方法[J].電子學(xué)報,2014,42(4) : 666-671.Zhao Yun-song,Zhang Hui-tao,Zhao Xing,Zhang Peng.Iterative reconstruction model and reconstruction method for dual energy computed tomography[J].Acta Electronica Sinica,2014,42(4) : 666-671.(in Chinese)

      [18]錢正蓮,楊亦春,滕鵬曉,韓寶坤,王昌田.陣列可視化噪聲源檢測中的聲-光偏離校準方法研究[J].電子學(xué)報,2014,42(10) : 2092-2097.Qian Zheng-lian,Yang Yi-chun,Teng Peng-xiao,Han Bao-kun,Wang Chang-tian.Study of calibration method of acoustic&video image deviation in microphone array's visualized noise identification[J].Acta Electronica Sinica,2014,42(10) : 2092-2097.(in Chinese)

      [19]Phong B T.Illumination for computer generated pictures [J].Communications of the ACM,1975,18 (6) : 311 -317.

      [20]Zhao MC,Tian J,Zhu X,Xue J,Cheng ZL,Zhao H.The design and implementation of a C ++ toolkit for integrated medical image processing and analyzing[A].Proc of SPIE[C].San Diego: Int’l Society for Optical Engineering,2004.39-47

      [21]薛健,田捷,戴亞康,陳?。A酷t(yī)學(xué)數(shù)據(jù)處理框架及快速體繪制算法研究[J].軟件學(xué)報,2008,19(12) : 3237 -3248.Xue Jian,Tian Jie,Dai Ya-Kang,Chen Jian.Processing framework and the fast volume rendering algorithms for out-of-core medical data[J].Journal of Software,2008,19 (12) : 3237-3248.(in Chinese)

      潘衛(wèi)國男,1984年生于河北邯鄲,中國科學(xué)院大學(xué)在讀博士生.研究方向為三維可視化,計算機圖形學(xué).

      E-mail: asherbuu@163.com

      呂科(通信作者)男,1971出生于寧夏西吉,教授,博士生導(dǎo)師,主要研究方向為數(shù)字圖像處理、計算機圖形學(xué)、智能信息處理技術(shù).

      E-mail: luk@ ucas.a(chǎn)c.cn

      Research of Large Ultrasonic Data Visualization

      PAN Wei-guo1,HE Ning2,XUE Jian1,LüKe1,ZHAI Rui1,DAI Shuang-feng1
      (1.College of Engineering and Information Technology,University of Chinese Academy of Sciences,Beijing 100049,China; 2.Beijing Union University,College of Information Technology,Beijing 100101,China)

      Abstract:In recent years,with the rapid growth of scientific data,large data analysis has become urgent problems.More and more large-data processing methods are modified to perform computation under parallel and distributed computing environment.In this paper,we present a hybrid architecture for large volume data visualization and processing.Various hardware environments and technologies are integrated in this architecture to perform interactive operations on very large volume datasets.All the datasets are stored in a data center with a gigabit network environment.The time-consuming data processing tasks are dispatched to the computing nodes connected to the same network,while the visualization and interaction operations are executed on a high-performance graphics workstation.OpenCL and OpenMP are used to implement volume rendering algorithms for accelerating visualization of a hierarchical volume data structure by both GPU and CPU with multi-cores,and some out-of-core algorithms are also presented to process the large dataset directly.The experimental results and practical application indicate that the hybrid architecture and methods presented in this paper are effective and efficient for the processing and visualization of very large volume datasets.

      Key words:volume rendering; graphics processing unit(GPU) ; out-of-core; parallel computing; large data

      作者簡介

      基金項目:國家自然科學(xué)基金(No.U1301251,No.61271435) ;北京市自然科學(xué)基金(No.4141003)

      收稿日期:2014-06-19;修回日期: 2015-03-02;責(zé)任編輯:諸葉梅

      DOI:電子學(xué)報URL: http: / /www.ejournal.org.cn10.3969/j.issn.0372-2112.2016.02.031

      中圖分類號:TP31

      文獻標識碼:A

      文章編號:0372-2112 (2016) 02-0472-07

      猜你喜歡
      海量數(shù)據(jù)并行計算
      基于HADOOP集群的數(shù)據(jù)采集和清洗
      軟件工程(2016年11期)2017-01-17 17:05:51
      基于自適應(yīng)線程束的GPU并行粒子群優(yōu)化算法
      商業(yè)銀行海量金融數(shù)據(jù)分析中數(shù)據(jù)分析技術(shù)的實踐探究
      海量數(shù)據(jù)庫的設(shè)計與優(yōu)化
      云計算中MapReduce分布式并行處理框架的研究與搭建
      矩陣向量相乘的并行算法分析
      基于hadoop平臺海量數(shù)據(jù)的快速查詢與實現(xiàn)
      并行硬件簡介
      基于GPU的超聲場仿真成像平臺
      基于Matlab的遙感圖像IHS小波融合算法的并行化設(shè)計
      科技視界(2016年11期)2016-05-23 08:13:35
      合肥市| 通山县| 河西区| 汽车| 沭阳县| 四川省| 城口县| 车险| 抚州市| 库车县| 芦溪县| 同德县| 隆化县| 宁德市| 洛浦县| 深泽县| 高州市| 罗甸县| 保德县| 拉萨市| 温州市| 揭西县| 扶绥县| 乌拉特中旗| 沙雅县| 林周县| 襄汾县| 宁强县| 乐安县| 黑龙江省| 天镇县| 周至县| 都安| 长春市| 天长市| 信阳市| 嘉祥县| 高邮市| 香格里拉县| 广汉市| 钟祥市|