<div dir="auto">The tuning does involve heavy kernel params and much understanding of the programs used.<div dir="auto"><br></div><div dir="auto">Add to this the interconnection method, ethernet vs. Infiniband or Slingshot (IPoIB with dynamic adaptive routing). </div><div dir="auto"><br></div><div dir="auto">Now couple with file storage, it's bandwidth and IO performance limits and the horrors of "tiny files".</div><div dir="auto"><br></div><div dir="auto">Those systems all have params that can be tweaked. The simple test is total time to run the code. What can be done to speed it up? Getting that data involves many, many runs of the same dataset with tiny changes in settings. There are threshold events that be an inflection point when a tiny param change can have a big impact on performance. </div><div dir="auto"><br></div><div dir="auto">Data collection. Sar is a key dataset for evaluating system use. But a check every 10 minutes is useless. So it get turned up to every minute or even shorter. Now that tool is competing with the application for cpu time. So dedicate a core to perf data collection. Now the application might be running "unbalanced". Some code runs better in even numbers or cores per CPU. Some code doesn't care. </div><div dir="auto"><br></div><div dir="auto">So now tweak, wiggle, poke, and cuss until each application runs as fast as possible. Then compare best option settings between the different applications and try keep as many as possible while down tuning some parts to get a best fit.</div><div dir="auto"><br></div><div dir="auto">Sometimes it's possible to do param changes as part of the job startup. Some params require a reboot. </div><div dir="auto"><br></div><div dir="auto">Practice juggling and brush up on the diplomacy skills.</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Jun 4, 2024, 7:43 AM Leam Hall via Ale <<a href="mailto:ale@ale.org">ale@ale.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Jim,<br>
<br>
Can you talk a little about how to learn performance tuning and scaling data collection? Most of my work over the years has just been getting things to work, or fixing things after the developers did a "nothing major" change. Performance and throughput observation and tuning are important, but I've not really done a lot of it.<br>
<br>
Is this an area where kernel parameters are used a lot? Are there kernel re-compiles? Is this a job space where dusting off my C would be useful? Are other programming languages heavily used?<br>
<br>
Thanks!<br>
<br>
Leam<br>
<br>
On 6/3/24 19:47, Jim Kinney wrote:<br>
> To make it work there's tools that multiply a command across many nodes.<br>
> Nodes are often pxe boit from a common point then get ip and name assigned.<br>
> Depending on maker and tools the systems are usually batch processors with<br>
> a manager like slurm (or pbs if life hands out lemons 😞).<br>
> <br>
> Monitoring tools are numerous. Some old one still work. Some new have<br>
> problems scaling.<br>
> <br>
> The hard part is figuring out performance tuning and scaling data<br>
> collection to not overrun system usage.<br>
> <br>
> On Mon, Jun 3, 2024, 4:05 PM Leam Hall via Ale <<a href="mailto:ale@ale.org" target="_blank" rel="noreferrer">ale@ale.org</a>> wrote:<br>
> <br>
>> For those of you who know, what's different about supporting Linux on<br>
>> supercomputers?<br>
>><br>
>> Thanks!<br>
>><br>
>> Leam<br>
<br>
-- <br>
DevSecOps Engineer         (<a href="http://reuel.net/resume" rel="noreferrer noreferrer" target="_blank">reuel.net/resume</a>)<br>
Scribe: The Domici War     (<a href="http://domiciwar.net" rel="noreferrer noreferrer" target="_blank">domiciwar.net</a>)<br>
General Ne'er-do-well      (<a href="http://github.com/LeamHall" rel="noreferrer noreferrer" target="_blank">github.com/LeamHall</a>)<br>
_______________________________________________<br>
Ale mailing list<br>
<a href="mailto:Ale@ale.org" target="_blank" rel="noreferrer">Ale@ale.org</a><br>
<a href="https://mail.ale.org/mailman/listinfo/ale" rel="noreferrer noreferrer" target="_blank">https://mail.ale.org/mailman/listinfo/ale</a><br>
See JOBS, ANNOUNCE and SCHOOLS lists at<br>
<a href="http://mail.ale.org/mailman/listinfo" rel="noreferrer noreferrer" target="_blank">http://mail.ale.org/mailman/listinfo</a><br>
</blockquote></div>