FreeBSD Status Report
Report Entry
FreeBSD HPC Ports Modernization
Links:
sysutils/slurm-wlm URL: https://cgit.freebsd.org/ports/tree/sysutils/slurm-wlm/
net/ucx URL: https://cgit.freebsd.org/ports/tree/net/ucx/
net/openmpi URL: https://cgit.freebsd.org/ports/tree/net/openmpi/
benchmarks/py-reframe-hpc URL: https://cgit.freebsd.org/ports/tree/benchmarks/py-reframe-hpc/
sysutils/py-clustershell URL: https://cgit.freebsd.org/ports/tree/sysutils/py-clustershell/
SchedMD bug 25911: proctrack/freebsd-reaper URL: https://bugs.schedmd.com/show_bug.cgi?id=25911
SchedMD bug 25912: configless OS-specific Include files URL: https://bugs.schedmd.com/show_bug.cgi?id=25912
openucx/ucx#11549: UCS/SYS portability fixes for non-Linux platforms URL: https://github.com/openucx/ucx/pull/11549
hpc/mpifileutils#664: Portability fixes for FreeBSD/non-Linux builds URL: https://github.com/hpc/mpifileutils/pull/664
Contact: Generic Rikka <rikka.goering@outlook.de>
This report continues the FreeBSD HPC Ports Modernization initiative, which aims to make FreeBSD a practical and maintainable platform for modern high-performance computing (HPC) software stacks. Previous quarters focused on bringing the Slurm, PMIx, PRRTE and UCX stack up to date and filling gaps in the surrounding ecosystem. This quarter’s work centered on three things: keeping the scheduler and communication libraries current (including security fixes), deepening FreeBSD-specific runtime support in UCX and enabling the Open MPI/UCX combination, and taking the first FreeBSD-native Slurm features upstream to SchedMD.
Work completed
-
Updated sysutils/slurm-wlm three times, from 26.05.1 to 26.05.2 and then to 26.05.4, tracking upstream releases. The 26.05.4 update also addresses seven CVEs. Thanks to the configure-time HDF5 probe merged upstream last quarter, the obsolete downstream HDF5 patches could be removed and the downstream
patch-configurewas substantially reduced. The remaining FreeBSD conmgr patch was rebased and a missing<signal.h>include was added so the test suite builds on FreeBSD. -
Enabled
slurmrestdin sysutils/slurm-wlm. It had been disabled because it was believed not to build on FreeBSD, but with current Slurm it builds without any additional portability patches. The port now shipsslurmrestdtogether with the REST/OpenAPI plugins. -
Updated net/ucx from 1.20.1 to 1.22.0. Earlier in the quarter the port gained a guard around the Linux-specific netlink implementation, and
ucx_vfssupport was improved for FreeBSD by replacingfusermount3withmount_fusefs/umount, using FreeBSD-compatible FUSE capability detection and fixing UNIX socket ancillary data handling (SCM_RIGHTSand peer credentials). A follow-up fix for the VFS inotify watch was contributed by Laurent Chardon. -
Introduced a UCX option in net/openmpi, allowing Open MPI to be built against net/ucx on FreeBSD (work by Laurent Chardon, based on testing and reports from this initiative). This also fixed an OMPIO
sharedfp/smcrash. -
Updated benchmarks/py-reframe-hpc twice, from 4.10.0 to 4.10.2 and then to 4.10.3.
-
Updated sysutils/py-clustershell from 1.9.3 to 1.10.1, including fixes for unportable tests.
-
Submitted
proctrack/freebsd-reaperto SchedMD, a new Slurm process-tracking plugin built on FreeBSD’sprocctl()process-reaper APIs. The step daemon acquires reaper status, tracks descendants across process-group changes and nested reapers, and signals the tracked process tree during cleanup. On a FreeBSD test node it cleaned up orphaned, SIGTERM-resistant and nested children likeproctrack/pgid, and additionally handledsetsid,setpgid, double-fork and nested-daemon escapes, whichproctrack/pgiddoes not. A zombie regression was retested and the node returned to IDLE without timing out or draining. -
Submitted
%osupport forIncludefilenames in Slurm configuration to SchedMD.Include slurm-%o.confselectsslurm-FreeBSD.confon FreeBSD andslurm-Linux.confon Linux, so a heterogeneous configless cluster can keep one authoritative configuration onslurmctld. This has been running on a mixed FreeBSD/Fedora cluster using the corresponding port patches.
Work in progress
-
Addressing review feedback on the open UCX (UCS/SYS portability for non-Linux platforms) and mpifileutils (Linux-only API guards) upstream pull requests, to shrink the local patchsets of the ports further.
-
Following up with SchedMD on the
proctrack/freebsd-reaperand configless%oInclude submissions.
Future plans
-
Land the outstanding upstream pull requests and keep identifying FreeBSD portability issues to fix upstream rather than patch locally.
-
Carry the Slurm patches accepted by SchedMD into the port and drop the corresponding downstream changes.
-
Continue tracking upstream Slurm, UCX, Open MPI, PMIx and PRRTE releases closely.
-
Document a reference Slurm + Open MPI + PMIx + PRRTE + UCX deployment on FreeBSD, including a mixed FreeBSD/Linux configless setup, to lower the barrier for new sites.
Last modified on: November 9, 2026 by Lorenzo Salvadore