Privalomos ir pasirenkamos priklausomybės¶
Šiame puslapyje aprašomos FrontISTR kompiliavimui reikalingos bibliotekos ir pasirenkamos bibliotekos, išplečiančios jo funkcijas. Kaip įdiegti kiekvieną biblioteką, žr. tos bibliotekos dokumentaciją.
Privalomos priklausomybės¶
FrontISTR kompiliavimui reikalingi šie įrankiai ir bibliotekos.
| Biblioteka | Versijos reikalavimas | Paskirtis |
|---|---|---|
| CMake | ≥ 3.13.4 | Kompiliavimo sistema |
| C/C++/Fortran kompiliatorius | — | Pirminio kodo kompiliavimas |
| MPI | — | Lygiagrečiojo ryšio biblioteka (OpenMPI, IntelMPI ir kt.) |
Pasirenkamos priklausomybės¶
Šios bibliotekos yra pasirenkamos ir gali būti įjungiamos kompiliavimo metu pagal reikalingas funkcijas. Atitinkamas CMake parinktis žr. Kompiliavimas su CMake.
| Biblioteka | CMake parinktis | Paskirtis | Šaltinis |
|---|---|---|---|
| METIS (v4/v5) | WITH_METIS | Srities skaidymas grafų skaidymo metodu | Karypis Lab |
| MUMPS + ScaLAPACK | WITH_MUMPS | Lygiagretusis tiesioginis sprendiklis | MUMPS-Solver.org / Netlib |
| Intel oneAPI MKL | WITH_MKL | Tiesioginis sprendiklis (PARDISO), BLAS/LAPACK | Intel |
| OpenBLAS / LAPACK | WITH_LAPACK | Skaitinė tiesinė algebra (sąlygotumo skaičiaus įvertinimas) | OpenBLAS.net / Netlib |
| Trilinos ML | WITH_ML | AMG išankstinis sąlyginimas | Trilinos Project |
| REVOCAP_Refiner | WITH_REFINER | Tinklo tikslinimas | FrontISTR atsisiuntimo puslapis |
| REVOCAP_Coupler | WITH_REVOCAP | Susietoji analizė | FrontISTR atsisiuntimo puslapis |
| NetCDF | WITH_NETCDF | Išvestis Exodus II formatu | Unidata |
| Doxygen | WITH_DOC | API dokumentacijos generavimas | Doxygen.nl |
Papildomi įrankiai GPU kompiliavimui¶
FrontISTR GPU spartinimas įgyvendintas naudojant OpenACC, o šiuo metu patikrintoje konfigūracijoje naudojamas NVIDIA HPC SDK. Be pirmiau išvardytų privalomų bibliotekų, GPU kompiliavimui reikalingi šie įrankiai.
| Įrankis | Paskirtis | Šaltinis |
|---|---|---|
NVIDIA HPC SDK (nvc, nvc++, nvfortran) | OpenACC skaičiavimų perkėlimo į GPU kompiliavimas | NVIDIA |
Išsamiau apie GPU kompiliavimo procedūrą, įskaitant nepalaikomų bibliotekų tvarkymą, žr. GPU kompiliavimas.