Перейти до змісту

Збирання за допомогою 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 --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.

AI-assisted translation May contain errors Official docs Status