Nõutavad ja valikulised sõltuvused¶
Sellel lehel kirjeldatakse FrontISTR-i kompileerimiseks vajalikke teeke ning valikulisi teeke, mis laiendavad selle funktsionaalsust. Iga teegi paigaldusjuhiste kohta vaadake vastava teegi dokumentatsiooni.
Nõutavad sõltuvused¶
FrontISTR-i kompileerimiseks on vajalikud järgmised tööriistad ja teegid.
| Teek | Versiooninõue | Otstarve |
|---|---|---|
| CMake | ≥ 3.13.4 | Koostamissüsteem |
| C/C++/Fortrani kompilaator | — | Lähtekoodi kompileerimine |
| MPI | — | Paralleelside teek (OpenMPI, IntelMPI jne) |
Valikulised sõltuvused¶
Järgmised teegid on valikulised ning neid saab kompileerimisel vastavalt vajalikele funktsioonidele lubada. Vastavaid CMake'i valikuid vt Kompileerimine CMake'iga.
| Teek | CMake'i valik | Otstarve | Allikas |
|---|---|---|---|
| METIS (v4/v5) | WITH_METIS | Domeenidekompositsioon graafi jaotamise abil | Karypis Lab |
| MUMPS + ScaLAPACK | WITH_MUMPS | Paralleelne otselahendaja | MUMPS-Solver.org / Netlib |
| Intel oneAPI MKL | WITH_MKL | Otselahendaja (PARDISO), BLAS/LAPACK | Intel |
| OpenBLAS / LAPACK | WITH_LAPACK | Numbriline lineaaralgebra (tingimusarvu hindamine) | OpenBLAS.net / Netlib |
| Trilinos ML | WITH_ML | AMG eeltingimine | Trilinos Project |
| REVOCAP_Refiner | WITH_REFINER | Võrgu tihendamine | FrontISTR-i allalaadimisleht |
| REVOCAP_Coupler | WITH_REVOCAP | Sidestatud analüüs | FrontISTR-i allalaadimisleht |
| NetCDF | WITH_NETCDF | Exodus II vormingus väljund | Unidata |
| Doxygen | WITH_DOC | API dokumentatsiooni genereerimine | Doxygen.nl |
GPU-kompileerimiseks vajalikud lisatööriistad¶
FrontISTR-i GPU-kiirendus on teostatud OpenACC abil ning praegu kontrollitud konfiguratsioon kasutab NVIDIA HPC SDK-d. Lisaks eespool loetletud nõutavatele teekidele on GPU-kompileerimiseks vaja järgmisi tööriistu.
| Tööriist | Otstarve | Allikas |
|---|---|---|
NVIDIA HPC SDK (nvc, nvc++, nvfortran) | OpenACC GPU-offload'i kompileerimine | NVIDIA |
GPU-kompileerimise protseduuri üksikasju, sealhulgas mittetoetatud teekide käsitlemist, vt GPU-kompileerimine.