Use Licensed Software

Introduction

This guide describes how to run jobs that use licensed software in CHTC’s high throughput computing (HTC) system.

Policies

Users install and manage their own software installations via containers or portable installations. CHTC’s research computing facilitators are available to help through this process.

Some software programs require paid licenses, which may require additional support. Installation of licensed programs is by request to and at the discretion of CHTC staff.

We recommend using a free or open-source software alternative whenever possible, as some software licenses restrict the amount of computing that can contribute to your research.

Jobs using licensed software are incompatible with external capacity like the OSPool or campus pools.

How to use licensed software

  1. Find your licensed software in the table. For most cases, you will need to request access to the licensed software.
  2. Build a container or use the module system to prepare your software and scripts, depending on your licensed software.
  3. Modify your submit file.
    • Add the right concurrency_limits to your submit file.
    • Add requirements = (HasChtcSoftware == true).

Licensed software on the HTC system

Software Limit name Pool limit Use via Allowed users
ABAQUS ABAQUS 50 module Must belong to an approved research group.
ANSYS ANSYS_RESEARCH 20 module Must belong to an approved research group.
COMSOL (Physics) COMSOL_PHYSICS 2 module Must belong to the Physics department.
Gurobi GUROBI 4096 container Contact CHTC.
Lumerical LUMERICAL 3 container Must belong to an approved research group.
MATLAB MATLAB 10000 container Must use our MATLAB container recipes. Does not need approval.

If you need access to these licensed software, contact us at chtc@cs.wisc.edu.

Unsupported licensed software Notes
Gaussian Requires third-party assistance.
Mathematica Incompatible.
VASP Requires third-party assistance. HPC system recommended.

Modules

See available modules

For licensed software accessible through the module system, you can see the available modules and versions of the software by running this command on the Access Point.

[alice@submit]$ module avail

Use and load modules in your executable script

For jobs that use licensed software in modules, load the module in your executable script. Below is an example.

#!/bin/bash

# Commands to enable modules, and then load an appropriate software module
export PATH
. /etc/profile.d/modules.sh
module load <software>

# Command to run your software from the command line
cmd -options input.file

Replace <software> with the name of the software module you want to use, found via the module avail command described above. Replace the final command with the syntax to run your software, with the appropriate options.

For example, to run a COMSOL job, the script might look like this:

#!/bin/bash

export PATH
. /etc/profile.d/modules.sh
module load COMSOL

comsol batch -inputfile test.mph -outputfile test-results.mph

Submit file requirements

When using licensed software managed by CHTC you must add the following to your submit file.

  • Require CHTC Software. This ensures that your job will run on machines that have access to CHTC software modules and licenses.

    requirements = (HasChtcSoftware == true)
    
  • Add a concurrency limit. This “checks out” a license for your job. If the maximum number of licenses are checked out, your job will stay in idle until a license is available. This prevents job errors stemming from unavailable licenses. To your submit file, add:

    concurrency_limits = LIMIT_NAME:num_of_licenses_used
    

    See the table above for LIMIT_NAME.

    For example, to run a job that uses one ANSYS license, use:

    concurrency_limits = ANSYS_RESEARCH:1
    

    How many licenses should I specify in concurrency_limits?

    For most jobs, you will only need to check out one license.

    However, some workflows and software check out multiple licenses for different processes (such as using the R bindings for Gurobi). Please be aware of your job’s behavior, and specify the correct number of licenses to the best of your ability.

  • Request accurate CPUs and memory. Run at least one test job and look at the log file produced by HTCondor to determine how much memory and disk space your jobs actually use. We recommend requesting the smallest number of CPUs where your job will finish in 1-2 days.

HTC guides