Compute Credit Accounts
A credit account provides access to a variety compute resources for an individual user or for a group of users on a pay-per-use basis.
A credit account provides the following benefits:
- Access to a variety of both CPU and GPU hardware resources
- Run times longer than the 48 hour limit on the open queue
- Pay only for the resources used
Monitoring Credit Accounts
Credit use is non-refundable
There are no bounds on the maximum amount of credits jobs can use. Be judicious to avoid inadvertantly using more credits than intended.
Submitting jobs against credit accounts will debit the account for resources allocated through the actual runtime of the job. The scheduler cannot differentiate between resources allocated versus resources actually used. When requesting multiple cores or GPU resources, ensure your job can utilize all of the requested hardware to avoid being charged for unused resources.
Estimating Credit Use
The job_estimate
utility can be used to determine how many credits would be used by a batch
job based on the resources requested in the batch script.
To use the utility, provide a batch script file as shown here:
job_estimate <submit file>
For example, if I have batch script called comsol.slurm
, I can get an estimated credit use as follows:
$ job_estimate comsol.slurm
Estimated job cost: 0.0021 credits
The output units can be modified with the --units
flag:
$ job_estimate --units slurm-billing-units comsol.slurm
Estimated job cost: 6000.0000 slurm-billing-units
For more options and details on their use, check job-estimate --help
.
Current balance information
The get_balance
command can be used to show current credit account balances. To use, supply the credit account name:
get_balance <credit_account>
There are options for viewing the output in different units. Use get_balance -h
for additional usage information.
Available Hardware Partitions
Jobs submitted using a credit account can utilize a variety of the CPU and GPU resources in Roar Collab. Unlike an allocation account, a credit account job must also specify the hardware it wants to utilize.
This is done by selecting a hardware partition to run on. Available options are:
basic
: Basic core resources (4 GB/core, Ethernet networking)standard
: Standard core resources (8 GB/core, Infiniband connectivity)himem
: High memory core resources (20 GB/core, Infiniband connectivity)
For CPU resources, credit accounts are charged based on the number of cores used and the runtime of the job. The number of cores equates to the number of requested cores, or their equivalent memory amount.
For example, if a job requests 1 core with 32 GB memory in the standard
partition, it will be charged as if 4
cores were used because it used the memory equivalent of 4 standard cores at 8 GB/core.
Using a Credit Account on the Portal
To utilize a credit account on the Portal, select the desired account name under the "Account" drop down box in the Interactive Session request form.
If the account does not appear in the "Account" drop down box, you may need to be added to the allocation. Allocation coordinators can add and remove users from their allocations, or contact the helpdesk at [icds@psu.edu] to request a user be added.
Additionally, a hardware partition will need to be specified. To do so, select the "Enable advanced Slurm options" option and enter the necessary directives in the "Sbatch options" text box:
--partition=<desired_partition>
Requesting GPUs
To request a GPU for a job, you will need to add the --gres
directive to specify the desired hardware:
--partition=<desired_partition>
--gres=gpu:1
The number specified in gpu:1
will indicate the total number of GPUs allocated for the job.
This can be further modified to request a specific GPU model:
--partition=<desired_partition>
--gres=gpu:a100:1
For more details on available GPU models, please see the current Compute Hardware available.
Ensure your software is GPU enabled
Requesting GPU resources for a job is only beneficial if the software running within the job is GPU-enabled
VirtualGL GPU acceleration
The VirtualGL GPU acceleration option will ensure the job is launched using OpenGL. This option is beneficial if your interactive job uses a graphical interface and requires a GPU to use.
VirtualGL GPU acceleration requires a GPU
If you try to launch a job with the VirtualGL option enabled without requesting a GPU, the job will fail.
Custom Hardware Configurations
Paid accounts can fine-tune their resource request using the --constraint
directive.
To do so, select the "Enable advanced Slurm options" option and enter the necessary directives in the "Sbatch options" text box:
--constraint=<feature>
Any of the features listed in the AVAIL_FEATURES columnfrom the sinfo output (above) can be used as a constraint to customize your hardware requests.
For example, to request a job only run on
cascadelake
hardware, you would add the following directive to your resource requests:
--constraint=cascakelake
Using an Allocation on the Command Line
To submit a job using a credit account, supply the --account
or -A
resource directive with the credit account name,
along with the desired hardware --partition
.
Within a batch script that would look like:
#SBATCH --account=<compute_account>
#SBATCH --partition=<hardware_partition>
Or you can provide it as a flag to an sbatch
command to submit a batch job:
sbatch -A <compute_account> -p <hardware_partition> <submit_script>
Or as a flag to an salloc
command to request an interactive command line session:
salloc -A <compute_account> -p <hardware_partition>
Custom Hardware Configurations
Paid accounts can fine-tune their resource request using the --constraint
directive.
From within a submit script, the constraint feature can be used by adding the following to your SBATCH header:
#SBATCH --constraint=<feature>
where <feature>
is one of the features listed by sinfo (or multiple features, separated by commas).
To request nodes with a given feature for an interactive job,
add a -C
option to your salloc
command:
salloc -N 1 -n 4 -A <alloc> -C <feature> -t 1:00:00
Any of the "tags" listed in the AVAIL_FEATURES columnfrom the sinfo output (above) can be used as a constraint to customize your hardware requests.
For example, to request a job only run on
cascadelake
hardware, you would add the following directive to your resource requests:
--constraint=cascakelake
Requesting GPUs
All GPUs on Roar Collab available for credit accounts are hosted within the standard
partition.
To request a GPU for a job running against a credit account, you will need to specify the standard
partition and
request GPUs with the --gres=gpu:n
directive, where n
is the number of GPU cards desired. Within a batch script,
requesting one GPU card would look like:
#SBATCH --account=<credit_account_id>
#SBATCH --partition=standard
#SBATCH --gres=gpu:1
Or you can specify this along with your sbatch
command when submitting jobs:
sbatch -A <credit_account_id> -p standard --gres=gpu:1 <batch_script>
For an interactive job, the salloc
command is similar:
salloc -A <credit_account_id> -p standard --gres=gpu:1
This can be further modified to request a specific GPU model:
--partition=<desired_partition>
--gres=gpu:a100:1
For more details on available GPU models, please see the current Compute Hardware available.
Ensure your software is GPU enabled
Requesting GPU resources for a job is only beneficial if the software running within the job is GPU-enabled
VirtualGL GPU acceleration
Using VirtualGL accelleration on the command line will ensure the job is launched using OpenGL. This option is beneficial if your interactive job uses a graphical interface and requires a GPU to use.
To run a command using VirtualGL accelleration, use the vglrun
command. This command should be available on any
GPU enabled node.
For example, running Amira3D using VirtualGL accelleration can be accomplished using the following command from a terminal prompt within an interactive job:
$ module load avizo
$ vglrun Amira3D
Graphical interfaces requires graphical support
To correctly launch a graphical interface requires an X11 enabled SSH connection. Alternately, an Interactive Desktop session on the Roar Collab Portal can be used instead.