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.
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.
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 |
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:
- vnc_url contains the URL for web-based connection to your VNC session
- vnc_server contains the domain and port number for direct VNC viewer connection to your VNC session
- NOTE: these point to the same VNC session.
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 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.
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.
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.