Przejdź do treści

Wymagane i opcjonalne zależności

Ta strona opisuje biblioteki wymagane do zbudowania FrontISTR oraz biblioteki opcjonalne rozszerzające jego funkcjonalność. Instrukcje instalacji poszczególnych bibliotek znajdują się w dokumentacji dostarczanej z daną biblioteką.

Wymagane zależności

Do zbudowania FrontISTR wymagane są następujące narzędzia i biblioteki.

Biblioteka Wymagana wersja Zastosowanie
CMake ≥ 3.13.4 System budowania
Kompilator C/C++/Fortran Kompilacja kodu źródłowego
MPI Biblioteka komunikacji równoległej (OpenMPI, IntelMPI itp.)

Zależności opcjonalne

Następujące biblioteki są opcjonalne i można je włączyć podczas budowania zależnie od wymaganej funkcjonalności. Odpowiednie opcje CMake opisano w Budowanie za pomocą CMake.

Biblioteka Opcja CMake Zastosowanie Źródło
METIS (v4/v5) WITH_METIS Dekompozycja domeny przez partycjonowanie grafu Karypis Lab
MUMPS + ScaLAPACK WITH_MUMPS Równoległy solver bezpośredni MUMPS-Solver.org / Netlib
Intel oneAPI MKL WITH_MKL Solver bezpośredni (PARDISO), BLAS/LAPACK Intel
OpenBLAS / LAPACK WITH_LAPACK Numeryczna algebra liniowa (estymacja liczby uwarunkowania) OpenBLAS.net / Netlib
Trilinos ML WITH_ML Prekondycjonowanie AMG Trilinos Project
REVOCAP_Refiner WITH_REFINER Zagęszczanie siatki Strona pobierania FrontISTR
REVOCAP_Coupler WITH_REVOCAP Analiza sprzężona Strona pobierania FrontISTR
NetCDF WITH_NETCDF Wyjście w formacie Exodus II Unidata
Doxygen WITH_DOC Generowanie dokumentacji API Doxygen.nl

Dodatkowe narzędzia wymagane do budowania z obsługą GPU

Akceleracja GPU w FrontISTR jest zaimplementowana z użyciem OpenACC, a obecnie zweryfikowana konfiguracja wykorzystuje NVIDIA HPC SDK. Oprócz wymaganych bibliotek wymienionych powyżej do budowania z obsługą GPU potrzebne są następujące narzędzia.

Narzędzie Zastosowanie Źródło
NVIDIA HPC SDK (nvc, nvc++, nvfortran) Kompilacja odciążania obliczeń GPU z OpenACC NVIDIA

Szczegóły procedury budowania z obsługą GPU, w tym sposób postępowania z nieobsługiwanymi bibliotekami, znajdują się w Budowanie z obsługą GPU.