~ubuntu-branches/ubuntu/vivid/slurm-llnl/vivid

« back to all changes in this revision

Viewing changes to doc/html/faq.shtml

  • Committer: Bazaar Package Importer
  • Author(s): Gennaro Oliva
  • Date: 2009-09-24 23:28:15 UTC
  • mfrom: (1.1.11 upstream) (3.2.4 sid)
  • Revision ID: james.westby@ubuntu.com-20090924232815-enh65jn32q1ebg07
Tags: 2.0.5-1
* New upstream release 
* Changed dependecy from lib-mysqlclient15 to lib-mysqlclient 
* Added Default-Start for runlevel 2 and 4 and $remote_fs requirement in
  init.d scripts (Closes: #541252)
* Postinst checks for wrong runlevels 2 and 4 links
* Upgraded to standard version 3.8.3
* Add lintian overrides for missing slurm-llnl-configurator.html in doc
  base registration
* modified postrm scripts to ignore pkill return value in order to avoid
  postrm failure when no slurm process is running
* Checking for slurmctld.pid before cancelling running and pending
  jobs during package removal 

Show diffs side-by-side

added added

removed removed

Lines of Context:
31
31
killed?</a></li>
32
32
<li><a href="#arbitrary">How do I run specific tasks on certain nodes
33
33
in my allocation?</a></li> 
 
34
<li><a href="#hold">How can I temporarily prevent a job from running 
 
35
(e.g. place it into a <i>hold</i> state)?</a></li>
34
36
</ol>
 
37
 
35
38
<h2>For Administrators</h2>
36
39
<ol>
37
40
<li><a href="#suspend">How is job suspend/resume useful?</a></li>
93
96
information between major SLURM updates?</li>
94
97
<li><a href="#health_check">Why doesn't the <i>HealthCheckProgram</i>
95
98
execute on DOWN nodes?</li>
 
99
<li><a href="#batch_lost">What is the meaning of the error 
 
100
&quot;Batch JobId=# missing from master node, killing it&quot;?</a></li>
 
101
<li><a href="#accept_again">What does the messsage
 
102
&quot;srun: error: Unable to accept connection: Resources temporarily unavailable&quot; 
 
103
indicate?</a></li>
 
104
<li><a href="#task_prolog">How could I automatically print a job's 
 
105
SLURM job ID to its standard output?</li>
 
106
<li><a href="#moab_start">I run SLURM with the Moab or Maui scheduler.
 
107
How can I start a job under SLURM without the scheduler?</li>
 
108
<li><a href="#orphan_procs">Why are user processes and <i>srun</i>
 
109
running even though the job is supposed to be completed?</li>
 
110
<li><a href="#slurmd_oom">How can I prevent the <i>slurmd</i> and
 
111
<i>slurmstepd</i> daemons from being killed when a node's memory 
 
112
is exhausted?</li>
 
113
<li><a href="#ubuntu">I see my host of my calling node as 127.0.1.1
 
114
    instead of the correct ip address.  Why is that?</a></li>
96
115
</ol>
97
116
 
 
117
 
98
118
<h2>For Users</h2>
99
119
<p><a name="comp"><b>1. Why is my job/node in COMPLETING state?</b></a><br>
100
120
When a job is terminating, both the job and its nodes enter the COMPLETING state. 
111
131
This may be indicative of processes hung waiting for a core file 
112
132
to complete I/O or operating system failure. 
113
133
If this state persists, the system administrator should check for processes 
114
 
associated with the job that can not be terminated then use the 
 
134
associated with the job that cannot be terminated then use the 
115
135
<span class="commandline">scontrol</span> command to change the node's 
116
136
state to DOWN (e.g. &quot;scontrol update NodeName=<i>name</i> State=DOWN Reason=hung_completing&quot;), 
117
137
reboot the node, then reset the node's state to IDLE 
123
143
<p>Note that SLURM has two configuration parameters that may be used to 
124
144
automate some of this process.
125
145
<i>UnkillableStepProgram</i> specifies a program to execute when 
126
 
non-killable proceses are identified.
 
146
non-killable processes are identified.
127
147
<i>UnkillableStepTimeout</i> specifies how long to wait for processes
128
148
to terminate. 
129
149
See the "man slurm.conf" for more information about these parameters.</p>
130
150
 
131
151
<p><a name="rlimit"><b>2. Why are my resource limits not propagated?</b></a><br>
132
152
When the <span class="commandline">srun</span> command executes, it captures the 
133
 
resource limits in effect at that time. These limits are propagated to the allocated 
 
153
resource limits in effect at submit time. These limits are propagated to the allocated 
134
154
nodes before initiating the user's job. The SLURM daemon running on that node then 
135
155
tries to establish identical resource limits for the job being initiated. 
136
156
There are several possible reasons for not being able to establish those 
139
159
<li>The hard resource limits applied to SLURM's slurmd daemon are lower 
140
160
than the user's soft resources limits on the submit host. Typically 
141
161
the slurmd daemon is initiated by the init daemon with the operating 
142
 
system default limits. This may be address either through use of the 
 
162
system default limits. This may be addressed either through use of the 
143
163
ulimit command in the /etc/sysconfig/slurm file or enabling
144
164
<a href="#pam">PAM in SLURM</a>.</li>
145
 
<li>The user's hard resource limits on the allocated node sre lower than 
146
 
the same user's soft  hard resource limits on the node from which the 
 
165
<li>The user's hard resource limits on the allocated node are lower than 
 
166
the same user's soft hard resource limits on the node from which the 
147
167
job was submitted. It is recommended that the system administrator 
148
168
establish uniform hard resource limits for users on all nodes 
149
169
within a cluster to prevent this from occurring.</li>
150
170
</ul></p>
151
171
<p>NOTE: This may produce the error message &quot;Can't propagate RLIMIT_...&quot;.
152
 
The error message is printed only if the user explicity specifies that
 
172
The error message is printed only if the user explicitly specifies that
153
173
the resource limit should be propagated or the srun command is running
154
174
with verbose logging of actions from the slurmd daemon (e.g. "srun -d6 ...").</p>
155
175
 
166
186
then jobs will generally be executed in the order of submission for a given partition 
167
187
with one exception: later submitted jobs will be initiated early if doing so does 
168
188
not delay the expected execution time of an earlier submitted job. In order for 
169
 
backfill scheduling to be effective, users jobs should specify reasonable time 
 
189
backfill scheduling to be effective, users' jobs should specify reasonable time
170
190
limits. If jobs do not specify time limits, then all jobs will receive the same 
171
191
time limit (that associated with the partition), and the ability to backfill schedule 
172
192
jobs will be limited. The backfill scheduler does not alter job specifications 
208
228
SLURM has a job purging mechanism to remove inactive jobs (resource allocations)
209
229
before reaching its time limit, which could be infinite.
210
230
This inactivity time limit is configurable by the system administrator. 
211
 
You can check it's value with the command</p>
 
231
You can check its value with the command</p>
212
232
<blockquote>
213
233
<p><span class="commandline">scontrol show config | grep InactiveLimit</span></p>
214
234
</blockquote>
233
253
</blockquote>
234
254
<p>srun processes "-N2" as an option to itself. "hostname" is the 
235
255
command to execute and "-pdebug" is treated as an option to the 
236
 
hostname command. Which will change the name of the computer 
 
256
hostname command. This will change the name of the computer 
237
257
on which SLURM executes the command - Very bad, <b>Don't run 
238
258
this command as user root!</b></p>
239
259
 
242
262
There are significant limitations in the current backfill scheduler plugin. 
243
263
It was designed to perform backfill node scheduling for a homogeneous cluster.
244
264
It does not manage scheduling on individual processors (or other consumable 
245
 
resources). It also does not update the required or excluded node list of 
246
 
individual jobs. These are the current limiations. You can use the 
247
 
scontrol show command to check if these conditions apply.</p> 
 
265
resources). It does not update the required or excluded node list of 
 
266
individual jobs. It does support job's with constraints/features unless 
 
267
the exclusive OR operator is used in the constraint expression. 
 
268
You can use the scontrol show command to check if these conditions apply.</p> 
248
269
<ul>
249
270
<li>Partition: State=UP</li>
250
271
<li>Partition: RootOnly=NO</li>
287
308
to avoid the possibility of re-using switch resources for other 
288
309
jobs (even on different nodes).
289
310
SLURM considers jobs COMPLETED when all nodes allocated to the 
290
 
job are either DOWN or confirm termination of all it's processes.
 
311
job are either DOWN or confirm termination of all its processes.
291
312
This enables SLURM to purge job information in a timely fashion 
292
313
even when there are many failing nodes.
293
314
Unfortunately the job step information may persist longer.</p>
297
318
There is a srun option <i>--jobid</i> that can be used to specify 
298
319
a job's ID. 
299
320
For a batch job or within an existing resource allocation, the 
300
 
environment variable <i>SLURM_JOBID</i> has already been defined, 
 
321
environment variable <i>SLURM_JOB_ID</i> has already been defined, 
301
322
so all job steps will run within that job allocation unless 
302
323
otherwise specified.
303
324
The one exception to this is when submitting batch jobs. 
442
463
443
464
# Simple batch script that starts SCREEN.
444
465
 
445
 
exec screen -Dm -S slurm$SLURM_JOBID
 
466
exec screen -Dm -S slurm$SLURM_JOB_ID
446
467
</pre>
447
468
 
448
469
<p>The following script named <i>_interactive_screen</i> is also used.</p>
472
493
The srun command normally terminates when the standard output and 
473
494
error I/O from the spawned tasks end. This does not necessarily 
474
495
happen at the same time that a job step is terminated. For example, 
475
 
a file system problem could render a spawned tasks non-killable 
 
496
a file system problem could render a spawned task non-killable
476
497
at the same time that I/O to srun is pending. Alternately a network 
477
498
problem could prevent the I/O from being transmitted to srun.
478
499
In any event, the srun command is notified when a job step is 
508
529
effect for the <i>slurmd</i> daemon will be used for the spawned job.
509
530
A simple way to control this is to insure that user <i>root</i> has a 
510
531
sufficiently large resource limit and insuring that <i>slurmd</i> takes 
511
 
full advantage of this limit. For example, you can set user's root's
512
 
locked memory limit limit to be unlimited on the compute nodes (see
 
532
full advantage of this limit. For example, you can set user root's
 
533
locked memory limit ulimit to be unlimited on the compute nodes (see
513
534
<i>"man limits.conf"</i>) and insuring that <i>slurmd</i> takes 
514
535
full advantage of this limit (e.g. by adding something like
515
536
<i>"ulimit -l unlimited"</i> to the <i>/etc/init.d/slurm</i>
521
542
SLURM has a configuration parameter <i>InactiveLimit</i> intended 
522
543
to kill jobs that do not spawn any job steps for a configurable
523
544
period of time. Your system administrator may modify the <i>InactiveLimit</i>
524
 
to satisfy your needs. Alternatly, you can just spawn a job step
 
545
to satisfy your needs. Alternately, you can just spawn a job step
525
546
at the beginning of your script to execute in the background. It
526
547
will be purged when your script exits or your job otherwise terminates.
527
548
A line of this sort near the beginning of your script should suffice:<br>
571
592
We can now use this script in our srun line in this fashion.<p>
572
593
<i>srun -m arbitrary -n5 -w `arbitrary.pl 4,1` -l hostname</i><p>
573
594
This will layout 4 tasks on the first node in the allocation and 1
574
 
task on the second node.  
 
595
task on the second node.</p>
575
596
 
576
 
</p>
 
597
<p><a name="hold"><b>21. How can I temporarily prevent a job from running 
 
598
(e.g. place it into a <i>hold</i> state)?</b></a><br>
 
599
The easiest way to do this is to change a job's earliest begin time
 
600
(optionally set at job submit time using the <i>--begin</i> option).
 
601
The example below places a job into hold state (preventing its initiation
 
602
for 30 days) and later permitting it to start now.</p>
 
603
<pre>
 
604
$ scontrol update JobId=1234 StartTime=now+30days
 
605
... later ...
 
606
$ scontrol update JobId=1234 StartTime=now
 
607
</pre>
577
608
 
578
609
<p class="footer"><a href="#top">top</a></p>
579
610
 
604
635
<p><a name="fast_schedule"><b>2. How can I configure SLURM to use 
605
636
the resources actually found on a node rather than what is defined 
606
637
in <i>slurm.conf</i>?</b></a><br>
607
 
SLURM can either base it's scheduling decisions upon the node 
 
638
SLURM can either base its scheduling decisions upon the node
608
639
configuration defined in <i>slurm.conf</i> or what each node 
609
640
actually returns as available resources. 
610
641
This is controlled using the configuration parameter <i>FastSchedule</i>.
611
 
Set it's value to zero in order to use the resources actually 
 
642
Set its value to zero in order to use the resources actually 
612
643
found on each node, but with a higher overhead for scheduling.
613
644
A value of one is the default and results in the node configuration 
614
645
defined in <i>slurm.conf</i> being used. See &quot;man slurm.conf&quot;
622
653
returned to service once the <i>slurmd</i> daemon registers 
623
654
with a valid node configuration.
624
655
A value of zero is the default and results in a node staying DOWN 
625
 
until an administrator explicity returns it to service using 
 
656
until an administrator explicitly returns it to service using 
626
657
the command &quot;scontrol update NodeName=whatever State=RESUME&quot;.
627
658
See &quot;man slurm.conf&quot; and &quot;man scontrol&quot; for more 
628
659
details.</p>
639
670
 
640
671
<p><a name="multi_job"><b>5. How can I control the execution of multiple 
641
672
jobs per node?</b></a><br>
642
 
There are two mechanism to control this. 
 
673
There are two mechanisms to control this.
643
674
If you want to allocate individual processors on a node to jobs, 
644
675
configure <i>SelectType=select/cons_res</i>. 
645
676
See <a href="cons_res.html">Consumable Resources in SLURM</a>
649
680
Each partition also has a configuration parameter <i>Shared</i>
650
681
that enables more than one job to execute on each node. 
651
682
See <i>man slurm.conf</i> for more information about these 
652
 
configuration paramters.</p>
 
683
configuration parameters.</p>
653
684
 
654
685
<p><a name="inc_plugin"><b>6. When the SLURM daemon starts, it 
655
686
prints &quot;cannot resolve X plugin operations&quot; and exits. 
663
694
 
664
695
<p><a name="sigpipe"><b>7. Why are user tasks intermittently dying
665
696
at launch with SIGPIPE error messages?</b></a><br>
666
 
If you are using ldap or some other remote name service for
 
697
If you are using LDAP or some other remote name service for
667
698
username and groups lookup, chances are that the underlying
668
699
libc library functions are triggering the SIGPIPE.  You can likely
669
700
work around this problem by setting <i>CacheGroups=1</i> in your slurm.conf
672
703
 
673
704
<p><a name="maint_time"><b>8. How can I dry up the workload for a 
674
705
maintenance period?</b></a><br>
675
 
There isn't a mechanism to tell SLURM that all jobs should be 
676
 
completed by a specific time. The best way to address this is 
677
 
to shorten the <i>MaxTime</i> associated with the partitions so 
678
 
as to avoid initiating jobs that will not have completed by 
679
 
the maintenance period.
 
706
Create a resource reservation as described by SLURM's 
 
707
<a href="reservations.html">Resource Reservation Guide</a>.
680
708
 
681
709
<p><a name="pam"><b>9. How can PAM be used to control a user's limits on 
682
710
or access to compute nodes?</b></a><br>
697
725
</pre>
698
726
<p>Finally, you need to disable SLURM's forwarding of the limits from the 
699
727
session from which the <i>srun</i> initiating the job ran. By default 
700
 
all resource limits are propogated from that session. For example, adding 
 
728
all resource limits are propagated from that session. For example, adding 
701
729
the following line to <i>slurm.conf</i> will prevent the locked memory 
702
730
limit from being propagated:<i>PropagateResourceLimitsExcept=MEMLOCK</i>.</p>
703
731
 
740
768
<li>Stop all SLURM daemons</li>
741
769
<li>Modify the <i>ControlMachine</i>, <i>ControlAddr</i>, 
742
770
<i>BackupController</i>, and/or <i>BackupAddr</i> in the <i>slurm.conf</i> file</li>
743
 
<li>Distribute the updated <i>slurm.conf</i> file file to all nodes</li>
 
771
<li>Distribute the updated <i>slurm.conf</i> file to all nodes</li>
744
772
<li>Restart all SLURM daemons</li>
745
773
</ol>
746
774
<p>There should be no loss of any running or pending jobs. Insure that
778
806
Yes, this can be useful for testing purposes. 
779
807
It has also been used to partition "fat" nodes into multiple SLURM nodes.
780
808
There are two ways to do this.
781
 
The best method for most conditins is to run one <i>slurmd</i> 
 
809
The best method for most conditions is to run one <i>slurmd</i> 
782
810
daemon per emulated node in the cluster as follows.
783
811
<ol>
784
812
<li>When executing the <i>configure</i> program, use the option 
785
 
<i>--multiple-slurmd</i> (or add that option to your <i>~/.rpmmacros</i>
 
813
<i>--enable-multiple-slurmd</i> (or add that option to your <i>~/.rpmmacros</i>
786
814
file).</li>
787
815
<li>Build and install SLURM in the usual manner.</li>
788
816
<li>In <i>slurm.conf</i> define the desired node names (arbitrary 
797
825
of the node that it is supposed to serve on the execute line.</li> 
798
826
</ol>
799
827
<p>It is strongly recommended that SLURM version 1.2 or higher be used 
800
 
for this due to it's improved support for multiple slurmd daemons.
 
828
for this due to its improved support for multiple slurmd daemons.
801
829
See the
802
 
<a href="programmer_guide.shtml#multiple_slurmd_support">Programmers Guide</a>
 
830
<a href="programmer_guide.html#multiple_slurmd_support">Programmers Guide</a>
803
831
for more details about configuring multiple slurmd support.</p>
804
832
 
805
833
<p>In order to emulate a really large cluster, it can be more 
863
891
<i>CoresPerSocket</i>, <i>ThreadsPerCore</i>, and/or <i>TmpDisk</i>).
864
892
SLURM will use the resource specification for each node that is 
865
893
given in <i>slurm.conf</i> and will not check these specifications 
866
 
against those actaully found on the node.
 
894
against those actually found on the node.
867
895
 
868
896
<p><a name="credential_replayed"><b>16. What does a 
869
897
&quot;credential replayed&quot; 
958
986
corresponds to a job that the slurmd daemon has already revoked. 
959
987
The slurmctld daemon selects job ID values based upon the configured 
960
988
value of <b>FirstJobId</b> (the default value is 1) and each job gets 
961
 
an value one large than the previous job. 
 
989
a value one larger than the previous job.
962
990
On job termination, the slurmctld daemon notifies the slurmd on each 
963
991
allocated node that all processes associated with that job should be 
964
992
terminated. 
972
1000
This solution to this problem is to cold-start all slurmd daemons whenever
973
1001
the slurmctld daemon is cold-started.
974
1002
 
975
 
<p><a name="globus"><b>23. Can SLURM be used with Globus?</b><br>
 
1003
<p><a name="globus"><b>23. Can SLURM be used with Globus?</b></a><br>
976
1004
Yes. Build and install SLURM's Torque/PBS command wrappers along with 
977
1005
the Perl APIs from SLURM's <i>contribs</i> directory and configure 
978
1006
<a href="http://www-unix.globus.org/">Globus</a> to use those PBS commands.
980
1008
<i>torque</i> and <i>perlapi</i> respectively.
981
1009
 
982
1010
<p><a name="time_format"><b>24. Can SLURM time output format include the 
983
 
year?</b><br>
 
1011
year?</b></a><br>
984
1012
The default SLURM time format output is <i>MM/DD-HH:MM:SS</i>. 
985
1013
Define &quot;ISO8601&quot; at SLURM build time to get the time format
986
1014
<i>YYYY-MM-DDTHH:MM:SS</i>.
988
1016
SLURM output expecting the old format (e.g. LSF, Maui or Moab).
989
1017
 
990
1018
<p><a name="file_limit"><b>25. What causes the error 
991
 
&quot;Unable to accept new connection: Too many open files&quot;?</b><br>
 
1019
&quot;Unable to accept new connection: Too many open files&quot;?</b></a><br>
992
1020
The srun command automatically increases its open file limit to 
993
1021
the hard limit in order to process all of the standard input and output
994
1022
connections to the launched tasks. It is recommended that you set the
995
1023
open file hard limit to 8192 across the cluster.
996
1024
 
997
1025
<p><a name="slurmd_log"><b>26. Why does the setting of <i>SlurmdDebug</i> 
998
 
fail to log job step information at the appropriate level?</b><br>
 
1026
fail to log job step information at the appropriate level?</b></a><br>
999
1027
There are two programs involved here. One is <b>slurmd</b>, which is 
1000
1028
a persistent daemon running at the desired debug level. The second 
1001
1029
program is <b>slurmstep</b>, which executed the user job and its
1005
1033
of the program.
1006
1034
 
1007
1035
<p><a name="rpm"><b>27. Why isn't the auth_none.so (or other file) in a 
1008
 
SLURM RPM?</b><br>
1009
 
The auth_none plugin is in a separete RPM and not built by default.
 
1036
SLURM RPM?</b></a><br>
 
1037
The auth_none plugin is in a separate RPM and not built by default.
1010
1038
Using the auth_none plugin means that SLURM communications are not 
1011
1039
authenticated, so you probably do not want to run in this mode of operation 
1012
1040
except for testing purposes. If you want to build the auth_none RPM then 
1015
1043
in the SLURM distribution for a list of other options.
1016
1044
 
1017
1045
<p><a name="slurmdbd"><b>28. Why should I use the slurmdbd instead of the
1018
 
regular database plugins?</b><br>
 
1046
regular database plugins?</b></a><br>
1019
1047
While the normal storage plugins will work fine without the added
1020
 
layer of the slurmdbd there are some great benifits to using the
 
1048
layer of the slurmdbd there are some great benefits to using the
1021
1049
slurmdbd.
1022
1050
 
1023
1051
1. Added security.  Using the slurmdbd you can have an authenticated
1032
1060
   slurmdbd you can also query any cluster using the slurmdbd from any
1033
1061
   other cluster's nodes.
1034
1062
 
1035
 
<p><a name="debug"><b>29. How can I build SLURM with debugging symbols?</b></br>
 
1063
<p><a name="debug"><b>29. How can I build SLURM with debugging symbols?</b></a></br>
1036
1064
Set your CFLAGS environment variable before building. 
1037
1065
You want the "-g" option to produce debugging information and
1038
1066
"-O0" to set the optimization level to zero (off). For example:<br>
1039
1067
CFLAGS="-g -O0" ./configure ...
1040
1068
 
1041
1069
<p><a name="state_preserve"><b>30. How can I easily preserve drained node 
1042
 
information between major SLURM updates?</b><br>
 
1070
information between major SLURM updates?</b></a><br>
1043
1071
Major SLURM updates generally have changes in the state save files and 
1044
1072
communication protocols, so a cold-start (without state) is generally 
1045
1073
required. If you have nodes in a DRAIN state and want to preserve that
1052
1080
</pre>
1053
1081
 
1054
1082
<p><a name="health_check"><b>31. Why doesn't the <i>HealthCheckProgram</i>
1055
 
execute on DOWN nodes?</b><br>
 
1083
execute on DOWN nodes?</a></b><br>
1056
1084
Hierarchical communications are used for sending this message. If there
1057
1085
are DOWN nodes in the communications hierarchy, messages will need to 
1058
 
be re-routed. This limits SLURM's ability to tightly synchroize the 
 
1086
be re-routed. This limits SLURM's ability to tightly synchronize the
1059
1087
execution of the <i>HealthCheckProgram</i> across the cluster, which
1060
 
could adversly impact performance of parallel applications. 
 
1088
could adversely impact performance of parallel applications. 
1061
1089
The use of CRON or node startup scripts may be better suited to insure
1062
1090
that <i>HealthCheckProgram</i> gets executed on nodes that are DOWN
1063
1091
in SLURM. If you still want to have SLURM try to execute 
1079
1107
                        continue;
1080
1108
</pre>
1081
1109
 
 
1110
<p><a name="batch_lost"><b>32. What is the meaning of the error 
 
1111
&quot;Batch JobId=# missing from master node, killing it&quot;?</b></a><br>
 
1112
A shell is launched on node zero of a job's allocation to execute
 
1113
the submitted program. The <i>slurmd</i> daemon executing on each compute
 
1114
node will periodically report to the <i>slurmctld</i> what programs it
 
1115
is executing. If a batch program is expected to be running on some
 
1116
node (i.e. node zero of the job's allocation) and is not found, the
 
1117
message above will be logged and the job cancelled. This typically is 
 
1118
associated with exhausting memory on the node or some other critical 
 
1119
failure that cannot be recovered from. The equivalent message in 
 
1120
earlier releases of slurm is 
 
1121
&quot;Master node lost JobId=#, killing it&quot;.
 
1122
 
 
1123
<p><a name="accept_again"><b>33. What does the messsage
 
1124
&quot;srun: error: Unable to accept connection: Resources temporarily unavailable&quot; 
 
1125
indicate?</b></a><br>
 
1126
This has been reported on some larger clusters running SUSE Linux when
 
1127
a user's resource limits are reached. You may need to increase limits
 
1128
for locked memory and stack size to resolve this problem.
 
1129
 
 
1130
<p><a name="task_prolog"><b>34. How could I automatically print a job's 
 
1131
SLURM job ID to its standard output?</b></a></br>
 
1132
The configured <i>TaskProlog</i> is the only thing that can write to 
 
1133
the job's standard output or set extra environment variables for a job
 
1134
or job step. To write to the job's standard output, precede the message
 
1135
with "print ". To export environment variables, output a line of this
 
1136
form "export name=value". The example below will print a job's SLURM
 
1137
job ID and allocated hosts for a batch job only.
 
1138
 
 
1139
<pre>
 
1140
#!/bin/sh
 
1141
#
 
1142
# Sample TaskProlog script that will print a batch job's
 
1143
# job ID and node list to the job's stdout
 
1144
#
 
1145
 
 
1146
if [ X"$SLURM_STEP_ID" = "X" -a X"$SLURM_PROCID" = "X"0 ]
 
1147
then
 
1148
  echo "print =========================================="
 
1149
  echo "print SLURM_JOB_ID = $SLURM_JOB_ID"
 
1150
  echo "print SLURM_NODELIST = $SLURM_NODELIST"
 
1151
  echo "print =========================================="
 
1152
fi
 
1153
</pre>
 
1154
 
 
1155
<p><a name="moab_start"><b>35. I run SLURM with the Moab or Maui scheduler.
 
1156
How can I start a job under SLURM without the scheduler?</b></a></br>
 
1157
When SLURM is configured to use the Moab or Maui scheduler, all submitted
 
1158
jobs have their priority initialized to zero, which SLURM treats as a held
 
1159
job. The job only begins when Moab or Maui decide where and when to start
 
1160
the job, setting the required node list and setting the job priority to 
 
1161
a non-zero value. To circumvent this, submit your job using a SLURM or
 
1162
Moab command then manually set its priority to a non-zero value (must be
 
1163
done by user root). For example:</p>
 
1164
<pre>
 
1165
$ scontrol update jobid=1234 priority=1000000
 
1166
</pre>
 
1167
<p>Note that changes in the configured value of <i>SchedulerType</i> only
 
1168
take effect when the <i>slurmctld</i> daemon is restarted (reconfiguring
 
1169
SLURM will not change this parameter. You will also manually need to
 
1170
modify the priority of every pending job. 
 
1171
When changing to Moab or Maui scheduling, set every job priority to zero. 
 
1172
When changing from Moab or Maui scheduling, set every job priority to a
 
1173
non-zero value (preferably fairly large, say 1000000).</p>
 
1174
 
 
1175
<p><a name="orphan_procs"><b>36. Why are user processes and <i>srun</i>
 
1176
running even though the job is supposed to be completed?</b></a></br>
 
1177
SLURM relies upon a configurable process tracking plugin to determine
 
1178
when all of the processes associated with a job or job step have completed.
 
1179
Those plugins relying upon a kernel patch can reliably identify every process.
 
1180
Those plugins dependent upon process group IDs or parent process IDs are not 
 
1181
reliable. See the <i>ProctrackType</i> description in the <i>slurm.conf</i>
 
1182
man page for details. We rely upon the sgi_job for most systems.</p>
 
1183
 
 
1184
<p><a name="slurmd_oom"><b>37. How can I prevent the <i>slurmd</i> and
 
1185
<i>slurmstepd</i> daemons from being killed when a node's memory 
 
1186
is exhausted?</b></a></br>
 
1187
You can the value set in the <i>/proc/self/oom_adj</i> for 
 
1188
<i>slurmd</i> and <i>slurmstepd</i> by initiating the <i>slurmd</i>
 
1189
daemon with the <i>SLURMD_OOM_ADJ</i> and/or <i>SLURMSTEPD_OOM_ADJ</i>
 
1190
environment variables set to the desired values.
 
1191
A value of -17 typically will disable killing.</p>
 
1192
 
 
1193
<p><a name="ubuntu"><b>38. I see my host of my calling node as 127.0.1.1
 
1194
    instead of the correct ip address.  Why is that?</b></a></br>
 
1195
Some systems by default will put your host in the /etc/hosts file as
 
1196
    something like 
 
1197
<pre>
 
1198
127.0.1.1       snowflake.llnl.gov      snowflake
 
1199
</pre>
 
1200
This will cause srun and other things to grab 127.0.1.1 as it's
 
1201
address instead of the correct address and make it so the
 
1202
communication doesn't work.  Solution is to either remove this line or
 
1203
set a different nodeaddr that is known by your other nodes.</p>
 
1204
 
1082
1205
<p class="footer"><a href="#top">top</a></p>
1083
1206
 
1084
 
<p style="text-align:center;">Last modified 24 October 2008</p>
 
1207
<p style="text-align:center;">Last modified 12 June 2009</p>
1085
1208
 
1086
1209
<!--#include virtual="footer.txt"-->