vistle: very smooth and elegant, nicely put together (Urban Dictionary)
Vistle source code is licensed under the LGPL v2.1. See LICENSE.txt
for details. This does not apply to the subdirectory lib/3rdparty
.
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
-
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
andQt6Gui
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 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
Create a subdirectory for building, change to it, and invoke CMake:
cmake ..
Then build with your build tool, e.g.:
make -j20
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
.
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
-
cmake
: CMake modules -
contrib/scripts
: support scripts for building and running Vistle -
lib/3rdparty
: 3rd party source code -
lib/vistle
: Vistle libraries source codelib/vistle/util
: support codelib/vistle/core
: Vistle core data structureslib/vistle/userinterface
: common library for user interfaceslib/vistle/net
: library for Vistle network communicationlib/vistle/control
: Python code for controlling a Vistle sessionlib/vistle/module
: base class and support code for visualization algorithm moduleslib/vistle/renderer
: base class and support code for render moduleslib/vistle/rhr
: library for remote hybrid rendering servers and clients
-
app
: Vistle applicationsapp/hub
: Vistle session controllerapp/gui
: graphical user interface
-
module
: visualization algorithm modules and base librarymodule/general
: modules useful to a wider audiencemodule/test
: various debugging aidsmodule/render
: renderer modules transforming geometry into pixelsmodule/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 modulemodule/render/COVER/plugin
: plug-ins for OpenCOVER, e.g. for connecting to Vistlemodule/render/COVER/plugin/RhrClient
: OpenCOVER remote hybrid rendering client plugin
Some documentation on Vistle is posted to vistle.io.