flux-core v0.3.0 Released

This is an alpha release of flux-core and is not intended for production use.

Download from GitHub here

  • Add support for launching Intel MPI, OpenMPI using PMIv1. Use the broker circular log buffer for PMI tracing.

  • Add flux wreck timing subcommand which prints time from
    • STARTING: reserved->starting
    • RUNNING: starting->running
    • COMPLETE: running->complete
    • TOTAL: starting->complete
  • Add three “run levels” for Flux jobs:
    • 1 : run rc1 script on rank 0 to load modules, etc.
    • 2 : run the user’s initial program
    • 3 : run rc3 script on rank 0 to unload modules, etc.
  • Add module status reporting via keepalive messages. “flux module list” now reports live module status:

    I = intializing S = sleeping X = exited
    R = running F = finalizing  
  • Conform to RFC 3 change that requires all JSON payloads to use objects as the outermost JSON type (no bare arrays for example).

  • Add flux nodeset utility so scripts can manipulate nodesets.

  • Make flux env output suitable for use in bash/zsh eval.

  • Drop flux module –direct option. Module load/unload/list is now always direct between flux-module and broker(s). Drop the “modctl” module for distributed module control.

  • When a module fails before entering its reactor loop, propagate the error back to “flux module load” so the user knows the load was not successful.

  • Address memory leaks and adjust KVS usage to ameliorate increasing broker memory footprint and degrading job throughput when running many small jobs back to back. Active jobs are now stored under “lwj-active” to avoid creating excessive versions of the larger lwj directory as job state is accumulated.

  • Bug fixes to “live” (TBON self-healing) module. The module is no longer loaded by default, pending additional work. flux up will always report all ranks up when live is not loaded.

  • Send keepalives on the ring network and log idle peers on TBON and ring at LOG_CRIT level, where “idle” means no messages in >= 3 heartbeats.

  • Compress large content-sqlite blobs with lzo to reduce disk utilization.

  • KVS improvements:
    • kvs_put() follows intermediate symlinks
    • KVS operations bundled within one commit are applied in order
    • add kvs_copy() and kvs_move() utility functions.
  • Configuration is loaded into broker attribute “config” namespace rather than KVS, and is no longer inherited from the enclosing instance.

  • Flux command driver usability improvements.

  • Flux API improvements including dropping deprecated functions and fine tuning some function signatures (users should recompile).

  • Build system allows –with-tcmalloc, –with-jemalloc, and tcmalloc heap profiling.

  • Fine tuning of log levels and messages.

  • Documentation improvements.

  • Test suite improvements/fixes.