בנייה באמצעות 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, מתווספים דגלי הדיבוג הבאים לפי המהדר.
| מהדר | דגלים נוספים |
|---|---|
| GCC | -fbounds-check -fbacktrace |
| Intel | -check uninit,bound -traceback |
בנייה עם GPU¶
כאשר NVIDIA HPC SDK (nvc/nvc++/nvfortran) מוגדר כמהדר, CMake מוסיף אוטומטית את הדגלים הבאים.
| דגל | תיאור |
|---|---|
-acc | מפעיל OpenACC |
-Minfo=accel | מציג מידע על העברה ל־GPU בזמן הקומפילציה |
-gpu=ccnative,mem:managed | מזהה אוטומטית את ה־GPU בסביבת הבנייה כדי לקבוע את היעד ומשתמש ב־Unified Memory |
לפרטי ההליך לבניית GPU באמצעות OpenACC ראו בנייה עם GPU.