Re: [slurm-users] Major newbie - Slurm/jupyterhub

2020-05-04 Thread Renfro, Michael
Assuming you need a scheduler for whatever size your user population is, so 
they need literal JupyterHub, or would they all be satisfied running regular 
Jupyter notebooks?

On May 4, 2020, at 7:25 PM, Lisa Kay Weihl  wrote:



External Email Warning

This email originated from outside the university. Please use caution when 
opening attachments, clicking links, or responding to requests.


I have a single server with 2 cpu, 384gb memory and 4 gpu (GeForce RTX 2080 Ti).

Use is to be for GPU ML computing and python based data science.

One faculty wants jupyter notebooks, other faculty member is used to using CUDA 
for GPU but has only done it on a workstation in his lab with a GUI.  New 
faculty member coming in has used nvidia-docker container for GPU (I think on a 
large cluster, we are just getting started)

I'm charged with making all this work and hopefully all at once. Right now I'll 
take one thing working.

So I managed to get Slurm-20.02.1 installed with CUDA-10.2 on CentOS 7 (SE 
Linux enabled). I posted once before about having trouble getting that 
combination correct and I finally worked that out. Most of the tests in the 
test suite seem to run okay. I'm trying to start with very basic Slurm 
configuration so I haven't enabled accounting.

For reference here is my slurm.conf


# slurm.conf file generated by configurator easy.html.

# Put this file on all nodes of your cluster.

# See the slurm.conf man page for more information.

#

SlurmctldHost=cs-host


#authentication

AuthType=auth/munge

CacheGroups = 0

CryptoType=crypto/munge


#Add GPU support

GresTypes=gpu


#

#MailProg=/bin/mail

MpiDefault=none

#MpiParams=ports=#-#


#service

ProctrackType=proctrack/cgroup

ReturnToService=1

SlurmctldPidFile=/var/run/slurmctld.pid

#SlurmctldPort=6817

SlurmdPidFile=/var/run/slurmd.pid

#SlurmdPort=6818

SlurmdSpoolDir=/var/spool/slurmd

SlurmUser=slurm

#SlurmdUser=root

StateSaveLocation=/var/spool/slurmctld

SwitchType=switch/none

TaskPlugin=task/affinity

#

#

# TIMERS

#KillWait=30

#MinJobAge=300

#SlurmctldTimeout=120

SlurmdTimeout=1800

#

#

# SCHEDULING

SchedulerType=sched/backfill

SelectType=select/cons_tres

SelectTypeParameters=CR_Core_Memory

PriorityType=priority/multifactor

PriorityDecayHalfLife=3-0

PriorityMaxAge=7-0

PriorityFavorSmall=YES

PriorityWeightAge=1000

PriorityWeightFairshare=0

PriorityWeightJobSize=125

PriorityWeightPartition=1000

PriorityWeightQOS=0

#

#

# LOGGING AND ACCOUNTING

AccountingStorageType=accounting_storage/none

ClusterName=cs-host

#JobAcctGatherFrequency=30

JobAcctGatherType=jobacct_gather/none

SlurmctldDebug=info

SlurmctldLogFile=/var/log/slurmctld.log

#SlurmdDebug=info

SlurmdLogFile=/var/log/slurmd.log

#

#

# COMPUTE NODES

NodeName=cs-host CPUs=24 RealMemory=385405 Sockets=2 CoresPerSocket=6 
ThreadsPerCore=2 State=UNKNOWN Gres=gpu:4


#PARTITIONS

PartitionName=DEFAULT Nodes=cs-host Shared=FORCE:1 Default=YES MaxTime=INFINITE 
State=UP

PartitionName=faculty  Priority=10 Default=YES


I have jupyterhub running as part of RedHat SCL. It works fine with no 
integration with Slurm. Now I'm trying to use batchspawner to start a server 
for the user.  Right now I'm just trying one configuration from within the 
jupyterhub_config.py and trying to keep it simple (see below).

When I connect I get this error:
500: Internal Server Error
Error in Authenticator.pre_spawn_start: RuntimeError The Jupyter batch job has 
disappeared while pending in the queue or died immediately after starting.

In the jupyterhub.log:


[I 2020-05-04 19:47:58.604 JupyterHub base:707] User logged in: csadmin

[I 2020-05-04 19:47:58.606 JupyterHub log:174] 302 POST /hub/login?next= -> 
/hub/spawn (csadmin@127.0.0.1) 227.13ms

[I 2020-05-04 19:47:58.748 JupyterHub batchspawner:248] Spawner submitting job 
using sudo -E -u csadmin sbatch --parsable

[I 2020-05-04 19:47:58.749 JupyterHub batchspawner:249] Spawner submitted 
script:

#!/bin/bash

#SBATCH --partition=faculty

#SBATCH --time=8:00:00

#SBATCH --output=/home/csadmin/jupyterhub_slurmspawner_%j.log

#SBATCH --job-name=jupyterhub-spawner

#SBATCH --cpus-per-task=1

#SBATCH --chdir=/home/csadmin

#SBATCH --uid=csadmin



env

which jupyterhub-singleuser

batchspawner-singleuser jupyterhub-singleuser --ip=0.0.0.0



[I 2020-05-04 19:47:58.831 JupyterHub batchspawner:252] Job submitted. cmd: 
sudo -E -u csadmin sbatch --parsable output: 7117

[W 2020-05-04 19:47:59.481 JupyterHub batchspawner:377] Job  neither pending 
nor running.



[E 2020-05-04 19:47:59.482 JupyterHub user:640] Unhandled error starting 
csadmin's server: The Jupyter batch job has disappeared while pending in the 
queue or died immediately after starting.

[W 2020-05-04 19:47:59.518 JupyterHub web:1782] 500 GET /hub/spawn (127.0.0.1): 
Error in Authenticator.pre_spawn_start: RuntimeError The Jupyter batch job has 
disappeared while pending in the queue or 

[slurm-users] Major newbie - Slurm/jupyterhub

2020-05-04 Thread Lisa Kay Weihl
I have a single server with 2 cpu, 384gb memory and 4 gpu (GeForce RTX 2080 Ti).

Use is to be for GPU ML computing and python based data science.

One faculty wants jupyter notebooks, other faculty member is used to using CUDA 
for GPU but has only done it on a workstation in his lab with a GUI.  New 
faculty member coming in has used nvidia-docker container for GPU (I think on a 
large cluster, we are just getting started)

I'm charged with making all this work and hopefully all at once. Right now I'll 
take one thing working.

So I managed to get Slurm-20.02.1 installed with CUDA-10.2 on CentOS 7 (SE 
Linux enabled). I posted once before about having trouble getting that 
combination correct and I finally worked that out. Most of the tests in the 
test suite seem to run okay. I'm trying to start with very basic Slurm 
configuration so I haven't enabled accounting.

For reference here is my slurm.conf


# slurm.conf file generated by configurator easy.html.

# Put this file on all nodes of your cluster.

# See the slurm.conf man page for more information.

#

SlurmctldHost=cs-host


#authentication

AuthType=auth/munge

CacheGroups = 0

CryptoType=crypto/munge


#Add GPU support

GresTypes=gpu


#

#MailProg=/bin/mail

MpiDefault=none

#MpiParams=ports=#-#


#service

ProctrackType=proctrack/cgroup

ReturnToService=1

SlurmctldPidFile=/var/run/slurmctld.pid

#SlurmctldPort=6817

SlurmdPidFile=/var/run/slurmd.pid

#SlurmdPort=6818

SlurmdSpoolDir=/var/spool/slurmd

SlurmUser=slurm

#SlurmdUser=root

StateSaveLocation=/var/spool/slurmctld

SwitchType=switch/none

TaskPlugin=task/affinity

#

#

# TIMERS

#KillWait=30

#MinJobAge=300

#SlurmctldTimeout=120

SlurmdTimeout=1800

#

#

# SCHEDULING

SchedulerType=sched/backfill

SelectType=select/cons_tres

SelectTypeParameters=CR_Core_Memory

PriorityType=priority/multifactor

PriorityDecayHalfLife=3-0

PriorityMaxAge=7-0

PriorityFavorSmall=YES

PriorityWeightAge=1000

PriorityWeightFairshare=0

PriorityWeightJobSize=125

PriorityWeightPartition=1000

PriorityWeightQOS=0

#

#

# LOGGING AND ACCOUNTING

AccountingStorageType=accounting_storage/none

ClusterName=cs-host

#JobAcctGatherFrequency=30

JobAcctGatherType=jobacct_gather/none

SlurmctldDebug=info

SlurmctldLogFile=/var/log/slurmctld.log

#SlurmdDebug=info

SlurmdLogFile=/var/log/slurmd.log

#

#

# COMPUTE NODES

NodeName=cs-host CPUs=24 RealMemory=385405 Sockets=2 CoresPerSocket=6 
ThreadsPerCore=2 State=UNKNOWN Gres=gpu:4


#PARTITIONS

PartitionName=DEFAULT Nodes=cs-host Shared=FORCE:1 Default=YES MaxTime=INFINITE 
State=UP

PartitionName=faculty  Priority=10 Default=YES


I have jupyterhub running as part of RedHat SCL. It works fine with no 
integration with Slurm. Now I'm trying to use batchspawner to start a server 
for the user.  Right now I'm just trying one configuration from within the 
jupyterhub_config.py and trying to keep it simple (see below).

When I connect I get this error:
500: Internal Server Error
Error in Authenticator.pre_spawn_start: RuntimeError The Jupyter batch job has 
disappeared while pending in the queue or died immediately after starting.

In the jupyterhub.log:


[I 2020-05-04 19:47:58.604 JupyterHub base:707] User logged in: csadmin

[I 2020-05-04 19:47:58.606 JupyterHub log:174] 302 POST /hub/login?next= -> 
/hub/spawn (csadmin@127.0.0.1) 227.13ms

[I 2020-05-04 19:47:58.748 JupyterHub batchspawner:248] Spawner submitting job 
using sudo -E -u csadmin sbatch --parsable

[I 2020-05-04 19:47:58.749 JupyterHub batchspawner:249] Spawner submitted 
script:

#!/bin/bash

#SBATCH --partition=faculty

#SBATCH --time=8:00:00

#SBATCH --output=/home/csadmin/jupyterhub_slurmspawner_%j.log

#SBATCH --job-name=jupyterhub-spawner

#SBATCH --cpus-per-task=1

#SBATCH --chdir=/home/csadmin

#SBATCH --uid=csadmin



env

which jupyterhub-singleuser

batchspawner-singleuser jupyterhub-singleuser --ip=0.0.0.0



[I 2020-05-04 19:47:58.831 JupyterHub batchspawner:252] Job submitted. cmd: 
sudo -E -u csadmin sbatch --parsable output: 7117

[W 2020-05-04 19:47:59.481 JupyterHub batchspawner:377] Job  neither pending 
nor running.



[E 2020-05-04 19:47:59.482 JupyterHub user:640] Unhandled error starting 
csadmin's server: The Jupyter batch job has disappeared while pending in the 
queue or died immediately after starting.

[W 2020-05-04 19:47:59.518 JupyterHub web:1782] 500 GET /hub/spawn (127.0.0.1): 
Error in Authenticator.pre_spawn_start: RuntimeError The Jupyter batch job has 
disappeared while pending in the queue or died immediately after starting.

[E 2020-05-04 19:47:59.521 JupyterHub log:166] {

  "X-Forwarded-Host": "localhost:8000",

  "X-Forwarded-Proto": "http",

  "X-Forwarded-Port": "8000",

  "X-Forwarded-For": "127.0.0.1",

  "Cookie": "jupyterhub-hub-login=[secret]; _xsrf=[secret]; 
jupyterhub-session-id=[secret]",

  "Accept-Language": "en-US,en;q=0.9",

  "Accept-Encoding": "gzip, deflate, br",

Re: [slurm-users] not allocating jobs even resources are free

2020-05-04 Thread navin srivastava
Thanks Denial for detailed  Description

Regards
Navin

On Sun, May 3, 2020, 13:35 Daniel Letai  wrote:

>
> On 29/04/2020 12:00:13, navin srivastava wrote:
>
> Thanks Daniel.
>
> All jobs went into run state so unable to provide the details but
> definitely will reach out later if we see similar issue.
>
> i am more interested to understand the FIFO with Fair Tree.it will be good
> if anybody provide some insight on this combination and also if we will
> enable the backfilling here how the behaviour will change.
>
> what is the role of the Fair tree here?
>
> Fair tree is the algorithm used to calculate the interim priority, before
> applying weight, but I think after the halflife decay.
>
>
> To make it simple - fifo without fairshare would assign priority based
> only on submission time. With faishare, that naive priority is adjusted
> based on prior usage by the applicable entities (users/departments -
> accounts).
>
>
> Backfill will let you utilize your resources better, since it will allow
> "inserting" low priority jobs before higher priority jobs, provided all
> jobs have defined wall times, and any inserted job doesn't affect in any
> way the start time of a higher priority job, thus allowing utilization of
> "holes" when the scheduler waits for resources to free up, in order to
> insert some large job.
>
>
> Suppose the system is at 60% utilization of cores, and the next fifo job
> requires 42% - it will wait until 2% are free so it can begin, meanwhile
> not allowing any job to start, even if it would tke only 30% of the
> resources (whic are currently free) and would finish before the 2% are free
> anyway.
>
> Backfill would allow such job to start, as long as it's wall time ensures
> it would finish before the 42% job would've started.
>
>
> Fairtree in either case (fifo or backfill) calculates the priority for
> each job the same - if the account had used more resources recently (the
> halflife decay factor) it would get a lower priority even though it was
> submitted earlier than a job from an account that didn't use any resources
> recently.
>
>
> As can be expected, backtree has to loop over all jobs in the queue, in
> order to see if any job can fit out of order. In very busy/active systems,
> that can lead to poor response times, unless tuned correctly in slurm conf
> - look at SchedulerParameters, all params starting with bf_ and in
> particular bf_max_job_test= ,bf_max_time= and bf_continue (but bf_window=
> can also have some impact if set too high).
>
> see the man page at
> https://slurm.schedmd.com/slurm.conf.html#OPT_SchedulerParameters
>
>
> PriorityType=priority/multifactor
> PriorityDecayHalfLife=2
> PriorityUsageResetPeriod=DAILY
> PriorityWeightFairshare=50
> PriorityFlags=FAIR_TREE
>
> Regards
> Navin.
>
>
>
> On Mon, Apr 27, 2020 at 9:37 PM Daniel Letai  wrote:
>
>> Are you sure there are enough resources available? The node is in mixed
>> state, so it's configured for both partitions - it's possible that earlier
>> lower priority jobs are already running thus blocking the later jobs,
>> especially since it's fifo.
>>
>>
>> It would really help if you pasted the results of:
>>
>> squeue
>>
>> sinfo
>>
>>
>> As well as the exact sbatch line, so we can see how many resources per
>> node are requested.
>>
>>
>> On 26/04/2020 12:00:06, navin srivastava wrote:
>>
>> Thanks Brian,
>>
>> As suggested i gone through document and what i understood  that the fair
>> tree leads to the Fairshare mechanism and based on that the job should be
>> scheduling.
>>
>> so it mean job scheduling will be based on FIFO but priority will be
>> decided on the Fairshare. i am not sure if both conflicts here.if i see the
>> normal jobs priority is lower than the GPUsmall priority. so resources are
>> available with gpusmall partition then it should go. there is no job pend
>> due to gpu resources. the gpu resources itself not asked with the job.
>>
>> is there any article where i can see how the fairshare works and which
>> are setting should not be conflict with this.
>> According to document it never says that if fair-share is applied then
>> FIFO should be disabled.
>>
>> Regards
>> Navin.
>>
>>
>>
>>
>>
>> On Sat, Apr 25, 2020 at 12:47 AM Brian W. Johanson 
>> wrote:
>>
>>>
>>> If you haven't looked at the man page for slurm.conf, it will answer
>>> most if not all your questions.
>>> https://slurm.schedmd.com/slurm.conf.html but I would depend on the the
>>> manual version that was distributed with the version you have installed as
>>> options do change.
>>>
>>> There is a ton of information that is tedious to get through but reading
>>> through it multiple times opens many doors.
>>>
>>> DefaultTime is listed in there as a Partition option.
>>> If you are scheduling gres/gpu resources, it's quite possible there are
>>> cores available with no corresponding gpus avail.
>>>
>>> -b
>>>
>>> On 4/24/20 2:49 PM, navin srivastava wrote:
>>>
>>> Thanks Brian.
>>>
>>> I need  to check the jobs 

[slurm-users] slurm problem with GrpTres

2020-05-04 Thread Alberto Morillas, Angelines
Hello,

I have a problem with GrpTres, I specify the limits with
sacctmgr --immediate modify user where user=  set GrpTres=cpu=144,node=4

but when the user send serial jobs, for example 5 jobs , the user only can 
execute 4,  and the rest of the jobs are PD with the reason=AssocGrpNodeLimit.
I could understand this if the jobs were in differents nodes, but all of them 
are running in the same node

 JOBID PARTITION NAME USER ST   TIME  NODES 
NODELIST(REASON)
887783 cluster  mut   PD   0:00  1 
(AssocGrpNodeLimit)
887784 cluster  mut   PD   0:00  1 
(AssocGrpNodeLimit)
887785 cluster  mut   PD   0:00  1 
(AssocGrpNodeLimit)
887780 cluster  mut    R0:02  1 
xula1301
887781 cluster  mut    R0:02  1 
xula1301
887782 cluster  mut    R0:02  1 
xula1301
887779 cluster  mut    R0:05  1 
xula1301

I want that the users could use until 4 nodes or/and 144 cores. With parallel 
jobs it works fine and if the user send a job with 144 serial jobs inside it 
then it  works too. The problem is when the user send serial jobs, then the 
limit of the node=4 works like job=4, and that isn´t my intention.

Any help, please?
Thanks in advance


Angelines Alberto Morillas

Unidad de Arquitectura Informática
Despacho: 22.1.32
Telf.: +34 91 346 6119
Fax:   +34 91 346 6537

skype: angelines.alberto

CIEMAT
Avenida Complutense, 40
28040 MADRID