GithubHelp home page GithubHelp logo

vistle / vistle Goto Github PK

View Code? Open in Web Editor NEW
44.0 13.0 13.0 19.09 MB

Software Environment for High-Performance Simulation and Parallel Visualization

Home Page: https://vistle.io

License: GNU Lesser General Public License v2.1

CMake 2.84% Shell 0.18% C++ 84.53% C 11.69% Cuda 0.25% Python 0.47% Ruby 0.01% Batchfile 0.03% Objective-C 0.01%
visualization hpc parallel-computing scientific-visualization virtual-reality hlrs vistle openfoam

vistle's Introduction

Build status

Vistle - A Modular Data-Parallel Visualization System

vistle: very smooth and elegant, nicely put together (Urban Dictionary)

License

Vistle source code is licensed under the LGPL v2.1. See LICENSE.txt for details. This does not apply to the subdirectory lib/3rdparty.

Installation

Installing with Spack

Add the HLRS Vis Spack repository to your installation of Spack:

  git clone https://github.com/hlrs-vis/spack-hlrs-vis
  spack repo add spack-hlrs-vis

Then you can install Vistle with this command:

  spack install vistle

macOS with Homebrew

Install most of Vistle's dependencies by invoking brew bundle within Vistle's root source directory. You can also install Vistle with

  brew install hlrs-vis/tap/vistle

Installing From Source

Build Requirements

  • C++ compiler: support for C++14 (ISO/IEC 14882:2014) is required, known good compilers:

    • GCC (8-14)
    • Clang (Xcode 14, 15)
    • Microsoft Visual Studio 2022
  • CMake: at least 3.10, on Windows 3.15

  • MPI: Microsoft MPI, Open MPI, MPICH and MVAPICH2 has been used successfully.

  • Boost: At least 1.59.00 is required. Note:

    • in order to switch MPI implementations without requiring a recompilation of Boost, we compile Boost.MPI together with Vistle
  • Botan: Crypto and TLS for Modern C++ is used for verifying HMACs during connection establishment, version 2 or 3 should work

  • Python: for interpreting Vistle workflow scripts (.vsl), Python 3 should work.

  • COVISE/OpenCOVER: OpenCOVER or a version of COVISE including OpenCOVER compiled by you is necessary, get it from GitHub, needed for the COVER module and COVER plug-ins You can shorten the build process and cut down on dependencies by building only OpenCOVER. In addition you should set COVISEDESTDIR to a location where compiled COVER plug-ins should go. Hints: - The COVISE repository contains further information on how to build dependencies on Linux (README-Building-deps-linux.txt) and Windows (README-Building-deps.txt).

  • OpenSceneGraph: the version of OpenSceneGraph that was used for compiling OpenCOVER

  • Qt: The Qt 6 libraries Qt6Core, Qt6Widgets and Qt6Gui are required by the graphical user interface, alternatively also Qt 5 can be used.

You can set the environment variable EXTERNLIBS to a directory where Vistle should search for 3rd party libraries. It will search in e.g. $EXTERNLIBS/boost, if CMake is looking for Boost.

Getting Vistle

Getting Vistle is as easy as

  git clone --recursive https://github.com/vistle/vistle.git

If you need to update an existing working copy, then change to its directory and issue the following commands:

  git submodule sync --recursive
  git submodule update --init --recursive

Building Vistle

Create a subdirectory for building, change to it, and invoke CMake:

  cmake ..

Then build with your build tool, e.g.:

  make -j20

Invoking Vistle

Environment Set-Up

Vistle modules are run on clusters via MPI. You have to configure how they have to be spawned by providing a script named spawn_vistle.sh (or spawn_vistle.bat on Windows) somewhere in your PATH. It could be as simple as

  #! /usr/bin/env bash
  mpirun "$@"

But it also might require invoking your batch system. An example is provided in vistle/bin.

For COVER to find its plug-ins, you should add the directory from COVISEDESTDIR to COVISE_PATH.

Command Line Switches

Synopsis:

  vistle [--batch|--gui|--tui] [scriptfile]

Options:

  • -b|--batch: do not start a user interface

  • -g|--gui (default): start a graphical user interface on rank 0

  • -t|--tui: start a command line user interface on rank 0

You can connect a user interface to a running Vistle session later on, e.g.:

  vistle_gui localhost 31093

Source Code Organization

  • cmake: CMake modules

  • contrib/scripts: support scripts for building and running Vistle

  • lib/3rdparty: 3rd party source code

  • lib/vistle: Vistle libraries source code

    • lib/vistle/util: support code
    • lib/vistle/core: Vistle core data structures
    • lib/vistle/userinterface: common library for user interfaces
    • lib/vistle/net: library for Vistle network communication
    • lib/vistle/control: Python code for controlling a Vistle session
    • lib/vistle/module: base class and support code for visualization algorithm modules
    • lib/vistle/renderer: base class and support code for render modules
    • lib/vistle/rhr: library for remote hybrid rendering servers and clients
  • app: Vistle applications

    • app/hub: Vistle session controller
    • app/gui: graphical user interface
  • module: visualization algorithm modules and base library

    • module/general: modules useful to a wider audience
    • module/test: various debugging aids
    • module/render: renderer modules transforming geometry into pixels
      • module/render/DisCOVERay: a parallel remote hybrid rendering server based on Embree (CPU ray-casting)
      • module/render/OsgRenderer: a parallel remote hybrid rendering server based on OpenSceneGraph (OpenGL)
      • module/render/COVER: wrap OpenCOVER as a render module
        • module/render/COVER/plugins: plugins for OpenCOVER, e.g. for connecting to Vistle
          • module/render/COVER/plugins/RhrClient: OpenCOVER remote hybrid rendering client plugin

Documentation

Some documentation on Vistle is posted to vistle.io.

vistle's People

Contributors

aumuell avatar bgoud avatar brtwrst avatar devasconcelos avatar hpcdgrie avatar hpcmpuet avatar jonathanwinterstein avatar kimblesa avatar lskern avatar maca1326 avatar mdjur avatar severtopan avatar szellmann avatar uwewoessner avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

vistle's Issues

Single-process quit error (message)

Starting vistle_manager, connecting it to vistle_gui and calling "quit()" from the python interface causes Vistle to shut down with some "message::send: error: Broken pipe" messages.

Default RHR mode (mesh) usually does not work

DisCOVERay on Hawk, COVER on visent.
On visent: go to /mnt/raid/soft/vistleHawk and start vistle
On Hawk compute node: source /opt/hlrs/non-spack/visualization/spack/share/spack/setup-env.sh
spack load vistle
vistle -b -c visent.hlrs.de:port
load /mnt/raid/soft/vistleHawk/RHR_mesh_not_working.vsl
execute

support for structured grid types

uniform grid (uniform spacing, but different per dimension, on a rectilinear lattice)
rectilinear grid (cartesian product of arbitrarily spaced points in each dimension)
structured grid (arbitrary coordinates for grid vertices)

Fix COVER keeping empty timesteps

COVER keeps empty timesteps when the number of timesteps is decreased.
(Example: I first read the first 4 timesteps then reduced it to the first 2 timesteps and re-executed it - all in one go)
1234

DisCOVERay stuck after re-linking input

DisCOVERay on Hawk, COVER on visent.
On visent: go to /mnt/raid/soft/vistleHawk and start vistle
On Hawk compute node: source /opt/hlrs/non-spack/visualization/spack/share/spack/setup-env.sh
spack load vistle
vistle -b -c visent.hlrs.de:port
load /mnt/raid/soft/vistleHawk/RHR_mesh_not_working.vsl
execute
remove links between DomainSurface and DisCOVERay and between Color and DisCOVERay
recreate removed links
execute

get rid of Collect

provide a better way to establish relation between grid and associated data

renderer API

create common routines for managing data object life time in renderers

currently, OSGRenderer, VistlePlugin, and Ray do it on their own

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.