| Summary: | FrontEndMode: srun and sbatch issues | ||
|---|---|---|---|
| Product: | Slurm | Reporter: | Sreedhar <sreedharnyu> |
| Component: | Configuration | Assignee: | Moe Jette <jette> |
| Status: | RESOLVED INFOGIVEN | QA Contact: | |
| Severity: | 4 - Minor Issue | ||
| Priority: | --- | ||
| Version: | 15.08.2 | ||
| Hardware: | Linux | ||
| OS: | Linux | ||
| Site: | PDT (PSLA) | Slinky Site: | --- |
| Alineos Sites: | --- | Atos/Eviden Sites: | --- |
| Confidential Site: | --- | Coreweave sites: | --- |
| Cray Sites: | --- | DS9 clusters: | --- |
| Google sites: | --- | HPCnow Sites: | --- |
| HPE Sites: | --- | IBM Sites: | --- |
| NOAA SIte: | --- | NoveTech Sites: | --- |
| Nvidia HWinf-CS Sites: | --- | OCF Sites: | --- |
| Recursion Pharma Sites: | --- | SFW Sites: | --- |
| SNIC sites: | --- | Tzag Elita Sites: | --- |
| Linux Distro: | --- | Machine Name: | |
| CLE Version: | Version Fixed: | ||
| Target Release: | --- | DevPrio: | --- |
| Emory-Cloud Sites: | --- | ||
FrontEnd is meant for system like IBM BlueGene or Cray where jobs need some special handling to launch on the system itself, you should not use that here. Systems with a frontend always launch all tasks on one of the frontend nodes - thus you're seeing your frontend's hostname in your jobs. The resources on those requested nodes are being reserved (thus sinfo / squeue display that list) but your job would need to know to connect out from the frontend. I'd recommend rebuilding with much fewer options, this should give you a fully functional build: ./configure --prefix=/opt/slurm A lot of the options you'd enabled are for specialized hardware platforms or development, and don't apply to your config. I'd also recommend downloading 15.08.6 - there are a few important fixes in there you'll want. 15.08.7 is due out within the next few weeks and will have some moderate-severity fixes as well. For your config, please remove FrontendNode entirely, and I'd also suggest setting SelectType=select/cons_res and SelectTypeParameters=CR_Core_Mem if you want to allocate specific amounts of memory and cpu cores within nodes to each job. (select/linear will always allocate entire nodes at a time.) If you're using slurmdbd (which we highly recommend) that will have a record of all jobs - JobCompType=jobcomp/filetxt will produce information that you'd already have using the `sacct` tool, so I'd suggest removing that as well. - Tim Hi Tim, Thank you for your prompt response. I found a thread which said the same thing. Now, it's all clear that I will have to recompile. I am used to torque/Moab and had to use multiple configure options for what I wanted. Especially, pam option to make sure users don't get onto nodes if they don't have jobs running. Right now, at the beginning of the testing it won't matter much but we will definitely need pam support. From the configure options I couldn't find whether it is enabled by default. Either way, I will do what you suggested. Thank you again, Best, Sreedhar. On 01/14/2016 04:24 PM, bugs@schedmd.com wrote: > Right now, at the beginning of the testing it won't matter much but we will > definitely need pam support. From the configure options I couldn't find > whether it is enabled by default. > > Either way, I will do what you suggested. > You'll need to install the pam_slurm.so module manually, the installer doesn't try to automatically load it into your pam stack. See contribs/pam/README has notes on how to set it up. Please note that if you manually install the pam_slurm.so file into /usr/lib you'll want to make sure to update this on each major release. There's a new feature called pam_slurm_adopt that was built by Ryan Cox at BYU which works with cgroups (you'll need TaskPlugin=cgroup setup and working as well, http://slurm.schedmd.com/cgroup.conf.html) to constrain incoming user SSH sessions into the appropriate cgroup. There are some notes as to how to set this up in contribs/pam_slurm_adopt. Hi, I have recompiled and I am seeing this error. Ports are open and they're able to talk. Is there anything else I can do here? Thanks, Sreedhar. root@caslurmdev1:/u/sreedhar/jobs$ sinfo -N -l Thu Jan 14 18:41:01 2016 NODELIST NODES PARTITION STATE CPUS S:C:T MEMORY TMP_DISK WEIGHT FEATURES REASON caslurmdev1 1 production* idle 4 1:4:1 7816 0 1 (null) none caslurmdev2 1 production* down 4 1:4:1 7816 0 1 (null) Not responding root@caslurmdev1:/u/sreedhar/jobs$ scontrol show node caslurmdev2 NodeName=caslurmdev2 Arch=x86_64 CoresPerSocket=4 CPUAlloc=0 CPUErr=0 CPUTot=4 CPULoad=0.01 Features=(null) Gres=(null) NodeAddr=caslurmdev2 NodeHostName=caslurmdev2 Version=15.08 OS=Linux RealMemory=7816 AllocMem=0 FreeMem=5692 Sockets=1 Boards=1 State=DOWN ThreadsPerCore=1 TmpDisk=0 Weight=1 Owner=N/A BootTime=2015-10-30T15:47:22 SlurmdStartTime=2016-01-14T18:34:17 CapWatts=n/a CurrentWatts=0 LowestJoules=0 ConsumedJoules=0 ExtSensorsJoules=n/s ExtSensorsWatts=0 ExtSensorsTemp=n/s Reason=Not responding [slurm@2016-01-14T17:20:50] caslurmdev2:~/slurm-15.08.6# scontrol show slurmd Active Steps = NONE Actual CPUs = 4 Actual Boards = 1 Actual sockets = 1 Actual cores = 4 Actual threads per core = 1 Actual real memory = 7816 MB Actual temp disk space = 116675 MB Boot time = 2016-01-14T18:34:17 Hostname = caslurmdev2 Last slurmctld msg time = 2016-01-14T18:37:56 Slurmd PID = 33008 Slurmd Debug = 6 Slurmd Logfile = /var/log/slurm/slurmd.log Version = 15.08.6 Check slurm daemon log files On January 14, 2016 7:32:41 PM PST, bugs@schedmd.com wrote: >http://bugs.schedmd.com/show_bug.cgi?id=2349 > >--- Comment #4 from Sreedhar <sreedharnyu@gmail.com> --- >Hi, > >I have recompiled and I am seeing this error. Ports are open and >they're able >to talk. Is there anything else I can do here? > >Thanks, >Sreedhar. > >root@caslurmdev1:/u/sreedhar/jobs$ sinfo -N -l >Thu Jan 14 18:41:01 2016 >NODELIST NODES PARTITION STATE CPUS S:C:T MEMORY >TMP_DISK WEIGHT >FEATURES REASON >caslurmdev1 1 production* idle 4 1:4:1 7816 >0 1 > (null) none >caslurmdev2 1 production* down 4 1:4:1 7816 >0 1 > (null) Not responding > > >root@caslurmdev1:/u/sreedhar/jobs$ scontrol show node caslurmdev2 >NodeName=caslurmdev2 Arch=x86_64 CoresPerSocket=4 > CPUAlloc=0 CPUErr=0 CPUTot=4 CPULoad=0.01 Features=(null) > Gres=(null) > NodeAddr=caslurmdev2 NodeHostName=caslurmdev2 Version=15.08 > OS=Linux RealMemory=7816 AllocMem=0 FreeMem=5692 Sockets=1 Boards=1 > State=DOWN ThreadsPerCore=1 TmpDisk=0 Weight=1 Owner=N/A > BootTime=2015-10-30T15:47:22 SlurmdStartTime=2016-01-14T18:34:17 > CapWatts=n/a > CurrentWatts=0 LowestJoules=0 ConsumedJoules=0 > ExtSensorsJoules=n/s ExtSensorsWatts=0 ExtSensorsTemp=n/s > Reason=Not responding [slurm@2016-01-14T17:20:50] > > >caslurmdev2:~/slurm-15.08.6# scontrol show slurmd >Active Steps = NONE >Actual CPUs = 4 >Actual Boards = 1 >Actual sockets = 1 >Actual cores = 4 >Actual threads per core = 1 >Actual real memory = 7816 MB >Actual temp disk space = 116675 MB >Boot time = 2016-01-14T18:34:17 >Hostname = caslurmdev2 >Last slurmctld msg time = 2016-01-14T18:37:56 >Slurmd PID = 33008 >Slurmd Debug = 6 >Slurmd Logfile = /var/log/slurm/slurmd.log >Version = 15.08.6 > >-- >You are receiving this mail because: >You are watching all bug changes. Please ignore my previous comment. Everything is working fine now. Thanks, Sreedhar. (In reply to Sreedhar from comment #6) > Please ignore my previous comment. Everything is working fine now. > > Thanks, > Sreedhar. |
Hi, My name is Sreedhar and I work for PDT. As we talked to you earlier, we're in the process of evaluating slurm for our new future grid. I have installed slurm on 3 nodes and things seem to be fine except when I submit jobs as a user I'm seeing errors like shown below. I couldn't find anything solid on the web that would fix it. So far, only thing that seems to be the solution is to reconfigure slurm without --enable-front-end. Here are the details: This is how I configured it: ./configure --prefix=/opt/slurm --enable-pam --enable-load-env-no-login --enable-front-end --enable-salloc-kill-cmd --enable-simulator --enable-multiple-slurmd --enable-debug --enable-glibtest=no --enable-gtktest=no | tee config.log make | tee make.log make install | tee install.log This is what I have in my slurm.conf $ cat /opt/slurm/etc/slurm.conf # # Example slurm.conf file. Please run configurator.html # (in doc/html) to build a configuration file customized # for your environment. # # # slurm.conf file generated by configurator.html. # # See the slurm.conf man page for more information. # ClusterName=linux ControlMachine=caslurmdev1 ControlAddr=10.250.17.76 FrontEndName=caslurmdev1 #BackupController= #BackupAddr= # SlurmUser=slurm #SlurmdUser=root SlurmctldPort=6817 SlurmdPort=6818 AuthType=auth/munge #JobCredentialPrivateKey= #JobCredentialPublicCertificate= StateSaveLocation=/tmp SlurmdSpoolDir=/var/spool/slurm/slurmd #SlurmdSpoolDir=/tmp/slurmd SwitchType=switch/none MpiDefault=none SlurmctldPidFile=/var/run/slurmctld.pid SlurmdPidFile=/var/run/slurmd.pid ProctrackType=proctrack/pgid #PluginDir= CacheGroups=0 #FirstJobId= ReturnToService=0 #MaxJobCount= #PlugStackConfig= #PropagatePrioProcess= #PropagateResourceLimits= #PropagateResourceLimitsExcept= #Prolog= #Epilog= #SrunProlog= #SrunEpilog= #TaskProlog= #TaskEpilog= #TaskPlugin= #TrackWCKey=no #TreeWidth=50 #TmpFS= #UsePAM= # # TIMERS SlurmctldTimeout=300 SlurmdTimeout=300 InactiveLimit=0 MinJobAge=300 KillWait=30 Waittime=0 # # SCHEDULING SchedulerType=sched/backfill #SchedulerAuth= #SchedulerPort= #SchedulerRootFilter= SelectType=select/linear FastSchedule=1 #PriorityType=priority/multifactor #PriorityDecayHalfLife=14-0 #PriorityUsageResetPeriod=14-0 #PriorityWeightFairshare=100000 #PriorityWeightAge=1000 #PriorityWeightPartition=10000 #PriorityWeightJobSize=1000 #PriorityMaxAge=1-0 # # LOGGING SlurmctldDebug=3 #SlurmctldLogFile= SlurmdDebug=3 #SlurmdLogFile= #JobCompType=jobcomp/none JobCompType=jobcomp/filetxt #JobCompLoc= JobCompLoc=/tmp/slurm_job_completion.txt # # ACCOUNTING JobAcctGatherType=jobacct_gather/linux JobAcctGatherFrequency=30 # AccountingStorageEnforce=limits,qos AccountingStorageType=accounting_storage/slurmdbd AccountingStorageHost=caslurmdev1 AccountingStorageLoc=/tmp/slurm_job_accounting.txt #AccountingStoragePass= #AccountingStorageUser= # # COMPUTE NODES #NodeName=linux[1-32] Procs=1 State=UNKNOWN NodeName=caslurmdev[2-3] Procs=4 ThreadsPerCore=1 Sockets=1 CoresPerSocket=4 RealMemory=7816 State=UNKNOWN #PartitionName=debug Nodes=linux[1-32] Default=YES MaxTime=INFINITE State=UP PartitionName=production Nodes=caslurmdev[2-3] Default=YES ------------------------------------------------- Now as a user sreedhar, I'm trying to submit this job from the front end: sreedhar@-------:~/jobs$ cat submit1.sh #!/bin/bash # #SBATCH --job-name=test1 #SBATCH --output=res1.txt # #SBATCH --ntasks=1 #SBATCH --time=10:00 #SBATCH --mem-per-cpu=100 srun hostname srun sleep 60 sreedhar@caslurmdev1:~/jobs$ sbatch submit1.sh Submitted batch job 46 sreedhar@caslurmdev1:~/jobs$ squeue JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON) sreedhar@caslurmdev1:~/jobs$ cat res1.txt srun: error: Unable to create job step: Job steps can not be run on this cluster srun: error: Unable to create job step: Job steps can not be run on this cluster sreedhar@caslurmdev1:~/jobs$ -------------------------------------- sreedhar@-----:~/jobs$ srun -n 1 hostname srun: error: srun task launch not supported on this system --------------------------------- can you please advise what needs to be changed here to get jobs running from regular user? Without srun in the job script, it works but hostname always reports frontend fqdn even though squeue shows job is running on compute nodes. I would appreciate your help. thanks, Sreedhar.