FreeBSD Status Report

Report Entry

Модернизация HPC-портов FreeBSD: Slurm 26.05, UCX 1.20 и MPI-параллельные утилиты для работы с файлами

Контактное лицо: Generic Rikka <rikka.goering@outlook.de>

Этот отчёт продолжает инициативу по модернизации HPC-портов FreeBSD. Предыдущие кварталы были посвящены обновлению стека Slurm + PMIx + PRRTE + UCX и заполнению пробелов в сопутствующей экосистеме. Работа в этом квартале была сосредоточена на трёх вещах: поддержании основного планировщика и коммуникационных библиотек в актуальном состоянии в соответствии с быстро меняющимися релизами вышестоящих проектов, отправке накопившихся при поддержке этих портов исправлений переносимости для FreeBSD в вышестоящие проекты, чтобы локальные наборы патчей продолжали уменьшаться, и добавлении нового порта для MPI-параллельных утилит для работы с файлами, которые широко используются в больших HPC-файловых системах.

Выполненные работы

  • Дважды обновлён sysutils/slurm-wlm в этом квартале: с 25.11.4 до 25.11.5, а затем с 25.11.5 до 26.05.1, отслеживая последние вышестоящие релизы.

  • Исправлены несколько проблем времени выполнения, специфичных для FreeBSD, в net/ucx: улучшена обработка состояния асинхронных потоков, исправлена обработка перемещений UCM, исправлена привязка сокетов сигналов mm, а также решены другие проблемы переносимости времени выполнения для FreeBSD.

  • Обновлён net/ucx с 1.20.0 до 1.20.1, а также отдельно исправлена паника при ранней инициализации libucm вместе с несколькими сбоями в наборе тестов gtest, обнаруженными при проверке обновления.

  • Добавлен sysutils/mpifileutils как новый порт вместе со стеком зависимостей: devel/libcircle, devel/lwgrp и devel/dtcmp. Они предоставляют MPI-параллельные утилиты для работы с файлами (копирование, удаление, контрольные суммы и т.д.), обычно используемые в больших HPC-файловых системах.

  • Дважды обновлён benchmarks/py-reframe-hpc в этом квартале для отслеживания вышестоящих релизов фреймворка регрессионного тестирования.

  • Отправлены в вышестоящий проект UCX «UCS/TYPE: Исправления переносимости для сред без glibc/Clang», которые были рассмотрены и включены.

  • Открыт запрос на включение «UCS/SYS: исправления переносимости для платформ, отличных от Linux» в UCX, охватывающий определение размера буфера имени хоста, получение MAC-адреса через getifaddrs()/AF_LINK, сообщение об ошибках разделяемой памяти, перераспределение на основе mmap/munmap и запросы привязки потоков на основе cpuset_getaffinity(); в настоящее время обрабатываются замечания рецензентов.

  • Открыт запрос на включение исправлений переносимости в mpifileutils, ограничивающих использование Linux-специфичных API для FreeBSD и других сборок, отличных от Linux; в настоящее время на рассмотрении.

  • Совместно с SchedMD проведена работа над проверкой во время конфигурации Slurm для H5PTopen, используемой для обнаружения библиотеки высокого уровня HDF5, которая была включена в вышестоящий проект.

Работа в процессе

  • Обработка замечаний рецензентов по открытым запросам на включение исправлений переносимости в UCX и mpifileutils для их включения в вышестоящие проекты и дальнейшего уменьшения локальных наборов патчей в портах FreeBSD.

  • Продолжение сотрудничества с SchedMD для отправки в вышестоящий проект дополнительных исправлений переносимости, обнаруженных при поддержке sysutils/slurm-wlm во FreeBSD, включая улучшения обработки сокетов BSD.

  • Оценка дизайна плагина Slurm proctrack/freebsd_reaper, ставшего возможным благодаря недавно добавленной в ядро FreeBSD поддержке раскрытия метаданных реперера в информации о процессах.

  • Продолжение внимательного отслеживания вышестоящих релизов Slurm, UCX и PMIx/PRRTE для поддержания портов FreeBSD в актуальном состоянии с минимальным локальным патчированием.

Будущие планы

  • Включить ожидающие запросы на включение в вышестоящие проекты UCX и mpifileutils и продолжить выявление дальнейших проблем переносимости для отправки в вышестоящие проекты, а не для локального патчирования.

  • Создать прототип и отправить плагин Slurm proctrack/freebsd_reaper после завершения работы над соответствующим интерфейсом ядра.

  • Продолжить расширение экосистемы HPC-программного обеспечения, доступной в Коллекции Портов FreeBSD, и сокращение локальных наборов патчей во всём стеке везде, где возможно принятие вышестоящими проектами.

  • Документировать эталонное развёртывание Slurm + OpenMPI + PMIx + PRRTE + UCX на FreeBSD, чтобы снизить порог входа для новых организаций, экспериментирующих с FreeBSD в контексте HPC.


Последнее изменение: 21 июля 2026 г. от Vladlen Popolitov