Към съдържанието

Компилиране с 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 offloading по време на компилация
-gpu=ccnative,mem:managed Автоматично открива GPU в средата за компилиране, определя целта и използва Unified Memory

За подробна процедура за GPU компилиране с OpenACC вижте Компилиране с GPU.

AI-assisted translation May contain errors Official docs Status