GithubHelp home page GithubHelp logo

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-13)
    • 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. Notes:

    • 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 1, 2 or 3 should work

  • Python: for interpreting Vistle 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 5 libraries Qt5Core, Qt5Widgets and Qt5Gui are required by the graphical user interface, alternatively also Qt 6 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 Projects

boost-mpi icon boost-mpi

Outdated copy of boost-mpi for building as a CMake sub-project

covconfig icon covconfig

COVISE, OpenCOVER & Vistle Configuration Subsystem

eigen icon eigen

Outdated copy of Eigen, for including as a git submodule

mpi-serial icon mpi-serial

A one-processor version of MPI - with missing stubs for linking Vistle

singularity icon singularity

Singularity containers for running COVISE, OpenCOVER, and Vistle

tetgen icon tetgen

This is a clone of "A Quality Tetrahedral Mesh Generator and a 3D Delaunay Triangulator" tetgen; Official website:

univiz icon univiz

UniViz flow visualization modules by Computer Graphics Laboratory, ETH Zürich

vistle icon vistle

Software Environment for High-Performance Simulation and Parallel Visualization

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.