1 / 23

Python’s Role in VisIt

Python’s Role in VisIt. Cyrus Harrison cyrush@llnl.gov Lawrence Livermore National Laboratory. SciPy 2012 Presentation. Harinarayan Krishnan hkrishnan@lbl.gov Lawrence Berkeley National Laboratory. July 19, 2012. Introduction.

happy
Télécharger la présentation

Python’s Role in VisIt

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Python’s Role in VisIt Cyrus Harrison cyrush@llnl.gov Lawrence Livermore National Laboratory SciPy2012 Presentation Harinarayan Krishnan hkrishnan@lbl.gov Lawrence Berkeley National Laboratory • July 19, 2012

  2. Introduction VisIt is an open source, turnkey application for data analysis and visualization of mesh-based data. • Production end-user tool supporting scientific and engineering applications. • Provides an infrastructure for parallel post-processing that scales from desktops to massive HPC clusters. • Source released under a BSD style license. Density Isovolume of a 3K^3 (27 Bz) dataset

  3. Examples of VisIt’svisualization capabilities. Streamlines Vector / Tensor Glyphs Pseudocolor Rendering Volume Rendering Molecular Visualization Parallel Coordinates

  4. Introduction • Visual • Debugging VisIt supports a wide range of use cases. ? = • Comparative Analysis • Data Exploration • Quantitative Analysis • Presentation Graphics • Visual Debugging

  5. Introduction VisItemploys a parallelized client-server architecture. Local Components Parallel Cluster Data VisIt Engine Data Plugin Data VisIt Engine Data Plugin network connection MPI Data VisIt Engine Data Plugin VisIt Viewer (Files or Simulation) • Data Flow Network Filter VisIt GUI VisIt CLI Python Clients Java Clients Filter Filter

  6. Python Integration VisIt provides Python interfaces for state control and data manipulation. Local Components Parallel Cluster Viewer (State Manager) Data Data Compute Engine MPI network connection Data • Python Client Interface • (State Control) • Python Filter Runtime • (Direct Mesh Manipulation) GUI CLI Python Clients

  7. Python Integration VisIt provides Python interfaces for state control and data manipulation. Local Components Parallel Cluster • Walkthrough Topics: • Python Client Interface • Custom Python UIs • Python Filter Runtime Viewer (State Manager) Data Data Compute Engine MPI network connection Data • Python Client Interface • (State Control) • Python Filter Runtime • (Direct Mesh Manipulation) GUI CLI Python Clients

  8. Python Client Interface

  9. Python Client Interface Python Client Interface Example Script:Using VisIt’s Building Blocks

  10. Python Client Interface There are several ways to access VisIt’s Python Client Interface. • Launch VisIt’s CLI binary: • >visit –cli • Launch for windowless batch processing: • >visit -nowin –cli –s <script_file.py> • Control VisIt from a Python interpreter: • `import visit’ • http://visitusers.org/index.php?title=Python_Module_Support • Record GUI actions in to Python snippets: • Macro Recording provides a quick path to learn VisIt’s Python API.

  11. Custom Python UIs

  12. Custom Python UIs We extended VisIt’s core C++ infrastructure to support Python custom UIs. • We chose PySide, a LGPL Python Qt wrapper, as the primary UI framework. • Current support includes the ability to: • Embed VisIt’srender windows. • Reuse VisIt’sexisting GUI widgets. • Design UIs via Qt Designer. • Full UI integration required combining client (CLI, GUI) and viewer processes.

  13. Custom Python UIs Custom Python UI Example Script:Isosurface Sweep

  14. Custom Python UIs Custom UI Example: GCRM Global Cloud Resolving Model Viewer

  15. Custom Python UIs Custom UI Example: GCRM Global Cloud Resolving Model Viewer

  16. Custom Python UIs Custom UI Example: UV-CDATUltrascale Visualization – Climate Data Analysis Tools

  17. Custom Python UIs Custom UI Example: UV-CDATUltrascale Visualization – Climate Data Analysis Tools VisIt VCS DV3D ParaView VCS VisIt

  18. Python Filter Runtime

  19. Python Filter Runtime A Python Filter Runtime provides access to low-level mesh data structures. • VisIt embeds a Python interpreter in each compute engine MPI process. • C++/Python data exchanges utilize VTK’s Python wrapper module. • Nice path to numpyand scipy. • Parallel communication is provided via a simple MPI wrapper, named `mpicom’. • We currently support Python Filters for VisIt’sExpression and Querybuilding blocks.

  20. Python Filter Runtime Python Filter Runtime Example Script:Cell Average Query

  21. Python Filter Runtime Python Filter Runtime Example:OpenCL Expression Framework Research User Expression Data Flow Network Volume Rendering of GPU Result • Joint research with M. Moussalem (UT-Austin), P. Navrátil, (TACC) and M. Jiang (LLNL) Illustration of the OpenCL GPU expression framework executing a user defined Q-criterion expression, used for vortex core detection.

  22. Python Filter Runtime Python Filter Runtime Example:OpenCL Expression Framework Research • VisIt Python Filter User Expression Data • Front-end Parser • Python Data • Flow Network PLY GPU GPU Kernel PyOpenCL

  23. Conclusion The End … • Future Work: • Stronger, faster, smarter Python support. • Thanks to: • VisItTeam • GCRM, UV-CDAT, and TACC Researchers • Code Examples: • https://github.com/cyrush/scipy_proceedings/tree/2012/papers/krishnan_harrison • VisItProject Resources: • VisIt Website: https://wci.llnl.gov/codes/visit/ • VisIt Users Wiki: http://visitusers.org/ • VisItMailing Lists: visit-users, visit-developers • Python Reference Manual: http://portal.nersc.gov/svn/visit/trunk/releases/2.3.0/VisItPythonManual.pdf • Questions?

More Related