Intel OSPRay Studio

Overview

Intel® OSPRay Studio is a showcase application and creates an implementation of an interactive and extendable ray-tracing application. 

Part of the oneAPI Rendering Toolkit, it leverages on lower level libraries such as Embree, OSPRay and OpenVKL to provide very highly optimized raytracing workflows, making the most of Intel CPUs (and soon, GPUs and accelerators). Successfully used by graphics and animation industries, it is also cutting-edge technology in the field of HPC and scientific visualizations, thus valuable in this context for LRZ.

Our instance on SuperMUC-NG and the Linux Cluster builds a development branch in order to provide the latest features (animations, advanced camera settings, ...) and a few selected plugins for importing common outputs of scientific simulations valuable to LRZ users (HemeLB, FLASH, ...).

Being a dev version, bugs and instabilities are possible. Should you find any, please report them at our Servicedesk.

Please be aware that LRZ cannot guarantee solutions needing major code changes.

Usage

Here we present some minimal instructions and usage examples. For more general guides, we refer to Intel official documentations and tutorials.

OSPRay and OSPRay Studio on LRZ supercomputers should first be loaded; the usual module structure applies, e.g.

Using ospray modules
module avail ospray
[...]
module load ospray
[...]
module help ospray

Then the ospStudio application is ready to use with no need for other settings.
Studio is available in two modes. The first is batch mode, for use on compute nodes via regular job submission (also interactive via salloc). 

Usage example (to include in a valid job file on run in an interactive job):
ospStudio batch -r pathtracer -vp 0 0 0 -vi 1 1 1 -sm 4 -c panoramic -s 1920 1080 <my_example_data.glb>

Note the batch command line option. Here we have selected the pathtracer renderer (scivis and ao being other valid entries), set camera position (vp) and look-up (vi), and used a panoramic camera for making a 1080p rendering of some .glb data.

Studio CLI help
ospStudio batch --help # LRZ warning: put no [] in the actual commands!

For a rather complete CLI manual, type:

The second mode is with its interactive GUI for better data exploration (on login nodes).

When using the GUI on a login node, please be considerate of other users and do so sparingly, following the advice below.

Best practice when using the login node for scientific visualization with Studio include:

  • never leave unnecessary renderings open and running (and never use more than one at a time)
  • limit to short sessions  (to your discretion, and resource availability)
  • you may have to terminate your session if so asked  by LRZ admin
  • using the Remote Visualization Service in VNC mode is optional, but will largely improve responsivity
  • use the --osp:num-threads=24 option (see example below) to leave some compute resources for other node users


Invoking Studio GUI
ospStudio --osp:num-threads=24 <my_data_file1.glb> <my_data_file2.glb> ...

You may also use the GUI itself to browse your HOME or WORK filesystem and import your data. Should the data contain animations (e.g. gltf files with this feature) choose the File → Import and animate ... menu entry.

Specific Import plugin provided

LRZ provides a few plugin for importing relevant data (e.g. HPC simulation outputs), compiled from source. Should you have a plugin for your data, you may send a request to our Servicedesk to have it added to the software stack.

CompBioMed HemeLB data

A plugin using Intel OpenVKL to map sparse volume data directly to memory space. Used to load the native, binary .dat output of HemeLB blood flow simulations, no pre-processing required.

Invoking Studio GUI with HemeLB plugin
ospStudio --plugin hemelb --osp:num-threads=24 <my_artery.dat> <my_vein.dat>

In order to load and animate selected datafields and  time snapshots from the several contained in  a .dat file, from CLI you can use the  synthax file:dset:from-to:step.dat. Example:

Loading selected HemeLB snapshots and fields
ospStudio --plugin hemelb --osp:num-threads=24 ArteryWhole:0:1-5:1.dat VeinWhole:0:1-5:1.dat

will load the 0-th dataset (velocity; 1 will do the pressure) for the first five snapshots.