github charmplusplus/charm v9.0.0-alpha2
Charm++ 9.0.0-alpha2

pre-release5 hours ago

Second pre-release of the 9.0 line, cut from 'recharm' at 247c38f
(reconverse b23a7fb). It is the last tag that still carries the classic
Converse sources and machine layers; they are deleted right after it
(#4056), so this tag marks the end of the two-runtime tree. Everything
below is new since v9.0.0-alpha1 (2026-10-16).

Runtime (reconverse):

  • User-driven interop: CharmBeginInit / CharmInit / CharmLibExit work on
    reconverse, so a program can run Charm++ phases from its own main
    (#4055, reconverse #288). CharmLibInit with an MPI communicator still
    aborts; MPI interop stays on the list.

  • Idle PEs reach the idle condition after one empty network poll instead
    of a sweep of about forty: quiescence detection across two processes
    settles in 0.4 ms instead of 10 ms on the libfabric TCP provider, and
    cross-process ping-pong latency on that provider halves (reconverse
    #290).

  • Slingshot (libfabric cxi): the LCI registration cache is off and RX
    matching is hybrid, so FI_MR_CACHE_MONITOR and FI_CXI_RX_MATCH_MODE no
    longer need to be set in the environment (reconverse #281).

  • ++quiet suppresses CmiPrintf output and the startup banners; abort
    reasons always go to stderr (reconverse #289).

Charm++:

  • 64-bit object ids, parts 1 and 2 (#4015, #4057, #4058, #4060): ids
    minted from per-process tranches with a PE-0 allocator, restart with
    any process count, a deleted index re-created under a new id is
    re-addressed at its home, and an opt-in wide-collection layout (24
    collection bits, 37-bit packed index; CkArrayOptions::setWideCollection)
    for programs that create many small arrays. Maintainer documentation
    in doc/internals/object-ids.md.

  • AMPI stage 0: TCharm and AMPI build and run on reconverse without
    thread migration (#4051). tests/ampi runs in CI, single and
    two-process. Migration, checkpoint, isomalloc, -pieglobals and
    -tlsglobals are not available on reconverse yet.

  • Tests: the classic-only queue, queueperf, megacon and commlib tests are
    gone and ten stale tests and examples build again (#4048); the CI tier
    gained amr_1d_simple, dynamic_insertion, dynamic_insertion_deletion,
    objid_insert, objid_wide and the user-driven-interop example.

Known gaps and issues in this alpha:

  • With several processes per host, +setcpuaffinity without +pemap binds
    every process to the same cores (reconverse #276; fix in progress).
    Use an explicit +pemap for multi-process-per-host runs.

  • When one rank calls CmiAbort under srun, the other ranks keep running
    until the job's time limit (reconverse #285; fix in progress). Launch
    with 'srun -K' or wrap srun in 'timeout'. lcrun from LCI master already
    ends the job; reconverse's pinned LCI predates that.

  • AMPI thread migration, CharmDebug, Windows multicore: not available.

  • Checkpoint files written by an alpha may not be readable by later 9.0
    pre-releases; the object id layout is final at the beta.

  • CkMulticast delegation can hang under +randomized_msgq (#4032).

Getting the source:

git clone --branch v9.0.0-alpha2 --recurse-submodules https://github.com/charmplusplus/charm
cd charm && ./build charm++ reconverse-linux-x86_64 --with-production -j8

Tested at this tag (2026-10-19):

  • macOS arm64 (reconverse-darwin-arm8, production): the full sweep of 186
    test, example and benchmark directories, single process and two
    processes, on the classic-deletion branch merged at this tip (the
    deletion does not change the tested code); the same 13 pre-existing
    failures as before (#4035). AMPI built and tests/ampi run single and
    two-process. objid_wide, pingpong, megatest, user-driven interop.
  • Purdue Anvil, 1 node, 2 processes, InfiniBand (libfabric verbs): the
    CI test set in one and two processes, pingpong, megatest with 2 x 16
    PEs, on this exact tip (job 21539122, 38 of 38) and on the tip minus
    #4060 (job 21536948).
  • NCSA Delta, 2 nodes, Slingshot-11: the same set on the same tree,
    without the FI_MR_CACHE_MONITOR / FI_CXI_RX_MATCH_MODE settings that
    earlier runs needed (reconverse #281).

Don't miss a new charm release

NewReleases is sending notifications on new releases.