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

Градење со 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 --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, се додаваат следните 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.