Slurm Native Profiling

Job resource usage can be determined on job completion by checking the following sacct columns;

  • MaxRSS - Peak memory usage.
  • TotalCPU - Check Elapsed x Alloc TotalCPU 

However if you want to examine resource usage over the run-time of your job,
the line #SBATCH --profile task can be added to your script.

That will cause profile data to be recorded every 30 seconds throughout the job. For jobs which take much less/more than a day to run we recommend increasing/decreasing that sampling frequency, so for example when profiling a job of less than 1 hour it would be OK to sample every second by adding #SBATCH --acctg-freq=1, and for a week long job the rate should be reduced to once every 5 minutes: #SBATCH --acctg-freq=300.

On completion of your job, collate the data into an HDF5 file using sh5util -j <jobid>, this will collect the results from the nodes where your job ran and write into an HDF5 file named: job_<jobid>.h5

You can plot the contents of this file with the command nn_profile_plot job_<jobid>.h5, this will generate a file named job_<jobid>_profile.png.

Alternatively you could use one of the following scripts. 

Any GPU usage will also be recorded in the profile, so long as the process was executed via srun.

Labels: slurm profiling
Was this article helpful?
4 out of 4 found this helpful