workshop on parallel visualization and graphics chromium mike houston, stanford university and the...

35
Workshop on Parallel Visualization and Graphics Workshop on Parallel Visualization and Graphics Chromium Mike Houston, Stanford University and The Chromium Community

Post on 21-Dec-2015

227 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Workshop on Parallel Visualization and Graphics Chromium Mike Houston, Stanford University and The Chromium Community

Workshop on Parallel Visualization and Graphics

Workshop on Parallel Visualization and Graphics

Chromium

Mike Houston, Stanford University

and

The Chromium Community

Page 2: Workshop on Parallel Visualization and Graphics Chromium Mike Houston, Stanford University and The Chromium Community

2Workshop on Parallel Visualization and Graphics

How Chromium works

Replaces system’s OpenGL driver• Industry standard API• Support existing unmodified applications

Manipulates streams of API commands• Alter/inject/discard commands and parameters• Route commands over a network• Render commands using graphics hardware• State tracking

Allows parallel applications to issue OpenGL• Constrain ordering between multiple streams

Page 3: Workshop on Parallel Visualization and Graphics Chromium Mike Houston, Stanford University and The Chromium Community

3Workshop on Parallel Visualization and Graphics

Graphics Stream Processing

Treat OpenGL calls as a stream of commands Form a DAG of stream transformation nodes

• Nodes are computers in a cluster• Edges are OpenGL API communication

Each node has a serialization stage and a transformation stage

Page 4: Workshop on Parallel Visualization and Graphics Chromium Mike Houston, Stanford University and The Chromium Community

4Workshop on Parallel Visualization and Graphics

Stream Serialization

Convert multiple streams into a single stream Efficiently context-switch between streams Constrain ordering using Parallel OpenGL extensions

[Igehy98] Two kinds of serializers:

• Network server:

• Application:• Unmodified serial application• Custom parallel application

S

AOpenGL

Page 5: Workshop on Parallel Visualization and Graphics Chromium Mike Houston, Stanford University and The Chromium Community

5Workshop on Parallel Visualization and Graphics

Stream Transformation

Serialized stream is dispatched to “Stream Processing Units” (SPUs)

Each SPU is a shared library• Exports a (partial) OpenGL interface

Each node loads a chain of SPUs at run time SPUs are generic and interchangeable

Page 6: Workshop on Parallel Visualization and Graphics Chromium Mike Houston, Stanford University and The Chromium Community

6Workshop on Parallel Visualization and Graphics

SPU Chains

SPUs are loaded as parts of linear chains

Common usage: intercept a few OpenGL calls, pass all others to downstream SPU

Useful for simple state changes, such as “wireframe” drawing

Page 7: Workshop on Parallel Visualization and Graphics Chromium Mike Houston, Stanford University and The Chromium Community

7Workshop on Parallel Visualization and Graphics

Output Scalability (Sort-First)

Larger displays with unmodified applications Other possibilities: broadcast, ring network

App

Server

Server

Server

...

Display

Display

Display

...

Page 8: Workshop on Parallel Visualization and Graphics Chromium Mike Houston, Stanford University and The Chromium Community

8Workshop on Parallel Visualization and Graphics

Example: Sort-First

App

Tilesort ...

Server

Server

Server

Render

Render

Render

Page 9: Workshop on Parallel Visualization and Graphics Chromium Mike Houston, Stanford University and The Chromium Community

9Workshop on Parallel Visualization and Graphics

Input Scalability (Sort-Last)

Parallel geometry extraction Parallel data submission

App

App

App

...DisplayServer

Page 10: Workshop on Parallel Visualization and Graphics Chromium Mike Houston, Stanford University and The Chromium Community

10Workshop on Parallel Visualization and Graphics

Example: Sort-Last

Application runs directly on graphics hardware Same application can use sort-last or sort-first

...

Application

Application

Application

Readback

Readback

Readback

Send

Send

Send

Server

Render

Page 11: Workshop on Parallel Visualization and Graphics Chromium Mike Houston, Stanford University and The Chromium Community

11Workshop on Parallel Visualization and Graphics

SPU Inheritance

The Readback and Render SPUs are related• Readback renders everything except SwapBuffers

Readback inherits from the Render SPU• Override parent’s implementation of SwapBuffers• All OpenGL calls considered “virtual”

Page 12: Workshop on Parallel Visualization and Graphics Chromium Mike Houston, Stanford University and The Chromium Community

12Workshop on Parallel Visualization and Graphics

Readback’s SwapBuffers

Easily extended to include depth composite All other functions inherited from Render SPU

void RB_SwapBuffers(void){ self.ReadPixels( 0, 0, w, h, ... ); child.Clear( GL_COLOR_BUFFER_BIT ); child.SemaphorePCR( READBACK_SEMAPHORE ); child.RasterPos2i( tileX, tileY ); child.DrawPixels( w, h, ... ); child.SemaphoreVCR( READBACK_SEMAPHORE ); child.SwapBuffers( );}

Page 13: Workshop on Parallel Visualization and Graphics Chromium Mike Houston, Stanford University and The Chromium Community

13Workshop on Parallel Visualization and Graphics

More Complicated Example: Hybrid

App

App

App

...Tilesort

Tilesort

Tilesort

...

Server

Server

Server

Readback

Readback

Readback

Send

Send

Send

Server

Render

Page 14: Workshop on Parallel Visualization and Graphics Chromium Mike Houston, Stanford University and The Chromium Community

14Workshop on Parallel Visualization and Graphics

Networks Supported

TCP/UDP Myrinet Quadrics Infiniband (coming soon)

Page 15: Workshop on Parallel Visualization and Graphics Chromium Mike Houston, Stanford University and The Chromium Community

15Workshop on Parallel Visualization and Graphics

New Things to Chromium

Extensions DMX Support Display list management (DLM) VNC Support CRUT Dale’s talk

Page 16: Workshop on Parallel Visualization and Graphics Chromium Mike Houston, Stanford University and The Chromium Community

16Workshop on Parallel Visualization and Graphics

Extensions

GL_ARB_fragment_program GL_ARB_vertex_program GL_NV_fragment_program GL_NV_vertex_program GL_NV_texture_rectangle GL_EXT_shadow_funcs GL_EXT_texture_rectangle GL_IBM_raster_pos_clip

Page 17: Workshop on Parallel Visualization and Graphics Chromium Mike Houston, Stanford University and The Chromium Community

17Workshop on Parallel Visualization and Graphics

DMX Support

DMX• Distributed Multi-headed X• Single X session across multiple-displays

OpenGL through Chromium• Chromium “DMX aware” • Moving/resizing = retiling• M to N rendering

Page 18: Workshop on Parallel Visualization and Graphics Chromium Mike Houston, Stanford University and The Chromium Community

18Workshop on Parallel Visualization and Graphics

DMX In Action

Page 19: Workshop on Parallel Visualization and Graphics Chromium Mike Houston, Stanford University and The Chromium Community

19Workshop on Parallel Visualization and Graphics

Display List Management

Display List Manager (DLM)• State tracking is really tricky

• Replay state calls on client• Call list on servers

• Bounding Box tracking of display list Future optimizations

• Avoid broadcasting data in display list• Send calls once per server as needed

Page 20: Workshop on Parallel Visualization and Graphics Chromium Mike Houston, Stanford University and The Chromium Community

20Workshop on Parallel Visualization and Graphics

VNC

X forwarding• Forwards GLX calls to client

DRI bypasses X• Can’t get pixel data

OpenGL apps load Chromium• Render on local host• Readback pixel data• Send to user’s display

Page 21: Workshop on Parallel Visualization and Graphics Chromium Mike Houston, Stanford University and The Chromium Community

21Workshop on Parallel Visualization and Graphics

What are people doing with Chromium?

Page 22: Workshop on Parallel Visualization and Graphics Chromium Mike Houston, Stanford University and The Chromium Community

22Workshop on Parallel Visualization and Graphics

Dynamic Screen Calibration

Page 23: Workshop on Parallel Visualization and Graphics Chromium Mike Houston, Stanford University and The Chromium Community

23Workshop on Parallel Visualization and Graphics

Quake3 Arena

Niederauer, et al.

Page 24: Workshop on Parallel Visualization and Graphics Chromium Mike Houston, Stanford University and The Chromium Community

24Workshop on Parallel Visualization and Graphics

Viewed in a new way

Niederauer, et al.

Page 25: Workshop on Parallel Visualization and Graphics Chromium Mike Houston, Stanford University and The Chromium Community

25Workshop on Parallel Visualization and Graphics

Architectural Analysis

Intercept geometry Determine floor positions Change to orthographic view Insert clip planes at the ceilings Split floors apart Multi-pass rendering

“Non-Invasive Interactive Visualization of Dynamic Architectural Environments”

Christopher Niederauer, Mike Houston, Maneesh Agrawala, Greg Humphreys

ACM SIGGRAPH 2003 Symposium on Interactive 3D Graphics

Page 26: Workshop on Parallel Visualization and Graphics Chromium Mike Houston, Stanford University and The Chromium Community

26Workshop on Parallel Visualization and Graphics

Batch Scheduler Integration

Offline rendering to a webpage Use massive compute resources Rendering with Vis cluster Integrate support with RMS

Pittsburg Supercomputer Center

Page 27: Workshop on Parallel Visualization and Graphics Chromium Mike Houston, Stanford University and The Chromium Community

27Workshop on Parallel Visualization and Graphics

Summary

• 750 Compute Nodes• 3000 EV68 processors

• 6 Tf (peak, est >4Tf on LSMS)• 3. TB memory• 27 TB local disk• Multi-rail fat-tree network• Redundant monitor/ctrl• WAN/LAN accessible• Parallel visualization

• File servers: 30TB, ~32 GB/s• Mass store, ~1 TB/hr

WAN/LAN

Switchedethernet

Quadrics

Control

Compute Nodes

File Servers

VizMass Store

bufferArchive

Interactive/home

Terascale Computing System

Pittsburg Supercomputer Center

Page 28: Workshop on Parallel Visualization and Graphics Chromium Mike Houston, Stanford University and The Chromium Community

28Workshop on Parallel Visualization and Graphics

Example

qsub –l rmsnodes=3:12,other=visnodes=5 Job waits until 3 nodes (12 cpus) become

available AND 5 vis nodes are available When resources available, job runs Visit vis web page for rendering

Pittsburg Supercomputer Center

Page 29: Workshop on Parallel Visualization and Graphics Chromium Mike Houston, Stanford University and The Chromium Community

29Workshop on Parallel Visualization and Graphics

What coming in the next year?

Page 30: Workshop on Parallel Visualization and Graphics Chromium Mike Houston, Stanford University and The Chromium Community

30Workshop on Parallel Visualization and Graphics

General Improvements

Continue to track OpenGL changes• Add extensions

Optimizations• Display list management• Tilesort

Software Compositors

Page 31: Workshop on Parallel Visualization and Graphics Chromium Mike Houston, Stanford University and The Chromium Community

31Workshop on Parallel Visualization and Graphics

PICA Support

Parallel Image Compositing API (PICA)• API for hardware and software compositing• Will be supported by most hardware compositors

Chromium support• Hooks almost complete• Need software compositors

• Readback (N to 1)• Binary-swap• SLIC

• Need info from hardware folks

Page 32: Workshop on Parallel Visualization and Graphics Chromium Mike Houston, Stanford University and The Chromium Community

32Workshop on Parallel Visualization and Graphics

“Vis as a service”

Better integration with schedulers• Reservation systems• Compute/Render/Display

Distributed event model (CRUT) Compression

• Geometry data• Pixel data

Encryption

Page 33: Workshop on Parallel Visualization and Graphics Chromium Mike Houston, Stanford University and The Chromium Community

33Workshop on Parallel Visualization and Graphics

Look at how much was done last year!

4 releases Constant bug fixes Constant improvements Constant optimizations

Chromium is used in the real world!

Chromium is supported by a large community!

Page 34: Workshop on Parallel Visualization and Graphics Chromium Mike Houston, Stanford University and The Chromium Community

34Workshop on Parallel Visualization and Graphics

Go get it!

http://chromium.sourceforge.net

Page 35: Workshop on Parallel Visualization and Graphics Chromium Mike Houston, Stanford University and The Chromium Community

35Workshop on Parallel Visualization and Graphics

Acknowlegements

The Chromium community Greg Humphreys Brian Paul Joel Welling Alan Hourihane DOE!!!