Top Banner
PETER MESSMER, NVIDIA SCIENTIFIC VISUALIZATION ON GPU CLUSTERS
40

SCIENTIFIC VISUALIZATION ON GPU CLUSTERSon-demand.gputechconf.com/gtc/2015/presentation/S5660-Peter-Me… · SCIENTIFIC VISUALIZATION ON GPU CLUSTERS . Visualization ≠ Rendering.

Jun 04, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: SCIENTIFIC VISUALIZATION ON GPU CLUSTERSon-demand.gputechconf.com/gtc/2015/presentation/S5660-Peter-Me… · SCIENTIFIC VISUALIZATION ON GPU CLUSTERS . Visualization ≠ Rendering.

PETER MESSMER, NVIDIA

SCIENTIFIC VISUALIZATION ON GPU CLUSTERS

Page 2: SCIENTIFIC VISUALIZATION ON GPU CLUSTERSon-demand.gputechconf.com/gtc/2015/presentation/S5660-Peter-Me… · SCIENTIFIC VISUALIZATION ON GPU CLUSTERS . Visualization ≠ Rendering.

Visualization ≠ Rendering

Page 3: SCIENTIFIC VISUALIZATION ON GPU CLUSTERSon-demand.gputechconf.com/gtc/2015/presentation/S5660-Peter-Me… · SCIENTIFIC VISUALIZATION ON GPU CLUSTERS . Visualization ≠ Rendering.

Visualization

Coordinate

transformations

Feature

extraction

Thresholding

Isosurfaces,

Isovolumes

Streamlines

Rendering Surface

Rendering

Volume

Rendering

Field Operators

(Gradient, Curl,.. )

Clip, Slice

Binning,

Resample Line

Rendering

Compositing

Page 4: SCIENTIFIC VISUALIZATION ON GPU CLUSTERSon-demand.gputechconf.com/gtc/2015/presentation/S5660-Peter-Me… · SCIENTIFIC VISUALIZATION ON GPU CLUSTERS . Visualization ≠ Rendering.

Visualization

Feature

extraction

Isosurfaces,

Isovolumes

Streamlines

Field Operators

(Gradient, Curl,.. )

Filtering

Line

Rendering

Coordinate

transformations

Feature

extraction

Thresholding Isosurfaces,

Isovolumes

Streamlines

Field Operators

(Gradient, Curl,.. )

Clip, Slice

Binning,

Resample Rendering

Surface

Rendering

Volume

Rendering

Line

Rendering

Compositing

Page 5: SCIENTIFIC VISUALIZATION ON GPU CLUSTERSon-demand.gputechconf.com/gtc/2015/presentation/S5660-Peter-Me… · SCIENTIFIC VISUALIZATION ON GPU CLUSTERS . Visualization ≠ Rendering.

Simulation: Data as needed in numerical algorithm

Filtering: Conversion of simulation data into data ready for rendering

Typical operations: binning, down/up-sampling, iso-surface extraction, interpolation, coordinate transformation, sub-selection, ..

Sometimes embedded in simulation

Rendering: Conversion of shapes to pixels (Fragment processing)

Compositing: Combination of independently generated pixels into final frame

Visualization

Filtering Rendering Compositing Simulation

THE VISUALIZATION PIPELINE

Page 6: SCIENTIFIC VISUALIZATION ON GPU CLUSTERSon-demand.gputechconf.com/gtc/2015/presentation/S5660-Peter-Me… · SCIENTIFIC VISUALIZATION ON GPU CLUSTERS . Visualization ≠ Rendering.

PARTICULARITIES IN HPC VIZ

Images may be subject to copyright

Parallelism Remoteness Heterogeneity

Page 7: SCIENTIFIC VISUALIZATION ON GPU CLUSTERSon-demand.gputechconf.com/gtc/2015/presentation/S5660-Peter-Me… · SCIENTIFIC VISUALIZATION ON GPU CLUSTERS . Visualization ≠ Rendering.

OUTLINE

Tools

Paraview, Visit, others

Rendering

Enable HW rendering on Tesla

Remote rendering

Compositing

Delivery

In-situ visualization

High-level overview. Some parts platform dependent. Check with your sysadmin.

Page 8: SCIENTIFIC VISUALIZATION ON GPU CLUSTERSon-demand.gputechconf.com/gtc/2015/presentation/S5660-Peter-Me… · SCIENTIFIC VISUALIZATION ON GPU CLUSTERS . Visualization ≠ Rendering.

VISUALIZATION APPLICATIONS

Page 9: SCIENTIFIC VISUALIZATION ON GPU CLUSTERSon-demand.gputechconf.com/gtc/2015/presentation/S5660-Peter-Me… · SCIENTIFIC VISUALIZATION ON GPU CLUSTERS . Visualization ≠ Rendering.

PARAVIEW Scalar, vector and tensor field data features

Plots: contour, curve, mesh, pseudocolor, volume,..

Operators: slice, iso-surface, threshold, binning,..

Quantitative and qualitative analysis/vis

Derived fields, dimension reduction, line-outs

Pick & query

Scalable architecture

Developed by Kitware, open source

http://www.paraview.org

Page 10: SCIENTIFIC VISUALIZATION ON GPU CLUSTERSon-demand.gputechconf.com/gtc/2015/presentation/S5660-Peter-Me… · SCIENTIFIC VISUALIZATION ON GPU CLUSTERS . Visualization ≠ Rendering.

PARAVIEW’S SCALABLE ARCHITECTURE Client-server-server architecture

Server MPI parallel

Distributed filtering

GPU accelerated, parallel

rendering*

* requires X server on each node

Page 11: SCIENTIFIC VISUALIZATION ON GPU CLUSTERSon-demand.gputechconf.com/gtc/2015/presentation/S5660-Peter-Me… · SCIENTIFIC VISUALIZATION ON GPU CLUSTERS . Visualization ≠ Rendering.

VISIT Scalar, vector and tensor field data features

Plots: contour, curve, mesh, pseudo-color, volume,..

Operators: slice, iso-surface, threshold, binning,..

Quantitative and qualitative analysis/vis

Derived fields, dimension reduction, line-outs

Pick & query

Scalable architecture

Open source

http://wci.llnl.gov/codes/visit/

Page 12: SCIENTIFIC VISUALIZATION ON GPU CLUSTERSon-demand.gputechconf.com/gtc/2015/presentation/S5660-Peter-Me… · SCIENTIFIC VISUALIZATION ON GPU CLUSTERS . Visualization ≠ Rendering.

VISIT’S SCALABLE ARCHITECTURE

Client-server architecture

Server MPI parallel

Distributed filtering

(multi-)GPU accelerated,

parallel rendering*

* requires X server on each node

Page 13: SCIENTIFIC VISUALIZATION ON GPU CLUSTERSon-demand.gputechconf.com/gtc/2015/presentation/S5660-Peter-Me… · SCIENTIFIC VISUALIZATION ON GPU CLUSTERS . Visualization ≠ Rendering.

SOME OTHER TOOLS

Wide range of visualization tools

Often emerged from specialized application domain

Tecplot, EnSight: structural analysis, CFD

IndeX: seismic data processing & visualization

IDL: image processing

Early adopters of visual programming

AVS/Express, OpenDX

Page 14: SCIENTIFIC VISUALIZATION ON GPU CLUSTERSon-demand.gputechconf.com/gtc/2015/presentation/S5660-Peter-Me… · SCIENTIFIC VISUALIZATION ON GPU CLUSTERS . Visualization ≠ Rendering.

FURTHER READING

Paraview Tutorial:

http://www.paraview.org/Wiki/The_ParaView_Tutorial

VisIt Manuals/Tutorials:

http://wci.llnl.gov/codes/visit/manuals.html

Page 15: SCIENTIFIC VISUALIZATION ON GPU CLUSTERSon-demand.gputechconf.com/gtc/2015/presentation/S5660-Peter-Me… · SCIENTIFIC VISUALIZATION ON GPU CLUSTERS . Visualization ≠ Rendering.

RENDERING

Page 16: SCIENTIFIC VISUALIZATION ON GPU CLUSTERSon-demand.gputechconf.com/gtc/2015/presentation/S5660-Peter-Me… · SCIENTIFIC VISUALIZATION ON GPU CLUSTERS . Visualization ≠ Rendering.

OPENGL: API FOR GPU ACCELERATED RENDERING

• Primitives: points, lines, polygons

• Properties: colors, lighting, textures, ..

• View: camera position and perspective

• Shaders: Rendering to screen/framebuffer

• C-style functions, enums

See e.g. “What Every CUDA Programmer Should Know About OpenGL”

(http://www.nvidia.com/content/GTC/documents/1055_GTC09.pdf)

Page 17: SCIENTIFIC VISUALIZATION ON GPU CLUSTERSon-demand.gputechconf.com/gtc/2015/presentation/S5660-Peter-Me… · SCIENTIFIC VISUALIZATION ON GPU CLUSTERS . Visualization ≠ Rendering.

A SIMPLE OPENGL EXAMPLE

glColor3f(1.0f,0,0);

glBegin(GL_QUADS);

glVertex3f(-1.0f, -1.0f, 0.0f); // The bottom left corner

glVertex3f(-1.0f, 1.0f, 0.0f); // The top left corner

glVertex3f(1.0f, 1.0f, 0.0f); // The top right corner

glVertex3f(1.0f, -1.0f, 0.0f); // The bottom right corner

glEnd();

glFlush();

State-based API

(sticky attributes)

Drawing

Render to screen

Page 18: SCIENTIFIC VISUALIZATION ON GPU CLUSTERSon-demand.gputechconf.com/gtc/2015/presentation/S5660-Peter-Me… · SCIENTIFIC VISUALIZATION ON GPU CLUSTERS . Visualization ≠ Rendering.

glColor3f(1.0f,0,0);

glBegin(GL_QUADS);

glVertex3f(-1.0f, -1.0f, 0.0f);

glVertex3f(-1.0f, 1.0f, 0.0f);

glVertex3f(1.0f, 1.0f, 0.0f);

glVertex3f(1.0f, -1.0f, 0.0f);

glEnd();

glFlush();

float* vert={-1.0f, -1.0f, ..};

float* d_vert;

cudaMalloc(&d_vert, n);

cudaMemcpy(d_vert, vert, n,

cudaMemcpyHostToDevice);

renderQuad<<<N/128, N>>>(d_vert);

flushToScreen<<<..>>>();

?

Page 19: SCIENTIFIC VISUALIZATION ON GPU CLUSTERSon-demand.gputechconf.com/gtc/2015/presentation/S5660-Peter-Me… · SCIENTIFIC VISUALIZATION ON GPU CLUSTERS . Visualization ≠ Rendering.

CUDA-OPENGL INTEROP: MAPPING MEMORY

• OpenGL: Opaque data buffer object (Mention here that this is mainly in “legacy” OpenGL and more control available in modern OpenGL)

• Vertex Buffer Object (VBO)

• User has very limited control

• CUDA: C-style memory management

• User has full control

• CUDA-OpenGL Interop:

Map/Unmap OpenGL buffers into CUDA memory space

cudaGraphicsGLRegisterBuffer(cuda_vbo, *vbo, flags);

cudaGraphicsMapResources(1, cuda_vbo, 0);

Page 20: SCIENTIFIC VISUALIZATION ON GPU CLUSTERSon-demand.gputechconf.com/gtc/2015/presentation/S5660-Peter-Me… · SCIENTIFIC VISUALIZATION ON GPU CLUSTERS . Visualization ≠ Rendering.

CAN ALL GPUS SUPPORT OPENGL?

GeForce : standard feature set including OpenGL 4.5

Quadro : + certain highly accelerated features (e.g. CAD)

Tesla, K20X,m : Requires setting GPU Operation Mode (GOM) to “All on”

Tesla K40, K80: GOM “All on” by default

nvidia-smi –-query-gpu=gom.current

nvidia-smi –q

Page 21: SCIENTIFIC VISUALIZATION ON GPU CLUSTERSon-demand.gputechconf.com/gtc/2015/presentation/S5660-Peter-Me… · SCIENTIFIC VISUALIZATION ON GPU CLUSTERS . Visualization ≠ Rendering.

OPENGL CONTEXT

State of an OpenGL instance

Incl. viewable surface

Interface to windowing system

Context creation: platform specific

Not part of OpenGL

Handled by Xserver in Linux/Unix-like systems

New alternative: EGL (currently: OpenGL ES only)

GLX: Interaction X<-> OpenGL

Page 22: SCIENTIFIC VISUALIZATION ON GPU CLUSTERSon-demand.gputechconf.com/gtc/2015/presentation/S5660-Peter-Me… · SCIENTIFIC VISUALIZATION ON GPU CLUSTERS . Visualization ≠ Rendering.

Driver

GPU

3D X Server

Application

libGL

GLX OpenGL

libGLX Xlib

OPENGL ON HEADLESS SERVERS

libGLES

OpenGLES

Driver

GPU

3D X Server

Application

libGL

OpenGL

libEGL Xlib libGLES

OpenGL ES EGL

Current State Current State for OpenGL ES applications

Page 23: SCIENTIFIC VISUALIZATION ON GPU CLUSTERSon-demand.gputechconf.com/gtc/2015/presentation/S5660-Peter-Me… · SCIENTIFIC VISUALIZATION ON GPU CLUSTERS . Visualization ≠ Rendering.

REMOTE RENDERING

Page 24: SCIENTIFIC VISUALIZATION ON GPU CLUSTERSon-demand.gputechconf.com/gtc/2015/presentation/S5660-Peter-Me… · SCIENTIFIC VISUALIZATION ON GPU CLUSTERS . Visualization ≠ Rendering.

LOCAL RENDERING

Application

libGL Xlib

GLX

X11

Events

Com

mands

Driver

GPU, monitor attached

2D/3D X Server

OpenGL

Page 25: SCIENTIFIC VISUALIZATION ON GPU CLUSTERSon-demand.gputechconf.com/gtc/2015/presentation/S5660-Peter-Me… · SCIENTIFIC VISUALIZATION ON GPU CLUSTERS . Visualization ≠ Rendering.

X-FORWARDING: THE SIMPLEST FORM OF “REMOTE” RENDERING

Application

libGL Xlib

OpenGL/GLX

X11 Events

X11 Commands

Driver

GPU, monitor attached

2D/3D X Server On remote system: export DISPLAY=59.151.136.110:0.0

Network

Page 26: SCIENTIFIC VISUALIZATION ON GPU CLUSTERSon-demand.gputechconf.com/gtc/2015/presentation/S5660-Peter-Me… · SCIENTIFIC VISUALIZATION ON GPU CLUSTERS . Visualization ≠ Rendering.

SERVER-SIDE RENDERING + REMOTE VIZ APPLICATION

Driver

GPU

2D/3D X Server

Application

libGL Xlib

GLX

OpenGL

X11

Events X11

Cmds

Driver

GPU, monitor attached

Network

Client

Page 27: SCIENTIFIC VISUALIZATION ON GPU CLUSTERSon-demand.gputechconf.com/gtc/2015/presentation/S5660-Peter-Me… · SCIENTIFIC VISUALIZATION ON GPU CLUSTERS . Visualization ≠ Rendering.

SERVER-SIDE RENDERING + SCRAPING

Driver

GPU

2D/3D X Server

Application

libGL Xlib

GLX

OpenGL

X11

Events X11

Cmds

Driver

GPU, monitor attached

Network

Scra

per

Images

Client

Page 28: SCIENTIFIC VISUALIZATION ON GPU CLUSTERSon-demand.gputechconf.com/gtc/2015/presentation/S5660-Peter-Me… · SCIENTIFIC VISUALIZATION ON GPU CLUSTERS . Visualization ≠ Rendering.

CAPTURE/ENCODING WITH NVFBC/NVIFR

Driver

GPU

2D/3D X Server

Application

libGL Xlib

GLX

OpenGL

X11

Events X11

Cmds

Driver

GPU, monitor attached

Network

NV

FBC

/NV

IFR

Images

Client

H.264

https://developer.nvidia.com/grid-app-game-streaming

https://developer.nvidia.com/nvidia-video-codec-sdk

Page 29: SCIENTIFIC VISUALIZATION ON GPU CLUSTERSon-demand.gputechconf.com/gtc/2015/presentation/S5660-Peter-Me… · SCIENTIFIC VISUALIZATION ON GPU CLUSTERS . Visualization ≠ Rendering.

GLX FORKING WITH INTERPOSER LIBRARY

Driver

GPU

3D X Server

Application

libGL VirtualGL Xlib

GLX

OpenGL Images

Driver

GPU, monitor attached

Network

X11

Events

X11

Cmds

Proxy X

Server Images

Client App

Page 30: SCIENTIFIC VISUALIZATION ON GPU CLUSTERSon-demand.gputechconf.com/gtc/2015/presentation/S5660-Peter-Me… · SCIENTIFIC VISUALIZATION ON GPU CLUSTERS . Visualization ≠ Rendering.

EXAMPLE OF REMOTING SOLUTIONS TurboVNC + VirtualGL

+ Open source solution

+ Compressed image transport

+ Remote GPU accelerates OpenGL

http://www.virtualgl.org

NICE DCV

+ Commercial grade product

+ H264 encoded video stream

http://www.nice-software.com/products/dcv

Page 31: SCIENTIFIC VISUALIZATION ON GPU CLUSTERSon-demand.gputechconf.com/gtc/2015/presentation/S5660-Peter-Me… · SCIENTIFIC VISUALIZATION ON GPU CLUSTERS . Visualization ≠ Rendering.

PARALLEL VISUALIZATION

Page 32: SCIENTIFIC VISUALIZATION ON GPU CLUSTERSon-demand.gputechconf.com/gtc/2015/presentation/S5660-Peter-Me… · SCIENTIFIC VISUALIZATION ON GPU CLUSTERS . Visualization ≠ Rendering.

PARALLEL VISUALIZATION Domain decomposition

Parallelism at multiple levels

Filtering

Rendering

- Both supported by VisIt & Paraview

- Heavy lifting already done!

- Typically biggest challenge: Setup in parallel environment

- Both tools provide support for most common cases

- Both VisIt & Paraview MPI parallel -> need custom build

Page 33: SCIENTIFIC VISUALIZATION ON GPU CLUSTERSon-demand.gputechconf.com/gtc/2015/presentation/S5660-Peter-Me… · SCIENTIFIC VISUALIZATION ON GPU CLUSTERS . Visualization ≠ Rendering.

PARALLEL COMPOSITING WITH ICET

• Each node renders fraction of image

• Sort last compositing

• Highly scalable

• Widely used (Paraview, VisIt .. )

http://icet.sandia.gov

Page 34: SCIENTIFIC VISUALIZATION ON GPU CLUSTERSon-demand.gputechconf.com/gtc/2015/presentation/S5660-Peter-Me… · SCIENTIFIC VISUALIZATION ON GPU CLUSTERS . Visualization ≠ Rendering.

IN-SITU VISUALIZATION

Page 35: SCIENTIFIC VISUALIZATION ON GPU CLUSTERSon-demand.gputechconf.com/gtc/2015/presentation/S5660-Peter-Me… · SCIENTIFIC VISUALIZATION ON GPU CLUSTERS . Visualization ≠ Rendering.

LEGACY WORKFLOW

Sim Sim Sim

Viz Viz Viz

Time

File system pressure

Long time-to-science

Page 36: SCIENTIFIC VISUALIZATION ON GPU CLUSTERSon-demand.gputechconf.com/gtc/2015/presentation/S5660-Peter-Me… · SCIENTIFIC VISUALIZATION ON GPU CLUSTERS . Visualization ≠ Rendering.

PIPELINED IN-SITU ANALYSIS

Sim Sim Sim

Viz Viz Viz

Time

Reduced file system consumption

Early detection of faulty runs

Reduced

Page 37: SCIENTIFIC VISUALIZATION ON GPU CLUSTERSon-demand.gputechconf.com/gtc/2015/presentation/S5660-Peter-Me… · SCIENTIFIC VISUALIZATION ON GPU CLUSTERS . Visualization ≠ Rendering.

DIFFERENT VISUALIZATION SCENARIOS

1) Legacy workflow

Separate compute & viz system

Communication via filesystem

2) Partitioned HPC system

Different nodes for viz & compute

Communication via High Perf Network

3) Co-Processing

Compute on GPU, viz on CPU

Compute and visualization on same GPU

HPC System

Compute GPU

Viz System

Viz GPU Filesystem

HPC System

Compute GPU

Viz GPU

Network

HPC System

Compute+Viz

nodes

Page 38: SCIENTIFIC VISUALIZATION ON GPU CLUSTERSon-demand.gputechconf.com/gtc/2015/presentation/S5660-Peter-Me… · SCIENTIFIC VISUALIZATION ON GPU CLUSTERS . Visualization ≠ Rendering.

SUPPORT FOR IN-SITU VISUALIZATION Paraview: Catalyst

VisIt: LibSim

Instrument application to expose data

Paraview: Adaptor

LibSim: Data access callbacks

Potential for interactive steering

S5815, today, 3:30: Programming Pointers to Optimize your In-Situ Visualization Pipeline

S5710, Fri 9:30: In-Situ Data Analysis and Visualization: ParaView, Calalyst and VTK-m

Page 39: SCIENTIFIC VISUALIZATION ON GPU CLUSTERSon-demand.gputechconf.com/gtc/2015/presentation/S5660-Peter-Me… · SCIENTIFIC VISUALIZATION ON GPU CLUSTERS . Visualization ≠ Rendering.

SUMMARY Visualization is more than rendering

Filtering often expensive component

Fast rendering can enable new applications (interactive supercomputing)

Tesla systems can be used for rendering On some systems requires GOM=All ON

Xserver or EGL

Remote visualization Supported by common tools

Take advantage of available hardware (H264 encoder)

Parallel Rendering Use IceT for compositing

In-Situ Visualization Supported by common tools

Page 40: SCIENTIFIC VISUALIZATION ON GPU CLUSTERSon-demand.gputechconf.com/gtc/2015/presentation/S5660-Peter-Me… · SCIENTIFIC VISUALIZATION ON GPU CLUSTERS . Visualization ≠ Rendering.

THANK YOU