לדלג לתוכן

בנייה באמצעות 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 --build . --target install

אפשרויות 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
cmake -DCMAKE_BUILD_TYPE=DEBUG ..

בנייה עם GPU

כאשר NVIDIA HPC SDK (nvc/nvc++/nvfortran) מוגדר כמהדר, CMake מוסיף אוטומטית את הדגלים הבאים.

דגל תיאור
-acc מפעיל OpenACC
-Minfo=accel מציג מידע על העברה ל־GPU בזמן הקומפילציה
-gpu=ccnative,mem:managed מזהה אוטומטית את ה־GPU בסביבת הבנייה כדי לקבוע את היעד ומשתמש ב־Unified Memory

לפרטי ההליך לבניית GPU באמצעות OpenACC ראו בנייה עם GPU.