Stallion User Guide
Last update: December 12, 2017

Stallion (stallion.tacc.utexas.edu) is a Dell Linux/Windows visualization cluster and large high-resolution tiled display. The system consists of a Dell Precision 690 head node, 23 Dell XPS 720 rendering nodes, and 80 Dell 30 inch LCD monitors arranged in a 16 x 5 configuration. Altogether, Stallion provides users with 41 graphics processing units (GPUs), over 164 GB of graphics memory, and a 328 megapixel display–currently the second highest resolution display in the world. Stallion is an ideal resource for users wishing to explore terascale datasets / geometries or ultra high-resolution imagery. Its resolution allows users to, in the same view, examine large-scale global features of their data from a distance and fine-scale local features close up. Users can also examine multiple views of their data (for example, different timesteps) simultaneously.

Head Node
stallion.tacc.utexas.edu
Dell Precision T7900 workstations
1 NVIDIA Quadro K5000 graphics card
2 X 8-core Intel Sandy Bridge 2687W @ 3.1 GHz
128 GB memory
1 TB local disk
Rendering Nodes
s1 through s23
Dell XPS 720 desktop
2 x NVIDIA Quadro K5000 graphics cards
2 x 6-core Intel Sandy Bridge 2667W @ 2.9 GHz
64 GB memory
1 TB local disk
Tiled Display 75 x Dell 3007WFP 30-inch LCD monitors
Arrangement:16 x 5 configuration
Individual resolution: 2560 x 1600
Combined resolution: 40,960 x 8,000 (328 megapixels)
Shared Storage 500 GB/home 4.5 TB/work
Interconnect 1 gigabit Ethernet 10 gigabit InfiniBand 4x

File Systems

Users are provided with a home directory which is limited to 500 MB. This home directory is routinely backed up. In addition, users are provided with a directory on the 4.5 TB /work filesystem. There are no quotas on /work; however, it may be purged when it becomes full, and is not backed up. The environment variables $HOME and $WORK point to these directories. Both /home and /work are shared between the head node and all of the render nodes.

Computing Environment

DisplayCluster is a software environment for interactively driving large-scale tiled displays. The software allows users to interactively view media such as high-resolution imagery and video, as well as stream content from remote sources such as laptops / desktops or high-performance remote visualization machines. Many users can simultaneously interact with DisplayCluster with devices such as joysticks or touch-enabled devices such as the iPhone / iPad / iTouch or Android devices. Additionally, a Python scripting interface is provided to automate interaction with DisplayCluster.

DisplayCluster currently drives Stallion, the world's highest resolution tiled display. DisplayCluster can be added as a module. To start DisplayCluster type:

$ startdisplaycluster

Rendering on Stallion

TACC provides several rendering environments that allow users to render to the tiled display. Before you can use the display, however, you must power on the screens:

$ stallion_on

Running Applications

To run these applications on the tiled display, Chromium must first be run. The example below shows how to run a 5x5 VisIt session on the left side of the tiled display wall:

$ module load chromium visit
$ startchromium -g 5x5+0+0 visit

VisIt

VisIt is a scientific visualization application developed at Lawrence Livermore National Labs and based on VTK. VisIt can work with most types of structured and unstructured data. It supports any VTK formatted data set, as well as several other commonly used formats such as NetCDF and GIS formats. VisIt features a rich set of 2D and 3D visualization methods. Both single threaded and distributed versions are available. To run VisIt, run the following in a terminal:

$ module load visit
$ visit

Paraview

ParaView is an open source advanced visualization tool from Kitware, the developers of VTK. ParaView can visualize extremely large datasets and was designed to be run in parallel environments. ParaView supports structured and unstructured grids. It can visualize any VTK formatted data set, as well as image, and AMR datasets. Both single threaded and distributed versions are available. To run ParaView, run the following in the terminal:

$ module load paraview
$ paraview

Scalable Adaptive Graphics Environment (SAGE)

SAGE is a graphics streaming architecture for collaborative scientific visualization environments developed at the Electronic Visualization Laboratory at the University of Illinois at Chicago. SAGE applications stream pixel data to the rendering nodes driving the tiled display. SAGE then renders the content to the display with a user-specified position and size, scaling the content if necessary. SAGE is ideal for displaying imagery and video content. Users can run an arbitrary number of SAGE applications, dynamically positioning them on the tiled display using the SAGE user interface.

Launching SAGE

  1. Login to the Stallion head node console
  2. In a terminal, run the following:
     $ module load sage
     $ startsage
  3. When the GUI appears, hit the ‘Start' button. The screens will one-by-one turn black as SAGE processes are started.
  4. Open the SAGE user interface by connecting to Stallion (shown in a list of tiled displays). This interface allows you to position and scale your content on the tiled display.
  5. You can now run your SAGE applications.

Viewing images with SAGE

The SAGE image viewer is ideal for viewing medium- to high-resolution static imagery. For extremely large images (those greater than 100 megapixels), see the Magic Carpet section. To use the image viewer, run the following in a terminal:

$ module load sage
$ imageviewer

Playing animations with SAGE

MPlayer has been compiled with SAGE support. Users can thus play most kinds of video content to the tiled display. To use the SAGE-enabled MPlayer, run the following in a terminal:

$ module load sage
$ mplayer

Chromium

Chromium is a system for interactive OpenGL rendering on graphics clusters. Chromium behaves as an OpenGL library to a graphics application. It intercepts OpenGL commands and distributes them in parallel to the cluster. With Chromium, users can run unmodified OpenGL applications on the tiled display using all of the render nodes. This approach allows for the rendering of large geometries at extremely high resolutions. To run an OpenGL application using Chromium, follow these steps:

  1. Load the Chromium environment

     $ module load chromium
  2. Use the ‘startchromium' script to run your application through Chromium. This script allows you to select which screens on the tiled display you wish to use. The syntax is:

     $ startchromium -g WxH+x+y

    where WxH+x+y is the tiled display geometry you wish to use. For example, to run the application ‘glxgears' on a 5x5 section at the right of the tiled display, run:

     $ startchromium -g 5x5+9+0 glxgears

Magic Carpet

Magic Carpet is a cluster-based image viewer for tiled displays developed at the Electronic Visualization Laboratory at the University of Illinois at Chicago. With Magic Carpet, users can interactively explore images up to several gigapixels in resolution. It uses pre-processed multi-resolution tiled images to achieve full interactivity. During viewing, it loads appropriate image data at a suitable level of detail to the graphics card in a view-dependent manner.

Processing images for Magic Carpet

Magic Carpet requires that images be pre-processed prior to viewing. Note that for extremely large images the processing time can be significant. To process images, do the following:

  1. Load the Magic Carpet Module

     $ module load magicarpet
  2. Run the pgen1 utility to generate configuration and layout files.

     $ pgen1

    For example, for a 10,000 x 5,000 resolution JPEG image, run the following command:

     $ pgen1 example.jpg 10000 5000 3

    This will generate the "example.jpg.conf" and "example.jpg.layout" files.

  3. Use the pyramidmaker utility to process your image. At a terminal, run pyramidmaker. In the interface select your image input format and previously generated configuration file. Then, select a directory where the processed data should go. You may adjust the default block size if you wish. Finally, hit the ‘Run' button. Pyramidmaker will take some time to complete.

Troubleshooting

If you encounter a "Command not found" error, e.g.:

$ visit
bash: visit: command not found

make sure you've loaded the corresponding module:

$ module load visit/1.11.0
$ visit

Loading the visit module modifies the PATH variable to include the location of the VisIt executable, and modifies the library path variables. If you have any issues that are not listed above, please create a consulting ticket at the TACC User Portal.