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
.
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
git submodule update --init --recursive
-
C++ compiler: support for C++14 (ISO/IEC 14882:2014) is required
Known good compilers:
- GCC (5.3, 8, 9)
- Clang (Xcode 11)
- Microsoft Visual Studio 2017 (15.1)
-
CMake: at least 3.3
-
MPI: Microsoft MPI, Open MPI, MPICH and MVAPICH2 has been used successfully.
-
Boost: At least 1.59.00 is required. Build boost with the following options:
b2 --with-filesystem --with-iostreams --with-python \ --with-serialization --with-system --with-thread \ --with-date_time --with-chrono --with-regex \ --with-program_options
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 or 2 should work
-
Python: for interpreting Vistle scripts (.vsl), Python 2.7 and 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.Hint: 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
andQt5Gui
are required by the graphical user interface.
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
.
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 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
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/plugins
: plugins for OpenCOVER, e.g. for connecting to Vistlemodule/render/COVER/plugins/RhrClient
: OpenCOVER remote hybrid rendering client plugin
Some documentation on Vistle is posted to vistle.io.