<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>