=== FreeBSD HPC Ports Modernization: Slurm 26.05, UCX 1.20 Upstreaming, and MPI-Parallel File Utilities

Links: +
link:https://cgit.freebsd.org/ports/tree/sysutils/slurm-wlm/[sysutils/slurm-wlm] URL: link:https://cgit.freebsd.org/ports/tree/sysutils/slurm-wlm/[] +
link:https://cgit.freebsd.org/ports/tree/net/ucx/[net/ucx] URL: link:https://cgit.freebsd.org/ports/tree/net/ucx/[] +
link:https://cgit.freebsd.org/ports/tree/sysutils/mpifileutils/[sysutils/mpifileutils] URL: link:https://cgit.freebsd.org/ports/tree/sysutils/mpifileutils/[] +
link:https://cgit.freebsd.org/ports/tree/devel/libcircle/[devel/libcircle] URL: link:https://cgit.freebsd.org/ports/tree/devel/libcircle/[] +
link:https://cgit.freebsd.org/ports/tree/devel/lwgrp/[devel/lwgrp] URL: link:https://cgit.freebsd.org/ports/tree/devel/lwgrp/[] +
link:https://cgit.freebsd.org/ports/tree/devel/dtcmp/[devel/dtcmp] URL: link:https://cgit.freebsd.org/ports/tree/devel/dtcmp/[] +
link:https://cgit.freebsd.org/ports/tree/benchmarks/py-reframe-hpc/[benchmarks/py-reframe-hpc] URL: link:https://cgit.freebsd.org/ports/tree/benchmarks/py-reframe-hpc/[] +
link:https://github.com/openucx/ucx/pull/11354[openucx/ucx#11354: UCS/TYPE portability fixes for non-glibc/Clang environments (merged)] URL: link:https://github.com/openucx/ucx/pull/11354[] +
link:https://github.com/openucx/ucx/pull/11549[openucx/ucx#11549: UCS/SYS portability fixes for non-Linux platforms (in review)] URL: link:https://github.com/openucx/ucx/pull/11549[] +
link:https://github.com/hpc/mpifileutils/pull/664[hpc/mpifileutils#664: Portability fixes for FreeBSD/non-Linux builds (in review)] URL: link:https://github.com/hpc/mpifileutils/pull/664[] +
link:https://kavocado.net/reports/[Kavocado Monthly Status Reports – FreeBSD HPC notes] URL: link:https://kavocado.net/reports/[]

Contact: Generic Rikka <rikka.goering@outlook.de>

This report continues the FreeBSD HPC Ports Modernization initiative.
Previous quarters focused on bringing the Slurm + PMIx + PRRTE + UCX stack up to date and filling gaps in the surrounding ecosystem.
This quarter's work centered on three things: keeping the core scheduler and communication libraries current against fast-moving upstream releases, upstreaming the FreeBSD portability fixes accumulated while maintaining these ports so the local patchsets keep shrinking, and adding a new port for MPI-parallel file utilities that are common on large HPC filesystems.

==== Work completed

* Updated package:sysutils/slurm-wlm[] twice this quarter, from 25.11.4 to 25.11.5 and then from 25.11.5 to 26.05.1, tracking the latest upstream releases.
* Fixed several FreeBSD-specific runtime issues in package:net/ucx[]: hardened async thread state handling, corrected UCM relocation handling, fixed mm signal socket binding, and resolved other FreeBSD runtime portability issues.
* Updated package:net/ucx[] from 1.20.0 to 1.20.1, and separately fixed a libucm early-init panic together with several gtest suite failures uncovered while validating the update.
* Added package:sysutils/mpifileutils[] as a new port, along with its dependency stack: package:devel/libcircle[], package:devel/lwgrp[], and package:devel/dtcmp[].
  These provide MPI-parallel file utilities (copy, remove, checksum, etc.) commonly used on large HPC filesystems.
* Updated package:benchmarks/py-reframe-hpc[] twice this quarter to track upstream releases of the regression testing framework.
* Upstreamed "UCS/TYPE: Portability fixes for non-glibc/Clang environments" to UCX, which was reviewed and merged.
* Opened "UCS/SYS: portability fixes for non-Linux platforms" against UCX, covering hostname buffer sizing, MAC address retrieval via `getifaddrs()`/`AF_LINK`, shared-memory error reporting, `mmap`/`munmap`-based reallocation, and `cpuset_getaffinity()`-based thread affinity queries; currently addressing review feedback.
* Opened a portability PR against mpifileutils guarding Linux-only APIs for FreeBSD and other non-Linux builds; currently in review.
* Collaborated with SchedMD on a Slurm configure-time probe for `H5PTopen`, used to detect the HDF5 high-level library, which was merged upstream.

==== Work in progress

* Addressing reviewer feedback on the open UCX and mpifileutils portability pull requests to get them merged upstream and reduce the FreeBSD ports' local patchsets further.
* Continuing collaboration with SchedMD to upstream additional portability fixes discovered while maintaining package:sysutils/slurm-wlm[] on FreeBSD, including BSD socket-handling improvements.
* Evaluating a `proctrack/freebsd_reaper` Slurm plugin design, made possible by recently landed FreeBSD kernel support for exposing reaper metadata in process information.
* Continuing to track upstream Slurm, UCX, and PMIx/PRRTE releases closely to keep the FreeBSD ports current with minimal local patching.

==== Future plans

* Land the outstanding UCX and mpifileutils upstream pull requests, and continue identifying further portability issues to upstream rather than patch locally.
* Prototype and submit the Slurm `proctrack/freebsd_reaper` plugin once the underlying kernel interface work is finalized.
* Continue expanding the HPC software ecosystem available in the FreeBSD Ports Collection and reduce local patchsets across the stack wherever upstream acceptance is possible.
* Document a reference Slurm + OpenMPI + PMIx + PRRTE + UCX deployment on FreeBSD to lower the barrier for new sites experimenting with FreeBSD in an HPC context.
