Hi Peter, as Rémi said, the way to do this in Slurm is via a job submit plugin. For example in our job_submit.lua we have
if (job_desc.partition == "cpu" or job_desc.partition == "gpu") and job_desc.qos ~= "admin" then if job_desc.script == nil or job_desc.script == '' then slurm.log_info("slurm_job_submit: jobscript is missing, assuming interactive job") slurm.log_info("slurm_job_submit: CPU/GPU partition for interactive job, abort") slurm.log_user("submit_job: ERROR: interactive jobs are not allowed in the CPU or GPU partitions. Use the interactive partition") return -1 end end Which checks to see if the job script exists - this is more or less the definition of an interactive job. Ewan Roche Division Calcul et Soutien à la Recherche UNIL | Université de Lausanne > On 15 Feb 2022, at 08:47, Rémi Palancher <r...@rackslab.io> wrote: > > Hi Peter, > > Le lundi 14 février 2022 à 18:37, Peter Schmidt <pschm...@rivosinc.com> a > écrit : > >> slurm newbie here, converting from pbspro. In pbspro there is the capability >> of limiting interactive jobs (i.e srun) to a specific queue (i.e partition). > > Note that in Slurm, srun and interactive jobs are not the same things. The > srun command is for creating steps of jobs (interactive or not), optionally > creating a job allocation beforehand if it does not exist. > > You can run interactive jobs with salloc and even attach your PTY to a > running batch job to interact with it. On the other hand, batchs jobs can > create steps using srun command. > > I don't know any native Slurm feature to restrict interactive jobs (to a > specific partition or whatever). However, using job_submit LUA plugin and a > custom LUA script, you might be able to accomplish what you are expecting. It > has been discussed here: > > https://bugs.schedmd.com/show_bug.cgi?id=3094 > > Best, > -- > Rémi Palancher > Rackslab: Open Source Solutions for HPC Operations > https://rackslab.io > >