Welcome to the UPPMAX Visualization Workshop 21,22/9 2009 Day one UPPMAX Introduction to...

Post on 26-Dec-2015

221 views 0 download

Tags:

Transcript of Welcome to the UPPMAX Visualization Workshop 21,22/9 2009 Day one UPPMAX Introduction to...

Welcome to the UPPMAX Visualization Workshop 21,22/9

2009 Day one

UPPMAX Introduction to Visualization and Python Read your own data using Python Visualize the data using VTK

Day two Advanced visualizations 3D Stereoscopic renderings (3DIS4U)

Uppsala Multidisciplinary Center for Advanced Computational Science (UPPMAX)

Is Uppsala University's resource of high-performance computers and know-how of high-performance computing (HPC).

The center was founded in 2003.

System Experts

System administration Hardware software

Application Experts

The role of the application experts is to transfer HPC competence and computational know-how within the respective fields to the users. Computational Quantum Mechanics Algorithm and Code Development Scientific Visualization Molecular Dynamics Bioinformatics Theoretical Material Physics

HPC Resources

ISIS (2007-06-01)Technical Summary

200 Compute Nodes with 800 CPU cores

1600 Gigabyte total RAM

32 Terabyte total disk

4 Tflops peak performance

switched Gigabit Ethernet for all nodes

400 CPU's in 200 dual CPU, dual core, nodes

IBM x3455 server

2 AMD Opteron 2220 Processors

140 nodes with 8 GB Memory

40 nodes with 4 GB memory

20 nodes with 16 GB memory

160 GB Hard disk

22.4 Gflops peak performance per node

HPC Resources

Grad (2008-09-15)

Technical Summary

64 Compute Nodes with 512 CPU cores

3 access Nodes with 8 CPU cores

16 Gigabyte RAM per node

18 Terabyte disk in 2 NFS servers for home directories and grid sessions

140 Terabyte disk in 8 nodes of dCache pools

switched Gigabit Ethernet for all nodes

HPC Resources

Set (2007-01-19) Os (2007)

Technical Summary

10 Compute Nodes with 10 CPUs, 20 CPU cores, and 40 threads (Power5 supports SMT)

88 Gigabyte total RAM

switched Gigabit Ethernet for all nodes

10 dualcore CPU's in 10 nodes

IBM p520 server

IBM Power5 Processors

8 GB Memory

150 GB Hard disk

XX Gflops/s peak performance per node

Hardware:

 

IBM X3455 dual Opteron 2220SE, 2.8GHz nodes. 4*10=40 cores

8GB RAM,

Gigabit interconnect

HPC Resources

OctoPS (2009) PowerCell (2009)

IBM PowerXCell 8i cluster containing of two blades with each having two PowerXCell 8i processor on them. Each Blade is equipped with 8GB of RAM, Gigabit Ethernet interconnect and runs Linux

The OctoPS cluster ("Eight Playstations") consists of eight Playstations connected with the built in Gigabit Ethernet card with a x86-based workstation as head node. The Playstation3 gaming console is equipped with the powerfull Cell/B.E. processor that can be used for High Performace Computing. Each node have access to 6 of 8 existing SPUs which gives in total 48 SPUs for the whole cluster. This generation of the Cell/B.E. processor is best suited for single precision floating point numbers and each node have around 200MB of free RAM when booted.

3DIS4U

The acronym 3DIS4U stands for "Three-dimensional image studio for Uppsala"

It is the Visualization Lab located at the Centre for Image Analysis

3D Stereoschopic display

Visualization

'The process of converting data in to a format that is visible, in order to understand the data better'

X Y Z E_x-magn -phase E_y-magn -phase E_z-magn -phase H_x-magn -phase H_y-magn -phase H_z-magn -

phase-0.3123 -0.3123 0.25 2.4407 5.90 4.0327 -154.32 2.1383 -161.19 0.0088004 27.44 0 0.00 0.010007 15.07-0.1874 -0.3123 0.25 2.3308 176.81 4.3846 26.28 3.7298 9.05 0.013289 -160.30 0 0.00 0.008179 -172.12-0.0625 -0.3123 0.25 0.7533 -112.98 4.7824 111.77 5.277 88.60 0.017554 -80.33 0 0.00 0.0024508 -104.34 0.0625 -0.3123 0.25 1.7186 56.50 5.4494 87.55 5.3578 66.87 0.01858 -102.21 0 0.00 0.0058727 68.36 0.1874 -0.3123 0.25 2.7145 -66.31 4.9781 -41.19 3.3362 -52.88 0.013082 137.33 0 0.00 0.010477 -56.00 0.3123 -0.3123 0.25 2.2417 91.01 4.0514 110.04 1.7231 104.21 0.0078549 -65.75 0 0.00 0.010079 100.69-0.3123 -0.1874 0.25 2.9017 -158.62 7.4352 36.42 2.4873 34.20 0.014298 -138.48 0 0.00 0.016719 -150.96-0.1874 -0.1874 0.25 3.7172 43.30 10.758 -114.53 5.717 -126.78 0.027764 63.79 0 0.00 0.017842 54.42-0.0625 -0.1874 0.25 1.0574 141.51 12.89 -14.42 9.0267 -31.09 0.04057 160.18 0 0.00 0.0044505 146.23 0.0625 -0.1874 0.25 2.9917 -74.37 14.398 -53.86 8.0694 -68.67 0.041081 123.01 0 0.00 0.014364 -60.93 0.1874 -0.1874 0.25 3.6098 131.50 11.682 152.36 4.388 139.34 0.026448 -26.95 0 0.00 0.021116 144.13 0.3123 -0.1874 0.25 2.5494 -99.14 7.9445 -81.63 2.0254 -89.10 0.014153 103.33 0 0.00 0.017659 -87.82-0.3123 -0.0625 0.25 1.8733 -34.53 10.567 158.36 1.5743 157.65 0.018745 -15.06 0 0.00 0.021954 -27.42-0.1874 -0.0625 0.25 3.0993 -164.09 18.427 29.92 4.4567 24.21 0.042011 -149.17 0 0.00 0.028006 -155.89-0.0625 -0.0625 0.25 1.4223 -5.70 18.087 143.49 7.0617 150.88 0.051566 -38.98 0 0.00 0.0052572 23.68 0.0625 -0.0625 0.25 1.4044 83.36 20.646 50.67 1.3372 109.55 0.051121 -129.59 0 0.00 0.020975 69.09 0.1874 -0.0625 0.25 1.1212 -128.14 20.006 -113.90 1.5299 -135.01 0.042727 67.61 0 0.00 0.031615 -117.26 0.3123 -0.0625 0.25 0.82567 -10.21 11.539 2.41 0.71926 -3.02 0.019884 -171.41 0 0.00 0.023766 -2.17-0.3123 0.0625 0.25 0.82554 169.70 11.536 -177.68 0.71907 -3.10 0.019879 8.50 0 0.00 0.023763 -2.26-0.1874 0.0625 0.25 1.1213 51.78 20.003 66.03 1.5299 -135.07 0.042719 -112.46 0 0.00 0.031615 -117.33-0.0625 0.0625 0.25 1.404 -96.68 20.649 -129.38 1.3353 109.46 0.051127 50.36 0 0.00 0.020978 69.04 0.0625 0.0625 0.25 1.4212 174.37 18.083 -36.51 7.0609 150.91 0.051556 141.03 0 0.00 0.0052518 23.84 0.1874 0.0625 0.25 3.0995 15.98 18.429 -150.01 4.4581 24.28 0.04202 30.89 0 0.00 0.028005 -155.82 0.3123 0.0625 0.25 1.8737 145.55 10.569 -21.55 1.5748 157.74 0.01875 165.02 0 0.00 0.021957 -27.34-0.3123 0.1874 0.25 2.5491 80.77 7.9437 98.29 2.025 -89.18 0.014151 -76.75 0 0.00 0.017658 -87.90-0.1874 0.1874 0.25 3.6095 -48.57 11.68 -27.72 4.387 139.27 0.026443 152.98 0 0.00 0.021116 144.06-0.0625 0.1874 0.25 2.9924 105.59 14.397 126.11 8.0678 -68.71 0.041075 -57.02 0 0.00 0.014368 -60.97 0.0625 0.1874 0.25 1.0557 -38.48 12.89 165.59 9.0265 -31.08 0.04057 -19.81 0 0.00 0.0044431 146.23 0.1874 0.1874 0.25 3.717 -136.65 10.759 65.52 5.7182 -126.73 0.027769 -116.16 0 0.00 0.017841 54.48 0.3123 0.1874 0.25 2.9022 21.46 7.4365 -143.50 2.488 34.27 0.014302 41.60 0 0.00 0.016721 -150.88-0.3123 0.3123 0.25 2.2416 -89.07 4.0513 -70.04 1.7228 104.13 0.007854 114.17 0 0.00 0.010079 100.61-0.1874 0.3123 0.25 2.7144 113.63 4.9777 138.75 3.3354 -52.94 0.013079 -42.73 0 0.00 0.010477 -56.06-0.0625 0.3123 0.25 1.7192 -123.53 5.4489 -92.48 5.3569 66.84 0.018577 77.77 0 0.00 0.0058749 68.33 0.0625 0.3123 0.25 0.75238 67.02 4.7821 -68.22 5.2768 88.61 0.017553 99.68 0 0.00 0.0024477 -104.34 0.1874 0.3123 0.25 2.3304 -3.14 4.3845 -153.67 3.7302 9.10 0.013289 19.75 0 0.00 0.0081772 -172.07 0.3123 0.3123 0.25 2.4408 -174.03 4.033 25.76 2.1388 -161.12 0.0088018 -152.49 0 0.00 0.010007 15.14-0.3123 -0.3123 0.28 2.5117 -41.76 4.5759 156.86 2.4619 149.18 0.010435 -22.46 0 0.00 0.010605 -32.93-0.1874 -0.3123 0.28 2.3243 122.36 5.0836 -31.54 4.1507 -47.28 0.015428 142.76 0 0.00 0.0085161 132.69-0.0625 -0.3123 0.28 0.70946 -169.22 5.6112 48.32 5.6974 28.54 0.01998 -141.14 0 0.00 0.0024375 -161.55 0.0625 -0.3123 0.28 1.6824 -1.79 6.2464 24.72 5.6915 6.81 0.020825 -162.98 0 0.00 0.0060572 9.44 0.1874 -0.3123 0.28 2.7172 -120.42 5.7108 -97.74 3.704 -109.44 0.015197 80.40 0 0.00 0.010971 -110.52 0.3123 -0.3123 0.28 2.3461 43.94 4.6523 61.91 2.0152 54.82 0.0094932 -115.43 0 0.00 0.010915 53.30-0.3123 -0.1874 0.28 2.8836 147.84 8.1454 -17.77 2.7671 -21.45 0.016508 165.72 0 0.00 0.017206 155.36-0.1874 -0.1874 0.28 3.3664 -19.83 11.326 179.27 5.8134 167.99 0.029727 -2.49 0 0.00 0.016949 -9.87-0.0625 -0.1874 0.28 0.839 75.55 13.125 -89.75 8.4147 -102.71 0.040578 86.41 0 0.00 0.0037022 76.11

Making the invisible visible

One of the goals of visualization is to make it easier to explore data and information

The viewer will gain new insights, sometimes profound and sometimes quite unexpected.

OBS! The same data as in the previous slide!

Visualization techniques

Still the same data...

Visualization

An exploration tool for data visualization has been developed in cooperation with UPPMAX and the Institute for Space Physics

The following 2 slides will show some visualizations from the program The previous one was also produced by this program

Scientific Visualization Scientific visualization is the process of

exploring, transforming, and viewing data as images

The dimensionality of the data is generally larger than or equal to 3

Visualization is often interactive We are not trying to create realistic images,

but to visualize the data in an informative way Dependent on the task given

VTK – The Visualization ToolKit

Open source, freely available software for 3D computer graphics image processing visualization

Managed by Kitware, Inc. Object-oriented design (C++) High-level of abstraction Use C++, Tcl/Tk, Python, Java

True visualization system

Visualization techniques for visualizing scalar fields vector fields tensor fields

Polygon reduction Mesh smoothing Image processing Your own algorithms

Additional features Parallel support

message passing multi-threading

Stereo support Integrates with Motif, Qt, Tcl/Tk,

Python/Tk, X11, Windows, ... Event handling 3D widgets

3D graphics Surface rendering Volume rendering

Ray casting Texture mapping (2D) Volume pro support

Lights and cameras Textures Save render window to .png, .jpg, ...

(useful for movie creation)

VTK Dataset Types

vtkStructuredPoints, vtkImageData vtkRectilinearGrid vtkStructuredGrid vtkPolyData vtkUnstructuredGrid Methods for reading and writing

• Organizing structure plus attributes

– Structured Points

– Rectilinear Grid

– Structured Grid

Datasets

Unstructured Grid A collection of vertices, edges, faces,

and cells whose connectivity information must be explicitly stored

Basic VTK objects to render a scene:

1. vtkRenderWindow2. vtkRenderer3. vtkLight4. vtkCamera5. vtkActor6. vtkProperty7. vtkMapper

SourceSources

Mappers

Actors

Renderers

Filters

Window

First the sources must be defined. Use data from files or predefined objects.

Interactor

Filter the data if necessary.

Add a mapper so that the data is converted to an object.

The object is converted to an actor so that the visual properties can be adjusted

Add the actors to a renderer

Connect the renderer to a window where the objects shall be rendered

Connect the window to an interactor so we can interact with it.

import vtk

object = vtk.vtkOBJReader()object.SetFileName('teapot.obj')

outlineFilter = vtk.vtkOutlineFilter()outlineFilter.SetInputConnection(object.GetOutputPort())

outlineMapper = vtk.vtkPolyDataMapper()outlineMapper.SetInputConnection(outlineFilter.GetOutputPort())

objectMapper = vtk.vtkPolyDataMapper()objectMapper.SetInputConnection(object.GetOutputPort())

outlineActor = vtk.vtkActor()outlineActor.SetMapper(outlineMapper)outlineActor.GetProperty().SetColor(0.5, 0.5, 0.5) objectActor=vtk.vtkActor()objectActor.SetMapper(objectMapper)objectActor.GetProperty().SetColor(0.2,0.6,0.6)

ren = vtk.vtkRenderer()ren.AddActor(objectActor)ren.AddActor(outlineActor)ren.SetBackground(0.6, 0.6, 0.7)

renWin = vtk.vtkRenderWindow()renWin.AddRenderer(ren)renWin.SetWindowName("Teapot")renWin.SetSize(500,500)

iren = vtk.vtkRenderWindowInteractor()iren.SetRenderWindow(renWin)iren.Initialize()iren.Start()

Result

Summary + Free and open source Create graphics/visualization applications

fairly fast Object oriented - easy to derive new classes Build applications using "interpretive" languages

Tcl, Python, and Java Many (state-of-the-art) algorithms Heavily tested in real-world applications Large user base provides decent support Commercial support and consulting available

Software

Python Read your own data files

Simple to learn An interpreted language

VTK (The Visualization Toolkit) Create customary visualizations

Powerful Takes some time to learn...

What is your research problem?

What kind of data do you produce? What do you want to see in this data? Will VTK be useful for you?

Visualization Techniques

Volume rendering Data Capture, often Medical

data: MRI, PET, CAT etc

Methods Marching cubes Contouring Isosurfaces

Volume Rendering Ray casting is commonly used A ray is cast through every pixel in the

view plane. The pixel is given a colour according to the interaction of the ray with the voxels in the volume. This is combined with the light from light sources

Multi-modal Rendering

Register two volumes to each other Rays are cast into the first volume For points on cut planes, values from

both volumes are blended to produce a colour that enhances both modalities

MRI + PET

Surface Reconstruction from Contours

Fluids

Can be rendered as particle systems

But how can we better see the speed and direction of the fluid?

And other parameters as temperature and pressure?

http://people.scs.fsu.edu/~beason/fluid/

Isosurfaces

• Wikipedia: An isosurface is a three-dimensional analog of an isocontour. It is a surface that represents points of a constant value (e.g. pressure, temperature, velocity, density) within a volume of space; in other words, it is a level set of a continuous function whose domain is 3D-space.

Visualization of attributes

Vector Oriented Line

Oriented Glyph

Streamline

Streamlines

Glyphs

• What properties can you “read” from the glyphs?

Glyphs

• We can add other properties…• Can you imagine more ways to show

properties?

Glyphs

Are useful to express multidimensional data

Can have different Shapes Sizes Colors Directions Positions

And many more…

Your data might be visualized in a standard way (already in VTK) Fast implementation!

Or you might need some application specific method But probably you can use VTK

anyway!

Where can you get help with your problem?

From me and my contacts!

VTK resources

• www.vtk.org– Download (source and binaries)– Documentation– Mailing lists– Links– FAQ, Search

• www.kitware.com– VTK Textbook– VTK User’s guide– Mastering CMake