張權(quán)
(四川大學(xué)計(jì)算機(jī)學(xué)院,成都 610065)
基于中間件Equalizer的并行渲染技術(shù)研究
張權(quán)
(四川大學(xué)計(jì)算機(jī)學(xué)院,成都 610065)
隨著三維圖形技術(shù)和可視化技術(shù)的發(fā)展,數(shù)據(jù)處理的規(guī)模越來(lái)越大,并行繪制系統(tǒng)越來(lái)越重要。然而,目前大部分并行渲染解決方案只是針對(duì)特定的應(yīng)用程序,但更重要的是如何開(kāi)發(fā)一個(gè)通用的并行渲染框架,并且它能支持各類數(shù)據(jù)可視化應(yīng)用的任務(wù)。為了更深入地研究并行繪制技術(shù),研究并行繪制框架Equalizer的架構(gòu)和優(yōu)點(diǎn),并用Equalizer實(shí)現(xiàn)Ply模型的并行繪制。
并行渲染;Equalizer;OpenGL;Ply模型
隨著科學(xué)研究和工程設(shè)計(jì)的發(fā)展,數(shù)據(jù)處理的規(guī)模急劇增加,如在漫游系統(tǒng)、飛行模擬機(jī)、生物技術(shù)、油藏模擬等領(lǐng)域[1]。近年來(lái),雖然計(jì)算機(jī)硬件技術(shù)飛速發(fā)展,但仍滿足不了應(yīng)用對(duì)繪制速度與真實(shí)感的需求。在現(xiàn)有的硬件條件下,采用PC集群并行繪制技術(shù)是解決這個(gè)問(wèn)題的重要途徑。并行繪制,就是指利用多個(gè)圖形硬件或圖形繪制流水線,使用它們累加的繪制能力來(lái)完成繪制任務(wù)。并行繪制以利用有限的繪制條件實(shí)現(xiàn)高端圖形工作站所能提供的繪制能力,為完成大規(guī)模數(shù)據(jù)集繪制提供實(shí)現(xiàn)途徑。在PC集群并行繪制系統(tǒng)中,Molnar按照任務(wù)劃分階段的不同,將并行繪制系統(tǒng)的體系結(jié)構(gòu)劃分為sort-first、sort-middle、sort-las三種類型,奠定了并行繪制體系結(jié)構(gòu)研究的理論基礎(chǔ)[2]。其中sort-first型保留了圖形繪制流水線的完整性,而本文研究的高度擴(kuò)展性的并行繪制框架Equalizer采用的就是此體系結(jié)構(gòu)。
1.1 Equalizer介紹
Equalizer是用于創(chuàng)建和部署基于OpenGL的并行應(yīng)用程序的中間件,它使得應(yīng)用程序能夠利用多個(gè)顯卡、處理器和計(jì)算機(jī),來(lái)擴(kuò)展自身的渲染性能、外觀質(zhì)量和顯示尺寸。Equalizer的應(yīng)用程序不用修改,只需要加載不同的配置文件,就可以運(yùn)行在不同的可視化系統(tǒng)中,可視化系統(tǒng)包括簡(jiǎn)單的工作站、大型圖形集群或者多GPU工作站和虛擬現(xiàn)實(shí)裝置[3]。
1.2 Equalizer的體系結(jié)構(gòu)
(1)Application(應(yīng)用程序)
在Equalizer中,應(yīng)用程序作為渲染的唯一驅(qū)動(dòng),也就是說(shuō)應(yīng)用程序來(lái)執(zhí)行主要的繪制循環(huán),但是卻不執(zhí)行任何的繪制代碼。雖然是根據(jù)配置信息來(lái)執(zhí)行,但是應(yīng)用程序進(jìn)程控制一個(gè)或者多個(gè)客戶端線程。在初始化服務(wù)器的過(guò)程中,應(yīng)用程序提供了一個(gè)渲染客戶端,這樣的客戶端經(jīng)常用作一些簡(jiǎn)單的繪制應(yīng)用程序,執(zhí)行過(guò)程和應(yīng)用程序一樣。但是繪制客戶端也可能只是一個(gè)簡(jiǎn)單的繪制進(jìn)程,只用于執(zhí)行特定的渲染代碼。服務(wù)器根據(jù)配置信息部署這樣的渲染客戶端到所有的節(jié)點(diǎn)上,主要渲染客戶端的循環(huán)任務(wù)很簡(jiǎn)單:應(yīng)用請(qǐng)求新的幀重新被繪制,同步實(shí)現(xiàn)幀的繪制,處理從客戶端傳來(lái)的事件。圖1展示了一個(gè)簡(jiǎn)單的應(yīng)用程序的執(zhí)行模型[4]。
圖1
(2)Render Clients(渲染客戶端)
每個(gè)Equalizer的應(yīng)用程序都會(huì)提供一個(gè)繪制客戶端,有時(shí)候和程序本身的執(zhí)行過(guò)程一樣,和應(yīng)用程序相比,繪制客戶端不需要一個(gè)主循環(huán),它完全由Equalizer框架控制。一個(gè)繪制客戶端由以下幾部分構(gòu)成:節(jié)點(diǎn)的主線程,網(wǎng)絡(luò)接收線程,一個(gè)管道進(jìn)程用來(lái)執(zhí)行繪制任務(wù)??蛻舳藥?kù)函數(shù)實(shí)現(xiàn)了主循環(huán),接收網(wǎng)絡(luò)事件然后處理它們。更重要的是,網(wǎng)絡(luò)數(shù)據(jù)包含了繪制任務(wù)需要的數(shù)據(jù),這些數(shù)據(jù)由服務(wù)器計(jì)算完成。基于這些數(shù)據(jù),渲染客戶端庫(kù)建立繪制上下文,然后調(diào)用應(yīng)用程序提供的繪制方法。事件的處理通過(guò)異步監(jiān)聽(tīng)所有窗口的事件來(lái)實(shí)現(xiàn)。事件由特定的窗口事件轉(zhuǎn)換成普通的窗口事件,然后分發(fā)到正確的窗口。窗口可以處理本地的窗口事件,也可以轉(zhuǎn)化成配置事件然后發(fā)送到應(yīng)用程序的節(jié)點(diǎn),應(yīng)用程序節(jié)點(diǎn)處理配置事件作為主繪制循環(huán)的一部分。
(3)Render Server(服務(wù)器)
Equalizer服務(wù)器接收來(lái)之可視化系統(tǒng)中的應(yīng)用程序的請(qǐng)求。服務(wù)器根據(jù)應(yīng)用程序使用的配置信息為這些請(qǐng)求提供服務(wù),在所有節(jié)點(diǎn)上設(shè)立繪制客戶端,控制繪制任務(wù),同步已經(jīng)完成繪制的幀。服務(wù)器負(fù)責(zé)維護(hù)不同應(yīng)用程序的配置信息,實(shí)現(xiàn)跨應(yīng)用的負(fù)載均衡、資源保留和系統(tǒng)資源的深入管理。
下面給出具體的算法描述。
Equalizer應(yīng)用程序執(zhí)行模型如圖2。
圖2
Server負(fù)責(zé)管理應(yīng)用程序的運(yùn)行,根據(jù)Configuration信息和運(yùn)行程序時(shí)輸入的控制信息,計(jì)算當(dāng)前可用的資源、更新配置信息,同時(shí)計(jì)算需要完成的繪制任務(wù),分配到多個(gè)Client中。同時(shí),Server控制和啟動(dòng)Application中的繪制進(jìn)程,Server是管理Configuration信息的實(shí)體,其他的繪制進(jìn)程從服務(wù)器端獲得配置信息,服務(wù)端運(yùn)行時(shí),根據(jù)需要加載配置文件。
Application連接Server,建立通信關(guān)系,從Server獲取配置信息,根據(jù)配置信息,提供繪制Client,同時(shí)這些Clients都由服務(wù)器控制。Application擁有一個(gè)主循環(huán),用于實(shí)現(xiàn)事件的相應(yīng),數(shù)據(jù)的更新,控制繪制任務(wù)。應(yīng)用程序運(yùn)行時(shí)加載模型文件。
Render Client實(shí)現(xiàn)應(yīng)用程序中繪制的部分,它的執(zhí)行是被動(dòng)的,Client沒(méi)有循環(huán),它的執(zhí)行有Server來(lái)控制,Client的繪制任由Server端的進(jìn)程進(jìn)行分配。
NodeFactory用來(lái)創(chuàng)建繪制的對(duì)象實(shí)例,Config、Node、Pipe的對(duì)象實(shí)例在Node的進(jìn)程中創(chuàng)建和釋放。Windows、Channel、Veiw的對(duì)象實(shí)例在Pipe的進(jìn)程中創(chuàng)建和釋放。
Sort-first的方式對(duì)圖像進(jìn)行分割,在2窗口進(jìn)行繪制,最后圖像拼接在一起,如圖3。
圖3
結(jié)果分析:通過(guò)分割窗口的方法對(duì)圖像進(jìn)行分割,wind1完成模型左邊部分的數(shù)據(jù),因?yàn)槭?D的分割方法,所有在調(diào)整模型的過(guò)程中,wind1繪制的是出現(xiàn)在左邊的模型數(shù)據(jù),完成后,通過(guò)輸出幀。wind2繪制模型右邊部分的數(shù)據(jù),同時(shí)把wind1的輸出幀作為輸入幀,完成圖像的合成。
隨著科學(xué)研究和工程設(shè)計(jì)的發(fā)展,數(shù)據(jù)處理的規(guī)模越來(lái)越大,并行繪制系統(tǒng)越來(lái)越重要。事實(shí)上,為了實(shí)現(xiàn)互動(dòng)可視化,可擴(kuò)展渲染系統(tǒng)是必不可少的。E-qualizer是目前為止,可擴(kuò)展性和靈活性很強(qiáng)的并行繪制程序開(kāi)發(fā)框架。本文主要對(duì)Equalizer進(jìn)行了研究分析,并應(yīng)用到具體繪制場(chǎng)景中。
[1]劉真,石教英,等.基于PC集群并行圖形繪制系統(tǒng)綜述[J].系統(tǒng)仿真學(xué)報(bào),2006,18(1):70.
[2]Molnar S.Cox M,Ellsworth D,et al.A Sorting Classification of Parallel Rendering[J].IEEE Comput Graph Appl,1994,14(4):23.
[3]S.Eilemann.Equalizer.http://www.equalizergraphics.com,2006.
[4]S.Eilemann.Equalizer Compound Specification.http://www.equalizergraphics.com/documents/design/com-pounds.html,2006.
Research on Parallel Rendering Technology Based on Equalizer Middleware
ZHANG Quan
(College of Computer Science,Sichuan University,Chengdu 610065)
Along with the development of the graphics and visualization technology,the size of the data processing is increasing,the parallel rendering system more and more important.However,parallel rendering solutions are often only application specific implementations have been proposed,but more important is how to develop a general framework of parallel rendering,and it can support all kinds of data visualization application tasks.In order to study the parallel rendering technology deeply,introduces the Equalizer which is a parallel rendering framework,studies the architecture of Equalizer and its advantages,and realizes the Ply mode parallel rendering with the equalizer.
Parallel Rendering;Equalizer;OpenGL;Ply Mode
1007-1423(2017)01-0038-04
10.3969/j.issn.1007-1423.2017.01.010
張權(quán)(1990-),男,河南周口人,在讀碩士,研究方向?yàn)閳D形學(xué)、并行計(jì)算
2016-11-15
2016-12-30