Обов’язкові та необов’язкові залежності¶
Нижче описано бібліотеки, необхідні для збирання FrontISTR, а також необов’язкові бібліотеки для розширення функціональності. Інструкції зі встановлення кожної бібліотеки див. у її документації.
Обов’язкові залежності¶
Наведені нижче інструменти та бібліотеки є обов’язковими для збирання FrontISTR.
| Бібліотека | Вимоги до версії | Призначення |
|---|---|---|
| CMake | ≥ 3.13.4 | Система збирання |
| Компілятор C/C++/Fortran | — | Компіляція вихідного коду |
| MPI | — | Бібліотека паралельних комунікацій (OpenMPI, IntelMPI тощо) |
Необов’язкові залежності¶
Наведені нижче бібліотеки є необов’язковими й можуть бути ввімкнені під час збирання залежно від потрібних функцій. Відповідні параметри CMake див. у процедурі збирання з CMake.
| Бібліотека | Параметр CMake | Призначення | Джерело |
|---|---|---|---|
| METIS (v4/v5) | WITH_METIS | Розбиття сітки шляхом розбиття графа | Karypis Lab |
| MUMPS + ScaLAPACK | WITH_MUMPS | Паралельний прямий розв’язувач | MUMPS-Solver.org / Netlib |
| Intel oneAPI MKL | WITH_MKL | Прямий розв’язувач (PARDISO), BLAS/LAPACK | Intel |
| OpenBLAS / LAPACK | WITH_LAPACK | Чисельна лінійна алгебра (оцінювання числа обумовленості) | OpenBLAS.net / Netlib |
| Trilinos ML | WITH_ML | Передобумовлення AMG | Trilinos Project |
| REVOCAP_Refiner | WITH_REFINER | Уточнення сітки | Сторінка завантаження FrontISTR |
| REVOCAP_Coupler | WITH_REVOCAP | Зв’язаний аналіз | Сторінка завантаження FrontISTR |
| NetCDF | WITH_NETCDF | Виведення у форматі Exodus II | Unidata |
| Doxygen | WITH_DOC | Генерування документації API | Doxygen.nl |
Додаткові інструменти для збирання з GPU¶
Підтримку GPU у FrontISTR реалізовано за допомогою OpenACC; наразі перевірено роботу конфігурації з NVIDIA HPC SDK. Для збирання з GPU, крім наведених вище обов’язкових бібліотек, потрібні такі інструменти.
| Інструмент | Призначення | Джерело |
|---|---|---|
NVIDIA HPC SDK (nvc, nvc++, nvfortran) | Компіляція розвантаження OpenACC на GPU | NVIDIA |
Докладну процедуру збирання для GPU, включно з роботою з непідтримуваними бібліотеками, див. у Збирання з підтримкою GPU.