Overview

Maverick (maverick.tacc.utexas.edu) is a Sun V890 with 32 GB of shared memory and 8 dual core 1.2 GHz UltraSPARC IV processors. Maverick serves as a front end for a Sun Microsystems E25K server with 64 dual-core 1.05 GHz UltraSPARC IV processors and 512 GB of shared memory, containing 16 3Dlabs Wildcat Realizm 800 graphics cards, each with 512MB of memory. Maverick is connected to the E25K through a fiber channel connection.

The graphics capabilities can be used via remote VNC session, or from the ACES Visualization Lab. It is currently configured for mono and stereo display on the front screens in the lab as described on the Vislab user guide.


Quick Start

Once you receive your account information, your first step is to login to the system via Secure Shell ( ssh ). Once you've successfully logged in, you should immediately change your password using the command passwd if you were issued a temporary password with your account. You may then set up your shell environment as you like. For details on how user environments are initially configured, and for details on the login process, the following documents should be useful.


File Systems

The file system on Maverick has three different storage volumes that have distinct characteristics. This is to facilitate different storage needs simultaneously. The paths to these storage locations are identified by the shell environment variables $HOME , $WORK and $ARCHIVE . The following table is intended to break down the general features of each storage system and give an idea of their fitness for a particular purpose.

Storage Volume

Size

Performance

Persistence

$HOME

500 MB Quota

Slow

Long Term, Backed Up

$WORK

Large

Fast

Short Term

$ARCHIVE

~ Infinite

Very Slow

~ Permanent

 

Running Interactive Visualization Jobs

Maverick's 3D graphics capabilities can be used for any OpenGL application using VNC and VirtualGL. The VNC connection can be made using a Java-enabled web browser or a VNC viewer.

You must set up a VNC password on Maverick by running vncpasswd . You will be asked to create a master password, which allows full control of the vnc session, and you will have the option of creating a view-only password, which allows the session to be seen but without interactive control (this can be useful to collaborate without compromising your security). The command vncpasswd can be done at any time to change your VNC password, but must be done at least once prior to your first VNC session.

Use the following steps to launch your vnc session:

  1. Login to maverick with ssh:    ssh <username>@maverick.tacc.utexas.edu
  2. Submit the session as an interactive job:    qsub /usr/local/qsub/RUN.vnc
  3. Wait several seconds for the job to be scheduled and complete.
  4. The vnc session information will be placed in several files:
  5. Enter the URL from vnc_url in your web brower, or enter the server information from vnc_server into your VNC viewer.
  6. When prompted, enter your master VNC password (not your maverick login password) and you will be presented with a Maverick desktop. All rendering will be done on Maverick, and the resulting screen images are sent via VNC to your web browser or VNC viewer.

Running a Graphics Job Over a VNC Session

Once your VNC session is running and you have access to the Maverick desktop, you may run graphics applications using:   vglrun   < my_graphics_app >

For graphics applications installed and maintained by TACC (i.e. ParaView), be sure to set up your environment to run the application using

module load  < graphics_app >

before calling vglrun. Please see Installed Software for more information.

Several parameters of your VNC session can be modified, including the VNC desktop size, job runtime and number of requested graphics devices. This is done by passing arguments to the qsub command when submitting your job. The syntax and options are summarized below.

Syntax:     qsub [optional arguments] /usr/local/qsub/RUN.vnc

Parameter

Argument

Default Value

Maverick Desktop Size

-v GEOMETRY=<W>x<H>

1024x768

Runtime (maximum 2 hours)

-l h_rt=<hours>:<mins>:<secs>

1:00:00

Num. Requested Graphics Devices

-l gfx=<num_graphics_devices>

1

For example, to modify your VNC session to have a desktop size of 1600x1200, a runtime of 2 hours, and use 4 graphics devices, you would use the command:

qsub -v GEOMETRY=1600x1200 -l h_rt=2:00:00 -l gfx=4 /usr/local/qsub/RUN.vnc

 

Troubleshooting, Notes

Specific to the Web Interface:

Running HPC Jobs

Running an HPC job on Maverick is similar to running visualization jobs, however there is no need to request graphics resources. HPC jobs must be submitted to the hpc queue and will be limited to run times between 6 PM and 6 AM to allow for interactive visualization jobs to run during the day.

The job script HPC.sge submits a 64 processor job to the HPC queue to run for one hour. To submit this script to SGE, run the command qsub HPC.sge . The job outputs are specified by this script to be written to job.out and job.err , respectively.

Installed Software

Maverick's current list of installed software can be found on the TACC Software and Tools page. For each software package installed on Maverick, you must first set up your environment using the command:

module load  < graphics_app >

After this command is issued, the application can be started in the usual manner, using:

vglrun   < graphics_app >

to start a graphics application when connected to Maverick through a VNC connection.

Many of the installed visualization packages have documentation and tutorials available.

Software Development

TACC's visualization systems run different operating systems and are built on different microarchitectural standards. Having a variety of computing platforms provides many advantages, but has disadvantages as well. One disadvantage is that code typically must be recompiled for each target platform. Each platform generally has two sets of compilers: the GNU compilers and associated tools, and the vendor-specific compilers that target that specific platform. The GNU compilers provide consistency from one machine to the next, and are very widely available, stable, and relatively easy to use. However, if your application requires optimal performance, or makes use of platform-specific features unsupported by the GNU compilers, then the vendor-specific tools are the appropriate choice. This section overviews the compilers common to all of TACC's visualization resources.

Sun C/C++ Compiler

The Sun Compiler ( cc ) version 5.6 is available on Maverick and is the default compiler on the system. Vendor-specific compilers are generally capable of better optimization than generic compilers such as GNU, so for maximum performance, this compiler should be used. See Sun's documentation page for highly detailed information about how to use the compiler and what optimizations it provides. This compiler accepts most of the more commonly used command line options as the GNU compiler, plus some additional optimization flags specific to the Sun UltraSPARC architecture.

Argument

Description

-fast

Selects a combination of compiler options for optimum execution speed for some programs.

-m32 | -m64

Specifies the memory model for the compiled binary object.

-mt

Compiles and links for multithreaded code.

-xtarget=native64

Enables optimizations specific to the native architecture (use -xtarget=native for 32-bit compiles).

-fma

Enables automatic generation of floating-point, fused, multiply-add instructions.

-fsimple [=0,1,2]

Disables (0) or enables (1, 2) optimizations that may sacrifice floating point accuracy. See the CC man page for details.

GNU C/C++ Compiler

The GNU C/C++ compiler, ( gcc / g++ ) is one of the most widely used compilers and is considered very stable and effective. Version 3.4.2 is installed on Maverick and details on its usage can be found in the man pages by giving the command man gcc , and also on the GNU website's user guide. The most commonly used command like arguments and options are given in the table below.

Argument

Description

-o [fileName]

Specify the name of the output file.

-g

Compile the code with debugging symbols. Necessary for debugging with gdb

-O1, -O2, -O3

Specify differing degrees of optimization.

-c

Compile only, do not link into an executable.

-l [libName]

Specifies a static library to link to. Note the absense of a space between the 'l' and the name.

Parallelism and Concurrency

The primary advantage offered by TACC's high-performance computing resources is parallelism - the use of multiple processors or hardware resources simultaneously on a single problem. Unfortunately, software does not often take advantage of this capability automatically. Applications typically must be designed by the programmer specifically with parallelism (and a particular architecture) in mind.

TACC's Visualization resources each provide one of two hardware models for parallelism. The first (and easiest to use) is the shared memory processing or symmetric multi-processing (SMP) model. Standard C/C++ libraries such as pthreads or OpenMP are based on this model and are available on our SMP machines. The second programming model for concurrency is based on message passing. Cluster architectures do not support shared memory between compute nodes, and synchronization therefore must be achieved by message passing (rather than shared variables). The standard API or library for this is MPI.

Maverick is a shared memory architecture, and therefore uses the shared memory model of concurrency. Use pthreads or OpenMP to get the best performance from your code on Maverick.