<div dir="ltr">Hello John,<br><div><br></div><div>I also am keen to follow your progress, as this is something we would find extremely useful as well.</div><div><br></div><div>Regards,</div><div>Jason</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Sep 8, 2023 at 4:47 AM John Snowdon <<a href="mailto:John.Snowdon@newcastle.ac.uk">John.Snowdon@newcastle.ac.uk</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">I've been needing to do this as part of some analysis work we are undertaking to determine requirements for a replacement system.<br>
<br>
We don't have anything structured in place currently to analyse Slurm data; lots of Grafana system-level metrics but nothing to look at trends of useful metrics like:<br>
<br>
- Size (and age) of jobs sitting in the pending state<br>
- Average runtime of jobs<br>
- Plotting workload sizing information such as cores/job and memory/core so that we can understand how our users are utilising the service<br>
- Demand (and utilisation) of particular partitions<br>
<br>
I couldn't find anything that was exactly what we wanted, so I spent a couple of afternoons last week putting something together in Python to wrap around sacct / sinfo output.<br>
<br>
So far I've got reports for what is happening 'now', as well as summaries for the following periods:<br>
<br>
24 hours<br>
7 days<br>
30 days<br>
1 year<br>
<br>
Data is analysed based on jobs running/pending/completed/failed during windows in time and summarised in terms of sample periods per day (a 24 report having the finest sampling resolution of 6x 10 minute windows per hour), and the output of each sample period is stored as a persistent json object on the filesystem in case the same report is ran again, or that period is included as part of a larger analysis window.<br>
<br>
I output to flat HTML files using the Jinja2 templating module and visualise data using the ubiquitous Highcharts and DataTables javascript libraries.<br>
<br>
In our case we're more interested in things like:<br>
<br>
Min/Max/Median cores/job, plus lowest average value which would satisfy X% of all jobs<br>
Min/Max/Median memory/core, plus lowest average value which would satisfy X% of all jobs<br>
Min/Max/Median nodes/job, plus lowest average value which would satisfy X% of all jobs<br>
Backlog of jobs waiting in pending state<br>
Percentage of jobs that 'fail' (end up in some state other than completed)<br>
Scatter chart of cores/job to memory/core (i.e. what is the bulk of our user workload; parallel/serial, low memory/high memory?)<br>
<br>
i.e. data points which will be useful in our sizing decisions of a replacement platform, both in terms of hardware, as well as partition definitions.<br>
<br>
When it's at a point where it is useable, I'm sure that we can share the code. It's pretty much self-contained; the only dependencies being Slurm and Python 3 installed - no web components needed (unless you want to serve the generated reports to users, of course).<br>
<br>
John Snowdon<br>
Advanced Computing Consultant<br>
<br>
Newcastle University IT Service<br>
The Elizabeth Barraclough Building<br>
91 Sandyford Road<br>
Newcastle upon Tyne, <br>
NE1 8HW<br>
<br>
</blockquote></div><br clear="all"><div><br></div><span class="gmail_signature_prefix">-- </span><br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div style="color:rgb(0,0,0);font-family:Helvetica;font-size:14px;margin:0px"><span style="color:rgb(130,36,51)"><font face="Century Gothic"><b>Jason L. Simms, Ph.D., M.P.H.</b></font></span></div><font face="Century Gothic">Manager of Research Computing</font><br></div><div dir="ltr"><div style="color:rgb(0,0,0);font-family:Helvetica;font-size:14px;margin:0px"><font face="Century Gothic"><span style="color:gray">Swarthmore College<br>Information Technology Services</span></font></div><div style="color:rgb(0,0,0);font-family:Helvetica;font-size:14px;margin:0px"><font face="Century Gothic"><span style="color:gray">(610) 328-8102<br></span></font></div><div style="color:rgb(0,0,0);font-family:Helvetica;font-size:14px;margin:0px"><font face="Century Gothic">Schedule a meeting: </font><span style="font-family:Arial,Helvetica,sans-serif;font-size:small;color:rgb(32,33,36)"><a href="https://calendly.com/jlsimms" target="_blank">https://calendly.com/jlsimms</a></span><br></div></div></div></div></div></div>