diff --git a/Makefile.am b/Makefile.am index 0df8a09cb13708852e8effa34d68aea38dd8e552..d84bb3c9d10e460810f3081ef81964e74c79c8d8 100644 --- a/Makefile.am +++ b/Makefile.am @@ -6,6 +6,7 @@ SUBDIRS = auxdir src testsuite doc EXTRA_DIST = \ etc/bluegene.conf.example \ etc/federation.conf.example \ + etc/make.slurm.patch \ etc/slurm.conf.example \ etc/slurm.epilog.clean \ etc/init.d.slurm \ diff --git a/Makefile.in b/Makefile.in index 66e0b4264c07d642d00cda8e3899c4748d0cd805..2759b511c53df9ed9d57a031de7dd8522cea6922 100644 --- a/Makefile.in +++ b/Makefile.in @@ -268,6 +268,7 @@ SUBDIRS = auxdir src testsuite doc EXTRA_DIST = \ etc/bluegene.conf.example \ etc/federation.conf.example \ + etc/make.slurm.patch \ etc/slurm.conf.example \ etc/slurm.epilog.clean \ etc/init.d.slurm \ diff --git a/NEWS b/NEWS index 3363f59e5134af6f0252d896203eeee5dd0b314d..ad53687017726778a0a757761ff085fbeebcff87 100644 --- a/NEWS +++ b/NEWS @@ -31,11 +31,15 @@ documents those changes that are of interest to users and admins. -- Added support for mpich-mx (use the mpichgm plugin). -- Make job's stdout and stderr file access rights be based upon user's umask at job submit time. - -- Add support for additional PMI functions: PMI_Parse_option, PMI_Args_to_keyval, - PMI_Free_keyvals and PMI_Get_options (from Puenlap Lee and Nancy Kritkausky, Bull). + -- Add support for additional PMI functions: PMI_Parse_option, + PMI_Args_to_keyval, PMI_Free_keyvals and PMI_Get_options (from Puenlap Lee + and Nancy Kritkausky, Bull). -- Make default value of SchedulerPort (configuration parameter) be 7321. -- Use SLURM_UMASK environment variable (if set) at job submit time as umask for spawned job. + -- Correct some format issues in the man pages (from Gennero Oliva, ICAR). + -- Added support for parallel make across an existing SLURM allocation + based upon GNU make-3.81. Patch is in "etc/make.slurm.patch". * Changes in SLURM 1.2.10 ========================= diff --git a/RELEASE_NOTES b/RELEASE_NOTES index d116823a147daf0f98abee18380ea406c7758396..539997fa816bcd92d9d53e059a4d24dfad7387ae 100644 --- a/RELEASE_NOTES +++ b/RELEASE_NOTES @@ -21,9 +21,12 @@ CONFIGURATION FILE CHANGES * Added new parameter "PrivateData" which can be used to prevent users from being able to view jobs or job steps belonging to other users. -* See "man slurm.conf" for more information. * Added configuration parameters for node power save mode: ResumeProgram ResumeRate, SuspendExcNodes, SuspendExcParts, SuspendProgram and SuspendRate. +* Job accounting and termination data can be written to a database as specified + by these new parameters: DatabaseType (flatfile, mysql, and pgsql), + DatabaseHost, DatabasePass, DatabasePort, and DatabaseUser. +* See "man slurm.conf" for more information. OTHER CHANGES diff --git a/doc/html/faq.shtml b/doc/html/faq.shtml index 5bdf66172817e995326a1ab80e9726f4347657b2..c24c321ea07aa335b37a079717512ffd5bf5c55a 100644 --- a/doc/html/faq.shtml +++ b/doc/html/faq.shtml @@ -18,6 +18,10 @@ job?</a></li> <li><a href="#multi_batch">How can I run a job within an existing job allocation?</a></li> <li><a href="#user_env">How does SLURM establish the environment for my job?</a></li> <li><a href="#prompt">How can I get shell prompts in interactive mode?</a></li> +<li><a href="#batch_out">How can I get the task ID in the output or error file +name for a batch job?</a></li> +<li><a href="#parallel_make">Can the <i>make</i> command utilize the resources +allocated to a SLURM job?</a></li> </ol> <h2>For Administrators</h2> <ol> @@ -283,6 +287,59 @@ mode?</b></a><br> Srun's <i>-u</i> option turns off buffering of stdout. Bash's <i>-i</i> option tells it to run in interactive mode (with prompts). +<p><a name="batch_out"><b>14. How can I get the task ID in the output +or error file name for a batch job?</b></a><br> +The <i>srun -b</i> or <i>sbatch</i> commands are meant to accept a +script rather than a command line. If you specify a command line +rather than a script, it gets translated to a simple script of this +sort:</p> +<pre> +#!/bin/sh +srun hostname +</pre> +<p>You will note that the srun command lacks the output file specification. +It's output (for all tasks) becomes the output of the job. If you +want separate output by task, you will need to build a script containing +this specification. For example:</p> +<pre> +$ cat test +#!/bin/sh +echo begin_test +srun -o out_%j_%t hostname + +$ sbatch -n7 -o out_%j test +sbatch: Submitted batch job 65541 + +$ ls -l out* +-rw-rw-r-- 1 jette jette 11 Jun 15 09:15 out_65541 +-rw-rw-r-- 1 jette jette 6 Jun 15 09:15 out_65541_0 +-rw-rw-r-- 1 jette jette 6 Jun 15 09:15 out_65541_1 +-rw-rw-r-- 1 jette jette 6 Jun 15 09:15 out_65541_2 +-rw-rw-r-- 1 jette jette 6 Jun 15 09:15 out_65541_3 +-rw-rw-r-- 1 jette jette 6 Jun 15 09:15 out_65541_4 +-rw-rw-r-- 1 jette jette 6 Jun 15 09:15 out_65541_5 +-rw-rw-r-- 1 jette jette 6 Jun 15 09:15 out_65541_6 + +$ cat out_65541 +begin_test + +$ cat out_65541_2 +tdev2 +</pre> + +<p><a name="parallel_make"><b>15. Can the <i>make</i> command +utilize the resources allocated to a SLURM job?</b></a><br> +Yes. There is a patch available for GNU make version 3.81 +available as part of the SLURM distribution in the file +<i>etc/make.slurm.patch</i>. +This patch will use SLURM to launch tasks across a job's current resource +allocation. Depending upon the size of modules to be compiled, this may +or may not improve performance. If most modules are thousands of lines +long, the use of additional resources should more than compensate for the +overhead of SLURM's task launch. Use with make's <i>-j</i> option within an +existing SLURM allocation. Outside of a SLURM allocation, make's behavior +will be unchanged.</p> + <p class="footer"><a href="#top">top</a></p> <h2>For Administrators</h2> @@ -654,6 +711,6 @@ about these options. <p class="footer"><a href="#top">top</a></p> -<p style="text-align:center;">Last modified 15 May 2007</p> +<p style="text-align:center;">Last modified 15 June 2007</p> <!--#include virtual="footer.txt"--> diff --git a/doc/man/man1/srun.1 b/doc/man/man1/srun.1 index e625de75ce7618de9c7e7784f891ec7e01295f03..8f4a4066d112aa9b855a59526482614407d27c0d 100644 --- a/doc/man/man1/srun.1 +++ b/doc/man/man1/srun.1 @@ -235,11 +235,11 @@ If \fBsrun\fR is run as root, and the \fB\-\-gid\fR option is used, submit the job with \fIgroup\fR's group access permissions. \fIgroup\fR may be the group name or the numerical group ID. -./".TP -./"NOTE: Do not document feature until user release mechanism is available. -./"\-H, \-\-hold -./"Specify the job is to be submitted in a held state (priority of zero). -./"A held job can now be released using scontrol to reset its priority. +.\".TP +.\"NOTE: Do not document feature until user release mechanism is available. +.\"\-H, \-\-hold +.\"Specify the job is to be submitted in a held state (priority of zero). +.\"A held job can now be released using scontrol to reset its priority. .TP \fB\-\-help\fR diff --git a/doc/man/man5/slurm.conf.5 b/doc/man/man5/slurm.conf.5 index 33011d054ed81141baa844dfa08a1e167d3b54de..b8043a2dd1b4caaf067ac9f071cae661511d48ef 100644 --- a/doc/man/man5/slurm.conf.5 +++ b/doc/man/man5/slurm.conf.5 @@ -412,7 +412,7 @@ The maximum size of core file The maximum amount of CPU time .TP \fBDATA\fR -The maximum size of a process’s data segment +The maximum size of a process's data segment .TP \fBFSIZE\fR The maximum size of files created diff --git a/doc/man/man8/spank.8 b/doc/man/man8/spank.8 index 166b6681d49a148b97d3c8519df952d69b7d4112..cbaebcade9c3d38f1d0a9f01a278829015e01036 100644 --- a/doc/man/man8/spank.8 +++ b/doc/man/man8/spank.8 @@ -71,7 +71,7 @@ SLURM when the plugin calls functions like \fBspank_get_item\fR and below) are passed in the argument vector \fBargv\fR with argument count \fBac\fR. .LP -\fBSPANK\fR plugins can query the current list of supported slurm_spank\* +\fBSPANK\fR plugins can query the current list of supported slurm_spank symbols to determine if the current version supports a given plugin hook. This may be useful because the list of plugin symbols may grow in the future. The query is done using the \fBspank_symbol_supported\fR function, diff --git a/etc/make.slurm.patch b/etc/make.slurm.patch new file mode 100644 index 0000000000000000000000000000000000000000..f5bd6134df835f0a1043780e7212b0e12194ce72 --- /dev/null +++ b/etc/make.slurm.patch @@ -0,0 +1,51 @@ +Index: README +=================================================================== +--- README (revision 321) ++++ README (working copy) +@@ -145,6 +145,18 @@ + force make to treat them properly. See the manual for details. + + ++SLURM ++----- ++ ++This patch will use SLURM to launch tasks across a job's current resource ++allocation. Depending upon the size of modules to be compiled, this may ++or may not improve performance. If most modules are thousands of lines ++long, the use of additional resources should more than compensate for the ++overhead of SLURM's task launch. Use with make's "-j" option within an ++existing SLURM allocation. Outside of a SLURM allocation, make's behavior ++will be unchanged. Designed for GNU make-3.81. ++ ++ + Ports + ----- + +Index: job.c +=================================================================== +--- job.c (revision 321) ++++ job.c (working copy) +@@ -1959,6 +1959,22 @@ + void + child_execute_job (int stdin_fd, int stdout_fd, char **argv, char **envp) + { ++/* PARALLEL JOB LAUNCH VIA SLURM */ ++ if (getenv("SLURM_JOBID") { ++ int i; ++ static char *argx[128]; ++ argx[0] = "srun"; ++ argx[1] = "-N1"; ++ argx[2] = "-n1"; ++ for (i=0; ((i<124)&&(argv[i])); i++) { ++ argx[i+3] = argv[i]; ++ } ++ if (i<124) { ++ argx[i+3] = NULL; ++ argv = argx; ++ } ++ } ++/* END OF SLURM PATCH */ + if (stdin_fd != 0) + (void) dup2 (stdin_fd, 0); + if (stdout_fd != 1) +