Title: Advanced Scientific Visualization Laboratory
1AdvancedScientific VisualizationLaboratory
- Paul Navrátil
- 28 May 2009
2Topics
- Remote and Collaborative Visualization
- Remote Visualization on Spur
- Scripted Visualization with VisIt
3Old Model (No Remote Capability)
Local Visualization Resource
HPC System
Pixels
Mouse
Data Archive
Display
Wide-Area Network
Remote Site
Local Site
4New ModelRemote Capability
Pixels
Large-Scale Visualization Resource
HPC System
Display
Mouse
Data Archive
Wide-Area Network
Remote Site
Local Site
5New ModelMulti-User and Collaborative Capability
Local Site A
Large-Scale Visualization Resource
Pixels
HPC System
Display A
Mouse
Data Archive
Pixels
Display B
Mouse
Wide-Area Network
Local Site B
Remote Site
6Spur - Visualization System
- 128 cores, 1 TB distributed memory, 32 GPUs
- spur.tacc.utexas.edulogin node, no GPUsdont
run apps here! - ivisbig.ranger Sun Fire X4600 server
- 8 AMD Opteron dual-core CPUs _at_ 3 GHz
- 256 GB memory
- 4 NVIDIA FX5600 GPUs
- ivis1-7.rangerSun Fire X4440 server
- 4 AMD Opteron quad-core CPUs _at_ 2.3 GHz
- 128 GB memory
- 4 NVIDIA FX5600 GPUs
7Spur / Ranger topology
visqueue
normaldevelopmentltetcgtqueues
Login Nodes
Compute Nodes
File System
8Topics
- Remote and Collaborative Visualization
- Remote Visualization on Spur
- Scripted Visualization with VisIt
9Starting a Remote Vis Job on Spur(Lab Exercise)
- Step 1 Download a vnc client, preferably with
integrated compression - Recommended options
- TightVNC
- http//www.tightvnc.com/download.html
- TurboVNC
- http//www.virtualgl.org/Downloads/TurboVNC
10Starting a Remote Vis Job on Spur(Lab Exercise)
- Step 2 ssh ltusernamegt_at_spur.tacc.utexas.edu
11Starting a Remote Vis Job on Spur(Lab Exercise)
- Step 3 On Spur, set up your vnc password. This
only needs to be done oncevnc password shared
across Spur and Ranger - In your ssh, enter vncpasswd
- Select and verify password.
- NOTE vnc passwords are NOT secure!8 char limit
(rest ignored) - should NOT be your TACC password
- stored in /.vnc/passwd
12Starting a Remote Vis Job on Spur(Lab Exercise)
- Step 4 Launch a vncserver job using SGE
- qsub /share/sge/default/pe_scripts/job.vnc
- touch /vncserver.out
- tail f /vncserver.out
qsub sge submit command must
specify account job.vnc job script make
local copy to modify acct, runtime,
proc Connection instructions written to
/vncserver.out once job launches Use visq to
monitor job status
13Starting a Remote Vis Job on Spur(Lab Exercise)
- Step 5 Create ssh tunnel from your laptop to the
vnc session - ssh f N L ltportgtspur.tacc.utexas.edultportgt
ltusergt_at_spur.tacc.utexas.edu
vnc communication is unencryptedso create ssh
tunnel between your laptop and spur login ltportgt
port assigned by vnc job ltusergt your
username on spur Your vncviewer will connect to
port on your laptop (localhost) ssh tunnel
forwards connection to port on spur (login
node) spur automatically forwards to port on vis
node -f port forward only, no command -N
background after connect -L forward local
ltportgt to remote machineltportgt
14Starting a Remote Vis Job on Spur(Lab Exercise)
- Step 6 Connect to that display by using a vnc
client
(3)
(1)
(2)
15Starting a Remote Visualization Job on Maverick
(Lab Exercise)
- Step 7 Type glxgearsA common error extension
GLX missing! -
By default, your vnc session cannot access OpenGL
or GPUs Any OpenGL-based application will
encounter this issue
16Starting a Remote Visualization Job on Maverick
(Lab Exercise)
- Step 8 Type vglrun glxgearsAccesses GPUs and
OpenGL libs via VirtualGL -
VirtualGL captures framebuffer from GPU, forwards
it to vnc session Use vglrun d to specify which
GPU to use (d 0.0 is default) vglrun d
0.0 ltappgt vglrun d 0.1 ltappgt vglrun d
0.2 ltappgt vglrun d 0.3 ltappgt
17Starting a Remote Vis Job on Spur(Lab Exercise)
- Step 9 Type module avail in the xterm.
This will tell you which programs are available
to load and run. Some programs have module
dependencies (e.g. many vis programs) Some
programs are compiler and/or MPI-stack dependent
18Topics
- Remote and Collaborative Visualization
- Remote Visualization on Spur
- Scripted Visualization with VisIt
- Python Primer
- Create Image using Python Script
- Change View and Apply Operators
- Fly Around Dataset
19One-Slide Intro to Python
- def count_fingers(n)
- if (n lt 0)
- print How do you count negative fingers?!
- elif (n gt 10)
- print I only have ten fingers!
- else
- for i in range(0,n)
- print d little piggy (i 1)
-
20Inspecting VisIt Python Classes
- gtgtgt s SaveWindowAttributes()
- gtgtgt s
- outputToCurrentDirectory 0
- outputDirectory "C\Documents and
Settings\pnav\My Documents\VisIt 1.11.2\My
images" - fileName "visit"
- family 1
- format TIFF BMP, CURVE, JPEG, OBJ, PNG,
POSTSCRIPT, POVRAY, PPM, RGB, STL, TIFF, ULTRA,
VTK - width 1024
- height 1024
- screenCapture 0
- saveTiled 0
- quality 80
- progressive 0
- binary 0
- stereo 0
- compression PackBits None, PackBits, Jpeg,
Deflate - forceMerge 0
- resConstraint ScreenProportions
NoConstraint, EqualWidthHeight, ScreenProportions
21Basic VisIt Classes and Functions
- OpenDatabase( ltFull Path to DBgt )
- AddPlot( ltPlot Namegt )
- pa ltPlot NamegtAttributes()SetPlotOptions( pa
) - AddOperator( ltOperator Namegt )
- oa ltOperator NamegtAttributes()SetOperatorOptio
ns( oa ) - DrawPlots()
- once invoked, all commands that change plot will
update plot automatically - s SaveWindowAttributes()SetSaveWindowAttributes
( s ) - SaveWindow()
- view GetView3D()SetView3D( view )
- DeleteAllPlots()
- Full Interface description athttps//wci.llnl.go
v/codes/visit/1.4.1/PythonInterface1.4.1.pdf
22Function to Change View Axis
- def change_view(normal, up, nsteps10, start0)
- c0 GetView3D()
- c1 GetView3D()
- c1.viewNormal normal
- c1.viewUp up
-
- cpts (c0, c1)
- x (0., 1.)
-
- for i in range(start, nsteps1)
- t float(i) / float(nsteps)
- c EvalCubicSpline(t, x, cpts)
- SetView3D(c)
- SaveWindow() uncomment to save image of
each step
23Lab 1 Create Isosurface Plot
- Open RectGrid2.vtk
- Create Pseudocolor plot on scalars variable
- Apply Isosurface operator
24Lab 2 Clip Isosurface Plot on -Y
- Rotate view from Z axis to Y axis
- Create Clip operator
- Change Clip attributes to change clip plane from
X axis to Y axis - Apply new clip attributes
25Lab 3 Save Image Stack
- Using change_view as a model, save an image stack
of the view changing - Bonus points change filename and image file type
26Lab 4 Fly Around Plot
- Using change_view as a model, create multiple
viewpoints to fly around dataset - Bonus points modulate viewpoints along wave
(will need to calculate orthogonal view and up)
27Obrigado!pnav_at_tacc.utexas.edu
28Helpful Hints for Labs 1 and 2
29VisIt
- Open the file RectGrid2.vtk
- Click File -gt Open
- Select RectGrid2.vtk
- Click OK
- Active dataset highlighted
30VisIt
- Open the file RectGrid2.vtk
- Click File -gt Open
- Select RectGrid2.vtk
- Click OK
- Active dataset highlighted
31VisIt
- Create isosurfaces
- Click Plots -gt Pseudocolor -gt scalars
- Click Operators -gt Isosurface
- Click OpAtts -gt Isosurface
- Keep defaults, click Dismiss
- Click Draw
32VisIt
- Create isosurfaces
- Click Plots -gt Pseudocolor -gt scalars
- Click Operators -gt Isosurface
- Click OpAtts -gt Isosurface
- Keep defaults, click Dismiss
- Click Draw
33VisIt
- Create isosurfaces
- Click Plots -gt Pseudocolor -gt scalars
- Click Operators -gt Isosurface
- Click OpAtts -gt Isosurface
- Keep defaults, click Dismiss
- Click Draw
34VisIt
- Create isosurfaces
- Click Plots -gt Pseudocolor -gt scalars
- Click Operators -gt Isosurface
- Click OpAtts -gt Isosurface
- Keep defaults, click Dismiss
- Click Draw
35VisIt
- Create isosurfaces
- Click Plots -gt Pseudocolor -gt scalars
- Click Operators -gt Isosurface
- Click OpAtts -gt Isosurface
- Keep defaults, click Dismiss
- Click Draw
36VisIt
- Create isosurfaces
- Click Plots -gt Pseudocolor -gt scalars
- Click Operators -gt Isosurface
- Click OpAtts -gt Isosurface
- Keep defaults, click Dismiss
- Click Draw
37VisIt
- Clip isosurfaces
- Rotate view to Y axis
- Click Operators -gt Clip
- Click OpAtts -gt Clip
- Change Normal to 0 -1 0
- Click Apply
- Click Dismiss
38VisIt
- Clip isosurfaces
- Rotate view to Y axis
- Click Operators -gt Clip
- Click OpAtts -gt Clip
- Change Normal to 0 -1 0
- Click Apply
- Click Dismiss
39VisIt
- Clip isosurfaces
- Rotate view to Y axis
- Click Operators -gt Clip
- Click OpAtts -gt Clip
- Change Normal to 0 -1 0
- Click Apply
- Click Dismiss
40VisIt
- Clip isosurfaces
- Rotate view to Y axis
- Click Operators -gt Clip
- Click OpAtts -gt Clip
- Change Normal to 0 -1 0
- Click Apply
- Click Dismiss
41VisIt
- Clip isosurfaces
- Rotate view to Y axis
- Click Operators -gt Clip
- Click OpAtts -gt Clip
- Change Normal to 0 -1 0
- Click Apply
- Click Dismiss
42VisIt
- Clip isosurfaces
- Rotate view to Y axis
- Click Operators -gt Clip
- Click OpAtts -gt Clip
- Change Normal to 0 -1 0
- Click Apply
- Click Dismiss