NEWS 244 KB
Newer Older
Christopher J. Morrone's avatar
Christopher J. Morrone committed
This file describes changes in recent versions of SLURM. It primarily
documents those changes that are of interest to users and admins.
Danny Auble's avatar
Danny Auble committed
* Changes in SLURM 2.2.0.pre0
=============================
Don Lipari's avatar
Don Lipari committed
 -- Added RunTime field to scontrol show job report
 -- Added SLURM_VERSION_NUMBER and removed SLURM_API_VERSION from slurm/slurm.h.
 -- Added support to handle communication with SLURM 2.1 clusters.  Job's
    should not be lost in the future when upgrading to higher versions of SLURM.
 -- Added withdeleted options for listing clusters, users, and accounts
 -- Remove PLPA task affinity functions due to that package being deprecated.
 -- Preserve current partition state information rather than use contents of 
    slurm.conf file after slurmctld restart or reconfiguration.
Danny Auble's avatar
Danny Auble committed
* Changes in SLURM 2.1.1
=============================
 -- Fix for case sensitive databases when a slurmctld has a mixed case
    clustername to lower case the string to easy compares.
 -- Fix squeue if job is completing and failed to print remaining
    nodes instead of failed message.
 -- Fix sview core when searching for partitions by state.
 -- Fixed setting the start time when querying in sacct to the
    beginning of the day if not set previously.
 -- Defined slurm_free_reservation_info_msg and slurm_free_topo_info_msg
    in common/slurm_protocol_defs.h
 -- Avoid generating error when a job step includes a memory specification and 
    memory is not configured as a consumable resource.
 -- Patch for small memory leak in src/common/plugstack.c
 -- Fix sview search on node state.
 -- Fix bug in which improperly formed job dependency specification can cause
    slurmctld to abort.
 -- Fixed issue where slurmctld wouldn't always get a message to send cluster
    information when registering for the first time with the slurmdbd.
 -- Add slurm_*_trigger.3 man pages for event trigger APIs.
 -- Fix bug in job preemption logic that would free allocated memory twice.
 -- Fix spelling issues (from Gennaro Oliva)
Danny Auble's avatar
Danny Auble committed

* Changes in SLURM 2.1.0
Danny Auble's avatar
Danny Auble committed
=============================
 -- Improve sview layout of blocks in use.
 -- A user can now change the dimensions of the grid in sview.
 -- BLUEGENE - improved startup speed further for large numbers of defined
    blocks
 -- Fix to _get_job_min_nodes() in wiki2/get_jobs.c suggested by Michal Novotny
 -- BLUEGENE - fixed issues when updating a pending job when a node 
    count was incorrect for the asked for connection type.
 -- BLUEGENE - fixed issue when combining blocks that are in ready states to
    make a larger block from those or make multiple smaller blocks by
    splitting the larger block.  Previously this would only work with block
    in a free state.
 -- Fix bug in wiki(2) plugins where if HostFormat=2 and the task list is
    greater than 64 we don't truncate.  Previously this would mess up Moab
    by sending a truncated task list when doing a get jobs.
 -- Added update slurmctld debug level to sview when in admin mode.
 -- Added logic to make sure if enforcing a memory limit when using the
    jobacct_gather plugin a user can no longer turn off the logic to enforce
    the limit.
 -- Replaced many calls to getpwuid() with reentrant uid_to_string()
 -- The slurmstepd will now refresh it's log file handle on a reconfig,
    previously if a log was rolled any output from the stepd was lost.
Danny Auble's avatar
Danny Auble committed

Danny Auble's avatar
Danny Auble committed
* Changes in SLURM 2.1.0-pre9
=============================
 -- Added the "scontrol update SlurmctldDebug" as the preferred alternative to
    the "scontrol setdebug" command.
 -- BLUEGENE - made it so when removing a block in an error state the nodes in
    the block are set correctly in accounting as not in error.
 -- Fixed issue where if slurmdbd is not up qos' are set up correctly for
Danny Auble's avatar
Danny Auble committed
    associations off of cache.
 -- scontrol, squeue, sview all display the correct node, cpu count along with
    correct corresponding nodelist on completing jobs.
 -- Patch (Mark Grondona) fixes serious security vulnerability in SLURM in
    the spank_job_env functionality.
 -- Improve spank_job_env interface and documentation
 -- Add ESPANK_NOT_LOCAL error code to spank_err_t
 -- Made the #define DECAY_INTERVAL used in the priority/multifactor plugin
    a slurm.conf variable (PriorityCalcPeriod)
 -- Added new macro SLURM_VERSION for use in autoconf scripts to determine
    current version of slurm installed on system when building against the api.
 -- Patch from Matthieu Hautreux that adds an entry into the error file when
    a job or step receives a TERM or KILL signal.
 -- Make it so env var SLURM_SRUN_COMM_HOST is overwritten if already in 
Danny Auble's avatar
Danny Auble committed
    existence in the slurmd.
Danny Auble's avatar
Danny Auble committed

Danny Auble's avatar
Danny Auble committed
* Changes in SLURM 2.1.0-pre8
=============================
 -- Rearranged the "scontrol show job" output into functional groupings
 -- Change the salloc/sbatch/srun -P option to -d (dependency)
 -- Removed the srun -d option; must use srun --slurmd-debug instead
 -- When running the mysql plugin natively MUNGE errors are now eliminated 
    when sending updates to slurmctlds.
 -- Check to make sure we have a default account before looking to 
    fill in default association. 
 -- Accounting - Slurmctld and slurmdbd will now set uids of users which were 
    created after the start of the daemons on reconfig.  Slurmdbd will 
    attempt to set previously non-existant uids every hour.
 -- Patch from Aaron Knister and Mark Grondona, to parse correctly quoted 
    #SBATCH options in a batch script.
 -- job_desc_msg_t - in, out, err have been changed to std_in, std_out, 
    and std_err respectfully.  Needed for PySLURM, since Python sees (in) 
    as a keyword.
 -- Changed the type of addr to struct sockaddr_in in _message_socket_accept()
    in sattach.c, step_launch.c, and allocate_msg.c, and moved the function 
    into a common place for all the calls since the code was very similar.
 -- proctrack/lua support has been added see contribs/lua/protrack.lua
Danny Auble's avatar
Danny Auble committed
 -- replaced local gtk m4 test with AM_PATH_GTK_2_0
 -- changed AC_CHECK_LIB to AC_SEARCH_LIBS to avoid extra libs in
    compile lines.
 -- Patch from Matthieu Hautreux to improve error message in slurmd/req.c
 -- Added support for split groups from (Matthiu Hautreux CEA)
 -- Patch from Mark Grondona to move blcr scripts into pkglibexecdir
 -- Patch from Doug Parisek to calculate a job's projected start time under the
    builtin scheduler.
 -- Removed most global variables out of src/common/jobacct_common.h
Danny Auble's avatar
Danny Auble committed

Danny Auble's avatar
Danny Auble committed
* Changes in SLURM 2.1.0-pre7
=============================
 -- BLUEGENE - make 2.1 run correctly on a real bluegene cluster
Danny Auble's avatar
Danny Auble committed
 -- sacctmgr - Display better debug for when an admin specifies a non-existant 
    parent account when changing parent accounts.
 -- Added a mechanism to the slurmd to defer the epilog from starting until
    after a running prolog has finished.
Danny Auble's avatar
Danny Auble committed
 -- If a node reboots inbetween checking status the node is marked down unless 
    ReturnToService=2
 -- Added -R option to slurmctld to recover partition state also when 
    restarting or reconfiguring.
 
Moe Jette's avatar
Moe Jette committed
* Changes in SLURM 2.1.0-pre6
=============================
 -- When getting information about nodes in hidden partitions, return a node
    name of NULL rather than returning no information about the node so that 
    node index information is still valid.
 -- When querying database for jobs in certain state and a time period is 
    given only jobs in that state during the period will be returned,
    previously if a time period was given in sacct jobs eligible to run or 
    running would be displayed, which is still the default if no states are 
    requested.
 -- One can now query jobs based on size (nodes and or cpus) (mysql plugin only)
 -- Applied patch from Mark Grondona that tests for a missing config file before
    any other processing in spank_init().  This now prevents fatal errors from
    being mistakenly treated as recoverable.
 -- --enable-debug no longer has to be stated at configure time to have 
    the slurmctld or slurmstepd dump core on a seg fault.
 -- Moved the errant slurm_job_node_ready() declaration from job_info.h to
    slurm.h and deleted job_info.h.
Danny Auble's avatar
Danny Auble committed
 -- Added the slurm_job_cpus_allocated_on_node_id() 
Danny Auble's avatar
Danny Auble committed
    slurm_job_cpus_allocated_on_node() API for working with the 
    job_resources_t structure.
 -- BLUEGENE - speed up start up for systems that have many blocks (100+)
    configured on the system.
Moe Jette's avatar
Moe Jette committed
* Changes in SLURM 2.1.0-pre5
=============================
 -- Add squeue option "--start" to report expected start time of pending jobs.
 -- Sched/backfill plugin modified to set expected start time of pending jobs.
 -- Add SchedulerParameters option of "max_job_bf=#" to control how far down
    the queue of pending jobs that SLURM searches in an attempt backfill 
    schedule them. The default value is 50 jobs.
 -- Fixed cause of squeue -o "%C" seg fault.
 -- Add -"-signal=<int>@<time>" option to salloc, sbatch and srun commands to
    notify programs before reaching the end of their time limit.
 -- Add scontrol option to update a running job's EndTime (also resets the 
    job's time limit).
 -- Add new job wait reason, ReqNodeNotAvail: Required node is not available 
    (down or drained).
 -- Log when slurmctld or slurmd are started with small core file limit.
 -- Permit job's owner to change features, processor count, minimum and 
    maximun node counts of pending jobs (the operation was previously 
    restricted to user root)
 -- Applied patch from Chuck Clouston for scontrol man page with clarifications
    and additional info
 -- Change slurm errno name from ESLURM_TOO_MANY_REQUESTED_NODES to 
    ESLURM_INVALID_NODE_COUNT to better reflect its meaning.
 -- Fix bug in sched/backfill which could result in invalid memory reference
    when trying to schedule jobs submitted with --exclude option.
 -- Fix for slurmctld deadlock at startup with PreemptMode=SUSPEND,GANG.
Moe Jette's avatar
Moe Jette committed
 -- Added preemption plugins to RPM.
 -- Completely disable logging of sched/wiki and sched/wiki2 (Maui & Moab) 
    message traffic unless DebugFlag=Wiki is configured.
 -- Change scontrol show job info: ReqProcs (number of processors requested) 
    is replaced by NumProcs (number of processors requested or actually 
    allocated) and ReqNodes (number of nodes requested) is replaced by 
    NumNodes (number of nodes requested or actually allocated).
 -- Fixed issue when max nodes wasn't specified and was later set by limit 
    to not request that as the actual maximum.
 -- Move job preemption (for requeue, checkpoint and kill modes only) out of
    gang scheduling module. Make identification of preemptable jobs an argument
    to the select_g_job_test function rather than calling preempt plugin from
    the select plugin. Make output of srun --test-only option include a list
    of preempted job IDs. 
 -- Better record keeping for front end systems when registering.
 -- Enable memory allocation logic for jobs step (i.e. allocate resources
    within the job's memory allocation and enforce limits).
Danny Auble's avatar
Danny Auble committed
 -- handle error state in sinfo
 -- sview and "scontrol show config" now report as SLURM_VERSION the version 
    of slurmctld rather than that of the command.
 -- Change SuspendTime configuration parameter from 16-bits to 32-bits.
 -- Add environment variable support to sattach, salloc, sbatch and srun
    to permit user control over exit codes so application exit codes can be
    distiguished from those generated by SLURM. SLURM_EXIT_ERROR specifies the
    exit code when a SLURM error occurs. SLURM_EXIT_IMMEDIATE specifies the 
    exit code when the --immediate option is specified and resources are not
    available. Any other non-zero exit code would be that of the application
    run by SLURM.
 -- Added a Quality of Service (QOS) html page.
 -- In sched/wiki2, JOBWILLRUN command, add support for identification of 
    preemptable and preempted jobs (both new and old format of commands are
    supported).
 -- Remove contribs/python/hostlist files. Download the materials as needed
    directly from http://www.nsc.liu.se/~kent/python-hostlist.
 -- BLUEGENE - Preemption now works on bluegene systems
 -- For salloc, sbatch and srun commands, ignore _maximum_ values for
    --sockets-per-node, --cores-per-socket and --threads-per-core options.
    Remove --mincores, --minsockets, --minthreads options (map them to 
    minimum values of -sockets-per-node, --cores-per-socket and 
    --threads-per-core for now).
* Changes in SLURM 2.1.0-pre4
=============================
 -- Move processing of node configuration information in slurm.conf and 
    topology information in topology.conf from slurmctld into common and load 
    that information into slurmd. Use it to set environment variables for jobs
    SLURM_TOPOLOGY_ADDR and SLURM_TOPOLOGY_ADDR_PATTERN describing the network
    topology for each task. Based upon patch from Mattheu Hautreux (CEA).
Moe Jette's avatar
Moe Jette committed
 -- Correction in computing a job's TotalProcs value when ThreadsPerCore>1 and
    allocating by cores or sockets.
* Changes in SLURM 2.1.0-pre3
=============================
 -- Removed sched/gang plugin and moved the logic directly into the slurmctld
    daemon so that job preemption and gang scheduling can be used with the
    sched/backfill plugin. Added configuration parameter:
    PreemptMode=gang|off|suspend|cancel|requeue|checkpoint 
    to enable/disable gang scheduling and job preemption logic (both are 
    disabled by default).
    (NOTE: There are some problems with memory management which could prevent a
    job from starting when memory would be freed by a job being requeued or 
    otherwise removed, these are being worked on)
 -- Added PreemptType configuration parameter to identify preemptable jobs.
    Former users of SchedType=sched/gang should set SchedType=sched/backfill,
    PreemptType=preempt/partition_prio and PreemptMode=gang,suspend. See
    web and slurm.conf man page for other options.
    PreemptType=preempt/qos uses Quality Of Service information in database.
 -- In select/linear, optimize job placement across partitions.
 -- If the --partition option is used with the sinfo or squeue command then
    print information about even hidden partitions.
 -- Replaced misc cpu allocation members in job_info_t with select_job_res_t
    which will only be populated when requested (show_flags & SHOW_DETAIL)
 -- Added a --detail option to "scontrol show job" to display the cpu/mem
    allocation info on a node-by-node basis.
 -- Added logic to give correct request uid for individual steps that 
    were cancelled.
 -- Created a spank_get_item() option (S_JOB_ALLOC_MEM) that conveys the memory
    that the select/cons_res plugin has allocated to a job.
 -- BLUEGENE - blocks in error state are now handled correctly in accounting.
 -- Modify squeue to print job step information about a specific job ID using
    the following syntax: "squeue -j <job_id> -s".
 -- BLUEGENE - scontrol delete block and update block can now remove blocks 
    on dynamic laid out systems.
 -- BLUEGENE - Vastly improve Dynamic layout mode algorithm.
 -- Address some issues for SLURM support of Solaris.
 -- Applied patch from Doug Parisek (Doug.Parisek@bull.com) for speeding up 
    start of sview by delaying to creation of tooltips until requested.
 -- Changed GtkToolTips to GtkToolTip for newer versions of GTK.
 -- Applied patch from Rod Schultz (Rod.Schultz@Bull.com) that eliminates
    ambiguity in the documentation over use of the terms "CPU" and "socket".
 -- Modified get_resource_arg_range() to return full min/max values when input
    string is null.  This fixes the srun -B option to function as documented.
 -- If the job, node, partition, reservation or trigger state file is missing 
    or too small, automatically try using the previously saved state (file 
    name with ".old" suffix).
 -- Set a node's power_up/configuring state flag while PrologSlurmctld is
    running for a job allocated to that node.
 -- If PrologSlurmctld has a non-zero exit code, requeue the job or kill it.
Danny Auble's avatar
Danny Auble committed
 -- Added sacct ability to use --format NAME%LENGTH similar to sacctmgr.
 -- Improve hostlist logic for multidimensional systems.
 -- The pam_slurm Pluggable Authentication Module for SLURM previously
    distributed separately has been moved within the main SLURM distribution
    and is packaged as a separate RPM.
 -- Added configuration parameter MaxTasksPerNode.
 -- Remove configuration parameter SrunIOTimeout.
 -- Added functionality for sacctmgr show problems.  Current problems include
    Accounts/Users with no associations, Accounts with no users or subaccounts
    attached in a cluster, and Users with No UID on the system.
 -- Added new option for sacctmgr list assoc and list cluster WOLimits.  This 
    gives a smaller default format without the limit information.  This may 
    be the new default for list assocations and list clusters.
 -- Users are now required to have an association with there default account.
    Sacctmgr will now complain when you try to modify a users default account
    which they are not associated anywhere.
 -- Fix select/linear bug resulting in run_job_cnt underflow message if a 
    suspended job is cancelled.
 -- Add test for fsync() error for state save files. Log and retry as needed.
 -- Log fatal errors from slurmd and slurmctld to syslog.
 -- Added error detection and cleanup for the case in which a compute node is 
    rebooted and restarts its slurmd before its "down" state is noticed.
 -- BLUEGENE systems only - remove vestigal start location from jobinfo.
 -- Add reservation flag of "OVERLAP" to permit a new reservation to use
    nodes already in another reservation.
 -- Fix so "scontrol update jobid=# nice=0" can clear previous nice value.
 -- BLUEGENE - env vars such as SLURM_NNODES, SLURM_JOB_NUM_NODES, and
    SLURM_JOB_CPUS_PER_NODE now reference cnode counts instead of midplane
    counts.  SLURM_NODELIST still references midplane names.
 -- Added qos support to salloc/sbatch/srun/squeue
 -- Added to scancel the ability to select jobs by account and qos
 -- Recycled the "-A" argument indicate "account" for all the commands that
    accept the --account argument (srun -A to allocate is no longer supported.)
 -- Change sbatch response from "sbatch: Submitted batch job #" written to 
    stderr to "Submitted batch job #" written to stdout.
 -- Made shutdown and cleanup a little safer for the mvapich and mpich1_p4
    plugins.
 -- QOS support added with limits, priority and preemption
    (no documentation yet).
 -- If a slurmd does not have a node listed in it's slurm.conf (slurm.conf's 
    should be kept the same on all nodes) an error message is printed in the 
    slurmctld log along with the message already being printed in the slurmd 
    log for easier debugging.
* Changes in SLURM 2.1.0-pre2
=============================
 -- Added support for smap to query off node name for display.
 -- Slurmdbd modified to set user ID and group ID to SlurmUser if started as 
    user root.
 -- Configuration parameter ControlMachine changed to  accept multiple comma-
    separated hostnames for support of some high-availability architectures.
 -- ALTERED API CALL slurm_get_job_steps 0 has been changed to NO_VAL for both
    job and step id to recieve all jobs/steps.  Please make adjustments to
    your code.
 -- salloc's --wait=<secs> option deprecated by --immediate=<secs> option to 
    match the srun command.
 -- Add new slurmctld list for node features with node bitmaps for simplified
    scheduling logic.
 -- Multiple features can be specified when creating a reservation. Use "&" 
    (AND) or "|" (OR) separators between the feature names.
 -- Changed internal node name caching so that front-end mode would work with
    multiple lines of node name definitions. 
 -- Add node state flag for power-up/configuring. Represented by "#" suffix
    on the node state name (e.g. "ALLOCATED#") for command output.
 -- Add CONFIGURING/CF job state flag for node power-up/configuring.
 -- Modify job step cancel logic for scancel and srun (on reciept of SIGTERM 
    or three SIGINT) to immediately send SIGKILL to spawned tasks.  Previous 
    logic would send SIGCONT, SIGTERM, wait KillWait seconds, SIGKILL.
 -- Created a spank_get_item() option (S_JOB_ALLOC_CORES) that conveys the cpus
    that the select/cons_res plugin has allocated to a job.
 -- Improve sview performance (outrageously) on very large machines.
 -- Add support for licenses in resource reservation.
 -- BLUEGENE - Jobs waiting for a block to boot will now be in Configuring
    state. 
 -- bit_fmt now does not return brackets surrounding any set of data.
* Changes in SLURM 2.1.0-pre1
=============================
 -- Slurmd notifies slurmctld of node boot time to better clean up after node
    reboots.
 -- Slurmd sends node registration information repeatedly until successful
    transmit.
 -- Change job_state in job structure to dedicate 8-bits to state flags. 
    Added macros to get state information (IS_JOB_RUNNING(job_ptr), etc.)
 -- Added macros to get node state information (IS_NODE_DOWN(node_ptr), etc).
 -- Added support for Solaris. Patch from David Hoppner.
 -- Rename "slurm-aix-federation-<version>.rpm" to just 
    "slurm-aix-<version>.rpm" (federation switch plugin may not be present).
 -- Eliminated the redundant squeue output format and sort options of 
    "%o" and "%b". Use "%D" and "%S" formats respectively. Also eliminated 
    "%X" and "%Y" and "%Z" formats. Use "%z" instead.
 -- Added mechanism for SPANK plugins to set environment variables for
    Prolog, Epilog, PrologSLurmctld and EpilogSlurmctld programs using
    the functions spank_get_job_env, spank_set_job_env, and 
    spank_unset_job_env. See "man spank" for more information.
 -- Completed the work to begun in 2.0.0 to standardize on using '-Q' as the
    --quiet flag for all the commands.
 -- BLUEGENE - sinfo and sview now display correct cpu counts for partitions
 -- Cleaned up the cons_res plugin.  It now uses a ptr to a part_record
    instead of having to do strcmp's to find the correct one.
 -- Pushed most all the plugin specific info in src/common/node_select.c 
    into the respected plugin.
 -- BLUEGENE - closed some corner cases where a block could had been removed 
    while a job was waiting for it to become ready because an underlying 
    part of the block was put into an error state.
 -- Modify sbcast logic to prevent a user from moving files to nodes they
    have not been allocated (this would be possible in previous versions
    only by hacking the sbcast code).
 -- Add contribs/sjstat script (Perl tool to report job state information).
    Put into new RPM: sjstat.
 -- Add sched/wiki2 (Moab) JOBMODIFY command support for VARIABLELIST option
    to set supplemental environment variables for pending batch jobs.
 -- BLUEGENE - add support for scontrol show blocks.
 -- Added support for job step time limits.
* Changes in SLURM 2.0.10
=========================

* Changes in SLURM 2.0.9
========================
 -- When running the mysql plugin natively MUNGE errors are now eliminated 
    when sending updates to slurmctlds.
 -- Check to make sure we have a default account before looking to 
    fill in default association. 
 -- Fix to make it so sched/wiki2 can modify a job's partition or hostlist of 
    non-pending jobs.
 -- Applied slurmctld prolog bug fix from Dennis Leepow to backfill.c
 -- fixed quite a few typos (needed for debian packages)
 -- make it so slurmctld will core dump without --enable-debug set
 -- Fix issue when doing a rollup on reservations before a cluster has been 
    added. 
 -- MySQL plugin - When doing archiving end time is now decreased by 1 
    which should be more correct.
 -- BLUEGENE - Fixed issue where --no-rotate didn't work correctly on job
 -- BLUEGENE - made the buffer longer when submitting jobs to get the entire 
    line.  Previously the line could be shortened prematurely.
 -- BLUEGENE - Fix to make sure we don't erroneously set a connection type
    to SMALL.
 -- Type cast a negative uint64_t to int64_t to avoid confusion when doing 
    arithmetic with it in accounting dealing with over commit time.
* Changes in SLURM 2.0.8
========================
 -- BLUEGENE - added dub2 of stderr to put error messages sent from underlying 
    libraries of the bridge api to the bridgeapi.log
 -- Fixed issue with sacctmgr when modifing a user and specifying 'where'
    after giving the user name also.
 -- -L, --allclusters now works with sacct
 -- Modified job table to use 32bit u/gids for those with ids greater 
    than 16 bits.
 -- Made minor changes for slurm to compile cleanly under gcc 4.4.1
 -- Fixed issue with task/affinity when an allocation would run multiple sruns 
    with the --exclusive flag in an allocation with more than 1 node.  
    Previously when the first node was filled up no tasks would ever run 
    on the other nodes.
 -- Fixed sview and sacct to display correct run time and suspend time when 
    job has been suspended.
 -- Applied patch from Mark Grondona that fixes the validation of the
    PluginDir to support the colon separated list of directories as documented.
 -- BLUEGENE - squeue -o %R now prints more readable info for small blocks
 -- sacct - fixed garbage being printed out on uninitialized variable.
Danny Auble's avatar
Danny Auble committed
 -- Fix for mysql plugin when used without slurmdbd to register the 
    slurmctld properly.
 -- Fix for mysql plugin putting correct hostnames in for running steps.

* Changes in SLURM 2.0.7
========================
 -- Fix bug in select/cons_res when nodes are configured in more than one 
    partition and those partitions have different priorities and sched/gang
    is not configured. CPUs were previously over-allocated.
 -- Fix core of smap when specifying -i option with invalid argument.
 -- Fix issue when using srun --test-only to not put an entry of test 
    job into accounting.
 -- For OpenMPI use of SLURM reserved ports. If any of the tasks fails to 
    acquire a reserved port and has an exit code of 108 then srun will 
    kill all remaining tasks and respawn the tasks. Previous code waited 
    for tasks to exit.
 -- MySQL plugin - When doing archiving we now get a correct end time.  
    Previously it would grab an extra day to archive.
 -- BLUEGENE - Handle initial state correctly, previously was setting initial 
    state to IDLE if UNKNOWN which would make it not set a registration 
    message to accounting, which could lead to nodes not being listed as up 
    when they really were.
 -- Fixed buffer size issue with scontrol show hostlist.
 -- Fixed issue with copy in smap -Dc previously command wouldn't work.
 -- BLUEGENE - Update documentation about small blocks in the bluegene.conf 
    file.
 -- In sched/wiki plugin (for Maui) fix possible message truncation on very 
    large cluster.
 -- BLUEGENE - Fix for handling undocumented Deallocating to Configuring to 
    Free block transition state.
 -- BLUEGENE - Fix for overlap mode loading blocks when midplane is in an
    error state.
 -- Add range check for SuspendTime configuration parameter.
 -- Moved unzipped python-hostname tarball out and the tarball in.
 -- BLUEGENE - Patched memory leak when running state test.
 -- BLUEGENE - fixed slow down generated by slow call rm_get_BG 
    and polling thread.
* Changes in SLURM 2.0.6
========================
 -- Fixed seg fault when "scontrol listpids" is invoked for a specific job step
    on a node on which a stepd is not running.
 -- Fix bug in sched/backfill which could result in invalid memory reference 
    when trying to schedule jobs submitted with --exclude option.
* Changes in SLURM 2.0.5
========================
 -- BLUEGENE - Added support for emulating systems with a X-dimension of 4.
 -- BLUEGENE - When a nodecard goes down on a non-Dynamic system SLURM will 
    now only drain blocks under 1 midplane, if no such block exists then SLURM 
    will drain the entire midplane and not mark any block in error state.  
    Previously SLURM would drain every overlapping block of the nodecard 
    making it possible for a large block to make other blocks not work since 
    they overlap some other part of the block that really isn't bad.
 -- BLUEGENE - Handle L3 errors on boot better.
 -- Don't revoke a pending batch launch request from the slurmctld if the
    job is immediately suspended (a normal event with gang scheduling).
 -- BLUEGENE - Fixed issue with restart of slurmctld would allow error block 
    nodes to be considered for building new blocks when testing if a job would 
    run.  This is a visual bug only, jobs would never run on new block, but 
    the block would appear in slurm tools.
 -- Better responsiveness when starting new allocations when running with the 
    slurmdbd.
 -- Fixed race condition when reconfiguring the slurmctld and using the 
    consumable resources plugin which would cause the controller to core.
 -- Fixed race condition that sometimes caused jobs to stay in completing
    state longer than necessary after being terminated.
 -- Fixed issue where if a parent account has a qos added and then a child
    account has the qos removed the users still get the qos.
 -- BLUEGENE - New blocks in dynamic mode will only be made in the system
    when the block is actually needed for a job, not when testing.
 -- BLUEGENE - Don't remove larger block used for small block until job starts.
 -- Add new squeue output format and sort option of "%L" to print a job's time 
    left (time limit minus time used).
 -- BLUEGENE - Fixed draining state count for sinfo/sview.
 -- Fix for sview to not core when viewing nodes allocated to a partition 
    and the all jobs finish.
 -- Fix cons_res to not core dump when finishing a job running on a 
    defunct partition.
 -- Don't require a node to have --ntasks-per-node CPUs for use when the 
    --overcommit option is also used.
 -- Increase the maximum number of tasks which can be launched by a job step
    per node from 64 to 128. 
 -- sview - make right click on popup window title show sorted list.
 -- scontrol now displays correct units for job min memory and min tmp disk.
 -- better support for salloc/sbatch arbitrary layout for setting correct 
    SLURM_TASKS_PER_NODE
 -- Env var SLURM_CPUS_ON_NODE is now set correctly depending on the 
    FastSchedule configuration parameter.
 -- Correction to topology/3d_torus plugin calculation when coordinate value 
    exceeds "9" (i.e. a hex value).
 -- In sched/wiki2 - Strip single and double quotes out of a node's reason 
    string to avoid confusing Moab's parser.
 -- Modified scancel to cancel any pending jobs before cancelling any other
 -- Updated sview config info
 -- Fix a couple of bugs with respect to scheduling with overlapping 
    reservations (one with a flag of "Maintenance").
 -- Fix bug when updating a pending job's nice value after explicitly setting
    it's priority.
 -- Fix task affinity for systems running fastschedule!=0 and they have less 
    resources configured than in existence.
 -- Slurm.pm loads without warning now on AIX systems
 -- modified pmi code to do strncpy's on the correct len
 -- Fix for filling in a qos structure to return SLURM_SUCCESS on success.
 -- BLUEGENE - Added SLURM_BG_NUM_NODES with cnode count of allocation, 
    SLURM_JOB_NUM_NODES represents midplane counts until 2.1.
 -- BLUEGENE - Added fix for if a block is in error state and the midplane 
    containing the block is also set to drain/down.  This previously 
    prevented dynamic creation of new blocks when this state was present.
 -- Fixed bug where a users association limits were not enforced, only 
    parent limits were being enforced.
 -- For OpenMPI use of SLURM reserved ports, reserve a count of ports equal to 
    the maximum task count on any node plus one (the plus one is a correction).
 -- Do not reset SLURM_TASKS_PER_NODE when srun --preserve-env option is used
    (needed by OpenMPI).
 -- Fix possible assert failure in task/affinity if a node is configured with
    more resources than physically exist.
 -- Sview can now resize columns.
 -- Avoid clearing a drained node's reason field when state is changed from
    down (i.e. returned to service). Note the drain state flag stays set.
* Changes in SLURM 2.0.4
========================
 -- Permit node suspend/resume logic to be enabled through "scontrol reconfig"
    given appropriate changes to slurm configuration file.
 -- Check for return codes on functions with warn_unused_result set.
 -- Fix memory leak in getting step information (as used by squeue -s).
 -- Better logging for when job's request bad output file locations.
 -- Fix issue where if user specified non-existant file to write to slurmstepd
    will regain privileges before sending batch script ended to the controller.
 -- Fix bug when using the priority_multifactor plugin with no associations 
    yet.
 -- BLUEGENE - we no longer check for the images to sync state.  This was 
    needed long ago when rebooting blocks wasn't a possibility and should 
    had been removed when that functionality was available.
 -- Added message about no connection with the database for sacctmgr.
 -- On BlueGene, let srun or salloc exit on SIGINT if slurmctld dies while
    booting its block.
 -- In select/cons_res fix bug that could result in invalid memory pointer
    if node configurations in slurm.conf contains 8 or more distinct 
    socket/core/thread counts.
 -- Modify select/cons_res to recognize updated memory size upon node startup
    if FastSchedule=0.
 -- Fixed bug if not enforcing associations, but running with them and the 
    priority/multifactor, the slurmctld will not core dump on processing usage.
 -- QOS will not be reset to the default when added back a previously deleted
    association.
 -- Do not set a job's virtual memory limit based upon the job's specified
    memory limit (which should be a real memory limit, not virtual).
 -- BLUEGENE - fix for sinfo/sview for displaying proper node count for nodes 
    in draining state.
 -- Fix for sview when viewing a certain part of a group (like 1 job) so it 
    doesn't core when the part is gone.
 -- BLUEGENE - Changed order of SYNC's to be on the front of the list to
    avoid having a job terminated with a TERM before the SYNC of the 
    job happens.
 -- Validate configured PluginDir value is a valid directory before trying to
    use it.
 -- Fix to resolve agent_queue_request symbol from some checkpoint plugins.
 -- Fix possible execve error for sbatch script read from stdin.
 -- Modify handling of user ID/name and group ID/name in the slurm.conf file
    to properly handle user names that contain all digits. Return error code 
    from uid_from_string() and gid_from_string() functions rather than a uid of
    -1, which might be a valid uid or gid on some systems.
 -- Fix in re-calcuation of job priorities due to DOWN or DRAINED nodes.
* Changes in SLURM 2.0.3
========================
 -- Add reservation creation/update flag of Ignore_Jobs to enable the creation
    of a reservation that overlaps jobs expected to still be running when
    the reservation starts. This would be especially useful to reserve all 
    nodes for system maintenence without adjusting time limits of running
    jobs before creating the reservation. Without this flag, nodes allocated
    jobs expected to running when the reservation begins can not be placed 
    into a reservation.
 -- In task/affinity plugin, add layer of abstraction to logic translating
    block masks to physical machine masks. Patch from Matthieu Hautreux, CEA.
 -- Fix for setting the node_bitmap in a job to NULL if the job does not 
    start correctly when expected to start.
 -- Fixed bug in srun --pty logic. Output from the task was split up 
    arbitrarily into stdout and stderr streams, and sometimes was printed 
    out of order.
 -- If job requests minimum and maximum node count range with select/cons_res,
    try to satisfy the higher value (formerly only allocated the minimum).
 -- Fix for checking for a non-existant job when querying steps.
 -- For job steps with the --exclusive option, base initial wait time in 
    partly upon the process ID for better performance with many job steps 
    started at the same time. Maintain exponential back-off as needed.
 -- Fix for correct step ordering in sview.
 -- Support optional argument to srun and salloc --immediate option. Specify
    timeout value in seconds for job or step to be allocated resources.
* Changes in SLURM 2.0.2
========================
 -- Fix, don't remove job details when a job is cancelled while pending.
 -- Do correct type for mktime so garbage isn't returned on 64bit systems 
    for accounting archival.
 -- Better checking in sacctmgr to avoid infinite loops.
 -- Fix minor memory leak in fake_slurm_step_layout_create()
 -- Fix node weight (scheduling priority) calculation for powered down
    nodes. Patch from Hongjia Cao, NUDT.
 -- Fix node suspend/resume rate calculations. Patch from Hongjia Cao, NUDT.
 -- Change calculations using ResumeRate and SuspendRate to provide higher
    resolution.
 -- Log the IP address for incoming messages having an invalid protocol 
    version number.
 -- Fix for sacct to show jobs that start the same second as the sacct
    command is issued.
 -- BLUEGENE - Fix for -n option to work on correct cpu counts for each 
    midplane instead of treating -n as a c-node count.
 -- salloc now sets SLURM_NTASKS_PER_NODE if --ntasks-per-node option is set.
 -- Fix select/linear to properly set a job's count of allocated processors
    (all processors on the allocated nodes).
 -- Fix select/cons_res to allocate proper CPU count when --ntasks-per-node
    option is used without a task count in the job request.
 -- Insure that no node is allocated to a job for which the CPU count is less
    than --ntasks-per-node * --cpus-per-task.
 -- Correct AllocProcs reported by "scontrol show node" when ThreadsPerCore
    is greater than 1 and select/cons_res is used.
 -- Fix scontrol show config for accounting information when values are 
    not set in the slurm.conf.
 -- Added a set of SBATCH_CPU_BIND* and SBATCH_MEM_BIND* env variables to keep
    jobsteps launched from within a batch script from inheriting the CPU and
    memory affinity that was applied to the batch script. Patch from Matthieu
    Hautreux, CEA.
 -- Ignore the extra processors on a node above configured size if either 
    sched/gang or select/cons_res is configured.
 -- Fix bug in tracking memory allocated on a node for select/cons_res plugin.
 -- Fixed a race condition when writing labelled output with a file per task
    or per node, which potentially closed a file before all data was written.
 -- BLUEGENE - Fix, for if a job comes in spanning both less than and 
    over 1 midplane in size we check the connection type appropriately.
 -- Make sched/backfill properly schedule jobs with constraints having node 
    counts. NOTE: Backfill of jobs with constraings having exclusive OR 
    operators are not fully supported.  
 -- If srun is cancelled by SIGINT, set the job state to cancelled, not 
    failed.
 -- BLUEGENE - Fix, for if you are setting an subbp into an error mode 
    where the subbp stated isn't the first ionode in a nodecard.
 -- Fix for backfill to not core when checking shared nodes.
 -- Fix for scontrol to not core when hitting just return in interactive mode.
 -- Improve sched/backfill logic with respect to shared nodes (multiple jobs
    per node).
 -- In sched/wiki (Maui interface) add job info fields QOS, RCLASS, DMEM and
    TASKSPERNODE. Patch from Bjorn-Helge Mevik, University of Oslo.
* Changes in SLURM 2.0.1
========================
 -- Fix, truncate time of start and end for job steps in sacct.
 -- Initialize all messages to slurmdbd. Previously uninitialized string could
    cause slurmctld to fail with invalid memory reference.
 -- BLUEGENE - Fix, for when trying to finish a torus on a block already 
    visited.  Even though this may be possible electrically this isn't valid
    in the under lying infrastructure.
 -- Fix, in mysql plugins change mediumints to int to support full 32bit 
    numbers.
 -- Add sinfo node state filtering support for NO_RESPOND, POWER_SAVE, FAIL, 
    MAINT, DRAINED and DRAINING states. The state filter of DRAIN still maps
    to any node in either DRAINED or DRAINING state.
 -- Fix reservation logic when job requests specific nodes that are already
    in some reservation the job can not use.
 -- Fix recomputation of a job's end time when allocated nodes which are
    being powered up. The end time would be set in the past if the job's
    time limit was INFINITE, resulting in it being prematurely terminated.
 -- Permit regular user to change the time limit of his pending jobs up to
    the partition's limit.
 -- Fix "-Q" (quiet) option for salloc and sbatch which was previously 
    ignored.
 -- BLUEGENE - fix for finding odd shaped blocks in dynamic mode.
 -- Fix logic supporting SuspendRate and ResumeRate configuration parameters.
    Previous logic was changing state of one too many nodes per minute.
 -- Save new reservation state file on shutdown (even if no changes).
 -- Fix, when partitions are deleted the sched and select plugins are notified.
 -- Fix for slurmdbd to create wckeyid's when they don't exist
 -- Fix linking problem that prevented checkpoint/aix from working.
Danny Auble's avatar
Danny Auble committed
* Changes in SLURM 2.0.0
 -- Fix for bluegene systems to be able to create 32 node blocks with only 
    16 psets defined in dynamic layout mode.
 -- Improve srun_cr handling of child srun forking. Patch from Hongjia Cao, 
    NUDT.
 -- Configuration parameter ResumeDelay replaced by SuspendTimeout and 
    ResumeTimeout.
 -- BLUEGENE - sview/sinfo now displays correct cnode numbers for drained nodes
    or blocks in error state.
 -- Fix some batch job launch bugs when powering up suspended nodes.
 -- Added option '-T' for sacct to truncate time of start and end and set
    default of --starttime to Midnight of current day.
Danny Auble's avatar
Danny Auble committed

* Changes in SLURM 2.0.0-rc2
============================
 -- Change fanout logic to start on calling node instead of first node in 
    message nodelist.
 -- Fix bug so that smap builds properly on Sun Constellation system.
 -- Filter white-space out from node feature specification.
Danny Auble's avatar
Danny Auble committed
 -- Fixed issue with duration not being honored when updating start time in 
    reservations.
 -- Fix bug in sched/wiki and sched/wiki2 plugins for reporting job resource
    allocation properly when node names are configured out of sort order 
    with more than one numeric suffix (e.g. "tux10-1" is configured after 
    "tux5-1").
 -- Avoid re-use of job_id (if specified at submit time) when the existing
    job is in completing state (possible race condition with Moab).
 -- Added SLURM_DISTRIBUTION to env for salloc.
 -- Add support for "scontrol takeover" command for backup controller to 
    assume control immediately. Patch from Matthieu Hautreux, CEA.
 -- If srun is unable to communicate with the slurmd tasks are now marked as 
    failed with the controller.
 -- Fixed issues with requeued jobs not being accounted for correctly in 
    the accounting.
 -- Clear node's POWER_SAVE flag if configuration changes to one lacking a
    ResumeProgram.
 -- Extend a job's time limit as appropriate due to delays powering up nodes.
 -- If sbatch is used to launch a job step within an existing allocation (as
    used by LSF) and the required node is powered down, print the message
    "Job step creation temporarily disabled, retrying", sleep, and retry.
 -- Configuration parameter ResumeDelay added to control how much time must 
    after a node has been suspended before resume it (e.g. powering it back 
    up).
 -- Fix CPU binding for batch program. Patch from Matthieu Hautreux, CEA.
 -- Fix for front end systems non-responding nodes now show up correctly in
    sinfo.
Danny Auble's avatar
Danny Auble committed

* Changes in SLURM 2.0.0-rc1
============================
 -- Fix bug in preservation of advanced reservations when slurmctld restarts.
 -- Updated perlapi to match correctly with slurm.h structures
 -- Do not install the srun command on BlueGene systems (mpirun must be used to
 -- Corrections to scheduling logic for topology/tree in configurations where 
    nodes are configured in multiple leaf switches.
 -- Patch from Matthieu Hautreux for backup mysql deamon support.
 -- Changed DbdBackup to DbdBackupHost for slurmdbd.conf file
 -- Add support for spank_strerror() function and improve error handling in
    general for SPANK plugins.
 -- Added configuration parameter SrunIOTimeout to optionally ping srun's tasks
    for better fault tolerance (e.g. killed and restarteed SLURM daemons on 
    compute node).
 -- Add slurmctld and slurmd binding to appropriate communications address
    based upon NodeAddr, ControllerAddr and BackupAddr configuration 
    parameters. Based upon patch from Matthieu Hautreux, CEA.
    NOTE: Fails when SlurmDBD is configured with some configurations.
    NOTE: You must define BIND_SPECIFIC_ADDR to enable this option.
 -- Avoid using powered down nodes when scheduling work if possible. 
    Fix possible invalid memory reference in power save logic.
* Changes in SLURM 1.4.0-pre13
==============================
 -- Added new partition option AllocNodes which controls the hosts from 
    which jobs can be submitted to this partition. From Matthieu Hautreux, CEA.
 -- Better support the --contiguous option for job allocations.
 -- Add new scontrol option: show topology (reports contents of topology.conf 
    file via RPC if topology/tree plugin is configured).
 -- Add advanced reservation display to smap command.
 -- Replaced remaining references to SLURM_JOBID with SLURM_JOB_ID - except
    when needed for backwards compatibility.
 -- Fix logic to properly excise a DOWN node from the allocation of a job
    with the --no-kill option.
 -- The MySQL and PgSQL plugins for accounting storage and job completion are
    now only built if the underlying database libraries exists (previously
    the plugins were built to produce a fatal error when used).
 -- BLUEGENE - scontrol show config will now display bluegene.conf information.
* Changes in SLURM 1.4.0-pre12
==============================
 -- Added support for hard time limit by associations with added configuration 
    option PriorityUsageResetPeriod. This specifies the interval at which to 
    clear the record of time used. This is currently only available with the 
    priority/multifactor plugin.
 -- Added SLURM_SUBMIT_DIR to sbatch's output environment variables.
 -- Backup slurmdbd support implemented.
 -- Update to checkpoint/xlch logic from Hongjia Cao, NUDT.
 -- Added configuration parameter AccountingStorageBackupHost.
Danny Auble's avatar
Danny Auble committed
* Changes in SLURM 1.4.0-pre11
==============================
Moe Jette's avatar
Moe Jette committed
 -- Fix slurm.spec file for RPM build.
Danny Auble's avatar
Danny Auble committed

* Changes in SLURM 1.4.0-pre10
==============================
 -- Critical bug fix in task/affinity when the CoresPerSocket is greater
    than the ThreadsPerCore (invalid memory reference).
 -- Add DebugFlag parameter of "Wiki" to log sched/wiki and wiki2 
    communications in greater detail.
 -- Add "-d <slurmstepd_path>" as an option to the slurmd daemon to
    specifying a non-stardard slurmstepd file, used  for testing purposes.
 -- Minor cleanup to crypto/munge plugin.
    - Restrict uid allowed to decode job credentials in crypto/munge
    - Get slurm user id early in crypto/munge
    - Remove buggy error code handling in crypto/munge
 -- Added sprio command - works only with the priority/multifactor plugin
 -- Add real topology plugin infrastructure (it was initially added 
    directly into slurmctld code). To specify topology information,
    set TopologyType=topology/tree and add configuration information
    to a new file called topology.conf. See "man topology.conf" or
    topology.html web page for details.
 -- Set "/proc/self/oom_adj" for slurmd and slurmstepd daemons based upon
    the values of SLURMD_OOM_ADJ and SLURMSTEPD_OOM_ADJ environment 
    variables. This can be used to prevent daemons being killed when
    a node's memory is exhausted. Based upon patch by Hongjia  Cao, NUDT.
 -- Fix several bugs in task/affinity: cpuset logic was broken and 
    --cpus-per-task option not properly handled.
 -- Ensure slurmctld adopts SlurmUser GID as well as UID on startup.
* Changes in SLURM 1.4.0-pre9
=============================
 -- OpenMPI users only: Add srun logic to automatically recreate and 
    re-launch a job step if the step fails with a reserved port conflict.
 -- Added TopologyPlugin configuration parameter.
 -- Added switch topology data structure to slurmctld (for use by select 
    plugin) add load it based upon new slurm.conf parameters: SwitchName, 
    Nodes, Switches and LinkSpeed.
 -- Modify select/linear and select/cons_res plugins to optimize resource
    allocation with respect to network topology.
 -- Added  support for new configuration parameter EpilogSlurmctld (executed 
    by slurmctld daemon).
 -- Added checkpoint/blcr plugin, SLURM now support job checkpoint/restart 
    using BLCR. Patch from Hongjia Cao, NUDT, China.
 -- Made a variety of new environment variables available to PrologSlurmctld
    and EpilogSlurmctld. See the "Prolog and Epilog Scripts" section of the 
    slurm.conf man page for details.
 -- NOTE: Cold-start (without preserving state) required for upgrade from 
    version 1.4.0-pre8.
* Changes in SLURM 1.4.0-pre8
=============================
 -- In order to create a new partition using the scontrol command, use
    the "create" option rather than "update" (which will only operate
    upon partitions that already exist).
 -- Added environment variable SLURM_RESTART_COUNT to batch jobs to
    indicated the count of job restarts made.
 -- Added sacctmgr command "show config".
 -- Added the scancel option --nodelist to cancel any jobs running on a
    given list of nodes.
 -- Add partition-specific DefaultTime (default time limit for jobs, 
    if not specified use MaxTime for the partition. Patch from Par
    Andersson, National Supercomputer Centre, Sweden.
 -- Add support for the scontrol command to be able change the Weight
    associated with nodes. Patch from Krishnakumar Ravi[KK] (HP).
 -- Add DebugFlag configuration option of "CPU_Bind" for detailed CPU
    binding information to be logged.
 -- Fix some significant bugs in task binding logic (possible infinite loops
    and memory corruption).
 -- Add new node state flag of NODE_STATE_MAINT indicating the node is in
    a reservation of type MAINT.
 -- Modified task/affinity plugin to automatically bind tasks to sockets,
    cores, or threads as appropriated based upon resource allocation and
    task count. User can override with srun's --cpu_bind option. 
 -- Fix bug in backfill logic for select/cons_res plugin, resulted in 
    error "cons_res:_rm_job_from_res: node_state mis-count".
 -- Add logic go bind a batch job to the resources allocated to that job.
 -- Add configuration parameter MpiParams for (future) OpenMPI port 
    management. Add resv_port_cnt and resv_ports fields to the job step 
    data structures. Add environment variable SLURM_STEP_RESV_PORTS to
    show what ports are reserved for a job step.
 -- Add support for SchedulerParameters=interval=<sec> to control the time
    interval between executions of the backfill scheduler logic.
 -- Preserve record of last job ID in use even when doing a cold-start unless
    there is no job state file or there is a change in its format (which only 
    happens when there is a change in SLURM's major or minor version number: 
    v1.3 -> v1.4).
 -- Added new configuration parameter KillOnBadExit to kill a job step as soon
    as any task of a job step exits with a non-zero exit code. Patch based
    on work from Eric Lin, Bull.
Moe Jette's avatar
Moe Jette committed
 -- Add spank plugin calls for use by salloc and sbatch command, see 
    "man spank" for details.
 -- NOTE: Cold-start (without preserving state) required for upgrade from 
Danny Auble's avatar
Danny Auble committed
    version 1.4.0-pre7.
Moe Jette's avatar
Moe Jette committed
* Changes in SLURM 1.4.0-pre7
=============================
 -- Bug fix for preemption with select/cons_res when there are no idle nodes.
Moe Jette's avatar
Moe Jette committed
 -- Bug fix for use of srun options --exclusive and --cpus-per-task together
    for job step resource allocation (tracking of cpus in use was bad).
 -- Added the srun option --preserve-env to pass the current values of 
    environment variables SLURM_NNODES and SLURM_NPROCS through to the 
    executable, rather than computing them from commandline parameters.
 -- For select/cons_res or sched/gang only: Validate a job's resource 
    allocation socket and core count on each allocated node. If the node's
    configuration has been changed, then abort the job.
 -- For select/cons_res or sched/gang only: Disable updating a node's 
    processor count if FastSchedule=0. Administrators must set a valid
    processor count although the memory and disk space configuration can
    be loaded from the compute node when it starts.
 -- Add configure option "--disable-iso8601" to disable SLURM use of ISO 8601
    time format at the time of SLURM build. Default output for all commands
    is now ISO 8601 (yyyy-mm-ddThh:mm:ss).
 -- Add support for scontrol to explicity power a node up or down using the
    configured SuspendProg and ResumeProg programs.
Moe Jette's avatar
Moe Jette committed
 -- Fix book select/cons_res logic for tracking the number of allocated
    CPUs on a node when a partition's Shared value is YES or FORCE.
 -- Added configure options "--enable-cray-xt" and "--with-apbasil=PATH" for
    eventual support of Cray-XT systems.
Moe Jette's avatar
Moe Jette committed
* Changes in SLURM 1.4.0-pre6
=============================
 -- Fix job preemption when sched/gang and select/linear are configured with
    non-sharing partitions.
 -- In select/cons_res insure that required nodes have available resources.
Moe Jette's avatar
Moe Jette committed

* Changes in SLURM 1.4.0-pre5
=============================
 -- Correction in setting of SLURM_CPU_BIND environment variable.
 -- Rebuild slurmctld's job select_jobinfo->node_bitmap on restart/reconfigure
    of the daemon rather than restoring the bitmap since the nodes in a system
    can change (be added or removed).
 -- Add configuration option "--with-cpusetdir=PATH" for non-standard 
    locations.
 -- Get new multi-core data structures working on BlueGene systems.
 -- Modify PMI_Get_clique_ranks() to return an array of integers rather 
    than a char * to satisfy PMI standard. Correct logic in 
    PMI_Get_clique_size() for when srun --overcommit option is used.
 -- Fix bug in select/cons_res, allocated a job all of the processors on a 
    node when the --exclusive option is specified as a job submit option.
 -- Add NUMA cpu_bind support to the task affinity plugin. Binds tasks to
    a set of CPUs that belong NUMA locality domain with the appropriate
    --cpu-bind option (ldoms, rank_ldom, map_ldom, and mask_ldom), see
    "man srun" for more information.
* Changes in SLURM 1.4.0-pre4
=============================
 -- For task/affinity, force jobs to use a particular task binding by setting
    the TaskPluginParam configuration parameter rather than slurmd's
    SLURM_ENFORCED_CPU_BIND environment variable.
 -- Enable full preemption of jobs by partition with select/cons_res 
    (cons_res_preempt.patch from Chris Holmes, HP).
 -- Add configuration parameter DebugFlags to provide detailed logging for
    specific subsystems (steps and triggers so far).
 -- srun's --no-kill option is passed to slurmctld so that a job step is 
    killed even if the node where srun executes goes down (unless the 
    --no-kill option is used, previous termination logic would fail if 
    srun was not responding).
 -- Transfer a job step's core bitmap from the slurmctld to the slurmd
    within the job step credential.
 -- Add cpu_bind, cpu_bind_type, mem_bind and mem_bind_type to job allocation
    request and job_details structure in slurmctld. Add support to --cpu_bind
    and --mem_bind options from salloc and sbatch commands.
* Changes in SLURM 1.4.0-pre3
=============================
 -- Internal changes: CPUs per node changed from 32-bit to 16-bit size.
    Node count fields changed from 16-bit to 32-bit size in some structures.
 -- Remove select plugin functions select_p_get_extra_jobinfo(),
    select_p_step_begin() and select_p_step_fini().
 -- Remove the following slurmctld job structure fields: num_cpu_groups,
    cpus_per_node, cpu_count_reps, alloc_lps_cnt, alloc_lps, and used_lps.
    Use equivalent fields in new "select_job" structure, which is filled
    in by the select plugins.
 -- Modify mem_per_task in job step request from 16-bit to 32-bit size.
    Use new "select_job" structure for the job step's memory management.
 -- Add core_bitmap_job to slurmctld's job step structure to identify
Moe Jette's avatar
Moe Jette committed
    which specific cores are allocated to the step.
 -- Add new configuration option OverTimeLimit to permit jobs to exceed 
    their (soft) time limit by a configurable amount. Backfill scheduling
    will be based upon the soft time limit.
 -- Remove select_g_get_job_cores(). That data is now within the slurmctld's
    job structure.

* Changes in SLURM 1.4.0-pre2
=============================
 -- Remove srun's --ctrl-comm-ifhn-addr option (for PMI/MPICH2). It is no
    longer needed.