Сборка с CMake¶
На этой странице описана процедура от получения исходного кода FrontISTR до сборки и установки. Подробности о зависимых библиотеках см. в разделе Обязательные и необязательные зависимости.
Получение исходного кода¶
Исходный код FrontISTR можно получить из GitLab или GitHub.
# GitLab
git clone https://gitlab.com/FrontISTR-Commons/FrontISTR.git
# GitHub (зеркало)
git clone https://github.com/FrontISTR/FrontISTR.git
Процедура сборки¶
FrontISTR предполагает сборку вне дерева исходного кода (сборка непосредственно в дереве исходного кода запрещена). Создайте каталог build и запустите cmake внутри него.
cd FrontISTR
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DWITH_MPI=ON -DWITH_OPENMP=ON ..
make -j$(nproc)
После сборки программу можно запускать непосредственно как /path/to/FrontISTR/build/fistr1/fistr1. Чтобы установить её в системный путь (CMAKE_INSTALL_PREFIX), дополнительно выполните следующую команду.
Параметры CMake¶
Параметры, для которых значение по умолчанию указано как «ON при обнаружении», автоматически включаются, если соответствующая библиотека обнаружена в системе при запуске cmake. Их можно явно отключить, указав -DWITH_XXX=OFF.
| Параметр | По умолчанию | Описание |
|---|---|---|
WITH_MPI | ON | Включает параллелизм MPI |
WITH_OPENMP | ON при обнаружении | Включает потоковый параллелизм OpenMP |
WITH_METIS | ON при обнаружении | Включает разбиение сетки с использованием METIS |
METIS_VER_4 | OFF | Использует METIS v4 (OFF — v5) |
WITH_MUMPS | ON при обнаружении | Включает параллельный прямой решатель MUMPS |
WITH_MKL | ON при обнаружении | Включает Intel MKL (включая PARDISO) |
WITH_LAPACK | ON при обнаружении | Включает оценку числа обусловленности с помощью LAPACK |
WITH_ML | ON при обнаружении | Включает AMG-предобусловливание с использованием Trilinos ML |
WITH_REFINER | ON при обнаружении | Включает уточнение сетки с использованием REVOCAP_Refiner |
WITH_REVOCAP | ON при обнаружении | Включает связанный анализ с использованием REVOCAP_Coupler |
WITH_TOOLS | ON | Собирает прилагаемые инструменты |
WITH_DOC | OFF | Создаёт документацию API с помощью Doxygen |
WITH_NETCDF | ON при обнаружении | Включает вывод Exodus II (NetCDF) |
WINDOWS | OFF | Включает сборку для Windows |
CMAKE_BUILD_TYPE | RELEASE | Тип сборки (RELEASE / DEBUG) |
CMAKE_INSTALL_PREFIX | /usr/local | Каталог установки |
DEBUG_EXTRA | OFF | Включает проверку утечек памяти (для GCC, -fsanitize=address) |
Сборка DEBUG¶
Если задано CMAKE_BUILD_TYPE=DEBUG, добавляются следующие отладочные флаги, зависящие от компилятора.
| Компилятор | Дополнительные флаги |
|---|---|
| GCC | -fbounds-check -fbacktrace |
| Intel | -check uninit,bound -traceback |
Сборка с использованием GPU¶
Если в качестве компилятора указан NVIDIA HPC SDK (nvc/nvc++/nvfortran), CMake автоматически добавляет следующие флаги.
| Флаг | Описание |
|---|---|
-acc | Включает OpenACC |
-Minfo=accel | Показывает информацию о переносе вычислений на GPU во время компиляции |
-gpu=ccnative,mem:managed | Автоматически определяет GPU в среде сборки для выбора целевой архитектуры и использует Unified Memory |
Подробную процедуру сборки для GPU с OpenACC см. в разделе Сборка с использованием GPU.