If you are using a newer slurm, using srun for an interactive shell is
being deprecated. Salloc now defaults to a shell if no command is specified:
DESCRIPTION
salloc is used to allocate a Slurm job allocation, which is a set of
resources (nodes), possibly with some set of constraints (e.g. number of
processors per node). When salloc successfully obtains the requested
allocation, it then runs the command specified by the user. Finally,
when the user specified command is complete, salloc relinquishes the job
allocation.
The command may be any program the user wishes. Some typical commands
are xterm, a shell script containing srun commands, and srun (see the
EXAMPLES section). *If no command is specified, then salloc runs the
user's default shell.*
Brian Andrus
On 2/8/2023 7:01 AM, Jeffrey T Frey wrote:
You may need srun to allocate a pty for the command. The
InteractiveStepOptions we use (that are handed to srun when no
explicit command is given to salloc) are:
--interactive --pty --export=TERM
E.g. without those flags a bare srun gives a promptless session:
*[(it_nss:frey)@login00.darwin ~]$ salloc -p idle srun
/opt/shared/singularity/3.10.0/bin/singularity shell
/opt/shared/singularity/prebuilt/postgresql/13.2.simg*
salloc: Granted job allocation 3953722
salloc: Waiting for resource configuration
salloc: Nodes r1n00 are ready for job
ls -l
total 437343
-rw-r--r-- 1 frey it_nss 180419 Oct 26 16:56 amd.cache
-rw-r--r-- 1 frey it_nss 72 Oct 26 16:52 amd.conf
-rw-r--r-- 1 frey everyone 715 Nov 12 23:39
anaconda-activate.sh
drwxr-xr-x 2 frey everyone 4 Apr 11 2022 bin
:
With the --pty flag added:
*[(it_nss:frey)@login00.darwin ~]$ salloc -p idle srun --pty
/opt/shared/singularity/3.10.0/bin/singularity shell
/opt/shared/singularity/prebuilt/postgresql/13.2.simg*
salloc: Granted job allocation 3953723
salloc: Waiting for resource configuration
salloc: Nodes r1n00 are ready for job
Singularity>
On Feb 8, 2023, at 09:47 , Groner, Rob <rug...@psu.edu> wrote:
I tried that, and it says the nodes have been allocated, but it never
comes to an apptainer prompt.
I then tried doing them in separate steps. Doing salloc works, I get
a prompt on the node that was allocated. I can then run "singularity
shell <sif>" and get the apptainer prompt. If I prefix that command
with "srun", then it just hangs and I never get the prompt. So that
seems to be the sticking point. I'll have to do some experiments
running singularity with srun.
From: slurm-users <slurm-users-boun...@lists.schedmd.com> on behalf
of Jeffrey T Frey <f...@udel.edu>
Sent: Tuesday, February 7, 2023 6:16 PM
To: Slurm User Community List <slurm-users@lists.schedmd.com>
Subject: Re: [slurm-users] slurm and singularity
You don't often get email from f...@udel.edu. Learn why this is important
The remaining issue then is how to put them into an allocation that
is actually running a singularity container. I don't get how what
I'm doing now is resulting in an allocation where I'm in a
container on the submit node still!
Try prefixing the singularity command with "srun" e.g.
salloc <salloc-parameters> srun <srun-parameters>
/usr/bin/singularity shell <path to sif>