Low Tensor Core Utilization
This alert identifies users whose jobs exhibit low Tensor Core utilization.
Tensor Core utilization is the percentage of time that the Tensor Cores are active. Tensor Cores are specialized execution units designed to accelerate matrix multiply-accumulate operations, which are fundamental to deep learning and scientific computing workloads.
When a workload can take advantage of mixed-precision or matrix operations (such as FP16, BF16, TF32, or FP8), utilizing Tensor Cores can provide a substantial speedup compared to standard CUDA cores.
This alert is useful for clusters or partitions that are devoted to AI codes which should almost always use the Tensor Codes.
Jobstats 1.1.0+ with detailed GPU metrics enabled is required for this alert.
Configuration File
Below is an example entry for config.yaml:
low-tc-utilization-1:
cluster: della
partitions:
- gpu
- llm
util_thres_pct: 70 # percent
tc_thres_pct: 0 # percent
gpu_hours_thres_user: 100 # gpu-hours
gpu_hours_thres_admin: 100 # gpu-hours
email_file: "low_tc_utilization.txt"
admin_emails:
- admin@institution.edu
The available settings are listed below:
-
cluster: Specify the cluster name as it appears in the Slurm database. One cluster name per alert. -
partitions: Specify one or more Slurm partitions. Use"*"to include all partitions (i.e.,partitions: ["*"]). The number of GPU-hours is summed over all partitions. -
email_file: The text file to be used as the email message to users. -
util_thres_pct: Consider jobs where the GPU utilization is greater than or equal to this value. -
tc_thres_pct: Consider jobs where the Tensor Core utilization is less than or equal to this value. -
gpu_hours_thres_user: Only users with greater than or equal to this threshold number of GPU-hours will receive an email. -
gpu_hours_thres_admin: Only users with greater than or equal to this threshold number of GPU-hours will appear in the report for administrators. -
min_run_time: (Optional) Minimum run time in minutes for a job to be included in the calculation. For example, ifmin_run_time: 30is used then jobs that ran for less than 30 minutes are ignored. Default: 0 -
num_top_users: (Optional) Only consider the number of users equal to this value after filtering and then sorting by GPU-hours. Default: 15 -
show_all_users: (Optional) Flag to show all of the top users in the report. Default: False -
num_jobs_display: (Optional) Maximum number of jobs to display in the email message to users. Default: 5 -
max_num_jobid_admin: (Optional) Maximum number of JobID's to show in the report to administrators. If the number of jobs per user is greater than this value then a "+" character is appended to the end of the list. Default: 2 -
nodelist: (Optional) Only apply this alert to jobs that ran on the specified nodes. See example. -
excluded_qos: (Optional) List of QOSes to exclude from this alert. -
excluded_partitions: (Optional) List of partitions to exclude from this alert. This is useful whenpartitions: ["*"]is used. -
excluded_users: (Optional) List of users to exclude from receiving emails. -
admin_emails: (Optional) The emails sent to users will also be sent to these administrator emails. This applies when the--emailoption is used. -
email_subject: (Optional) Subject of the email message to users. -
report_title: (Optional) Title of the report to system administrators. -
enabled: (Optional) IfFalsethen the alert is ignored. Default:True
Report for System Administrators
Here is an example report:
$ job_defense_shield --low-tc-utilization
Low Tensor Core Utilization
------------------------------------------------------------------
User GPU-Hours GPU-Util TC-Util Jobs JobID Emails
------------------------------------------------------------------
u12345 777 80% 0% 224 16219160,16219161+ 0
u32756 152 73% 0% 112 16149263,16149264+ 0
------------------------------------------------------------------
Cluster: della
Partitions: gpu,llm
Start: Mon Oct 26, 2026 at 09:46 AM
End: Mon Nov 02, 2026 at 09:46 AM
Email Message to Users
Below is an example email message:
Hi Alan (u12345),
Below are 5 of your 224 jobs that ran on della in the past 7 days:
JobID Cluster Partition GPU-Hours GPU-Util TC-Util
16492937 della pli-c 24 89% 0%
16488173 della pli-c 24 89% 0%
16493478 della pli-c 22 90% 0%
16499763 della pli-c 20 99% 0%
16323186 della pli-c 23 83% 0%
For the 224 jobs, which consumed 777 GPU-hours, your mean Tensor Core
utilization was 0%. See the definition of this metric:
https://princetonuniversity.github.io/jobstats/setup/detailed_gpu_metrics/
Can changes be made to improve the Tensor Core utilization? For
assistance, please attend an in-person Research Computing help session.
Placeholders
The following placeholders can be used in the email file:
<GREETING>: The greeting generated bygreeting-method.<DAYS>: Number of days in the time window (default is 7).<CASE>: Helper text relating to the number of jobs.<CLUSTER>: The cluster specified for the alert (i.e.,cluster).<PARTITIONS>: A comma-separated list of partitions used by the user.<GPU-HOURS>: Total GPU-hours of the jobs.<GPU-UTIL>: Mean GPU utilization.<TC-UTIL>: Mean Tensor Core utilization.<NUM-JOBS>: Total number of jobs with low Tensor Core utilization.<TABLE>: Table of job data.<JOBSTATS>: Thejobstatscommand for the first job of the user.
Usage
Generate a report of the users with low Tensor Core utilization:
Send emails to the offending users:
See which users have received emails and when they were sent:
cron
Below is an example entry for crontab: