SHPC Condo Software Configuration
In this section, we discuss the SHPC Condos software configuration. Our software environment uses Linux environment modules to perform this configuration. The software modules available to users also contain preconfigured compiler toolchains, or programming environments which include parallel compiler wrappers and associated MPI stacks. There are also workflow tools that may help with your applications as well.
SHPC has more than one hundred software packages installed. Our software environment uses Linux (CentOS 7.x) environment modules to manage versions and dependencies of software packages. When you load a module, it sets the environment variables necessary for running your program.
A list of available software modules can be viewed by typing
Modules: Local repository
By default the local repository is used as a source of software installations. To list available modules, type
module avail. To load a module, use
module load module_name. Similarly, unload modules by typing
module unload module_name.
Modules: CVMFS-based repository
A CVMFS (Cern Virtual File System)-based repository is available that has several software packages. To use the CVMFS-based repository run the following commands from your login node:
After entering the above commands the new repository should be active and the command below will list the software available for use:
switch_modules local will bring back the local modules to use.
Additional information on SHPC modules may be found here.
Compiling Your Own Software
What system should I compile on?
When compiling your own software on the condos, do not use the login nodes for large parallel compilations. Small compilation tasks are fine, but the login nodes have strict limits placed on the resources available to each user, and are not meant to be used for large or time consuming compilation tasks. Instead, we encourage you to start an interactive session on a compute node and run the parallel compilation from there. Information on starting an interactive session in Moab is available here, and information on starting an interactive session in Slurm is available here.
What directory should I compile my program in?
We discourage compiling software in your home directory, as that filesystem is not meant for high-performance parallel file-io. Instead, we encourage you to compile in your Lustre filesystem directory, or in the /localscratch directory on a compute node, then copy or run
make install with the proper prefix to place the program binaries into your home directory.
Depending on the application/code you are working on, you might choose a specific compiler to achieve the best performance of your programs. Compiler toolchains such as GNU, Intel, PGI and NAG are already installed to work with other libraries. See here for more information on SHPC compilers
Workflow tools orchestrate multi-stage computations. Several workflow tools are available on SHPC.
Notes on Specific Software Usage
Visualizing Remote Data over SSH using Visit
Visit is a well-known visualization software package that is available on SHPC. Visit may be configured by creating the profile of SHPC Condo to visualize data from your local Visit client. In order to do so, follow the steps as shown below on your local Visit:
- Start Visit and go to
New Hostand populate the fields as described below
- Host nickname:
- Remote host name:
- Host name aliases:
- Path to Visit installation:
- Host nickname:
- Check the
Tunnel data ...checkbox
- Click on
- Now in the
openmenu, click on the dropdown (▾) and select
- Enter your password in the dialog box that opens
- You should be able to see your data on the SHPC file system which can be opened just as if it were local data
Visualizing by Paraview
ParaView is an open-source, multi-platform data analysis and visualization application. ParaView users can quickly build visualizations to analyze their data using qualitative and quantitative techniques.
- Launch ParaView on laptop (must be the same version as remote):
In ParaView: File →Connect →Add Server: Name: Pick a name Server Type: Client/Server Host: localhost Port: 11111 - press Configure button - Startup Type: Manual - click Save
- Open a local terminal 1:
- Start a job and get a compute node (say or-condo-c57): [uid@or-slurm-login07 ~]$ srun -A staff -p batch -N 1 -n 1 -c 1 – mem=8G -t 1:00:00 --pty /bin/bash srun: job 2575867 queued and waiting for resources srun: job 2575867 has been allocated resources - Launch the server: [uid@or-condo-c57 ~]$ module load paraview/5.8.0 [uid@or-condo-c57 ~]$ pvserver --force-offscreen-rendering Waiting for client... Connection URL: cs://or-condo-c57.ornl.gov:11111 Accepting connection(s): or-condo-c57.ornl.gov:11111
- Open a 2nd local TERMINAL 2:
- ssh -L 11111:localhost:11111 email@example.com - ssh -L 11111:localhost:11111 or-condo-c57.ornl.gov
- Launch ParaView on Laptop:
Connect to server you made previously in the ParaView GUI. If successful, you’ll see in “Terminal 1” a message that says “Client connected” [uid@or-condo-c57 ~]$ pvserver --force-offscreen-rendering Waiting for client... Connection URL: cs://or-condo-c57.ornl.gov:11111 Accepting connection(s): or-condo-c57.ornl.gov:11111 Client connected.