Гибридные вычисления для OpenFOAM: внедрение и тестирование библиотек для переноса расчетов на GPU
Автор: Егор Павлович Павлов
Соавторы: Исмагилов Дамир Альбертович
Организация: Институт системного программирования им. В.П. Иванникова РАН
Рис 1. Отношение времени работы на одну итерацию для GPU конфигурации к такому же показателю в случае использования 4 ядер CPU.
OpenFOAM — популярный open-source фреймворк, но его архитектура 1990-х годов ориентирована на CPU и неэффективно использует современные гибридные суперкомпьютеры с GPU. Активно развиваются проекты по переносу вычислений OpenFOAM на GPU. Поскольку основное время занимает решение систем линейных уравнений, большинство работ фокусируются на ускорении именно этих операций (например, AmgX4Foam, petsc4foam [1]). Преимущество подхода — отсутствие изменений в исходном коде. Однако, как отмечено в [2], доля решения линейных уравнений лишь незначительно превышает время на другие процессы (например, сборку матриц), что ограничивает ускорение согласно закону Амдала. Решение — замена всех явных циклов на GPU-вычисления [2], но это требует переписывания кода и ведёт к отставанию от актуальных версий OpenFOAM.
В данной работе сравнивается скорость вычислений для стандартных CFD-задач. Базовый подход — OpenFOAM-v2412 с декомпозицией на CPU. Сравнение проводится с библиотеками AmgX и PETSc для GPU, а также с SPUMA (переписанной библиотекой на основе OpenFOAM-v2412). Вычисления выполнены на относительно устаревшем оборудовании: NVIDIA Tesla T4 и Intel i7-9700. Результаты для задачи о естественной конвекции [3] (см. Рис. 1) показывают, что ускорение монотонно растёт с размером задачи. Подходы без SPUMA демонстрируют ограничения по ускорению.
1. Bna S., Spisso I., Olesen M., Rossi G. PETSc4FOAM: a library to plug-in PETSc into the OpenFOAM framework // PRACE. 2020.
2. Bna S., Giaquintoa G., Fadiga E., Zanelli T. SPUMA: a minimally invasive approach to the GPU porting of OPENFOAM // arXiv:2512.22215v1 . 2025
3. Davis G., Jones I. P. Natural convection in a square cavity: A comparison exercise // International Journal for Numerical Methods in Fluids. 1983. Vol. 3. № 3. P. 227–248.