Перейти к содержанию

Сборка с 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 --build . --target install

Параметры 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
cmake -DCMAKE_BUILD_TYPE=DEBUG ..

Сборка с GPU

Если в качестве компилятора указан NVIDIA HPC SDK (nvc/nvc++/nvfortran), CMake автоматически добавляет следующие флаги.

Флаг Описание
-acc Включает OpenACC
-Minfo=accel Показывает информацию о переносе вычислений на GPU во время компиляции
-gpu=ccnative,mem:managed Автоматически определяет GPU в среде сборки для выбора целевой архитектуры и использует Unified Memory

Подробную процедуру сборки для GPU с OpenACC см. в разделе Сборка с GPU.