Сборка с CMake¶
На этой странице описана процедура от получения исходного кода FrontISTR до сборки и установки. Подробности о зависимых библиотеках см. в разделе Обязательные и необязательные зависимости.
Получение исходного кода¶
Исходный код FrontISTR можно получить из GitLab или GitHub.
# GitLab
git clone https://gitlab.com/FrontISTR-Commons/FrontISTR.git
# GitHub (mirror)
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.