Կառուցման ընթացակարգ CMake-ով¶
Այս էջում նկարագրվում է FrontISTR-ի սկզբնական կոդը ստանալուց մինչև կառուցում և տեղադրում ամբողջ ընթացակարգը։ Կախվածությունների գրադարանների մանրամասների համար տե՛ս Պարտադիր և ընտրովի կախվածությունների գրադարաններ։
Սկզբնական կոդի ստացում¶
FrontISTR-ի սկզբնական կոդը կարելի է ստանալ GitLab-ից կամ GitHub-ից։
# GitLab
git clone https://gitlab.com/FrontISTR-Commons/FrontISTR.git
# GitHub (հայելային պատճեն)
git clone https://github.com/FrontISTR/FrontISTR.git
Կառուցման ընթացակարգ¶
FrontISTR-ը նախատեսում է սկզբնական կոդի ծառից դուրս կառուցում (սկզբնական կոդի ծառի անմիջապես ներսում կառուցումն արգելված է)։ Ստեղծեք build դիրեկտորիա և դրա ներսում գործարկեք cmake։
cd FrontISTR
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DWITH_MPI=ON -DWITH_OPENMP=ON ..
make -j$(nproc)
Կառուցումից հետո ծրագիրը կարելի է անմիջապես գործարկել որպես /path/to/FrontISTR/build/fistr1/fistr1։ Համակարգային ուղու (CMAKE_INSTALL_PREFIX) մեջ տեղադրելու համար լրացուցիչ գործարկեք հետևյալը։
CMake ընտրանքների ցանկ¶
Այն ընտրանքները, որոնց լռելյայն արժեքը նշված է որպես «հայտնաբերման դեպքում ON», cmake-ի գործարկման ժամանակ ավտոմատ միացվում են, եթե համապատասխան գրադարանը հայտնաբերվում է համակարգում։ Դրանք կարելի է բացահայտ անջատել՝ նշելով -DWITH_XXX=OFF։
| Ընտրանք | Լռելյայն | Նկարագրություն |
|---|---|---|
WITH_MPI | ON | Միացնում է MPI զուգահեռացումը |
WITH_OPENMP | հայտնաբերման դեպքում ON | Միացնում է OpenMP թելային զուգահեռացումը |
WITH_METIS | հայտնաբերման դեպքում ON | Միացնում է տիրույթի տարանջատումը METIS-ով |
METIS_VER_4 | OFF | Օգտագործում է METIS v4 (OFF դեպքում՝ v5) |
WITH_MUMPS | հայտնաբերման դեպքում ON | Միացնում է MUMPS զուգահեռ ուղղակի լուծիչը |
WITH_MKL | հայտնաբերման դեպքում ON | Միացնում է Intel MKL-ը (ներառյալ PARDISO) |
WITH_LAPACK | հայտնաբերման դեպքում ON | Միացնում է պայմանականության թվի գնահատումը LAPACK-ով |
WITH_ML | հայտնաբերման դեպքում ON | Միացնում է AMG նախապայմանավորումը Trilinos ML-ով |
WITH_REFINER | հայտնաբերման դեպքում ON | Միացնում է ցանցի մանրացումը REVOCAP_Refiner-ով |
WITH_REVOCAP | հայտնաբերման դեպքում ON | Միացնում է կապակցված վերլուծությունը REVOCAP_Coupler-ով |
WITH_TOOLS | ON | Կառուցում է կից գործիքները |
WITH_DOC | OFF | Ստեղծում է API փաստաթղթավորում Doxygen-ով |
WITH_NETCDF | հայտնաբերման դեպքում ON | Միացնում է Exodus II ձևաչափով արտածումը (NetCDF) |
WINDOWS | OFF | Միացնում է Windows-ի համար կառուցումը |
CMAKE_BUILD_TYPE | RELEASE | Կառուցման տիպ (RELEASE / DEBUG) |
CMAKE_INSTALL_PREFIX | /usr/local | Տեղադրման դիրեկտորիա |
DEBUG_EXTRA | OFF | Միացնում է հիշողության արտահոսքի ստուգումը (GCC-ի համար՝ -fsanitize=address) |
DEBUG կառուցում¶
CMAKE_BUILD_TYPE=DEBUG նշելու դեպքում ըստ կոմպիլյատորի ավելացվում են հետևյալ debug դրոշները։
| Կոմպիլյատոր | Լրացուցիչ դրոշներ |
|---|---|
| GCC | -fbounds-check -fbacktrace |
| Intel | -check uninit,bound -traceback |
Կառուցում GPU-ի կիրառմամբ¶
Եթե որպես կոմպիլյատորներ նշվում է NVIDIA HPC SDK-ն (nvc/nvc++/nvfortran), CMake-ն ավտոմատ ավելացնում է հետևյալ դրոշները։
| Դրոշ | Նկարագրություն |
|---|---|
-acc | Միացնում է OpenACC-ը |
-Minfo=accel | Կոմպիլյացիայի ժամանակ ցուցադրում է GPU offload-ի մասին տեղեկություն |
-gpu=ccnative,mem:managed | Ավտոմատ հայտնաբերում է կառուցման միջավայրի GPU-ն, որոշում թիրախը և օգտագործում Unified Memory |
OpenACC-ով GPU կառուցման մանրամասն ընթացակարգի համար տե՛ս Կառուցում GPU-ի կիրառմամբ։