<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
</head>
<body>
<div class="WordSection1" dir="ltr">
<p class="MsoNormal" style="margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;">
Hello,</p>
<p class="MsoNormal" style="margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;">
 </p>
<p class="MsoNormal" style="margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;">
Can GRES plugins, like SPANK plugins, be distributed as third-party software (<span class="GramE">i.e.</span> without needing to be distributed as part of the
<span class="SpellE">Slurm</span> codebase)?</p>
<p class="MsoNormal" style="margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;">
 </p>
<p class="MsoNormal" style="margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;">
<span class="SpellE">Slurm’s</span> documentation on SPANK (<a href="https://slurm.schedmd.com/spank.html">https://slurm.schedmd.com/spank.html</a>) clearly details the steps to develop and distribute a SPANK plugin.</p>
<p class="MsoNormal" style="margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;">
One would need to<br>
(1) implement the API at <a href="https://github.com/SchedMD/slurm/blob/master/slurm/spank.h">
https://github.com/SchedMD/slurm/blob/master/slurm/spank.h</a><br>
(2) build the SPANK plugin library against the header file </p>
<p class="MsoNormal" style="margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;">
(3) add the SPANK plugin so to the <span class="SpellE">plugstack.conf</span> file and the plugin will be loaded at the next job launch</p>
<p class="MsoNormal" style="margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;">
 </p>
<p class="MsoNormal" style="margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;">
<span class="SpellE">Slurm’s</span> documentation on GRES (<a href="https://guriang.unpad.ac.id/slurmdoc/gres_plugins.html">https://guriang.unpad.ac.id/slurmdoc/gres_plugins.html</a>) doesn’t give as many details
<span class="SpellE">wrt</span> to deploying/distributing a custom GRES plugin.</p>
<p class="MsoNormal" style="margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;">
The doc <span class="GramE">says</span> “It is intended as a resource to programmers wishing to write their own
<span class="SpellE">Slurm</span> GRES plugins.” which hints at GRES plugins being analogous to SPANK plugins in terms of distribution.</p>
<p class="MsoNormal" style="margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;">
Like SPANK plugins, one would need to</p>
<p class="MsoNormal" style="margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;">
(1) implement the API at <a href="https://github.com/SchedMD/slurm/blob/master/src/interfaces/gres.h">
https://github.com/SchedMD/slurm/blob/master/src/interfaces/gres.h</a></p>
<p class="MsoNormal" style="margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;">
<span class="GramE">but,</span> it is not clear to me what the equivalent of steps (2) and (3) are for GRES.<br>
Unlike <span class="SpellE">spank.h</span>, which falls under <span class="SpellE">
Slurm</span> API’s include files, g<span class="SpellE">res.h</span> falls under <span class="SpellE">
slurm</span>/<span class="SpellE">src</span> which leads me to believe that a new GRES plugin would need to be
<span class="SpellE">upstreamed</span> into the <span class="SpellE">Slurm</span> codebase.</p>
<p class="MsoNormal" style="margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;">
 </p>
<p class="MsoNormal" style="margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;">
Could someone please verify my understanding?</p>
<p class="MsoNormal" style="margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;">
 </p>
<p class="MsoNormal" style="margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;">
Thank you,</p>
<p class="MsoNormal" style="margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;">
Rohit</p>
</div>
</body>
</html>