Градење со 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 претпоставува out-of-source градење (директно градење во дрвото на изворниот код е забрането). Создајте директориум 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, се додаваат следните debug-знамиња специфични за компајлерот.
| Компајлер | Дополнителни знамиња |
|---|---|
| GCC | -fbounds-check -fbacktrace |
| Intel | -check uninit,bound -traceback |
Градење со GPU¶
Кога NVIDIA HPC SDK (nvc/nvc++/nvfortran) е зададен како компајлер, CMake автоматски ги додава следните знамиња.
| Знаме | Опис |
|---|---|
-acc | Овозможува OpenACC |
-Minfo=accel | Прикажува информации за GPU-offloading при компилација |
-gpu=ccnative,mem:managed | Автоматски го открива GPU во околината за градење за да ја одреди целта и користи Unified Memory |
За детална постапка за GPU-градење со OpenACC, видете Градење со GPU.