Przejdź do treści

Translation update pending

The Polish translation may be out of date because the Japanese source has changed. The existing translation remains available while it is being updated.

Kompilacja za pomocą CMake

Na tej stronie opisano procedurę od uzyskania kodu źródłowego FrontISTR po kompilację i instalację. Szczegółowe informacje o bibliotekach zależnych zawiera sekcja Wymagane i opcjonalne zależności.

Pobieranie kodu źródłowego

Kod źródłowy FrontISTR można uzyskać z GitLab lub GitHub.

# GitLab
git clone https://gitlab.com/FrontISTR-Commons/FrontISTR.git

# GitHub (repozytorium lustrzane)
git clone https://github.com/FrontISTR/FrontISTR.git

Procedura kompilacji

FrontISTR zakłada kompilację poza drzewem źródeł (kompilowanie bezpośrednio w drzewie źródeł jest zabronione). Utwórz katalog build i uruchom w nim cmake.

cd FrontISTR
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DWITH_MPI=ON -DWITH_OPENMP=ON ..
make -j$(nproc)

Po kompilacji program można uruchomić bezpośrednio jako /path/to/FrontISTR/build/fistr1/fistr1. Aby zainstalować go w ścieżce systemowej (CMAKE_INSTALL_PREFIX), wykonaj dodatkowo następujące polecenie.

cmake --build . --target install

Opcje CMake

Opcje, których wartość domyślna jest podana jako "ON, jeśli wykryto", są włączane automatycznie, gdy odpowiednia biblioteka zostanie znaleziona w systemie podczas uruchamiania cmake. Można je jawnie wyłączyć, podając -DWITH_XXX=OFF.

Opcja Domyślnie Opis
WITH_MPI ON Włącza równoległość MPI
WITH_OPENMP ON, jeśli wykryto Włącza równoległość wątkową OpenMP
WITH_METIS ON, jeśli wykryto Włącza dekompozycję domeny za pomocą METIS
WITH_MUMPS ON, jeśli wykryto Włącza równoległy solver bezpośredni MUMPS
WITH_MKL ON, jeśli wykryto Włącza Intel MKL (w tym PARDISO)
WITH_LAPACK ON, jeśli wykryto Włącza estymację liczby uwarunkowania za pomocą LAPACK
WITH_ML ON, jeśli wykryto Włącza prekondycjonowanie AMG za pomocą Trilinos ML
WITH_REFINER ON, jeśli wykryto Włącza zagęszczanie siatki za pomocą REVOCAP_Refiner
WITH_REVOCAP ON, jeśli wykryto Włącza analizę sprzężoną za pomocą REVOCAP_Coupler
WITH_TOOLS ON Kompiluje dołączone narzędzia
WITH_DOC OFF Generuje dokumentację API za pomocą Doxygen
WITH_NETCDF ON, jeśli wykryto Włącza zapis Exodus II (NetCDF)
WINDOWS OFF Włącza kompilację dla Windows
CMAKE_BUILD_TYPE RELEASE Typ kompilacji (RELEASE / DEBUG)
CMAKE_INSTALL_PREFIX /usr/local Katalog instalacji
DEBUG_EXTRA OFF Włącza kontrolę wycieków pamięci (dla GCC, -fsanitize=address)
NVHPC_NO_ACC OFF Wyłącza OpenACC podczas używania kompilatorów NVIDIA HPC SDK i buduje wersję CPU

Kompilacja DEBUG

Po podaniu CMAKE_BUILD_TYPE=DEBUG dodawane są następujące flagi debugowania zależne od kompilatora.

Kompilator Dodatkowe flagi
GCC -fbounds-check -fbacktrace
Intel -check uninit,bound -traceback
cmake -DCMAKE_BUILD_TYPE=DEBUG ..

Kompilacja z obsługą GPU

Gdy jako kompilator wskazano NVIDIA HPC SDK (nvc/nvc++/nvfortran), CMake automatycznie dodaje następujące flagi.

Flaga Opis
-acc Włącza OpenACC
-Minfo=accel Wyświetla podczas kompilacji informacje o przenoszeniu obliczeń na GPU
-gpu=ccnative,mem:managed Automatycznie wykrywa GPU w środowisku kompilacji, aby określić platformę docelową, i używa Unified Memory

Po podaniu -DNVHPC_NO_ACC=ON flagi te nie są dodawane.

Szczegółową procedurę kompilacji z obsługą GPU przy użyciu OpenACC zawiera sekcja Kompilacja z obsługą GPU.