A New Network Bandwidth Reduction Method of Distributed Rendering System for Scalable Display S S S S S Won-JongLeeHyung-RaeKimWoo-ChanParkJung-WooKimTack-DonHanandSung-BongYang Media System Laboratory Department of Computer Science Yonsei University : 14 5 120-749 Tel 02-212-2715 Fax 02-65-2579 E-mails chan@kureneyonseiackr airtight@kureneyonseiackr kimhr@csyonseiackr mosh@kureneyonseiackr hantack@kureneyonseiackr yang@mythosyonseiackr
A New Network Bandwidth Reduction Method of Distributed Rendering System for Scalable Display (Scalable Display) CPU PC (geometry tracking) 42% : PC Abstract Scalable displays generate large and high resolution images and provide an immersive environment Recently scalable displays are built on the networked clusters of PCs each of which has a fast graphics accelerator memory CPU and storage However the distributed rendering on clusters is a network bound work because of limited network bandwidth In this paper we present a new algorithm for reducing the network bandwidth and implement it with a conventional distributed rendering system This paper describes the algorithm called geometry tracking that avoids the redundant geometry transmission by indexing geometry data The experimental results show that our algorithm reduces the network bandwidth up to 42% Key Word : D Graphics Distributed Rendering Parallel Rendering PC Cluster I
1 [1] (scalable display) CAD PowerWall[2] Interactive Mural[] InfinityWall[4] CPU PC PC PC CPU PC PC PC PC
[5][6] AT&T InfoLab[7] Princeton[8] Stanford[9] Princeton (sort-first) (sort-last) [10] Stanford WireGL[9][11] API OpenGL[12] OpenGL OpenGL (immediate mode) API (geometry data) (geometry tracking) WireGL SPECViewperf[1] Quake III 42% 2 WireGL 4 5 2 (Geometric Redundancy) D WireGL
21 WireGL WireGL (state) WireGL - 22 [ 1] OpenGL SPECViewperf 4 QuakeIII [ 1] 1 0 0 % 9 0 % 8 0 % 7 0 % 6 0 % 5 0 % 4 0 % 0 % 2 0 % 1 0 % 0 % A W a d vs D R V Lig h t M e d M C A D Q u a Y v Œ ns
OpenGL (glvertex* glnormal* gltexcoord*) 45%~95% OpenGL glbegin glend (mesh) WireGL glbegin()/glend() glbegin/glend() [ 1] [ 1] WireGL 5% 61% X ~ Œns v Œ ns 벤치마크프레임수총정점의수총중복된정점의수중복율 (%) AWadvs-04 600 4401480 26000664 5907 DRV-07 70 87499104 46790684 548 Light-04 100 6212104 80566 6147 MedMCAD-01 72 1155849 40092 487 Quake III 146 1126642 602741 4591 WireGL
1 (indexing) (tracking) glindex_vertex* glindex_normal* glindex_texcoord* [ 2] 2 WireGL WireGL OpenGL WireGL (glvertex* glnormal* gltexcoord*) (glindex_*) (glindex_*)
클라이언트의색인테이블초기화 Yes 기하버퍼가플러쉬되는가 f No 어플리케이션이 v Œ ns 라이브러리함수를호출한다 호출된함수가기하명령중하나인가 f Yes 호출된함수의매개변수값으로색인테이블을참조한다 No 명령어와데이터가기하버퍼에저장된다 U 색인테이블에같은값이있는가 f Yes 해당색인값이기하버퍼에저장된다 No 새색인번호를할당한다 호출된함수의매개변수값이기하버퍼와색인테이블에저장된다 해당기하색인명령어 OŽ p ŒŸQP 의이름이기하버퍼에저장된다 U 해당기하명령어가기하버퍼에저장된다 기하버퍼의데이터가패킷으로묶여서버측으로전송된다 클라이언트측 서버의색인테이블초기화 서버측 입력패킷에더이상읽어들일함수가없는가 f No Yes 렌더링이종료된다 입력패킷의한함수를읽어들인다 함수가기하명령어중하나인가 f No 함수가기하색인명령어중하나인가 f No Yes Yes 함수의매개변수값이수신버퍼와색인테이블에저장된다 함수의매개변수값이수신버퍼에저장돤다 명령어와데이터가수신버퍼에저장된다 명령어가디코딩되어렌더링된다 Z S
opcodes data Z Y X Z Y X (pad) B G R Colorb Verctorf Verctorf Index Value Z Y X (pad) B G R Colorb Verctorf Index_Verctorf Colorb(R G B) (X Y Z) (X Y Z) [ ~ Œns [ ] WireGL [ ] 1 gl 1 12 1 4 2 2 4 [ 4] 25 15 2 1 1 16 19 22 gl
Application Source Code Geometry Buffer Receive Buffer Index Table state was changed current 1 2 4 5 6 7 8 9 10 11 12 1 14 15 16 17 18 19 20 21 22 2 24 25 glbegin(gl_polygon); glcolorb( R1 G1 B1); gl( X1 Y1 Z1 ); gl( X2 Y2 Z2 ); gl( X Y Z ); gl( X4 Y4 Z4 ); glend(); glbegin(gl_polygon); gl( X2 Y2 Z2 ); gl( X5 Y5 Z5 ); gl( X6 Y6 Z6 ); gl( X Y Z ); glend(); glbegin(gl_polygon); glcolorb( R2 G2 B2); gl( X5 Y5 Z5 ); gl( X7 Y7 Z7 ); gl( X8 Y8 Z8 ); gl( X6 Y6 Z6 ); glend(); glbegin(gl_polygon); gl( X7 Y7 Z7 ); gl( X9 Y9 Z9 ); gl( X10Y10Z10 ); gl( X8 Y8 Z8 ); glend(); Index Table 1 X5 Y5 Z5 2 X7 Y7 Z7 X8 Y8 Z8 4 X6 Y6 Z6 5 X9 Y9 Z9 6 X10 Y10 Z10 X10 Y10 Z10 X9 Y9 Z9 2 X6 Y6 Z6 X8 Y8 Z8 X7 Y7 Z7 X5 Y5 Z5 R2 G2 B2 Begin Colorb Index_Vtxf Index_Vtxf X6 Y6 Z6 X5 Y5 Z5 2 X4 Y4 Z4 X Y Z X2 Y2 Z2 X1 Y1 Z1 R1 G1 B1 Begin Colorb end Begin Index_Vtxf Index_Vtxf end 1 X1 Y1 Z1 2 X2 Y2 Z2 X Y Z 4 X4 Y4 Z4 5 X5 Y5 Z5 6 X6 Y6 Z6 Application Source Code glbegin(gl_polygon); glcolor( R1 G1 B1); gl( X1 Y1 Z1 ); gl( X2 Y2 Z2 ); gl( X Y Z ); gl( X4 Y4 Z4 ); glend(); glbegin(gl_polygon); gl( X2 Y2 Z2 ); gl( X5 Y5 Z5 ); gl( X6 Y6 Z6 ); gl( X Y Z ); glend(); Client A Server 그림 \ 제안하는기하추적방법을사용한데이터전송시의한장면 17 17 2 22 25 18 4 8 8-4 16GHz NVIDIA GeForce Ti 200 AMD Athlon XP 1800+ 15Ghz NVIDIA GeForce Ti 200 1024x768
[ 5] (a) DRV-07 (b) Atlantis (c) Quake III [ 5] 1 DRV-07 SPECViewperf 67178 42821 SPECViewperf 50 2 Atlantis GLUT OpenGL 100 Quake III (visibility culling) (architectural work-though) 200 41 WireGL WireGL [ 2] WireGL
[ 2] 45% Y ~ Œns DRV-07 Atlantis Quake III WireGL 774806 272 10228 Geometry tracking 494572 1489 9096 Reduction rate (%) 617 452 1108 42 4 (1x1 1x2 2x2 2x4) [ 6] WireGL WireGL 1x1 (relative transmission rate) [ 6] DRV-07 11% 27% Atlantis 4% 42% Quake III 8% 12% Quake III Relative Transmitted Data Sizes 25 2 15 1 05 WireGL Geometry Tracking Relative Transmitted Data Sizes 25 2 15 1 05 WireGL Geometry Tracking Relative Transmitted Data Sizes 25 2 15 1 05 WireGL Geometry Tracking 0 1x1 1x2 2x2 2x4 Number of Servers 0 1x1 1x2 2x2 2x4 Number of Servers 0 1x1 1x2 2x2 2x4 Number of Servers 그림 (a) DRV-07 (b) Atlantis (c) Quake III ] ~ Œns 과기하추적기법으로총전송된상대적인데이터크기비교
5 42% Quake III API 6 References [1] D Kirk "Unsolved Problems and Opportunities for High-quality High-performance -D Graphics on a PC Platform" Keynotes Address In 1998 ACM SIGGRAPH/Eurographics Workshop on Graphics Hardware pp 11-1 Sep 1998 [2] University of Minnesota PowerWall http://wwwlcseumnedu/research/powerwall/powerwallhtml [] G Humphreys and P Hanrahan "A Distributed Graphics System for Large Tiled Displays" Proceedings of the Conference on IEEE Visualization '99 pp 215-22 Oct 1999 [4] M Czernuszenko D Pape D Sandin T DeFanti G Dawe and M Brown The ImmersaDesk and InfinityWall projection-based virtual reality displays Computer Graphics pp 46-49 May 1997 [5] D Bartz B Schneider and C Silva "Rendering and Visualization in Parallel Environments" Proceeding of the SIGRAPH 2000 Course Notes 2000 [6] B Wylie C Pavlacos V Lewis and K Moreland Scalable Rendering on PC Clusters IEEE Computer Graphics and Applications Vol 21 No 4; pp 62-70 July/Aug 2001
[7] B Wei C Silva E Koutsofios S Krishnan and S North Visualization Research with Large Displays IEEE Computer Graphics and Applications Vol 20 No 4 pp 50-54 July/Aug 2001 [8] K Li H Chen Y Chen D W Clark P Cook S Damianakis G Essl A Finkelstein T Funkhouser T Housel A Klein Z Liu E Praun R Samanta B Shedd J P Singh G Tzanetakis and J Zheng Building and Using a Scalable Display Wall System IEEE Computer Graphics and Applications Vol 20 No 4 pp 29-7 July/Aug 2001 [9] G Humphreys I Buck M Eldridge and P Hanrahan "Distributed Rendering for Scalable Displays" Proceedings of Supercomputing 2000 pp 0-8 2000 [10] R Samanta T Funkhouser K Li and J Pal Singh Hybrid Sort-First and Sort-Last Parallel Rendering with a Cluster of PCs SIGGRAPH/Eurographics Workshop on Graphics Hardware pp 87-108 August 2000 [11] G Humphreys M Eldridge I Buck G Stoll M Everett and P Hanrahan "WireGL: A Scalable Graphics System for Clusters" Proceedings of SIGGRAPH 2001 pp 129-140 2001 [12] M Woo J Neider T Davis and D Shreiner OpenGL Programming Manual rded Addison & Wesley 1997 [1] SPECViewperfTM http://wwwspecorg/gpc/opcstatic/opcviewhtm