Distributed Visualization Parallel Visualization Large data volumes



Similar documents
Facts about Visualization Pipelines, applicable to VisIt and ParaView

James Ahrens, Berk Geveci, Charles Law. Technical Report

Visualization with ParaView. Greg Johnson

Parallel Large-Scale Visualization

Introduction to Paraview. H.D.Rajesh

Visualization with ParaView

Parallel Analysis and Visualization on Cray Compute Node Linux

Scientific Visualization with Open Source Tools. HM 2014 Julien Jomier

Post-processing and Visualization with Open-Source Tools. Journée Scientifique Centre Image April 9, Julien Jomier

Petascale Visualization: Approaches and Initial Results

MayaVi: A free tool for CFD data visualization

The Visualization Pipeline

Visualization and Post Processing of OpenFOAM results a Brie. a Brief Introduction to VTK

Introduction to Visualization with VTK and ParaView

Open Source CFD Solver - OpenFOAM

A Hybrid Visualization System for Molecular Models

ParaView s Comparative Viewing, XY Plot, Spreadsheet View, Matrix View

The Design and Implement of Ultra-scale Data Parallel. In-situ Visualization System

Lecture Notes, CEng 477

CHAPTER FIVE RESULT ANALYSIS

VisIt Visualization Tool

Visualisatie BMT. Introduction, visualization, visualization pipeline. Arjan Kok Huub van de Wetering

NVIDIA IndeX. Whitepaper. Document version June 2013

Multiresolution 3D Rendering on Mobile Devices

In-situ Visualization

Remote Large Data Visualization in the ParaView Framework

Parallel Simplification of Large Meshes on PC Clusters

OpenFOAM Opensource and CFD

Silverlight for Windows Embedded Graphics and Rendering Pipeline 1


Bringing Big Data Modelling into the Hands of Domain Experts

Visualization of Adaptive Mesh Refinement Data with VisIt

NVIDIA IndeX Enabling Interactive and Scalable Visualization for Large Data Marc Nienhaus, NVIDIA IndeX Engineering Manager and Chief Architect

Introduction to Computer Graphics

Remote Graphical Visualization of Large Interactive Spatial Data

IDL. Get the answers you need from your data. IDL

BUILDING TELEPRESENCE SYSTEMS: Translating Science Fiction Ideas into Reality

Interactive Data Visualization with Focus on Climate Research

Large-Data Software Defined Visualization on CPUs

How is EnSight Uniquely Suited to FLOW-3D Data?

AVS/Express - an object-oriented visual development tool

L20: GPU Architecture and Models

Interactive Visualization of Magnetic Fields

Parallel Visualization for GIS Applications

GPU Architecture. Michael Doggett ATI

OpenFOAM postprocessing and advanced running options

Web Based 3D Visualization for COMSOL Multiphysics

Visualisation in the Google Cloud

HPC & Visualization. Visualization and High-Performance Computing

Computer Graphics Hardware An Overview

Visualization and Data Analysis

Processing Data with rsmap3d Software Services Group Advanced Photon Source Argonne National Laboratory

Image Processing and Computer Graphics. Rendering Pipeline. Matthias Teschner. Computer Science Department University of Freiburg

MEng, BSc Applied Computer Science

Visualization and Feature Extraction, FLOW Spring School 2016 Prof. Dr. Tino Weinkauf. Flow Visualization. Image-Based Methods (integration-based)

How To Program With Adaptive Vision Studio

The Scientific Data Mining Process

Volume visualization I Elvins

SECONDARY STORAGE TERRAIN VISUALIZATION IN A CLIENT-SERVER ENVIRONMENT: A SURVEY

Equalizer. Parallel OpenGL Application Framework. Stefan Eilemann, Eyescale Software GmbH

The Design and Implementation of a C++ Toolkit for Integrated Medical Image Processing and Analyzing

Parallel Visualization of Petascale Simulation Results from GROMACS, NAMD and CP2K on IBM Blue Gene/P using VisIt Visualization Toolkit

COMP175: Computer Graphics. Lecture 1 Introduction and Display Technologies

Overview Motivation and applications Challenges. Dynamic Volume Computation and Visualization on the GPU. GPU feature requests Conclusions

Multi-GPU Load Balancing for Simulation and Rendering

MEng, BSc Computer Science with Artificial Intelligence

A Short Introduction to Computer Graphics

Introduction to MeVisLab Visual Programming Image Processing / VIsualization Examples VTK / ITK Integration MeVisLab SDK Features GUI Scripting

Using open source and commercial visualization packages for analysis and visualization of large simulation dataset

Computer Graphics. Computer graphics deals with all aspects of creating images with a computer

Technical Report. An Interactive Iso-Surface Based 3D Weather Radar Data Visualization Package Using VisAD for WDSSII

How To Get A Computer Science Degree At Appalachian State

How To Teach Computer Graphics

Outline. Fundamentals. Rendering (of 3D data) Data mappings. Evaluation Interaction

Visualization Plugin for ParaView

Collaborative modelling and concurrent scientific data analysis:

Visualizing Data: Scalable Interactivity

Writing Applications for the GPU Using the RapidMind Development Platform

JMulTi/JStatCom - A Data Analysis Toolkit for End-users and Developers

Exploratory Climate Data Visualization and Analysis

Programming 3D Applications with HTML5 and WebGL

An Interactive 3D Visualization Tool for Large Scale Data Sets for Quantitative Atom Probe Tomography

Why are we teaching you VisIt?

An Introduction to Open Source Geospatial Tools

OMIQ srl. Advanced Post-Processing of Flow3D Calculations using Ensight. Federico Monterosso. Ingegneria di componenti e sistemi industriali

VisIVO, a VO-Enabled tool for Scientific Visualization and Data Analysis: Overview and Demo

System Architecture V3.2. Last Update: August 2015

Recommended hardware system configurations for ANSYS users

Transcription:

Distributed Visualization Parallel Visualization Large data volumes Dr. Jean M. Favre Head of Scientific Visualisation Outline Historical perspective Some strategies to deal with large data How do VTK and ParaView fit in our portfolio? VTK and ParaView s best features for Large Data Data Streaming, data parallelism ParaView s Compositor Conclusion 1

History of visualization softwares at CSCS In the last 10 years, IRIS Explorer AVS5, AVS/Express EnSight Amira CFXPost (ANSYS) In-house packages COVISE Most examples in this class VTK ParaView Most practice in our Center Large Data Volumes Definition: What is considered large? I ll accept Jim Ahrens (LANL) own definition. it is big if it does not fit on the computer you have access to Can be large because: it is time-dependent. It is partitioned over multiple domains. It is a very complex geometry. 2

Strategies to deal with large data Data access on-demand client-server streamed parallel Interaction techniques Efficient Progressive Interruptible Rendering new paradigms (e.g. Vector field visualization) Open-GL dev. for games multi-resolution distributed with compositing Levels of Details Distributed control, interrupts The Visualization Pipeline Data Sources: reading from data files, or generating data online Data Filters: construct objects used to understand the data examples: warp scalar, contour, shrink, streamline, probe, gradient Data Mappers: convert filters s output to geometric primitives examples: polygonal models (triangle strips) Rendering: OpenGL or off-screen + interaction modes The Visualization pipeline is an active collection of modules allowing users to create/delete derived quantities and objects to represent their data. 3

The Visualization Pipeline The Visualization pipeline can most often be represented by a graph (DAG) of modules connected to each other with data flowing between them. IRIS Explorer, AVS, MayaVi make this graph visible. (see picture on the right) => EnSight, ParaView hide it from the user while maintaining its functionality Data Flow or Event Flow? AVS/Express is a data-flow environment. Any change in the data triggers a downstream chain of updates VTK is an event-flow environment. The renderer drives the request for data updates Why is this important? Scaling to large data, and planning a distributed visualization should be driven bottom-to-top Data Sources Data Filters Data Mappers Graphics Rendering 4

Data access on-demand data loading: (was first popularized with EnSight). Variables are only read when accessed. client-server model: share the memory cost between two machines (The network bandwith might become the bottleneck) streaming data: VTK offers piece-wise data access for intermediate or accumulated representations. parallel data access: piece-wise data + parallel processing VTK and ParaView www.vtk.org and www.paraview.org Open source VTK is a C++ toolkit, modular components assembled in pipelines ParaView is an end-user application integrating many VTK features ParaView hides the complexity of pipeline editing Parallelism Client-server EnSight format readers And a lot more See the books Users Guide 5

VTK/ParaView strengths Very rich feature set (driven by graphics & viz conference publications) 3D direct-manipulations widgets Level of Details Composite datasets are first-class citizens Client-server Pixel sub-sampling over slow connection MPI-based parallelism Ghost-cells Load-balancing Piece invariance Tiled-display Missing features can be added by creating C++ classes VTK Event-driven Data Streaming Data larger than memory is treated Piece by piece Releasing memory after each subset Optionally accumulating sub-object representations for the final image Parameter to set: Set Number Of Pieces Data Sources Data Filters Data Mappers Graphics Rendering 6

VTK Data Streaming Access to tera-bytes of data on the desktop? Load datasets of any size by splitting the volumes in pieces. Process the split data. There should be no overhead. It is the classic number crunching app. 2D Data Streaming example Visualize the terrain from a high-density DEM # vtk DataFile Version 3.0 European DEM File BINARY DATASET STRUCTURED_POINTS DIMENSIONS 8319 7638 1 ORIGIN 0 0 0 SPACING 1 1 1 POINT_DATA 63540522 7

2D Data Streaming example The Extent Translator will do a binary subdivision of the data and let the user access pieces one at a time. Sub-sampling to 1 million points The dataset is shrunk by a factor of 64 (8 in each dimension) Problem is that it is first read in memory before being shrunk! 8

Full resolution is possible Streaming, i.e. requesting 1 piece at a time from 64 pieces allow full resolution 3D Data Streaming example Loop over all pieces AND accumulate the results 9

Piece-invariance invariance for distributed-data data Why is it important? Features extraction filters which use more than the single point or cell to derive their information need neighboring regions. If the data is divided in different ways among processors, the results need to be independent of the subdivision scheme. Data Sources inherit a tough responsibility Streaming should be supported by the reader/producer of data Read data by block, by part, by cells, by levels Provide ghost-cells or Use VTK Parallel data format Data Sources Data Filters Data Mappers Graphics Rendering 10

A few considerations about data archiving Don t treat VISUALIZATION like a POST-PROCESSING If you plan your data archiving methods after the fact, it might be very difficult to implement parallel and efficient data visualization. Examples. Choose a format which encodes your data efficiently Example from Bio-electronics Laboratory, ETH-Zurich A bone biopsy (4,4 millions triangles) encoded as UCD ASCII: # UCD File Format # # File name: Whale_01_SWT59_S04_02P_THRES.INP 5-line HEADER # Generator: ucd.exe 2201290 4400884 0 0 0.. 4400883 1 tri 2147305 2141289 2147306 4400882 1 tri 2147306 2141289 2201290 Last Lines of file 4400884 1 tri 2147284 2147306 2201290 11

Example of a spectral element code (EPFL) Use TECPLOT ASCII format. Number of block is unspecified. Must read until EOF. Very unconfortable to allocate memory. Convert all blocks to a single UnstructuredGrid Block identity is maintained in CellId. Distributed Data Archiving Ghost cells <VTKFile type="pstructuredgrid" version="0.1"> <PStructuredGrid WholeExtent="0 65 0 65 0 65" GhostLevel="1"> <Piece Extent=" 0 17 0 17 0 65" Source="d0372_00.vts"/> <Piece Extent="16 33 0 17 0 65" Source="d0372_01.vts"/> <Piece Extent="32 49 0 17 0 65" Source="d0372_02.vts"/> <Piece Extent="48 65 0 17 0 65" Source="d0372_03.vts"/> <Piece Extent=" 0 17 16 33 0 65" Source="d0372_04.vts"/> <Piece Extent="16 33 16 33 0 65" Source="d0372_05.vts"/> <Piece Extent="32 49 16 33 0 65" Source="d0372_06.vts"/> <Piece Extent="48 65 16 33 0 65" Source="d0372_07.vts"/>. </PStructuredGrid> </VTKFile> 12

Distributed Data Archiving Ghost cells. Overlap of 1 cell is seen here. Particle Data example. TECPLOT (272 Mbytes) TITLE="resultats" VARIABLES="Masse(kg)" "X(m)" "Z(m)" "Y(m)" "Vx(m/s)" "Vz(m/s)" "Vy(m/s)" "rho(kg/m3)" "P(Pa)" "kpar" "kent" "kfluid" ZONE I= 39280 F=POINT # 25000 0.000999999932944776234039 0.010000000000000000208167 0.010000000000000000208167 0.000000000000000000000000 0.000000000000000000000000 0.000000000000000000000000 0.000000000000000000000000 1000.000000000000000000000000 0.000000000000000000000000 0 0 1 13

Particle Data example. TECPLOT Piece-wise data handling leads to parallelism It is equivalent to treat individual pieces one at a time or, all at once to multiple handlers Parallelism is supported The application can be migrated It will help if the data archiving supports Efficient piece-wise retrieval distributed storage hardware image borrowed from Ken Martin @ Kitware 14

ParaView s support for remote rendering Pixel-subsampling RLE and bitcompression image borrowed from Ken Martin @ Kitware Client-server bandwith efficient Pixel-subsampling and RLE and bit-compression are used 15

AMR parallel viz and load balancing Our reader is a subclass of vtkhierarchicaldatasetalgorithm Data by R. Walder, ETH-Zurich Set number of levels For each grid of each level, set the extents of the overlap box For each level, all grids are divided among all processes In collaboration with Berk Geveci @ Kitware AMR parallel viz and load balancing Based on Cell-blanking and visibility arrays The data hierarchy is maintained throughout the operation Thus, iso-contours lines from a hierarchical dataset are also stored as a hierarchical dataset 16

Navier Stokes Multi-Block Handler Multi-block is now a vtkcompositedata of type vtkhierarchicalboxdataset with numberoflevels = 1 RequestUpdateExtents() divides the load between processors based on the UPDATE_PIECE_NUMBER UPDATE_NUMBER_OF_PIECES Data by P. Leyland, EPF-Lausanne NSMB solid surface extractor The solid surfaces are I/J/K planes in the curvilinear grids Each vtkdataset encodes its IJK ranges in a FieldData The solid-surface extractor uses a CompositeDataIterator to walk through the structure and append the geometries together. 17

NSMB reader/cutter/contour & viewer CPUs => 1 2 4 8 16 MPI-based runs Read 4.75 4.66 4.67 4.66 3.55 mpirun np 16 pvserver Solid Surface 9.81 5.10 3.52 2.61 2.04 pvclient --serverhost= host Cutting planes Isomach lines 33.8 1.20 32.5 3 1.20 51.56 2.33 58.4 2.86 58.4 7 3.02 ParaView render server Full-parallelism involves doing also parallel rendering Use fast and cheap graphics cards Sub-division can be Screen-space (tiled display) Object-space (sort-last) image borrowed from Ken Martin @ Kitware 18

ParaView s compositor [sort-last] Server-side rendering or client-rendering All data processing happens on the server (including polygonal data generation) If the geometry is small, or the client has high-performance rendering, let the client render data ParaView has a user threshold to make that decision 1. The server can render geometry and send images back to the client 2. If the data is very large, it will probably not fit on the client CNRS should 2005 Visualization be partitioned Summer School on the server 19

Send geometry or images to the client? Example of time-dependent data: Threshold to deliver geometry to the client = 10 MB 400 time steps, 10 MB each = 4 GB 4GB on a 100T line = 6 minutes for data rendered once and then thrown away Better deliver the frame buffer contents after compositing Example by B. Wylie (SNL) ParaView image compositing ParaView uses a binary-tree compositing of colors and Z- buffers Image transfer uses RLE and bit-compression Could be replaced by a hardware compositing platform We are now evaluating an HP platform which couples NVIDIA cards + Sepia cards doing the compositing in a hardware chain 20

VTK 4.x and VTK 5 Old technique New composite support Readers produce many outputs Dedicated pipelines are created and run applying filter to each output separetely. Readers produce a single composite object Filters iterate through the composite structures. Problems at boundaries F18 data by RUAG Aerospace A few remaining problems with distributed processing 21

Data redistributed among processors Before 83504 cells 29857 63046 22914 34781 39670 16180 29024 Total=318976 After 39872 cells idem idem idem idem idem idem Idem Conclusion VTK/ParaView can be used for large-data visualization with VTK parallel data formats. in-house data interfaces need to support the VTK model of piece-wise handling. Once mastered, a lot of varied parallel data extraction and rendering features are available to handle large data. Some new rendering techniques are being developed. They will eventually be part of the standard VTK library. 22

Bibliography VTK User Guide ParaView User Guide IEEE CG&A IEEE Visualization Conferences 23