anygl a large scale hybrid distributed graphics system n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
AnyGL: A Large Scale Hybrid Distributed Graphics System PowerPoint Presentation
Download Presentation
AnyGL: A Large Scale Hybrid Distributed Graphics System

Loading in 2 Seconds...

play fullscreen
1 / 98

AnyGL: A Large Scale Hybrid Distributed Graphics System - PowerPoint PPT Presentation


  • 751 Views
  • Uploaded on

AnyGL: A Large Scale Hybrid Distributed Graphics System. Ph.D Candidate: Yang Jian( 杨建 ) Supervisor: Jiaoying Shi( 石教英 ) State Key Lab of CAD&CG, Zhejiang Univ. 2002. Contents. Goal of Computer Graphics Architecture Parallel Graphics Architecture AnyGL in Details Conclusion

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'AnyGL: A Large Scale Hybrid Distributed Graphics System' - benjamin


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
anygl a large scale hybrid distributed graphics system

AnyGL: A Large Scale Hybrid Distributed Graphics System

Ph.D Candidate: Yang Jian(杨建)

Supervisor: Jiaoying Shi(石教英)

State Key Lab of CAD&CG, Zhejiang Univ.

2002

contents
Contents
  • Goal of Computer Graphics Architecture
  • Parallel Graphics Architecture
  • AnyGL in Details
  • Conclusion
  • Further Research
goal of graphics architecture
Goal of Graphics Architecture
  • Real-time
    • Triangle rendering capacity
    • Rasterization rate
    • Texture size
    • Display Resolution
  • Realistic
    • Local illumination, Gouraud, Phong
    • Global illumination, ray-trace, ray-casting, Radiosity
goal of graphics architecture1
Goal of Graphics Architecture
  • Programmable,
    • more effects
    • faster,
    • realistic
    • non-realistic
contents1
Contents
  • Goal of Computer Graphics Architecture
  • Parallel Graphics Architecture
  • AnyGL in Details
  • Conclusion
  • Further Research
parallel graphics architecture
Parallel Graphics Architecture
  • Development of Graphcis Architecure
  • Classification of Parallel Graphics Architecure
  • Hardware System
  • Software System
  • Scalability of Parallel Parallel Graphics Architecure
development of graphics architecture
Development of Graphics Architecture
  • 1rd Generantion, 1975~ 1985,
    • Geometry transfromation, clip, render objects based on wire frame
  • 2rd Generation, mid 1985~ 1990’
    • Video memory, depth buffer, back face cull,
    • gouraud rendering
  • 3rd Generation, 1990‘ ~ 2000’s
    • Texture Mapping
    • anti-alias, mutlis-sample
development of graphics architecture1
Development of Graphics Architecture
  • 4th Generation,1997~
    • Local illumination
    • Hardware lighting, complex texture mapping(bump , compressed, 2000
    • SIMD, 2001
    • Programmable processor, 2001
    • More programmable processors, 2002
  • 5th Generations, 2005?
    • Global illumination
parallel graphics architecture1
Parallel Graphics Architecture
  • Development of Graphcis Architecure
  • Sorting Classification of Parallel Graphics Architecure
  • Hardware System
  • Software System
  • Scalability of Parallel Parallel Graphics Architecure
  • Misc.
sorting classification
Sorting Classification
  • [S. Molnar et al. 1994]
    • sort-first
    • sort-middle
    • sort-last
  • [M. Eldridge 2000], Pomegranate
    • Transform & Lighting
    • Rasterization
    • Texture
    • Fragment
    • Display
parallel graphics architecture2
Parallel Graphics Architecture
  • Development of Graphcis Architecure
  • Sorting Classification of Parallel Graphics Architecure
  • Hardware System
  • Software System
  • Scalability of Parallel Parallel Graphics Architecure
hardware system of pga
Hardware System of PGA
  • SGI Reality Engine
    • sort-middle
    • share bus, broadcast
    • every 2 scanlines one processor
hardware system of pga1
Hardware System of PGA
  • PixelFlow
    • Sort-last
    • ring-net, compose image
    • SIMD is highly expolited
  • Pomegranate
    • 5 stages
    • 64 nodes
hardware system of pga2
Hardware System of PGA
  • Evans & Sutherland Freedom 3000
    • sort-last
  • Kubota Denali
    • sort-last
  • Sepia, Compaq Reserch 2000
    • sort-last
    • ServerNet-II
parallel graphics architecture3
Parallel Graphics Architecture
  • Development of Graphcis Architecure
  • Sorting Classification of Parallel Graphics Architecure
  • Hardware System
  • Software System
  • Scalability of Parallel Parallel Graphics Architecure
  • Misc.
sortware system
Sortware System
  • GLR
    • Client/Server
  • GLX, X Windows
  • Princeton Multi-projector System
    • sort-first
    • one node distriutes commands
    • 8 nodes receive and render commands
  • Parallel Mesa
    • sort-last
    • binary swapping, parallel pipeline compositing
sortware system1
Sortware System
  • WireGL
    • sort-first
    • state tracking and state switch, dirty-bits, Lazy-update
    • 3 kinds of OpenGL commands
    • 16 clients + 16 servers
    • Lightning-2 assembles images
parallel graphics architecture4
Parallel Graphics Architecture
  • Development of Graphcis Architecure
  • Sorting Classification of Parallel Graphics Architecure
  • Hardware System
  • Software System
  • Scalability of Parallel Parallel Graphics Architecure
  • Misc.
scalability of parallel parallel graphics architecure
Scalability of Parallel Parallel Graphics Architecure
  • 5 parameters, [Eldridge et al.2000]
    • triangle input rate
    • triangle rendering rate
    • texture size
    • pixel rate
    • display resolution
contents2
Contents
  • Goal of Computer Graphics Architecture
  • Parallel Graphics Architecture
  • AnyGL in Details
  • Conclusion
  • Further Research
anygl
AnyGL
  • Goal
  • Architecture
  • Classification of OpenGL Commands
  • State Tracking
  • Compression
  • Scalability
  • Parallel Graphics API
goal of anygl
Goal of AnyGL
  • Hibrid Distributed Graphics System
    • sort-first
    • sort-last
  • Large scale
    • sort-first, new state tracking
    • sort-last, image compression
  • Good Scalability
anygl1
AnyGL
  • Goal
  • Architecture
  • Command classification
  • Analysis of Dependency Relation
  • State Tracking
  • Compression
  • Scalability
architecture of anygl
Architecture of AnyGL
  • 4 kinds of Nodes
    • Geometry Distributing Node ( G-node )
    • Goemetry Rendering None ( R-node )
    • Image Composite Node ( C-node )
    • Display Node ( D-node )
  • Sort-first
    • G-node, R-node
  • Sort-Last
    • C-node, D-node
geometry rendering node
Geometry Rendering Node
  • Capture opengl commands of application
  • Packet OpenGL commands
  • Computer State changes
  • Send OpenGL command packets
geometry rendering node1
Geometry Rendering Node
  • Receive Packet
  • Check if context switch is needed
  • Context switch
  • Unpack the command packet
  • Send corlor & depth buffer to C-node
image composite node
Image Composite Node
  • Receive color and depth data from R-nodes
  • If they are compressed, decompress them.
  • Compose the received data
  • Send composed color and depth buffer to D-nodes
display node
Display Node
  • Receive color and depth data from C-node
  • Assemble image for final display
  • Display the final image by CRT, Projector, LCD...
logical division of command buffer
Logical Division of Command Buffer
  • Command buffer is divided into 2 parts
    • Command Code buffer
    • Parameter Buffer
  • Command Code buffer
    • ptr--;
  • Parameter Buffer
    • ptr++
subdivision of glbegin glend
Subdivision of glBegin-glEnd
  • Condition
    • lots of commands appear between a pair of glBegin-glEnd
    • The command buffer or parameter is full, while glBegin does not meet the corresponding glEnd
  • Requirement
    • Make sure that glBegin and glEnd are matched in each packet
    • Maitain completeness of primitive
subdivision of glbegin glend1
Subdivision of glBegin-glEnd
  • 算法2.1 glBegin命令打包
  • 设glBegin和glEnd匹配标示为布尔变量glBeginEnd,初始值为1;
      • 设glVertex指令计数器为vtxCount,初始值等于0;
      • 设nPrimtiveType位图元类型变量;
  • glBegin编码压入当前命令缓冲区头部;
  • glBegin参数(图元类型)添加到当前参数缓冲区;
  • glBeginEnd = 0;
  • nPrimitiveType = glBegin命令参数;
subdivision of glbegin glend2
Subdivision of glBegin-glEnd
  • 算法2.2 glVertex*命令打包
  • 将glVertex*编码压入当前命令缓冲区;
  • 参数添加到当前参数缓冲区;
  • if(glBeginEnd==1)vtxCount++,否则程序报告非法调用;
  • 算法2.3 glEnd函数命令打包
  • 将glEnd编码压入当前命令缓冲区;
  • glBeginEnd=1;
  • vtxVount=0;
subdivision of glbegin glend3
Subdivision of glBegin-glEnd
  • 算法2.4大几何图元指令组OpenGL指令的分割算法
      • if (glBeginEnd) then 返回,否则执行下面的步骤;
      • if(vtxCount ==0 )返回;
      • 计算需要回溯的图元数目为vtxBackdate;
      • 如果图元类型为GL_TRIANGLES_FAN或者GL_POLYGON,需要回溯第一个顶点数据,bRecoverFirst=1;
      • 将glEnd命令打包当前命令缓冲区;
      • 生成一个新的缓冲区;
      • 调用glBegin指令;
      • if(bRecoverFirst == 1);
      • {
        • 回溯并执行最近的一次glBegin指令调用;
        • 将其后的指令到第一个glVertex*命令加入新的缓冲区;
      • }
      • 搜索vBackdate次glVertex*指令调用;
      • 将其后顺序调用的所有OpenGL指令及参数分别增加到新的命令缓冲区和参数缓冲区。
anygl2
AnyGL
  • Goal
  • Architecture
  • Command classification
  • Analysis of Dependency Relation
  • State Tracking
  • Compression
  • Scalability
command classification
Command Classification
  • OpenGL 1.3
    • 17 kinds
  • Four kinds in AnyGL
    • primitive commands
    • state commands
    • remote remapping commands
    • speical commands
remote mapping commands
Remote Mapping Commands
  • G-nodes send textures to R-nodes
  • R-nodes receive textures from G-nodes
  • For R-nodes
    • textures with same texture ID may reresent different textures, since they come from different textures
    • textures with different texture IDs maybe same texture.
anygl3
AnyGL
  • Goal
  • Architecture
  • Command classification
  • Analysis of Dependency Relation
  • State Tracking
  • Compression
  • Scalability
analysis of dependency relation
Analysis of Dependency Relation
  • OpenGL is client/server based state machine, its commands have serious order
  • See OpenGL 1.1 state machine
analysis of dependency relation1
Analysis of Dependency Relation
  • Graphics Pipeline
    • Transformation
    • Lighting
    • Rasterization
    • Fragment
  • According to OpenGL 1.3
    • 17 categories
anygl4
AnyGL
  • Goal
  • Architecture
  • Command classification
  • Analysis of Dependency Relation
  • State Tracking
  • Compression
  • Scalability
state tacking of anygl
State Tacking of AnyGL
  • History of Sate Tracking
  • Sate Tracking Based On Logic Timestamp
  • Test & Result
history of state tracking
History of State Tracking
  • GLS, no
  • GLR, pixel format
  • GLX, X Windows, all 2d, pixelformat vertex array
  • Multi-projector by Princeton, no
  • Parallel Mesa, no
  • Argus, notice the problem
history of state tracking1
History of State Tracking
  • M. Cox, parallel renderman
  • WireGL, Dirty-bits, Lazy-update
  • Chromium, user-defined
state tacking of anygl1
State Tacking of AnyGL
  • History of Sate Tracking
  • Sate Tracking Based On Logic Timestamp
  • Test & Result
state tacking
State Tacking
  • GLS
  • GLR, Pixel Format
  • GLX & X Windows(R11) , Vertex Array
  • M.Cox, RenderMan, Approximate
  • WireGL
    • Dirty-bits and Lazy-update
state tacking based on logic timestamp
State Tacking Based on Logic Timestamp
  • G-node
    • Maintain n+1 virtual context,
    • n is the number of R-nodes connected to this G-node
    • The extra virtual context is called application virtual context, same as the context of current process
  • R-node
    • Maintain m virtual context
    • m is the number of G-nodes connected to this R-node
state tacking based on logic timestamp1
State Tacking Based on Logic Timestamp
  • Application Virtual Context
    • Always same as the context of the current process
  • Active Virtual Context (G-node)
    • If and only if it will be the command package’s destination
  • Active Virtual Context(R-node)
    • If and only if it represents the source node of the current command packet
state tacking based on logic timestamp2
State Tacking Based on Logic Timestamp
  • 5 Functions
    • State tracking of G-node
    • Context Difference
    • Context Synchronization
    • Context Switch
    • State tracking of R-node
state tacking on g node
State Tacking on G-node
  • glLightf_state(light, pname, param){
    • check validate of parameters;
    • check change of the light state;
    • if (changed) {
      • lights[light].pnamex = param;
      • lights[light].pnamex.timestamp++;
      • lights[light].timestamp++;
    • }
  • }
context difference
Context Difference
  • glLight_Diff(src, dest){
    • if timestamp of src, dest are equal return;
    • if (lighting.timestamp of src,dest not equal &
    • dest.lighting.enable)
      • pack glEnable(GL_LGHTING);
      • else
      • pack glDisable(GL_LGHTING);
      • if( dst.lighting){
        • for(I = 0; I I< num_lights, I++)
        • if(light[I].timestamp of src,dest not equal){
          • pack changed parameters of dest into geometry packet;
        • }
    • }
    • call difference of material;
  • }
context synchronization
Context Synchronization
  • glFragment_synch(src, dest){
    • if( fragement.timestamp of src, dest are equal)
    • return;
    • if(src.fog.timestamp != dest. fog.timestamp) {
    • src.fog = dest.fog;
    • src.fog.timestamp = dest.fog.timestamp;
    • }
    • call sychronization of depth;
  • }
context switch
Context Switch

glTransform_switch(src, dest){

if(transform.timestamp of src ,dest are equal)

return;

if(modelview.timestamp of src, dest not equal){

//call hardware api

glLoadMartix(dest_model_view);

src.modelview = dest.modelview;

src. modelview.timestamp =

dest. modelview.timestamp;

}

call projection switch of src , dest;

}

state tracking on r node
State Tracking on R-node
  • Similar to state tracking on R-node
  • It call hardware API directly
state tacking of anygl2
State Tacking of AnyGL
  • History of Sate Tracking
  • Sate Tracking Based On Logic Timestamp
  • Test & Result
state tracking performance
State Tracking Performance
  • It is almost as fast as WireGL
  • Context Difference is fast
  • Context Switch is fast
  • Context synchronization
    • < 1 microsecond
anygl5
AnyGL
  • Goal
  • Architecture
  • Command classification
  • Analysis of Dependency Relation
  • State Tracking
  • Compression
  • Scalability
compression
Compression
  • Image Compression
  • Geometry Compression
    • Normal
    • Position
    • Color
image compression
Image Compression
  • VCM(Video Compression Manager)
  • Default Color Image Compression
    • HUFFYUV
  • Default Grayscale Image Compression
    • JPEG-LS
geometry compression
Geometry Compression
  • [Deering95]
    • Normal
    • Position
    • Color
geometry compression1
Geometry Compression
  • Normal
    • Deer95 software implementation
    • 18-bits
    • Programmer can choose compression precision
geometry compression2
Geometry Compression
  • Position
    • Linear Prediction,
      • GL_POINT, GL_LINES, GL_LINESTRIP, GL_TRIANGLES,GL_QUADS
    • Circle prediction,
      • GL_POLYGON, GL_LINE_LOOP
    • Parallelogram prediction,
      • GL_TRIANGLE_STRIP, GL_QUAD_STRIP
    • Fan Prediction
      • GL_TRIANGLE_FAN
geometry compression3
Geometry Compression
  • Linear prediction
  • Circle prediction
geometry compression4
Geometry Compression
  • Parallelogram prediction

Trianglefanprediction

anygl6
AnyGL
  • Goal
  • Architecture
  • Command classification
  • Analysis of Dependency Relation
  • State Tracking
  • Compression
  • Scalability
  • Parallel Graphics API
scalability
Scalability
  • Scalability of Parallel System
    • Component
    • System Size
    • Problem Size
scalability1
Scalability
  • 5 Parameters in Pomegranate,
    • Triangle input rate
    • Triangle Rendering Rate
    • Pixel Rate
    • Texture Size
    • Display Resolution
scalability of nodes
Scalability of Nodes
  • G-node
    • Pack capability, 20M triangles /s
  • R-node
    • Render capability
  • C-node
    • Composite capability
  • D-node
    • Display Resolution
scalability of nodes1
Scalability of Nodes
  • No Node Number Limit
  • Main bottleneck
    • Network Bandwidth
  • Compression is Adopted to solve the bottle- neck
    • Geometry Compression
    • Image Compression
anygl7
AnyGL
  • Goal
  • Architecture
  • Command classification
  • Analysis of Dependency Relation
  • State Tracking
  • Compression
  • Scalability
  • ParallelGraphicsAPI
parallel graphics api
Parallel Graphics API
  • Traditional Parallel Programming
  • Parallel Graphics API in Argus
  • Global Share Extension of AnyGL
  • Parallel Programming Frame of AnyGL
traditional parallel programming
Traditional Parallel Programming
  • Single Process, Vector Machine, HPF and Fortran 90
  • DSM
  • Message Passing, PVM, MPI,
  • Multi-Process, global variables, SGI Power C, p-tread
parallel graphics api in argus
Parallel Graphics API in Argus
  • Barrier
  • Distributed Mutex
  • Typical Application
    • Volume Rendering
global share extension
Global Share Extension
  • Assume
    • m G-nodes have same texture tex0
    • Tex0 occupies K MB memory
    • Each R-node allocate M * K MB memory to store Tex0!
global share extension1
Global Share Extension
  • GL_TEXTURE_nD, n = 1, 2, 3
    • Local Texture
    • R-node allocates memory for each local texture
  • GL_GLOBAL_TEXTURE_nD, n= 1,2,3
    • Global Texture
    • R-node allocates shared memory for global texture
global share extension2
Global Share Extension
  • GL_GLOBAL_TEXTURE_nD, n = 1,2,3
parallel frame of anygl
Parallel Frame of AnyGL
  • int main(int argc, char *argv[]){
  • glboals.bWorking = 1;
  • globals.M_PolygonMode = GL_FILL;
      • globals.S_PolygonMode = GL_FILL;
      • MPI_Init(&argc, &argv); /*MPI初始化*/
  • MPI_Comm_rank( MPI_COMM_WORLD, & rank_id);
  • MPI_Comm_size( MPI_COMM_WORLD, & nprocs );
  • if(rank_id == 0) { /*主进程循环*/
  • MasterGUIInit(&argc, argv); /*构造GUI界面*/
  • Create_Context(); /*产生GLcontext*/
  • MasterMainLoop(Display);
  • }else{ /*从进程循环*/
  • Create_Context();
  • for(;;) Displau();
  • }
  • MPI_Finalize( ); /* 应用程序退出*/
  • return 0;
  • }
contents3
Contents
  • Goal of Computer Graphics Architecture
  • Parallel Graphics Architecture
  • AnyGL in Details
  • Conclusion
  • Further Research
conclusion
Conclusion
  • 1.AnyGL is a larger-scale hybrid distributed graphics system, which has integrated sort-first and sort-last parallel graphics architecture. It provides unlimited scalability for distributed graphics system.
  • 2.Its virtual parallel graphics pipeline is composed of 4 kinds of logic nodes, G-Node, R-Node, C-Node, D-Node
slide95
3. A new kind of dependency relation, graphics context dependency relation of OpenGL pipeline, is analyzed for distributed graphics architecture in details.
  • 4. A new state-tracking algorithm is implemented in AnyGL, which is called “Logic Timestamp Graphics State Tracking”.
  • 5. Image compression and geometry compression are deeply exploited in AnyGL.
slide96
6. A new parallel programming interface, global share of texture object and display list, are proposed for future parallel graphics architecture research.
  • AnyGL provides a new solution for larger scale distributed graphics system in theory. Performance test proves the high scalability of AnyGL. It does not limit the nodes number of logic node. Graphics state tracking algorithm based on Logic timestamp introduces almost no extra overheads. It research is the basis of LAN larger scale distributed graphics system.
further research
Further Research
  • D3D
    • COM  DCOM
  • Parallel of Stream Based Graphics Architecture?
  • Global Illumination for Parallel Architecture
  • Programmable Shading Language Support for Distributed Graphics System?