RELEASE NOTES FOR SLURM VERSION 2.6
21 March 2013


IMPORTANT NOTE:
If using the slurmdbd (SLURM DataBase Daemon) you must update this first.
The 2.6 slurmdbd will work with SLURM daemons of version 2.4 and above.
You will not need to update all clusters at the same time, but it is very
important to update slurmdbd first and having it running before updating
any other clusters making use of it.  No real harm will come from updating
your systems before the slurmdbd, but they will not talk to each other
until you do.  Also at least the first time running the slurmdbd you need to
make sure your my.cnf file has innodb_buffer_pool_size equal to at least 64M.
You can accomplish this by adding the line

innodb_buffer_pool_size=64M

under the [mysqld] reference in the my.cnf file and restarting the mysqld.
This is needed when converting large tables over to the new database schema.

SLURM can be upgraded from version 2.4 or 2.5 to version 2.6 without loss of
jobs or other state information. Upgrading directly from an earlier version of
SLURM will result in loss of state information.


HIGHLIGHTS
==========
 - Added support for job arrays, which increases performance and ease of use
   for sets of similar jobs.
 - Added slurmctld/dynalloc plugin for MapReduce+ support. 
 - Added prolog and epilog support for advanced reservations.
 - Much faster throughput for job step execution with --exclusive option. The
   srun process is notified when resources become available rather than
   periodic polling.
 - Modify default installation locations for RPMs to match "make install":
   _prefix /usr/local
   _slurm_sysconfdir %{_prefix}/etc/slurm
   _mandir %{_prefix}/share/man
   _infodir %{_prefix}/share/info
 - Advanced reservations with hostname and core counts now supports asymetric
   reservations (e.g. specific different core count for each node).
 - Make sched/backfill the default scheduling plugin rather than sched/builtin
   (FIFO).

CONFIGURATION FILE CHANGES (see "man slurm.conf" for details)
=============================================================
 - Added "HealthCheckNodeState" configuration parameter identifing node states
   on which HealthCheckProgram should be executed.
 - Added "MaxArraySize" configuration parameter specifying maximum job array
   size.
 - Added "ResvEpilog" and "ResvProlog" configuration parameters to execute a
   program at the beginning and end of a reservation.
 - Added new cray.conf parameter of "AlpsEngine" to specify the communication
   protocol to be used for ALPS/BASIL.
 - Added new SelectTypeParameter value of "CR_ALLOCATE_FULL_SOCKET".
 - Added PriorityFlags value of "TICKET_BASED" and merged priority/multifactor2
   plugin into priority/multifactor plugin.
 - Added "KeepAliveTime" controlling how long sockets used for srun/slurmstepd
   communications are kept alive after disconnect.
 - Added "SlurmctldPlugstack" configuration parameter for generic stack of
   slurmctld daemon plugins. Only the plugin's init and fini functions are
   called.
 - Added "DynAllocPort" configuration parameter for use by slurmctld/dynalloc
   plugin.
 - Added new "SchedulerParameters" configuration parameter of "bf_continue"
   which permits the backfill scheduler to continue considering jobs for
   backfill scheduling after yielding locks even if new jobs have been
   submitted. This can result in lower priority jobs from being backfill
   scheduled instead of newly arrived higher priority jobs, but will permit
   more queued jobs to be considered for backfill scheduling.
 - Added options for front end nodes of "AllowGroups", "AllowUsers",
   "DenyGroups", and "DenyUsers".

DBD CONFIGURATION FILE CHANGES (see "man slurmdbd.conf" for details)
====================================================================
 - Added "ArchiveResvs" and "PurgeResvAfter" options to be able to handle old
   reservations in the database.

COMMAND CHANGES (see man pages for details)
===========================================
 - Added step "State" field to scontrol output.
 - Added "--array" option to sbatch for job array support.
 - Enlarged default JOBID and STEPID field sizes in squeue output to better
   support job arrays. For job arrays, the job ID is no longer a single number
   but has the format "JOBID_TASKID" while a step ID format is now
   "JOBID_TASKID.STEPID".
 - Fully removed deprecated sacct --dump --fdump options.
 - Added partition "SelectTypeParameters" field to scontrol output.
 - Added Allocated Memory to node information displayed by sview and scontrol
   commands.
 - Added username (%u) to the filename pattern for srun and sbatch commands.

OTHER CHANGES
=============
 - Added SLURM_SUBMIT_HOST to salloc, sbatch and srun job environment.
 - Added SLURM_ARRAY_TASK_ID and SLURM_ARRAY_TASK_ID to environment of job
   array.
 - Added milliseconds to default log message header (both RFC 5424 and ISO 8601
   time formats). Disable milliseconds logging using the configure
   parameter "--disable-log-time-msec". Default time format changes to
   ISO 8601 (without time zone information). Specify "--enable-rfc5424time"
   to restore the time zone information.


API CHANGES
===========
 - Added function "slurm_ckpt_copy_job" to checkpoint plugins.


Changed members of the following structs
========================================
 - Changed "core_cnt" from uint32_t to uint32_t* in resv_desc_msg_t.


Added the following struct definitions
======================================
 - Added "allow_groups", "allow_users", "deny_groups" and "deny_users" fields
   to front_end_info_t.
 - Added "state" field to job_step_info_t.
 - Added "resv_epilog" and "resv_prolog" to slurm_ctl_conf_t.
 - Added "array_inx" field to job_desc_msg_t.
 - Added "array_job_id" and "array_job_id" fields to slurm_job_info_t.
 - Added "cr_type" field to partition_info_t.
 - Added allocated memory to node information available (within the existing
   select_nodeinfo field of the node_info_t data structure).


Changed the following enums and #defines
========================================


Added the following API's
=========================
 - Added "slurm_load_job_user" function. This is a variation of
   "slurm_load_jobs", but accepts a user ID argument, potentially resulting
   in substantial performance improvement for "squeue --user=ID"
 - Added "slurm_load_node_single" function. This is a variation of
   "slurm_load_nodes", but accepts a node name argument, potentially resulting
   in substantial performance improvement for "sinfo --nodes=NAME".


Changed the following API's
===========================

