<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<p>Hello,</p>
<p>you might want to have a look at the auto_tmpdir plugin (
<a class="moz-txt-link-freetext" href="https://github.com/University-of-Delaware-IT-RCI/auto_tmpdir">https://github.com/University-of-Delaware-IT-RCI/auto_tmpdir</a> ),
which does pretty much what you want - it creates job-specific
temporary directories and bindmounts them into the specified
locations (so the job will see /tmp/, /scratch/ and /dev/shm/
while these folders are actually located at /tmp/slurm-$jobid/,
/scratch/slurm-$jobid/, and /dev/shm/slurm-$jobid/). <br>
The bindmounts are destroyed when the job exits, so there's no
need to manually delete them (and it's also much safer, because it
also deletes them when the job crashes).</p>
<p>Note: Depending on the SLURM version you're running, you might
need to checkout the "dir-removal-fixup" branch instead of master
(iirc for SLURM < 20.x).<br>
</p>
<p>Kind regards,<br>
René Sitt<br>
</p>
<div class="moz-cite-prefix">Am 23.05.22 um 11:30 schrieb Arsene
Marian Alain:<br>
</div>
<blockquote type="cite"
cite="mid:DBBPR03MB70490B187A6F8E0AF597983CF5D49@DBBPR03MB7049.eurprd03.prod.outlook.com">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="Generator" content="Microsoft Word 15 (filtered
medium)">
<style>@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0cm;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri",sans-serif;
mso-fareast-language:EN-US;}a:link, span.MsoHyperlink
{mso-style-priority:99;
color:#0563C1;
text-decoration:underline;}a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:#954F72;
text-decoration:underline;}span.EstiloCorreo17
{mso-style-type:personal-compose;
font-family:"Calibri",sans-serif;
color:windowtext;}.MsoChpDefault
{mso-style-type:export-only;
font-family:"Calibri",sans-serif;
mso-fareast-language:EN-US;}div.WordSection1
{page:WordSection1;}</style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
<div class="WordSection1">
<p class="MsoNormal">Dear SLURM users,<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I am IT Administrator of a small scientific
computing center. We recently installed SLURM as a job
scheduler on our Cluster and everything seems to be working
fine. I just have a question about how to create temporary
directories with SLURM.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">We use some programs for scientific
calculation (such as Gromacs, Gaussian, NAMD, etc.). So, the
process is the following:
<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">When we need to launch a calculation the
first step is to copy all the necessary files from the local
"$SLURM_SUBMIT_DIR" directory to the "/scratch" of the remote
node, second step is to access the "/scratch" of the remote
node and then run the program. Finally, when the program
finishes we copy all the output files from the remote node's
"/scratch" back to the local "$SLURM_SUBMIT_DIR" directory.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">So, is there any way to automatically
generate a temporary directory inside the "/scratch" of the
remote node?<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">At the moment I am creating that directory
manually as follows:<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">"export HOMEDIR=$SLURM_SUBMIT_DIR<o:p></o:p></p>
<p class="MsoNormal">export
SCRATCHDIR=/scratch/job.$SLURM_JOB_ID.$USER<o:p></o:p></p>
<p class="MsoNormal">export WORKDIR=$SCRATCHDIR<o:p></o:p></p>
<p class="MsoNormal">mkdir -p $WORKDIR<o:p></o:p></p>
<p class="MsoNormal">cp $HOMEDIR/* $WORKDIR<o:p></o:p></p>
<p class="MsoNormal">cd $WORKDIR<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">$NAMD/namd2 +idlepoll +p11 run_eq.namd >
run_eq.log<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">wait<o:p></o:p></p>
<p class="MsoNormal">cp $WORKDIR/* $HOMEDIR"<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">The main problem when you create the
"/scratch" manually is that in case the calculation ends
(successfully or unsuccessfully), users have to check the
"/scratch" and remove the directory manually. I know I could
include a line at the end of my script to delete that
directory when the calculation is done, but I'm sure there
must be a better way to do this.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Thanks in advance for the help.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">best regards,<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Alain<o:p></o:p></p>
</div>
</blockquote>
<pre class="moz-signature" cols="72">--
Dipl.-Chem. René Sitt
Hessisches Kompetenzzentrum für Hochleistungsrechnen
Philipps-Universität Marburg
Hans-Meerwein-Straße
35032 Marburg
Tel. +49 6421 28 23523
<a class="moz-txt-link-abbreviated" href="mailto:sittr@hrz.uni-marburg.de">sittr@hrz.uni-marburg.de</a>
<a class="moz-txt-link-abbreviated" href="http://www.hkhlr.de">www.hkhlr.de</a></pre>
</body>
</html>